Upgrade to Pro — share decks privately, control downloads, hide ads and more …

go-saas-circleci-number-4

 go-saas-circleci-number-4

Noboru Kurumai

December 17, 2019
Tweet

More Decks by Noboru Kurumai

Other Decks in Programming

Transcript

  1. 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
  2. 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年前!
  3. 8 なぜ DevOps と CI/CD が重要なのか こんなことありませんか? • 機能追加のリリースは半年に1回 •

    追加する機能を決めてから実装までに半年 • システム変更時に障害が起こることが多い • 人的ミスが要因の障害が多い • 障害が起きてもすぐに修正できない。その間、サービス停止。
  4. 10 なぜ DevOps と CI/CD が重要なのか Source: 2018 State of

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

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

    DevOps Report 毎日、何度も 即時にリリース トラブル減少 すぐにリカバリー コードをデプロイする 頻度 コードコミットから デプロイまでのスピード 変更時の トラブル インシデントの リカバリータイム
  7. CircleCI • 世界最大規模のクラウド CI/CD サービス (継続的インテグレーション/継続的デリバリー ) • より良いコードをより速く、簡単にリリースすることを可能に •

    2011年設立、サンフランシスコ本社 • 250人以上の社員、5大陸に在籍 • 18年1月 3,100万ドルのシリーズCを実施、合計5,950万ドルを調達 Representative Customers
  8. 16 コード変更からリリースまでのすべてを自動化 Continuous Delivery コード変更 コラボレーション ビルド テスト リリース 実行環境

    CircleCIは、 CI/CD (継続的インテグレーション/継 続的デリバリー) サービスを提供 Cloud On-premise
  9. 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
  10. 19 Jenkinsからの移行 CircleCIでは、 • 自前サーバーの購入、インストール、設定、運 用が不要 • 各サーバーに対するセキュリティ対策が不要 • ビルド毎に環境を構築するので、いつでもクリー

    ンビルドが可能 • 大量のプラグイン管理が不要 • 設定ベースの機能追加で3rdベンダーツールと 連携可能(Orbs) • YAML形式で設定するため学習コストが低い
  11. 20 CircleCI 機能や特徴 • 運用チームや自社環境の構築が不要(オンプレ版は必要) • .circleci/config.ymlでテスト環境の統一 • Dockerサポートにより、高速にビルド環境を立上げ •

    SSHデバッグ機能でビルドエラーの迅速な解決 • パラレルジョブ・マルチコンテナでキュー(待ち時間)を解消 • 複数のキャッシュ機能でビルドを高速化 • パイプラインでジョブを連結 • Orbs (config のパッケージ) を使って、簡単にビルド・テスト・デプロイが可能
  12. 22 CircleCIが日本に進出した理由 Support + Community 日本時間 + 日本語 日本現地での対応 ユーザーフィードバック

    ユーザーエンゲージメントとコ ミュニティミートアップ Hiring ワールドクラスのエンジニア 日本 + グローバルチーム Localization ドキュメント テクニカル Q&A 製品情報