DSOC Infrastructure Group の大澤です。最近ワイヤレスノイズキャンセリングイヤホン WF-1000XM3 を購入しました。音質はよく分からない(安い耳なので)ですが、つけ心地やノイズキャンセラーが最高です。
さて、7月に開催された CloudNative Days Tokyo 2019(CNDT)に登壇してきました。
クラウドネイティブとは何か
クラウドネイティブというワードは 2017年頃から使われるようになり、今年に入ってから急激に普及してきています。 クラウドネイティブの定義について Cloud Native Computing Foundation (CNCF) の CNCF Cloud Native Definition v1.0 を一部引用します。
クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミューダブルインフラストラクチャ、および宣言型APIがあります。
これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。
Cloud Native Computing Foundationは、オープンソースでベンダー中立プロジェクトのエコシステムを育成・維持して、このパラダイムの採用を促進したいと考えてます。 私たちは最先端のパターンを民主化し、これらのイノベーションを誰もが利用できるようにします。
クラウドの特性を最大限に活かして、アプリケーションの構築を高速化、運用に関わる業務を最小限にしていくことで、品質の高い、価値のあるプロダクトをユーザに提供し続けるのがクラウドネイティブの目的で、それを実現するためのアプローチの一部として Docker などのコンテナや、 Kubernetes、Istio、Microservices、Spinnaker があるのだと私なりに理解しました。
登壇した理由
このカンファレンスは会社から登壇依頼されたものではなく、個人として CfP(Call for Proposals)に応募した結果、採択されて登壇したものです。
私は自分の目指したい姿、目標があり、そのためのアプローチとして外部へのアウトプットを心がけるようにしています。このブログ以外にも自分の技術ブログにも発信していますし、GitHubに自作ツールなども公開していたりします。勉強会やカンファレンスへの登壇もアウトプットの手段として強く意識しており、今年の目標に CfP 応募を定めていました。
Google Cloud INSIDE Digital や合同勉強会で Spinnaker を採用した話をさせていただいており、Spinnaker に関するインプット・アウトプットも定期的に行っていました。
Spinnaker を使っている身として、クラウドネイティブに携わる参加者に何か提供できるものがあるのではないか、という想いからプロポーザルを提出した結果、補欠でしたが採択され登壇に至りました。
話したこと
発表資料は Speaker Deck に公開されています。
Spinnaker は普及してきたとはいえ、ドキュメントもまだまだ十分ではなく、使うまでにハードルが高い OSS だと思います。Spinnaker について知ってもらうことで、積極的に使ってもらいたいというのが今回のテーマです。前半は Spinnaker のコンセプトや用語の説明で、後半は AWSとGCP における Spinnaker を活用したデプロイパターンをいくつか紹介するといった構成になっています。不幸にも(?)話を聞きにきた人のほとんどが Spinnaker を利用していたり知っている人が多数を占めていたので、そういった方にとっては知っている内容が多かったと思います。反省点は多いですが、登壇を通じて Spinnaker について改めて調べる機会を得られました。
参加してみて
風邪でダウンしてしまったので Day2 のみの参加でしたが、各社のクラウドネイティブへの取り組みについて聞けたのは有意義でした。
クラウドネイティブはバズワードに思われてしまいがちですが上のように定義が公開されていますし目的も明確です。私たちのような、急激に成長しているサービスにおいて、その成長を支えるために開発品質とスピードの向上、そしてスケーラブルなインフラストラクチャは必要不可欠です。それを達成するために AWS、GCP などのクラウドを活用していますが、最大限に活かすためにクラウドネイティブにしていくことが必要だと思います。
しかし、ただ単にコンテナ化しましたとか Kubernetes にのせましたというだけでは本来の目的を達成できないため、クラウドネイティブではありません。今あるシステムをクラウドに沿ったアーキテクチャ、クラウドに沿った運用に変えていく必要があります。そのためには、まず自分たちの考えや意識を変えていく必要があると、基調講演で話されていました。
今回の参加を通してクラウドネイティブとは何か、私たちにとって良いシステムとは何か、について考える良い機会を得られてとても良かったです。