Slide 1

Slide 1 text

1 SaaSビジネスに必須の CI/CD 2019.12.17 Solutions Engineer, CircleCI 車井 登 Go_SaaS 三種の神器

Slide 2

Slide 2 text

2 自己紹介 名前:車井 登 / Noboru Kurumai ポジション:Solutions Engineer 経歴:パッケージソフト開発    クラウドサービスエンジニア @kurumai

Slide 3

Slide 3 text

3 CircleCI使ってますか?

Slide 4

Slide 4 text

4 DevOpsの歴史 2001 Agile Software Development 開発対象を厳格に扱うことで変化を管理するの ではなく、アジャイル方法論は変化を許容する。 リスクは完璧な計画によって減少できるもので はなく、プロジェクトを小さく分割しつつ、それら を素早く結合させることによって減らすことがで きる。 2008 Continuous Delivery & Deployment 継続的デリバリーは継続的インテグレーションの拡張として登場。 ソフトウェアが常にデプロイ可能な状態を保つというプラクティスで ある。 責務(とリスク)を開発者と運用者の間で共有すること - DevOpsカ ルチャーの登場。 チームはテストの自動化だけではなく、テストをパスした際のデプ ロイの自動化を目指す。 1970 Waterfall 開発プロセス全体がいくつかのフェーズから構成 されていて、次のフェーズに進むためには前の フェーズを終えていなければならない。 ただし、隣接するフェーズ間の小さなイテレーショ ンは例外的に実施する場合がある。 (ハードウェアの開発方法論に似ている) 1994 Automated Testing & Continuous Integration (Inception & Evolution: 1994-2008) 開発者は、失敗をより快適なものとして捉え、それが受け入れられないものではなく、む しろ自信をつけるものになってきた。 JUnitやCucumberなどのテスティングフレームワー クの登場がそれを反映している。 マイクロプロセスの要求によって登場した継続的インテグレーション (CI)は、開発者が数 多くの内部リリースを行うことを可能にした。 すなわち、継続的インテグレーションは常に少量のコードをマージするための方法論で あり、開発の最終フェーズで競合を発生させるような巨大なコードのコミットを防ぐ 2010 - Present

Slide 5

Slide 5 text

5 DevOpsの歴史 2001 Agile Software Development 開発対象を厳格に扱うことで変化を管理するの ではなく、アジャイル方法論は変化を許容する。 リスクは完璧な計画によって減少できるもので はなく、プロジェクトを小さく分割しつつ、それら を素早く結合させることによって減らすことがで きる。 2008 Continuous Delivery & Deployment 継続的デリバリーは継続的インテグレーションの拡張として登場。 ソフトウェアが常にデプロイ可能な状態を保つというプラクティスで ある。 責務(とリスク)を開発者と運用者の間で共有すること - DevOpsカ ルチャーの登場。 チームはテストの自動化だけではなく、テストをパスした際のデプ ロイの自動化を目指す。 1970 Waterfall 開発プロセス全体がいくつかのフェーズから構成 されていて、次のフェーズに進むためには前の フェーズを終えていなければならない。 ただし、隣接するフェーズ間の小さなイテレーショ ンは例外的に実施する場合がある。 (ハードウェアの開発方法論に似ている) 1994 Automated Testing & Continuous Integration (Inception & Evolution: 1994-2008) 開発者は、失敗をより快適なものとして捉え、それが受け入れられないものではなく、む しろ自信をつけるものになってきた。 JUnitやCucumberなどのテスティングフレームワー クの登場がそれを反映している。 マイクロプロセスの要求によって登場した継続的インテグレーション (CI)は、開発者が数 多くの内部リリースを行うことを可能にした。 すなわち、継続的インテグレーションは常に少量のコードをマージするための方法論で あり、開発の最終フェーズで競合を発生させるような巨大なコードのコミットを防ぐ 2010 - Present ←50年前!

Slide 6

Slide 6 text

6 CI/CD(継続的インテグレーション/継続的デリバリー)とは ❝ソフトウェアの変更を常にテストし 自動で本番環境にリリース可能な状態にしておく ソフトウェア開発の手法❞

Slide 7

Slide 7 text

7 DevOps と CI/CD DevOps CI/CD

Slide 8

Slide 8 text

8 なぜ DevOps と CI/CD が重要なのか こんなことありませんか? ● 機能追加のリリースは半年に1回 ● 追加する機能を決めてから実装までに半年 ● システム変更時に障害が起こることが多い ● 人的ミスが要因の障害が多い ● 障害が起きてもすぐに修正できない。その間、サービス停止。

Slide 9

Slide 9 text

9 MVPの後のプロセスまで 考えていますか?

Slide 10

Slide 10 text

10 なぜ DevOps と CI/CD が重要なのか Source: 2018 State of DevOps Report コードをデプロイする 頻度 コードコミットから デプロイまでのスピード 変更時の トラブル インシデントの リカバリータイム マーケットの声を素早く 反映し、サービスを修正 アイデアからリリースまでのス ピードが飛躍的に向上競合 優位性を保つ 変更に起因する トラブルを削減 障害が起きても 素早く解決

Slide 11

Slide 11 text

11 なぜ DevOps と CI/CD が重要なのか Source: 2018 State of DevOps Report 46 倍 多い 2,555 倍 速い 7 倍 少ない 2,604 倍 速い コードをデプロイする 頻度 コードコミットから デプロイまでのスピード 変更時の トラブル インシデントの リカバリータイム

