2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
リンクをコピー
記事をブックマーク
星野真知氏:「開発者と運用者の壁をぶち壊せ! InnerLoopとOuterLoopとは?」というところで、VMwareの星野から解説します。
(スライドを示して)さて、このCloud Operator Daysですが、(参加者は)インフラエンジニアの方々が非常に多いと思っています。
アプリとインフラエンジニアの関係は、昔と比べて非常に変わっていると思います。それこそクラウドがなかった10年前は、インフラエンジニア、アプリエンジニアという言葉が象徴するように、インフラのところに責任境界点を設けていました。
アプリの方々はシステムにおける機能要件に当たる部分を実装して、インフラの方々が例えばパフォーマンスであったり、可用性もしくはセキュリティ、特に昔はセキュリティといったらネットワークファイアウォールが中心だったので、そういった実装をするのが一般的だったと思っています。
ところが、時代はだいぶ変わってきてしまいました。(スライドを示して)すべてがすべてとは言いませんが、多くのお客さんはこうなってしまっていると思っています。
何が起きたのか。アプリの方々は、インフラの方々が設ける制約に、非常に苦労をし始めたわけです。どうにかより自由な空間はないものなのかと、インフラの方々に束縛を受けない世界、クラウドを求めてしまったわけです。
クラウドに行ったアプリの方々は、基本的にインフラの方々の制約を受けず、自由にアプリを作れるようになってきました。今、多くの現場で起きていることは、インフラの方々がいわゆる塩漬け環境、仮想マシンのガバナンスのみを見るようになってきてしまって、クラウドの開発においてはなにか制約などを設けることは基本的にできません。
それをやると、またアプリの方々に怒られてしまいます。そんなことが起きていることがすごく多いと思っています。
この関係がすごく悪いのかというと、そうじゃないと言う人もけっこう多いと思うのですが、1個大きな問題が出ています。
(スライドを示して)この絵は、Amazonさんが提供しているWordPressサーバーのベストプラクティス構成図です。アプリの方々、それからインフラの方々が設ける制約。それは何だったかというと、非機能要件におけるものが煩わしくてどんどんクラウドに行くわけですが、決して非機能要件から逃れるわけではありません。
これはAmazonさんが明確に言っています。彼らが提供するのはあくまでプリミティブ、原始的なもの、いわゆる絵にある一つひとつのオブジェクトまでであると言っています。そこからはユーザーたちが自由に作れると言っているのですが、それはつまり、クラウドに行く方々が自分で設計してやらなければいけないということです。
こういったところから、クラウドにおいても非機能要件が我々を阻み、その結果、アプリの方々が設計すると、どうしても環境がスケールしないという問題です。これは特にグローバルを先に、少しずつ日本などでも起きています。
(スライドを示して)我々VMwareはこれをどう考えているのかというと、やはりもともとあった、「アプリは機能要件、インフラは非機能要件」という関係に戻すべきだと思っています。
戻し方はどうするのかというと、インフラエンジニアをクラウドに連れていくことだと思っています。例えばコンテナのような技術を使って、ガバナンスが利かせやすいプラットフォームを作っていきます。非機能要件の責任を取っていきます。
アプリの方々は、走っているクラウドなどを意識せず、昨今多い非機能要件、特にセキュリティの責任をインフラの方々にオフロードしながら、どんどん開発に集中する環境を作っていくことが重要だと我々は思っています。
これを実現する上で、今コンテナを検討されている方がけっこう多いと思っています。(スライドを示して)この絵は、ハードウェアは抜いています。OSの下にハードウェアやファームウェアがあると思ってください。OSがあって、コンテナランタイム、いわゆるDockerやKubernetesがあって、その上にコンテナ、ベースイメージ、OSS(Open Source Software)、アプリという観点があります。
(スライドを示して)今までの我々インフラ・アプリエンジニアの感覚だと、アプリエンジニアとインフラエンジニアの責任境界点は、ここに引いちゃう方々が、けっこう多いと思っています。ここに引くと、例えばコンテナの中にもOSの要素が入っています。コンテナの中にも、アプリケーションとOSSのライブラリがあります。そこに脆弱性が出た場合、これは誰の責任なんでしょうね?
我々がいろいろお客さまと会話する中で、コンテナに行きたくないというお客さまの中には、この問題を指摘する方がけっこう出ています。
インフラエンジニアが本来責任を持つべきところに対して、責任が持てなくなってしまう。なので、コンテナをするのを躊躇しているお客さまがけっこう多いと思っています。
じゃあどこに線を引くべきだったのか、線をもうちょっと上に上げるべきだったのか、下に下げるべきだったのか。今我々は、その議論が間違っているとだんだん思い始めています。
(スライドを示して)こういった横線でアプリ・インフラエンジニアの責任を引くのではないやり方として今日紹介するのが、InnerLoopとOuterLoopという考え方です。
VMwareは、2022年1月に発表した「Tanzu Application Platform」という製品とともに、この考え方を出しています。
いわゆる開発者の方々が何が欲しいかというと、やはり自由です。そしてスピードです。InnerLoopと呼ばれているところは、基本的にガバナンスを利かせず、開発者に対してどんどんスピードを中心とした開発ができる環境を提供する。
InnerLoop。だんだん開発のイテレーションが早くなっていきます。ところが(その回転が)だんだん落ち着いてくると大きくなってきて、ゆっくりになってきて、例えばいよいよ本番環境にデプロイするとなった時。この大きくなった流れを、OuterLoopといっています。この大きな流れの時に初めて、インフラエンジニアの方々が非機能要件を入れていく、セキュリティなどを入れていく。
このように今後は新しくループをもとに責任境界を引いていくのが、いいのではないかというのが我々の考え方です。
イメージが湧かないと思う方に(向けて)、もう少し具体的なイメージをお見せします。
(スライドを示して)この絵は、一つひとつの箱が別のKubernetesクラスタだと思ってください。1個のクラスタではないです。なので今は4つあります。ネットワーク分断というところから、InnerLoopとOuterLoopに分けています。
開発者の立場になってみましょう。開発者の方々がまず何が欲しいかというと、一番左のノーガバナンスです。基本的には自由にデプロイできる、速さ優先、壊れても問題ないところにどんどんアプリを開発していきます。
この作業がある程度落ち着いてきてループが大きくなってきた時、ソースコードのコミットをしていきます。ここで重要になってくるのは、InnerLoopの門番の役割をしているビルドクラスタです。
このビルドクラスタは、受け取ったソースコードをもとに、標準コンテナを作ってくる、脆弱性検査を作ってくる、Kubernetesなのでデプロイ用のYAMLファイルを作っていく。こういったものを作ることやっていきます。
開発者はここで終わりです。彼らが認識するのは、あくまで自分の開発クラスタとビルドクラスタです。ネットワークが分断された、アクセスできない先にあるのが、いわゆるインフラの方々が守るOuterLoopの世界です。この世界では、InnerLoopから生まれたYAMLファイルやコンテナを受け取って自動的にデプロイします。
例えばデータがAmazonのRDSなどにある場合には、それと連携する仕組みであったり、もしくはセキュリティエージェントを入れたり、セキュリティを常にチェックする仕組みを入れていきます。ステージングクラスタ、プロダクションクラスタと分けていますが、基本的にやることは一緒です。こうすることによって、インフラの方々がセキュリティを強化する空間を作っていくことになってきます。
今までの「アプリとOSの間のどこに線を引こうという」考え方が、だいぶ変わっていて、Kubernetesはクラスタが非常に簡単に複製がしやすいものという特徴を利用して、このように新しい境界線を引いていく考え方がもとになっています。
そのため、例えば(スライドの)一番左の開発クラスタは、安価なノーサポートの非商用のKubernetesを使ってやってもいいし、右に行ってガバナンスが強くなってくるほど、商用クラスタや、いわゆる商用セキュリティ製品を入れていきます。
多くの方々が、1つのKubernetesクラスタに開発も本番も運用もいろいろ入れて、だんだんしがらみが増えてきて悩んでいると思っていますが、そういった悩みを解決する、1つの解答にもなっていると思っています。
(次回に続く)
関連タグ:
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
職場であえて「不機嫌」を出したほうがいいタイプ NOと言えない人のための人間関係をラクにするヒント
2024.12.12
今までとこれからで、エンジニアに求められる「スキル」の違い AI時代のエンジニアの未来と生存戦略のカギとは
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
PR | 2024.11.22
「闇雲なAI導入」から脱却せよ Zoom・パーソル・THE GUILD幹部が語る、従業員と顧客体験を高めるAI戦略の要諦
2024.12.11
大企業への転職前に感じた、「なんか違うかも」の違和感の正体 「親が喜ぶ」「モテそう」ではない、自分の判断基準を持つカギ