【レポート】CEO ジム・ローズ来日: CI/CDが変革する開発現場・ビジネスとCircleCIの未来 #AWSSummit

千葉県幕張メッセにて開催中のAWS Summit Tokyo 2019に参加しています。こちらで講演されたセッション「CEO ジム・ローズ来日: CI/CDが変革する開発現場・ビジネスとCircleCIの未来」を聴講しましたのでレポートします。
2019.06.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。サービスグループの武田です。

2019年6月12日(水)から14日(金)の3日間、千葉県幕張メッセにてAWS Summit Tokyo 2019が開催されています。こちらで講演されたセッション「F2-06 CEO ジム・ローズ来日: CI/CDが変革する開発現場・ビジネスとCircleCIの未来」を聴講しましたのでレポートします。

こちらのセッションでは途中で写真撮影OKを知ったため、一部写真付きで紹介します。

概要

CircleCIは世界最大のCI(継続的インテグレーション)/ CD(継続的デリバリー)のクラウドプラットフォームで、コードがビジネスアイデアから製品としてリリースされていく際の中心的なハブとなります。このセッションでは、CircleCI CEOのジム・ローズが、CircleCIのロードマップやなぜ日本が開発のイノベーション拠点として注目されているのかについて逐次通訳で説明します。それに続き、CircleCI カントリーマネージャー 森本とジャパンテクニカルリード 金から最新のアップデートなどについてお話します。

スピーカー

  • CircleCI合同会社 CEO
    • Jim Rose
  • CircleCI合同会社 カントリーマネージャー
    • 森本 健介
  • CircleCI合同会社 ジャパンテックリード
    • 金 洋国

(※敬称略)

レポート

ここ数年CI/CDがさまざまな企業で使われることが多くなってきた。本セッションでは「なぜCircleCIが日本に注力しているのか」「どのように開発現場を変えていくのか」といったことを紹介したい。

  • アジェンダ
    • CircleCIの紹介(森本)
    • CircleCIにとってなぜ日本が重要なのか(Jim)
    • これからのソフトウェア開発に不可欠なCDについて(金)

CircleCIの紹介

  • CircleCIのミッション
    • ビジネスのアイデアを、サービスとしてリリースするまでのプロセスを簡単に、短くする
    • 何か変更を加えた時からリリースするまでが早くなれば、マーケットのニーズを汲み取ってすばやくアクションを取ることができる
  • CircleCIとは
    • 世界最大規模のクラウドCI/CDサービス
    • よりよいコードをより早く簡単にリリーすることを可能に
    • 2011年設立、サンフランシスコ本社
    • 220人以上の社員、五大陸に拠点をもつ
    • SonyやLINEなど多数の顧客
    • コード変更からリリースまでのすべてを自動化
  • 巨大なスケール
    • ビルド数が1年で2.5倍
    • 月2,500万ビルド
    • 500,000以上のユーザー
    • 25,000以上の組織
  • なぜCI/CDが必要なのか
    • これまではビルドの大部分が独自コードのコンパイルなどだった
    • 現在は外部ライブラリのダウンロードなどが多くなってきた
      • 20%くらいが独自コード
    • CI/CDとDevOpsを使いこなすことで、コードをデプロイする頻度やスピード、変更時のトラブルなどを劇的に改善できる
    • 高コストなDeveloperの待ち時間を短縮できる
      • 1分あたりのDeveloperのコスト → $1.42
      • 1分あたりのCIのコスト → $0.006
      • → コストを1/237に
    • スピードとコントロールを両方実現
      • セキュリティを保ちながら、スピードとコントロールを保つ

CircleCIにとってなぜ日本が重要なのか

  • 日本は米国に次ぐ、世界で2番目に大きなマーケット
    • 今週、CircleCI 日本オフィスの1周年記念
  • 日本に進出した理由
    • Support + Community
      • 日本時間、日本語
      • 日本現地での対応
      • ユーザーフィードバック
      • ユーザーエンゲージメントとコミュニティミートアップ
    • Localization
      • ドキュメント
      • テクニカルQA
      • 製品情報
    • Hiring
      • ワールドクラスのエンジニア
      • 日本+グローバルエンジニア
  • 日本のコミュニティとマーケットをサポート
  • Japan to APAC
    • 多数のポジションを日本で採用中
    • グローバルプラットフォームを作るデベロッパーの採用
    • 日本とAPACを担当するメンバーの採用