Slide 12

Slide 12 text

12 なぜ DevOps と CI/CD が重要なのか Source: 2018 State of DevOps Report 毎日、何度も 即時にリリース トラブル減少 すぐにリカバリー コードをデプロイする 頻度 コードコミットから デプロイまでのスピード 変更時の トラブル インシデントの リカバリータイム

Slide 13

Slide 13 text

CircleCI ● 世界最大規模のクラウド CI/CD サービス (継続的インテグレーション/継続的デリバリー ) ● より良いコードをより速く、簡単にリリースすることを可能に ● 2011年設立、サンフランシスコ本社 ● 250人以上の社員、5大陸に在籍 ● 18年1月 3,100万ドルのシリーズCを実施、合計5,950万ドルを調達 Representative Customers

Slide 14

Slide 14 text

14 CircleCIの利用実績

Slide 15

Slide 15 text

15 SaaS企業など、多くのユーザーが利用

Slide 16

Slide 16 text

16 コード変更からリリースまでのすべてを自動化 Continuous Delivery コード変更 コラボレーション ビルド テスト リリース 実行環境 CircleCIは、 CI/CD (継続的インテグレーション/継 続的デリバリー) サービスを提供 Cloud On-premise

Slide 17

Slide 17 text

17 CI/CD を使っていても こんなことありませんか? ● CI/CD 環境の維持に、専任の管理・運用者が複数在籍 ● インフラの利用・変更依頼に時間がかかり、その間、開発が止まる ● 社内の知らないところに、CI/CD環境が構築されてしまっている ● 開発時にエンジニアの待ち時間が多い

Slide 18

Slide 18 text

18 CircleCI ユーザーの声 ビルド時間を 75% 削減 「インフラのことを気にする必要がなくなったため、価値の高いことに集 中することができた。それが CircleCI を利用開始して得ることができた 大きな恩恵の1つだ。」 Eric Nakagawa, Head of Open Source at Facebook メンテナンス時間を 50% 削減 Developer のスループットが 20% 向上 「弊社の一番重要な資産の1つは優秀なエンジニアです。遅くて使いに くいツールを提供するのではなく、セルフサービスのワークフローを提 供して、エンジニアの好きな方法で、好きな時間にそれらを利用可能 にすることを決めました。それが、私達が CircleCI へ移行した理由で す。」 Rob Witoff Former Director at Coinbase コストを 40% 削減 ビルド時間を 75% 削減 「CircleCIはテストをシンプルにしてくれます。今まで利用したどの CI ツールよりも簡単です。SSHを利用してテストを走らせたときに、 CircleCI 内のコンテナに簡単に入ることができるのが気に入ってます。 この機能は、テストのデバッグをする時にとても助かっています。」 Steve Persch at Agency and Community Engineer at Pantheon

Slide 19

Slide 19 text

19 Jenkinsからの移行 CircleCIでは、 ● 自前サーバーの購入、インストール、設定、運 用が不要 ● 各サーバーに対するセキュリティ対策が不要 ● ビルド毎に環境を構築するので、いつでもクリー ンビルドが可能 ● 大量のプラグイン管理が不要 ● 設定ベースの機能追加で3rdベンダーツールと 連携可能(Orbs) ● YAML形式で設定するため学習コストが低い

Slide 20

Slide 20 text

20 CircleCI 機能や特徴 ● 運用チームや自社環境の構築が不要(オンプレ版は必要) ● .circleci/config.ymlでテスト環境の統一 ● Dockerサポートにより、高速にビルド環境を立上げ ● SSHデバッグ機能でビルドエラーの迅速な解決 ● パラレルジョブ・マルチコンテナでキュー(待ち時間)を解消 ● 複数のキャッシュ機能でビルドを高速化 ● パイプラインでジョブを連結 ● Orbs (config のパッケージ) を使って、簡単にビルド・テスト・デプロイが可能

Slide 21

Slide 21 text

21 2018年6月 CircleCI Japan誕生

Slide 22

Slide 22 text

22 CircleCIが日本に進出した理由 Support + Community 日本時間 + 日本語 日本現地での対応 ユーザーフィードバック ユーザーエンゲージメントとコ ミュニティミートアップ Hiring ワールドクラスのエンジニア 日本 + グローバルチーム Localization ドキュメント テクニカル Q&A 製品情報

Slide 23

Slide 23 text

23 日本のコミュニティとマーケットをサポート 日本語 サポート 日本語 ドキュメント 日本語 製品紹介 ユーザー コミュニティ

Slide 24

Slide 24 text

24 料金プラン ● 2,500クレジット/週までは無料 で利用が可能 ぜひお試し下さい!

Slide 25

Slide 25 text

25 CircleCIユーザーコミュニティイベント ConpassのCircleCIグループに登録して、 CircleCIのユーザーコミュニティイベント開催 お知らせをいち早くゲットしましょう! https://circleci.connpass.com/ 本会場内にもスタッフがいますので、 ご不明な点は何でも気軽にお声がけください!

Slide 26

Slide 26 text

26 CircleCI ユーザーコミュニティ @CircleCIJapan  #CircleCIJP https://www.facebook.com/groups/ CircleCIJP

Slide 27

Slide 27 text

Thank you. 27