CircleCI and GitLab CI CD

8c5062689b241827e7532be41ff19e20?s=47 tnir
January 30, 2019

CircleCI and GitLab CI CD

(v0.90) CircleCI and GitLab CI/CD -GitLab開発者から見たCircleCI-

@tnir - 2019-01-30 - CircleCI User Community Meetup #1

8c5062689b241827e7532be41ff19e20?s=128

tnir

January 30, 2019
Tweet

Transcript

  1. CircleCI and GitLab CI/CD @tnir - 2019-01-30 - CircleCI User

    Community Meetup #1 @DeNA HQ GitLab開発者から見たCircleCI
  2. Agenda • Overview of CI • Introduction to GitLab CI/CD

    • Overview of CD • CircleCI Orbs • Continuous Delivery/Deployment
  3. tnir • Core Team, GitLab • Cloud Native Ambassador, CNCF

    • Co-organizer, Docker Tokyo • Co-organizer, GitLab Tokyo • OSS contributors of ◦ kubernetes/website, kubernetes-docs-ja ◦ Django / django-ja ◦ pandas, etc. • ex-Wercker/Magnum CI user, CircleCI beginner
  4. 2019年のDevOpsを 支えるCI/CD動向 Forrester Wave: CI Tools Q3 2017 AWS Developer

    Tools Azure DevOps GitHub Actions GitLab Auto DevOps GitLab Serverless https://gihyo.jp/dev/column/newyear/2019/devops
  5. What VCS/SCM are you using? • Bitbucket → Bitbucket Pipelines

    (CircleCI?) • GitLab (.com / self-hosting) → GitLab CI/CD • GitHub (.com) → 戦国時代Ph.2 (←今日はここ) ◦ CircleCI ◦ Travis CI ◦ GitLab CI/CD for GitHub ◦ Azure DevOps (Azure Pipelines) ◦ AppVeyor ◦ CodeShip ◦ Wercker (Oracle) ◦ Bitrise ◦ AWS Code series ◦ Jenkins ◦ etc...
  6. Which CI/CD should we use? • 以前使っていたから • (日本語)情報が多いから •

    知り合いが使っているから • 雰囲気に流されて・・・
  7. Developer experience大事

  8. Are you team full-stack? • スタートアップ&企業のDXをやっているとフルスタック(≒ス クラッチ開発経験がある)の人が採用しづらい(個人的感 想) • →CIのセットアップで楽したい

  9. デリバリスピード重要

  10. DevSecOps

  11. Security: DevSecOps • アジャイルな開発が求められている現代、セキュリティを DevOpsしたいニーズは年々強まっている。 • いちいちセットアップしたくない • 依存パッケージ、アプリケーションコード、動的解析

  12. Auto DevOps

  13. GitLab Auto DevOps • YAMLフリーなCI/CDパイプライン。`.gitlab-ci.yml`コミットな しで全部設定可能。 • 環境変数のみで設定変更 https://docs.gitlab.com/ee/topics/autodevops/#environment-variables •

    Kubernetes、Helm chartsエコシステムに乗っかかる。 ◦ 使える資産が多い。 • KubernetesへのSecretsを渡せる。 ◦ アプリケーションエンジニアでも安心。
  14. GitLab CI/CD https://about.gitlab.com/product/continuous-integration/

  15. GitLab CI/CD runs for any SCMs • GitLab CI/CDはどのSCMでも動く •

    GitLabのミラーリング+GitLab CI/CD ◦ Mirror: GitHub (SCM) → GitLab (SCM) ◦ CI/CD: GitLabのGitからPipeline実行 • GitLab CI/CD for GitHub (public) 使用中 • GitLab CI/CD for GitHub (private) 試用中 (1mo) ◦ たまにPipelineがトリガーされない気もする(直します)
  16. My current YAML .gitlab-ci.yml (2 lines, 136 bytes) include: -

    remote: 'https://gitlab.com/tnir/gitlab-ce/raw/hello -hello-circleci/lib/gitlab/ci/templates/Auto -DevOps.gitlab-ci.yml'
  17. Orbs

  18. Orbs: avoid to duplicated YAMLs • マイクロサービス時代、.circleci/config.ymlのコピペが起こ る。CircleCI職人がアップデートを頑張っていく日々。 • ・・・ですが、

    • orbsの更新どうするの?→ https://gist.github.com/tnir/c61e280eed4cea5d67966587cc00f3bf
  19. CDへのみち

  20. CircleCI/GitLabはCD/RA弱い? • by Forrester Wave: Continuous Delivery And Release Automation

    Q4 2018 • CircleCIもGitLabも、Strategy低め、current offeringも低 め。 ◦ GitLab (contender): cloud native&Kubernetes連携を優先して整備 されてきた。レガシー領域( TerraformとかAnsibleとか)とドキュメン テーションが弱い。GV (Alphabet) 出資。ユニコーン。 ◦ CircleCI (challenger): “nonopinionated” approach。ユーザがたくさん スクリプトを書く形で頑張る。専任ビルドマネージャーの出番。 ”SRE” みたいな人を置いて時間をかけてやる。 https://electric-cloud.com/resources/whitepapers/forrester-wave-continuous-delivery-release-automation/
  21. Continuous Delivery/Deployment • ワークロードの汎用化と省力的自動化が鍵。 • もちろん組織の変革が大事。 • CircleCI Orbs、GitLab Auto

    DevOpsのようなフレームワー クが重要。
  22. CircleCIのよいところ

  23. What I love in CircleCI • Web UI ◦ Step

    folding • Notifications • Cache (image) ←超重要
  24. 今後の展望 • CircleCI/GitLab CI/CDどちらも充実してきた (pipeline/workflow、コンテナネイティブ環境) • 一方マーケットとしてGitHub Actions、Azure DevOpsが頭 角を示してきた

    • CircleCI/GitLab CI/CDのCDの充実に期待! • ドキュメンテーションの追随に期待!! ◦ CIは一度設定してあとは楽したい • (今日のイベントはUser Community主催らしいので)両者 のCommunity Marketing頑張っていきましょう!
  25. @tnir Takuya Noguchi Tw: @tn961ir • https://gitlab.com/tnir • https://tnir.gitlab.io/

  26. 参考 • CircleCI https://circleci.com/ • GitLab https://about.gitlab.com/ • Orbs https://circleci.com/orbs/

    • CIマニアから見た各種CIツールの使い所 https://sue445.hatenablog.com/entry/2018/12/07/114638 • コテコテのGitLabユーザがCircleCIに入門してみた https://jumpyoshim.hatenablog.com/entry/getting-started-circleci-by-gitlab-user • Bitbucket Pipelines https://bitbucket.org/product/features/pipelines