マイクロサービス
マイクロサービスに関連するセッションも数多くあり、開発者たちのマイクロサービスへの関心は益々高まっているように感じました。「コンテナ」「DevOps」「クラウド」などの幅広いテーマが取り上げられていましたが、ここではその一部を紹介したいと思います。
「コンテナ」関連のセッションでは、Google Cloud PlatformのRay Tsangさんが、Kubernetes(以下 k8s)やIstioといったコンテナ技術を利用してマイクロサービスを構築する方法について紹介してくれました。
k8sはコンテナのオーケストレーションツールとして人気が高く、ご存知の方も多いのではないかと思います。Istioはk8sと連携してサービスメッシュを構築する技術として現在注目を集めているツールです。Rayさんのセッションも非常に多くの参加者が聴講しており、注目度の高さが確認できました。
Istioはサイドカーとしてk8sのPodに挿入されるEnvoyプロキシを管理するPilotやポリシーを管理するMixerなどで構成されています。k8s、Istioを利用することで、トラフィック管理、サーキットブレーカー、モニタリング、セキュリティといったマイクロサービスに必要な機能を構築することができます。また、サービス間の通信ではMutual TLSによるセキュアな通信が可能となります。その他、IstioとGrafanaとを連携することで、サービスの稼働状況をモニタリングするためのダッシュボードを作成することもできます。セッションの中では、実際にk8sとIstioを使ったデモを実施しながら各機能について紹介されていました。
「DevOps」関連のセッションでは、Spring Cloud Pipelinesを用いて継続的デプロイメントを実現する方法について、Spring Cloud Pipelinesの開発者であるMarcin Grzejszczakさんから紹介がありました。
Spring Cloud Pipelinesはデプロイメント・パイプラインのテンプレートを提供するツールであり、現在のところConcourseと、Job DSL/Blue Oceanを用いたJenkinsをサポートしています。このセッションは、「deploy」「backward compatibility」「E2E test」などの継続的デプロイメントを実現する上で考慮されるべき各局面について、一般的に挙げられる課題と、それに対するSpring Cloud Pipelinesでの考え方・解決策、具体例を示したデモサンプルが紹介されていました。
セッション中のヒアリングによると、デプロイメント・パイプラインの整った環境で開発をしている参加者は少数だったようで、参加者はアプリケーション開発での継続的デプロイメントの必要性から再確認していた様子でした。