DevOpsの前提とマイクロサービス #agileto2015
Agile Tour Osaka 2015に参加しました。今回のテーマはDevOpsとパタンランゲージ。どちらも示唆に富む内容でした。
まずは、アジャイル王子と言われた牛尾さんの講演DevOpsの感想をまとめます(つぶやきのまとめ、中埜さんの記事)。牛尾さんは現在、USのマイクロソフトでエバンジェリストをされています。お話の内容はエバンジェリストらしくきれいなストーリにまとめられつつ、刺激的でした。
DevOpsとは
アジャイル開発にはマニュフェストがあったが、DevOpsの定義は存在せず、バズワードであるとのこと。 DevOpsが普及するきっかけになった1日10回のデプロイが実現可能かどうかで判断すると良いとのこと(必ずしも実施は必要でなく、できる能力があるかということ)。
DevOpsを一言で言えば「アジャイル開発を運用に広げる」ということ。シンプルでわかり易い定義です。(フェニックスプロジェクトの本「The DevOps 逆転だ!」を参考に示されていました)
DevOpsに必要なもの
アジャイル開発の繰り返しによって短い期間で価値が提供できる様になりました。しかし、そのままサービスを開始できないので、品質保証(QA)がテスト自動化の形で繰り返しに取り込まれました。
品質が良くなっても、インフラの構築ができないとサービスできないので、Infrastructure as Codeが繰り返しに取り入れられました。パソコンのOSを再インストールすると調子が良くなる様に、 クラウド技術によってimmutableな環境が提供できる様になりました。
でもサービスをドンドン提供するにはそれだけでは不十分で、監視を含めた運用技術も必要です。ブルー・グリーン(新旧の切り替え)、カナリアリング(一部分からの段階的導入)、フィーチャーフラグ(昨日の容易な停止)といった技術があります。
さらにDevOpsに必要なのは
ではツールなどを導入して、テスト自動化、Infrastructure as Code、運用監視、ができれば良いかというと、それだけでは不十分です。
その一つがルールです。サービス開始に管理職や担当部門の許可が必要で1週間もかかるなら1日10回でプロイできません。技術だけでなくルールの変更も必要です。
また、楽天さんでは50時間以上かかるテストをJenkinsで並列にテストして2時間で実行しているそうです。一方、クックパッドさんは単体テストを重視せず、そのかわりに8秒でロールバックできるようにしているとのこと。
これはお金を扱うかどうかというビジネスの違いです。両者に共通するのは、Lean Analyticsに書かれている様に「戦略は仮説に過ぎない」という考え方です。
マイクロサービス
講演の中で一番インパクトがあったのは、「マイクロサービス」の説明です。1日10回のデプロイをするには必要な技術であるとのこと。
マイクロサービスの説明を読むと「自動化が必須である」とされていて、マイクロサービスのためのDevOpsのように考えていました。しかし、DevOpsのためのマイクロサービスと考えると、その価値がよくわかります。
マイクロサービスなら、小さな単位で開発し、小さな単位でテストし、小さな単位でデプロイできるからです。DevOpsを容易にする方法の一つとして、積極的にマイクロサービス化を考えるべきでしょう。
おわりに
エバンジェリストとは宣教師のことで、どうしても一方的な話になると思います。しかし、ソフトウェア業界のエバンジェリストの方たちは牛尾さんのように、会社を背負いつつも業界の未来を信じて、そこへの道を示されているのだと思いました。
ソフトウェア業界にはよくわからない言葉や技術がたくさんあって、時には踊らされ、時には混乱させられます。その中で道を示していただけると、技術が整理され、とてもわかり易くなります。
今回のお話でも、多くの示唆と刺激をいただきました。ありがとうございました。
また、今回も開催をしていただいた細谷さんにも感謝しています。そして、スポンサーのテクノロジックアートさん。控えめな宣伝で今回も楽しめました。ありがとうございました。
« [#プロセスプログラミング] 探索アルゴリズムとソフトウェア開発 | トップページ | 美しさは変化の中にある - パタンランゲージ - #agileto2015 »
「私のアジャイル」カテゴリの記事
- One fact in one placeとチケット駆動開発 - Software Processes are Software, Too -(2021.12.21)
- マルチスレッド処理と進捗管理・配員・作業分割/割り当て- Software Processes are Software, Too -(2021.12.20)
- カプセル化と組織パターン - Software Processes are Software, Too -(2021.12.20)
- Greedy algorithmと2割8割の法則 - Software Processes are Software, Too -(2021.12.12)
- 「任せて、任せず」「魚を与えるのではなく"釣り"を教えよ」(2021.08.16)
この記事へのコメントは終了しました。
コメント