CodeZine(コードジン)

特集ページ一覧

システムの信頼性を高める、クラウドネイティブ実践のコツとは? 青山真也氏×スリーシェイクが語る「これまで」と「これから」

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2022/06/03 12:00

 「クラウドネイティブ」という言葉は浸透したものの、新しい潮流の代名詞のような、アプローチやスタンスのようでもあり、どこかつかみ所がない。より高いレベルで実践していくにはどのような視点が必要なのか、SREやインフラに強い専門家にお伺いした。語ってくれるのはSREのプロフェッショナル集団であるスリーシェイクの手塚卓也氏と、同社の技術顧問でもあり、サイバーエージェントでKubernetesやクラウドネイティブ関連のアーキテクトをしている青山真也氏。

手塚さん

株式会社スリーシェイク Sreake事業部 部長 手塚卓也氏

クラウドネイティブは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も含まれているのだと思います。

青山さん

株式会社スリーシェイク 技術顧問 青山真也氏

陥りがちな罠を避け、クラウドネイティブを実践していくには

――クラウドネイティブを実践している人は増えてきました。しかし「まだ満足できない。もう少しレベルアップしたい」あるいは「自分たちがやっていることが正しいのか自信が持てない」人も多いと思います。お二人は現場が抱えがちな課題や罠をよくご存じだと思うので、技術と組織の両面からアドバイスをいただければ。

青山:組織面の課題だと、よく「○○技術を使えば、○○ができますか」と質問されることがあります。興味を持つこと自体は良いのですが、それが本当に自社で解決すべき課題かどうかも意識する必要があると思います。無視できる程度の些細な課題であれば、大きな技術スタックは必要ない場合もあります。

手塚:「技術のオーバーキル」ですね。エンジニアだからこそ難しい技術に挑戦したい、その気持ちも理解できるのですが組織にあった決断が重要です。

青山:技術面でもこれと関連して、「クラウドネイティブを実践して、サービスメッシュも入れて、アプリケーションの更新頻度も高まり、管理性向上を実現しました」と、そこまではいいのですが、その人たちのKubernetesが管理できていなかったりすることもあります。アプリケーションエンジニアに「頻繁に更新しましょう」と言いつつ、インフラ側の更新が疎かになっているなど……。なのでKubernetesの担当やSREエンジニアは、Kubernetesやエコシステムを頻繁に更新できるような体制を作っていけるようにすることが大事かと思います。

手塚:目的と手段を取り違えてしまうことはありがちな課題です。一方で、経験則ですがレガシーな組織や環境がクラウドネイティブにシフトするためには、あえて手段ファーストで進むのは有効だと思っています。

青山:たしかに、Kubernetesを利用することで、ヘルスチェック・プロセス停止処理・リソース割当などのアプリケーション実行のベストプラクティスを意識せざるを得なくなり、結果的に大きな改善につながるケースもありますね。

手塚:はい、こういったケースでは技術的側面もそうですが、文化的側面を変えないといけないため、目的思考が強すぎると前に進まないことがよくあります。

 技術面では、クラウドネイティブを実現するにはさまざまなことを検討・実装する必要がある一方で、本当にクラウドネイティブを実現したいならマネージドサービスを活用していくのも大事かと思います。Kubernetesを導入し、監視システムから全部作るとなると、技術的には楽しいのですが運用面を考慮すると、とてもしんどいです。クラウドのマネージドサービスは80点くらいを満たせる基盤を最初から利用することができるため積極的に検討すべきではないかと考えます。

進化が速いクラウド技術にキャッチアップしていくコツ

――クラウドネイティブの実践には、組織やそれを構成するエンジニアの動き方も大事になるかと思います。どのような方針で活動していけばいいでしょうか。

手塚:組織も人もシステムも全て、変化するという前提が重要です。例えばKubernetesやIstioなどは数か月に一度更新されています。1年も経つと、もはや古いです。こうした速いサイクルに対応できる組織や人でないと難しいと思います。

青山:私が見ている範囲ですけど、クラウドネイティブで成功している組織は変化に強いと思います。例えばOSSや技術動向などもきちんと追っています。「追っている」と言っても、ただウォッチしているだけではなく、継続的に更新し、新機能が追加されれば活用しています。新しい解決策が出たら、既存のものを捨てて新しいほうを選択することも多いです。