これからのソフトウェア開発に不可欠なCDについて

  • CIについて
    • 開発者のコード変更に対して常に、自動で、テストしてくれる
    • →ソフトウェア品質の向上
      • CIがあることで共通化された環境で同じテストが実行できる
      • 信頼性、失敗すると通知が飛ぶのでテストの修正・改善する力が働く
  • CDについて
    • 開発者のコード変更に対して常に、自動で、本番環境(またはその他の環境に)にデプロイする
    • → 後述
  • 開発でのよくある失敗事例
    • テスト環境の問題
      • テスト環境で1週間テスト
      • 本番と構成が違っていてバグを見逃す(ミドルウェアのバージョン違いなど)
    • 手戻りの問題
      • 2ヵ月使用定義
      • 4ヵ月実装
      • リリース後大きな仕様の間違いが発覚
      • → その結果、手戻ってまた4ヵ月実装。。
  • なぜこのような問題が起こるのか?
    • テスト可能領域はとても小さい
    • ビジネス要求、仕様、外部サービス、トラフィック・負荷などはテストできない

重大な気付き。

結局リリースしてみないとわからない!!!

  • 本番環境でまとめてテスト
    • ビジネス要求や仕様なども全部テストできる
  • 本番環境でテストをするために重要なこと
    • 修正をすぐにリリースできる
      • 間違ったバージョンをリリースするなどヒューマンエラーがあってはいけない
    • 切り戻しが容易にできる
      • リリースを手動でやっていると時間がかかる
    • → 必ずCDが必要になる
    • リリースエンジニアリングの採用
      • 明確にデプロイとリリースを区別する
  • デプロイとリリースの違い
    • デプロイ
      • コードを本番環境に配置すること
    • リリース
      • 配置したコードでトラフィックを処理すること
  • ブルー/グリーンデプロイメント
    • 環境を2つ用意して、古い環境から新しい環境に切り替えてリリースする手法
      • 仮に新しいバージョンに問題があっても、古いバージョンに切り戻すだけで簡単にロールバックが完了する

  • カナリーデプロイメント
    • 複数のノードがある環境で、新しいバージョンを少し増やす
    • 問題があればそのノードを捨てる
    • OKなら古いノードをロールアウトさせていく

  • より安全な本番環境テストを実現するために
    • CD+リリースエンジニアリング=安全な本番環境テスト
    • 手動でリリースしていたら十分に活用しきれない
    • 自動化するCIツールが必ず必要になる

ここで冒頭のCDについて。

  • CDについて
    • 開発者のコード変更に対して常に、自動で、本番環境(またはその他の環境に)にデプロイする
    • 本番環境での効率的なテストが可能になる
      • リリースエンジニアリングを活用できる
      • フィードバックループが回るようになる
        • CDで頻繁にアップデートすると、ユーザーも新しい機能を使える
        • つまり新しいフィードバックが得られる
        • CI/CDなくして本当のフィードバックループは生まれない
  • これからの主戦場はCDに
    • CDを使いこなせないと生き残れない時代になる
    • CDができない部分もある
      • 人命にかかるようなソフトウェアはできない(1つのミスも許されない)
      • ビジネス的な理由、政治的な理由もあるかもしれない
      • とはいえ、本番環境にリリースしないと本質的な問題は見えないのではないか

CI/CDをより簡単にするCircleCI Orbsの紹介

CircleCIは設定をYAMLファイルに書くが、複数のプロジェクトで重複したりすることが課題だった。設定を再利用できるようになった。

6つの公式AWS Orbがある。

まとめ

What's new with CircleCI

特に「Usage-based pricing is coming」が大きく、これまでの料金体系はコンテナベースで、使っていない時間もコストがかかっていた。そこで従量課金のプランを用意することで、これまで以上に、効率よく使えるようになった。

最後に。

Go_SaaS 三種の神器プログラムをローンチしたので、興味ある方はぜひ。

最後に

クラスメソッドでもCircleCIを利用しているプロダクトがあります。セッションはCI/CDの基本的な説明から始まり、なぜそれが必要なのか、どのように開発環境が改善されるのかといった内容でした。テストの手戻りなどは開発者なら一度は経験したことのある苦い思い出ではないでしょうか。CI/CDを取り入れてハッピーな開発現場にしたいですね!