クラウドネイティブはDevOpsやSREなども含めた技術体系
――まずはこれまでのご経歴や現在の役割について簡単にお聞かせください。
手塚:2016年にインフラ系ベンチャー企業に就職しインフラエンジニアとしてキャリアをスタート、スリーシェイクには2018年に入社し顧客企業へのSRE立ち上げ支援などを行ってきました。現在はSRE総合支援やセキュリティサービスを展開しているSreake事業部の部長としてチーム全体を見ています。
青山:私も2016年からです。元々インフラエンジニアで、「OpenStack」といわれるIaaSプロダクトをプライベートクラウド向けに構築するなど、インフラ管理の自動化や効率化にずっと携わっています。現在はKubernetesやクラウドネイティブあたりの関連技術のアーキテクトが中心です。本業はサイバーエージェントですが、現在ではスリーシェイクの技術顧問として関わらせていただいています。
――一時期に比べ、クラウドネイティブは浸透してきていると思いますが、その背景やメリットについてあらためてお聞かせください。
青山:クラウドネイティブを新しい方法論と捉えている人もいますが、全く新しい概念ではありません。AWSやGCPが登場した時代、VMを管理するために「IaC」「イミュータブルインフラストラクチャ」「DevOps」などの単語が登場しましたが、当時も復元力、管理性の担保、可観測性、更新の自動化と言われていました。これらが体系化されて登場したのがクラウドネイティブです。
先程あげたような技術は主にインフラから派生した技術でしたが、クラウドネイティブはよりアプリケーションに着目しているのも特徴です。クラウドネイティブはよりアプリケーションエンジニアも交えて一緒に考えていくところが、それまでと異なるのです。
またクラウドネイティブを推進しているCloud Native Computing Foundation(CNCF)は「オープンソースでイノベーションを誰でも利用できるようにする」と定義しています。そのため、ベンダー中立な標準仕様など、みんなを巻き込みながら進めているところも大きな特徴です。
ですので、クラウドネイティブは全く新しい考えではなく、それまでの技術を体系化し、みんなを巻き込み、整理したものであると個人的には考えています。巻き込む範囲が広がり、納得感があったので浸透したのだと思います。
――スリーシェイクさんといえばSREの印象が強いのですが、クラウドネイティブに注力しているのはなぜでしょうか。
手塚:SREを実践するにあたってはクラウドネイティブ技術を活用することがファーストチョイスになると考えているからです。
SREは日本語にすると「サイト信頼性エンジニアリング」というように、信頼性をどう担保するかが重要となります。
それ以外にもSREの中にはSLO(サービス提供側が達成すべき目標)をベースとしてError Budgetを基にした業務ハンドリングを行うことやToilといわれる作業を撲滅するために自動化を推進することなどが述べられています。
クラウドネイティブの実装レベルの話でいうと、Kubernetesではコンテナが停止してもすぐ起動させるような回復力を持っていたり、可観測性を担保したりするために、各種監視ツールやアプリケーションパフォーマンス監視などを用いると思います。
単にそれだけでは実装上の一機能でしかありませんが、SREと組み合わせることによって回復性を高めることがSLOを高めるためのアプローチにつながりますし、適切に可観測性を確保していくことで、SLIs/SLOsを取得することにもつながります。
そういう意味では、SREはクラウドネイティブの要素(回復性・管理力・可観測性・堅牢な自動化など)に対しての「なぜ?」に答えてくれる存在、すなわち、クラウドネイティブに意味付けをする存在と言い換えられるのではないかと考えています。
青山:たしかに、いろんな特性を持つシステムを実現したり、それを実現する組織になることだったり、オープンに推進する姿勢だったりがクラウドネイティブで、そうした体系の中にはSREも含まれているのだと思います。