Slide 1

Slide 1 text

CircleCI and GitLab CI/CD @tnir - 2019-01-30 - CircleCI User Community Meetup #1 @DeNA HQ GitLab開発者から見たCircleCI

Slide 2

Slide 2 text

Agenda ● Overview of CI ● Introduction to GitLab CI/CD ● Overview of CD ● CircleCI Orbs ● Continuous Delivery/Deployment

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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...

Slide 6

Slide 6 text

Which CI/CD should we use? ● 以前使っていたから ● (日本語)情報が多いから ● 知り合いが使っているから ● 雰囲気に流されて・・・

Slide 7

Slide 7 text

Developer experience大事

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

デリバリスピード重要

Slide 10

Slide 10 text

DevSecOps

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Auto DevOps

Slide 13

Slide 13 text

GitLab Auto DevOps ● YAMLフリーなCI/CDパイプライン。`.gitlab-ci.yml`コミットな しで全部設定可能。 ● 環境変数のみで設定変更 https://docs.gitlab.com/ee/topics/autodevops/#environment-variables ● Kubernetes、Helm chartsエコシステムに乗っかかる。 ○ 使える資産が多い。 ● KubernetesへのSecretsを渡せる。 ○ アプリケーションエンジニアでも安心。

Slide 14

Slide 14 text

GitLab CI/CD https://about.gitlab.com/product/continuous-integration/

Slide 15

Slide 15 text

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がトリガーされない気もする(直します)

Slide 16

Slide 16 text

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'

Slide 17

Slide 17 text

Orbs

Slide 18

Slide 18 text

Orbs: avoid to duplicated YAMLs ● マイクロサービス時代、.circleci/config.ymlのコピペが起こ る。CircleCI職人がアップデートを頑張っていく日々。 ● ・・・ですが、 ● orbsの更新どうするの?→ https://gist.github.com/tnir/c61e280eed4cea5d67966587cc00f3bf

Slide 19

Slide 19 text

CDへのみち

Slide 20

Slide 20 text

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/

Slide 21

Slide 21 text

Continuous Delivery/Deployment ● ワークロードの汎用化と省力的自動化が鍵。 ● もちろん組織の変革が大事。 ● CircleCI Orbs、GitLab Auto DevOpsのようなフレームワー クが重要。

Slide 22

Slide 22 text

CircleCIのよいところ

Slide 23

Slide 23 text

What I love in CircleCI ● Web UI ○ Step folding ● Notifications ● Cache (image) ←超重要

Slide 24

Slide 24 text

今後の展望 ● CircleCI/GitLab CI/CDどちらも充実してきた (pipeline/workflow、コンテナネイティブ環境) ● 一方マーケットとしてGitHub Actions、Azure DevOpsが頭 角を示してきた ● CircleCI/GitLab CI/CDのCDの充実に期待! ● ドキュメンテーションの追随に期待!! ○ CIは一度設定してあとは楽したい ● (今日のイベントはUser Community主催らしいので)両者 のCommunity Marketing頑張っていきましょう!

Slide 25

Slide 25 text

@tnir Takuya Noguchi Tw: @tn961ir ● https://gitlab.com/tnir ● https://tnir.gitlab.io/

Slide 26

Slide 26 text

参考 ● 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