Commonsから、SpinnakerのDeepDiveセッションを紹介。IT業界においては、アプリケーション開発から本番環境への実装のスピードアップはDevOpsやアジャイル開発などと並んで大きな関心であることは間違いない。クラウドネイティブなシステムを目指すのであればインフラストラクチャーのコード化、そしてCI/CDの自動化は避けて通れない道だろう。Commonsは、新型コロナウィルスの影響を受けてすべてネット上で実施されるイベントに移行した。Diveセッションを紹介する。こちらのセッションは、Armoryという2016年に創業されたベンチャー企業のエンジニア2名によって行われたものだ。Armoryは、Spinnakerに特化したソフトウェアとサービスを提供する企業だ。セッションの前半はSpinnakerの概要、そして後半はSpinnakerの実装方法、デモによるSpinnakerの機能の紹介が行われた。Faus氏の「フィールドCTO」という肩書は、顧客に対面するエンジニアのトップといったところだろう。Armoryのエンジニア2名が担当まずはFaus氏がSpinnakerの概要を紹介した。最初にSpinnakerはNetflixで開発され、その後Googleが協力してオープンソースとして公開、現在では多くのコントリビューターを得て開発が加速しているという経緯を説明した。今でもコードの大部分はNetflixとGoogleが貢献しているが、ここ数年はNetflixとGoogle以外のコントリビューターも増えたということで、コミュニティも確実に拡大しているという。プラットフォームに依存しないということに重点を置いているとして、オンプレミスでも3大パブリッククラウドベンダーでも実装できるということを強調した。Cloudなどからも貢献があるというのは大きな優位点だろう。2020年のトピックとして挙げたのが次のスライドだ。Deliveryというインフラストラクチャーを宣言的に定義することで論理的な実装要件と現実のインフラを紐付ける新しいイニシャティブの中で開発されているKeelなどが紹介された。KeelについてはNetflixの以下のプログで解説されているように、デベロッパーはアプリケーションが必要とする論理的なリソースを定義し、それを具体的なインスタンス(Netflixの場合はAWS)に置き換えて実装するというものだ。NetflixMicrosoftは2019年に開催されたIgniteのセッションで、分散型アプリケーションのランタイム、Daprを公開して、「アプリケーションデベロッパーがKubernetesのようなインフラストラクチャーを理解して利用するのではなく、アプリケーションオペレーターというデベロッパーとオペレーターの中間に位置する新しいカテゴリーのエンジニアを置くことで、アプリとインフラを紐付ける方法」を提案した。Deliveryも、アプリケーションデベロッパーがアプリケーションのインフラストラクチャー上の実装を具体的に記述しなくてもSpinnakerがプラットフォームに合わせた最適値を選択してくれるという仕組みであると理解すると、その狙いはDaprとかなり似通っているように見える。IT:分散型アプリの開発と運用を分離するOAMとDapr、そしてKubernetes上の実装であるRudrとは?またArmoryは、インフラストラクチャーの構成管理を行うAnsibleとCDを行うSpinnakerの位置付けについてもブログで詳細に解説を行っている。Ansibleこのブログ記事からもわかるように、開発~テスト~本番環境まで段階的にコードが実装されていくフローの中でAnsibleはインフラストラクチャーの構成管理、Spinnakerはアプリケーションの実装の自動化というように、棲み分けが行えると解説している。Deliveryを指向するNetflixの狙いは最終的に実装されるアプリケーションの実装方法をパイプラインとして手続き的に記述するより、アプリケーションが必要とするリソースを宣言的に記述することで抽象化しようとすることだと言えるだろう。Spinnakerの実装の解説セッションの後半は、実際にSpinnaker自体の実装方法の解説、そして実際にどのようにアプリケーションがパイプラインに従って実装されるのか?をデモを通して解説した。実装にはSpinnakerのOperatorを利用することを推奨している一方で、公式の実装方法であるHalyardというツールを使う場合の欠点を指摘している点は興味深い。Frameworkを使ったSpinnakerの実装ここではKubernetes上にSpinnakerを実装するためにKubectl、OC(OpenShiftのコマンドラインツール)、Helm、Kubernetesの構成ファイルのテンプレートツールKustomizeを使うべきであるというのがArmoryの主張だ。公式のDeployツールであるHalyardの解説ここでは「Halコマンドを覚えなければいけないこと」「Halyard専用のマシンが必要なこと」などが欠点として指摘されている。Helmチャートを使ったSpinnakerの実装ここでも「Halコマンドが必要なこと」「ConfigファイルとHelmチャートが必要なこと」が挙げられている。この方法でも新しいコマンドライン、複数のファイルにまたがる構成情報などが欠点として解説された。Armoryが開発するOperatorでは、シンプルな構成情報、既存のCLIを使うことなどが差別化のポイントとして紹介された。Operatorの解説ArmoryはコントリビューターとしてSpinnakerの開発に関わっているが、自社が開発したOperatorをしっかりと宣伝するのは忘れていない。HatがリードするOperatorのためのリポジトリーOperatorhub.ioにはまだ登録されていないようだ。「将来計画として予定されている」と解説していたのは、よく質問される項目だったからと言えるだろう。GitHubがオープンソースソフトウェアのリポジトリーなら、Operatorhub.ioはクラウドネイティブなシステム向けのソフトウェア運用のためのリポジトリーとしてスタンダードを目指している。Hatにとっては良いニュースと言える。Operatorへの移行についても、Halyardのコンフィグファイルからyamlファイルへの移行が楽であることを解説することも忘れずに行ったのは、セッションを視聴していたエンジニアに向けての良いメッセージになったのではないだろうか。Halyardからの移行方法も説明デモやハッカソンの紹介これ以降はデモとしてSpinnakerのWebUIを使って説明を行った。SpinnakerのWebUIから即座に見られるという点もアピールしていたポイントだ。SpringBootのログを表示またパイプラインについてもUIから設定できることを解説し、上流のCIツールであるJenkinsやConcourseなどと連携することで、ビルド~テスト~各ステージへの実装を自動化できることを紹介してセッションを終えた。Daysというハッカソンが行われることも紹介された。#communityHackNetflixのCI/CDを体験するというのは無理かもしれないが、そのエッセンスは感じ取れたのではないだろうか。日本では開発と運用が分離されており、組織の改革なしにDevOpsやCI/CDは難しいのかもしれない。少なくとも先進的に日々それを行っているユーザーの生の声を聞ける良いチャンスである。英語にめげずに参加されることをお勧めしたい。Halyard前の記事Rustで書かれたシステムのトレーシングを実装するtracing次の記事GoogleがIstioを新組織に寄贈。この著者の記事一覧フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。Gatheringで語られたOpenShiftに最適なCI/CDとは2021/3/2レッドハット株式会社のクラウドソリューションアーキテクト、北山晋吾氏によるCI/CDのセッションを紹介。クリエイター1000人祭り」レポート2021/2/92020年12月にオンラインで開催された「3年後の未来を描け!悩み爆発クリエイター1000人祭り」を紹介します。続きを読むITインフライベントビルドからリリースまでを抽象化するWaypointにディープダイブ2021/2/4HashiCorpがリリースしたWaypointの内部構造など詳細について解説されたセッションを紹介する。Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。ITがお届けするポッドキャストです。