MatsushitaTweetDevOpsをさらに推し進めた「GitOps」という開発手法が、KubeCon+CloudNativeConが紹介された。KubeCon+CloudNativeConではKubeflowやIstioなどの多くのプロジェクトが紹介され、まるでKubernetesのエコシステム展覧会と言ってもいいほどだ。Richardson氏が提唱するGitOpsについて紹介したい。Committeeのチェアも務めている人物だ。Container」とあるように開発者が「コードを変更したら、コンテナーにそれを入れることを優先するのではなく、運用はプルリクエストで実行されるべき」というのがGitOpsの本質ということだろう。そこでこのセッションではデモを交えてIstioによるサービスメッシュを例に取り、カナリアリリース(試験的に少量のトラフィックを新しいイメージに流して、上手くいくかどうかを確認する)の運用をistioctlやkubectlという管理用のコマンドインタフェースを使わずに実施できることを紹介した。構成はバージョンコントロールすべきここでのポイントは、「KubernetesやIstioの運用に、コマンドラインを用いない」という部分だろう。全ての変更はGit上のコードとして履歴管理がなされるべきであるという力強い宣言だ。これは特に大規模な運用が必要となるエンタープライズにおいては非常に重要で「誰がいつ、何を変更したのか?」という部分が全てGit上のコードとして記録される。そのために何か不具合があった場合はただちに原因の追求が行えるし、何よりも復旧することが可能になる。そのためにはデベロッパーや運用担当者が、kubectlなどのコマンドラインツールを使わないことが重要なのだ。Istioをサービスメッシュとして使う場合にも、全ての構成情報がYAMLファイルとして利用されることから、Git上でソースコードとして管理することで履歴管理が可能になる。Richardson氏曰く「履歴が残らない変更は有害」そして開発から運用までのパイプラインを紹介する。ここでは上流がデベロッパー、下流が運用担当者という位置付けだ。デベロッパーがコードを変更すると自動的にコンテナーがビルドされ、コンテナーリポジトリーにUpload、それがステージングサーバーへの構成変更としてトリガーされ、運用担当者による構成情報変更のマージがGit上で承認されることで、本番環境のサーバーにプッシュされる。このようにKubernetesの環境が変更されるという流れだ。ここでは一度もkubectlは姿を現していない。強調されていたのはDeclarative(宣言的)に構成情報を位置付けて、その状態を常に保つようにKubernetesとIstioが動作するという部分だろう。「宣言的」という意味は「アプリケーションを稼働させる環境が必要とする状態を定義する」ことで、常にそれを維持しようとするように全てのソフトウェアが動くという意味だ。Kubernetesの特性をうまく利用しているとも言える。あるべき姿と現状との差を常に検知して維持しようとすることが要点ここからデモを使って紹介するフェーズとなった。Istio」というデモでは、ルーティングの設定をカナリアリリースに対して行う場合に、あるユーザー名から来たトラフィックに限り新しいサービスに振り分けるというルールをIstioで設定。それをGit上で変更し、Prometheusのモニター上で実際に確認するというものだ。ここでも、Git上でのコード変更から自動的にCIが起動されて本番環境までプッシュされて変更が有効になるまでのデモを行った。最後のデモは、Kubernetesのネームスペースをコマンドからマニュアルで削除し、それが自動的に復帰されるというもので、ここでもあるべき姿を常にシステムが維持しようとする機能を示したものとなった。Istioについては、以下の動画に全て記録されているので参照されたい。CodeまたRichardson氏に別途インタビューを行ったところ、「CI/CDがCNCFとしても重要なのは理解しているが、特別にひとつのプロジェクトとしてホストする予定はない」とのことだった。その理由として、商用ソフトウェアも含めてすでに多くのCI/CDツールがあること、多くのソフトウェアがある程度成熟しており、CNCFとしてサポートする必要を感じないから、というコメントをもらった。感触としてはCNCFのホストプロジェクトではなく、推奨されるツールとしてトレイルマップ上で紹介されることはあると感じられた。この著者の記事一覧フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。連載バックナンバークラウド第5回コマンドラインツールを用いずにCI/CDを行うGitOpsとは?2018/6/5DevOpsをさらに推し進めた「GitOps」という開発手法が、KubeCon+CloudNativeConが紹介された。続きを読むクラウドイベント第4回Kubernetesで機械学習を実現するKubeflowとは?2018/6/1KubeCon+CloudNativeConにおいて、Kubernetes上で機械学習を実現するKubeflowが紹介された。2日目には、Kubernetesの最新情報を始めとする多くのトピックが紹介された。ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。Europeでサービスメッシュの標準化を目指すSMIを発表。VeloCloudが選ばれる理由SD-WANとはなにか。Linuxエンジニア育成への思いF5とNGINXの組み合わせで、サービス公開をよりセキュアに。ITがお届けするポッドキャストです。