――そうしたスタンスは組織全体で作っていくことが大事かと思うのですが、役立つプラクティスや参考になるものはありますか?

青山:順不同ですが、組織が勉強会、Meetup、カンファレンスなどへの参加を許可したり、海外カンファレンスに送り出したり、業務でOSSへのコントリビューションを許可したりすることです。その他にもチーム内で技術のキャッチアップや勉強会、クラウドベンダーを招いて紹介してもらうなど、インプットや交流などを継続できるといいですね。

 これらは仕事ではなく個人のスキルアップと見なされ、「業務外にやって」と言われたりすることも多いですが、Googleの「20%ルール」の例もあるように、回り回って会社にもいい結果をもたらすので、そうした余地は大事かと思います。

手塚:実際に、スリーシェイクもそうした余地を大事にしています。エンジニアが楽しめる余地がないと、面白くないというか。その面白さが技術の向上につながると思うので、意識していかないといけないと思います。

 あとは、経験の共有は重要だと考えています。スリーシェイクも社内で週2回、プロジェクトで新しく経験したことをLTで共有してもらっています。さまざまなプロジェクトでの経験知を共有し、新たな知見・自身のプロジェクトに還元する機会になるのはとても有益だと思います。

青山:個人で社外の人と交流を広げるのであれば、イベントでのLT登壇がおすすめです。内容についてのフィードバックや質問が来ますから。もちろん、ただ参加して誰かに話しかけてもいいのですが、登壇していたほうが共通の話題に困りません。LTなら内容が緩くてもいいですし、みんなと共有したいというスタンスで参加すると良いと思います。

サービスメッシュ、AIOps、NoOps……期待が高まるクラウドネイティブの未来

――クラウドネイティブに関連して、お二人が最近着目しているトピックなどはありますか?

青山:eBPFを活用したサービスメッシュですね。Istioなどの本番導入事例もよく目にするようになっています。管理性や可観測性の向上に期待できますし、eBPFによってこれからもっと発展していきそうです。

手塚:サービスメッシュだと、スリーシェイクではIstio 1.0から取り組み始めています。1.1で金融業界の本番ワークロードに導入するなど、早い段階から経験を積んでいるのですが、最初は情報がなくて大変でした。その他だと、最近はNoOpsやZeroOpsとか聞きますね。専門分野ではないのですが、オペレーションも含めて全て自動化する世界です。

青山:あとは機械学習の適用もありそうですね。AIOpsとか。メトリクスからトレンドを見てオートスケールするとか、障害時に根本原因をAIで検知したり、自動回復したり。本番導入事例を見ることができるのは何年後になりますかね

――この記事を読んだ読者がクラウドネイティブを実践していくにあたり、何かメッセージをいただけますでしょうか。

青山:繰り返しになりますが、オープンなイノベーションをみんなで進めていくことが大切です。コントリビューションはコードやソフトウェアを書くだけではなく、情報や事例の共有もコントリビューションになります。各社や各個人が新しい技術に目を向けて、メリット・デメリットを考えてみんなと共有していくことも重要です。

手塚:そうですね。アウトプットを絶えず続けていくことですね。スリーシェイクはそうした取り組みに積極的です。これからも情報発信を続けていきますので、ぜひ参考にしていただければと思います。

SRE総合支援サービス「Sreake(スリーク)」

 「Sreake」は、SRE(Site Reliability Engineering)による設計及び構築支援から人材育成まで、クライアント組織に深く入り込んだコンサルテーションを提供しています。AWS/GCPなどのマルチクラウドの導入や、KubernetesやIstioを始めとしたクラウドネイティブに特化した技術に強みを持っております。金融・医療・動画配信・AI・ゲームといったさまざまな業界業種・領域での実績から、最適な課題設定と解決策を提示し、最新技術で、競争力のあるインフラ環境を構築、また維持できるチーム作りをご支援します。

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 加山 恵美(カヤマ エミ)

    フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレータ...

  • 篠部 雅貴(シノベ マサタカ)

     フリーカメラマン 1975年生まれ。  学生時代、大学を休学しオーストラリアをバイクで放浪。旅の途中で撮影の面白さに惹かれ写真の道へ。  卒業後、都内の商業スタジオにカメラマンとして14年間勤務。2014年に独立し、シノベ写真事務所を設立。雑誌・広告・WEBなど、ポートレートをメインに、料理や...

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5