リーン・アジャイル型のソリューション開発によるSIモダナイゼーションへの道

リーン・アジャイル型のソリューション開発によるSIモダナイゼーションへの道 (2021年10月11日掲載)

これまで従量課金で低価格を実現する仮想デスクトップサービスのCloud Remote Desktopについて説明してきました。本サービスは、FAT PC並の低価格で仮想デスクトップを利用したいというユーザの要望にさらに新たな要望を取り込んで機能を強化してきました。コロナ禍において短期間で高速なサービス開発を実現することはクラウド提供事業者の一つの使命でもありました。

前々回のコラムでは、中小企業において起爆剤になると期待されたWindows 365 Businessは、AD非対応やオンプレミス接続機能の不足、また従量課金に対応しないことで機能的にも価格的にも課題があることを説明させていただきました。実際に採用を検討していた中小企業のお客様でも、Businessでは機能不足、Enterpriseでは総額が高額になるため、断念せざるを得ないとのお話しを頻繁に伺うようになりました。この点については、中小企業へのテレワークの浸透のために是非改善を期待したいところです。

f:id:sbc_shimizu_m:20211008153901p:plain
Windows 365 Businessの機能強化への期待

Windows 365の仕様面は電撃的に発表されました。しかし、資本力のあるメガクラウドベンダでさえも加速度的に変化していくニーズに最適なサービスを提供していくことの難しさがあるようです。 国内においても、コロナ禍でテレワークが進み、本格的なマルチクラウド時代が到来しました。仮想デスクトップのようなプラットフォームサービスにおいても、従来の個別要件に対してSIを前提にシステムを提供していたモデルから、クラウド基盤をベースにより多くのユーザに共通のマネージドサービスを提供する方式に市場が変化してきています。

そこで、今回はクラウド活用を前提としたサービス開発に焦点を当てたお話しをさせていただければと思います。

目次

仮想デスクトップエンジニアはクラウドによって救済されるのか

従来、特に、オンプレミスにおいてプラットフォームエンジニア、その中でも際立って仮想デスクトップ基盤を設計構築するエンジニアは大きな苦しみを抱えていました。

国内では、2012年頃からプラットフォーム仮想化の波が本格化し、デスクトップ仮想化も普及が進みました。特に国内では、金融、官公庁・自治体、IT系の大企業において端末に情報を残さないシンクライアント化が進み、数千台、数万台規模の仮想デスクトップ基盤が構築されるようになりました。

仮想デスクトップは、ユーザが業務を行うWindows PCを仮想化し、中央で一元的に実行するプラットフォームです。ログイン集中時や一部のヘビーユーザやWeb会議、Eラーニング等の動画コンテンツがCPU・メモリ・ネットワーク帯域を大量に消費します。これにより業務開始と終了時のログオン・ログオフによるプロファイルのIOストームがストレージ性能を逼迫します。

しかし、FAT PCとのコスト比較に加えて、基盤コストをユーザの理想とする予算内に抑える必要があります。潤沢にハードウェア資源がない中で、リスキーなオーバコミット率(例えば仮想デスクトップ1vCPUに対して、物理CPUはわずか0.2コア等)でピーク時のスローダウンやその結果のクレームに晒される日常でした。

製品知識面では、Active Directoryを中心したMicrosoft製品知識と、コントロールプレーンとして接続ブローカを担うCitrix Virtual Apps and DesktopやVMware Horizon Viewの設計・構築経験、さらにインターネット接続に関連するゲートウェイセキュリティやエンドポイントセキュリティ製品の知識も必要でした。

プラットフォームシステムの中でも仮想デスクトップは日常業務において利用されます。会社組織拡大によるユーザ数の増加やワークスタイル変革、また、コロナ禍におけるテレワーク率の増加やWeb会議による基盤負荷増で、仮想デスクトップ基盤増設が必要となります。そのため継続的に仮想デスクトップエンジニアが必要とされます。

すなわちエンジニアの苦しみとは、増大し続ける需要に対して、終わりなく繰り返されるプロジェクトに、絶対的な人員不足の中で参画し続けなければならない無間地獄に落ちるというものです。また、ユーザ企業から見れば、委託先のエンジニアの稼働状況によりプロジェクトが遅延し、または、そもそも開始できないという問題も起きていました。

この業界では度々、クラウドやSaaSの普及によりプラットフォームエンジニアが不要となると囁かれ続けてきました。実際、サーバやストレージ等のハードウェア機器のセットアップエンジニアの需要は減っており、仮想デスクトップエンジニアは、IaaS基盤をインフラストラクチャとして利用することで仮想化基盤レイヤーでのvSphereのマイナーなバージョン管理やHyper-Vの不具合、SANストレージごとの性能の特性や固有の仕様に悩まされることはなくなりました。しかし、今、現在も仮想デスクトップエンジニアは救済されていません。一部のエンジニア作業がサービスでカバーされることになりましたが、依然としてエンジニアリソースが膨大に要求されています。

セルフサービス化とコモディティ化の罠

多くの企業がSIから脱却し、エンジニアが設計構築するシステムを標準化し、コモディティ領域の自動化で短期間でのデプロイを実現したいと考えています。また、IaCとしてアセットの蓄積とカスタマイズするモダンなSIへのシフトやセルフサービスのコンソールを付加することでエンジニアの保有数に左右されないビジネスのスケールを模索しています。しかし、この開発活動自体がコモディティ化の罠に落ちているといえます。

スペックをカタログ化して、WindowsデスクトップをパブリッククラウドのIaaSからデプロイする、複雑な周辺ネットワークやセキュリティ要件はSIerが個別要件でSIを行う。この構造に留まっているサービスはエンジニアにとって価値が低いサービスと言え、本質的に従来型のSIから脱却できていません。多くの仮想デスクトップサービスはこのレベルに留まっているため、周辺の設計・構築にエンジニアを必要とし、利用ユーザから見ても利便性が高くありません。

f:id:sbc_shimizu_m:20211008153941p:plain
コモディティ領域のセルフサービス化と周辺ネットワークやセキュリティ設計

弊社で展開するCloud Remote Desktopでも、コアである仮想デスクトップについてはセルフサービス化を実現しています。周辺となるユーザ専用の空間となるVPCや必須のネットワークプロダクトに関してはデプロイを自動化することで、周辺を含めたセルフサービス化・自動化をおこなっています。

f:id:sbc_shimizu_m:20211008154017p:plain
Cloud Remote Desktopのセルフサービスと自動化

図の赤色の部分はオープンソースソフトウェア(OSS)のマルチクラウドインフラの自動化ソフトウェアであるTerraformを中心にOpenAPIで自動化されています。インスタンス内のOSレイヤーに対するオペレーションは、インスタンス内のOSレイヤーにコマンドを実行するための機能であるCloud AssistantからWindows上でPowerShellを対話式ログオンなしで実行することで実装しています。

青色の部分は管理者ポータル・利用者ポータルによってセルフサービス化されている領域となります。青色のセルフサービス領域は、カスタマーセグメント全体で十分に標準化されたオペレーションを、標準とオプションにメニュー化可能な領域となります。また、日本語環境に最適化された設定済みのマスタイメージから日本語仮想デスクトップ環境がライフサイクル全体を通して管理されます。

一方、赤色の領域は、完全な標準化が難しい領域で、ユーザごとに異なる、インターネット接続(NAT GatewayやUTMファイアウォール)、オンプレミス接続(VPN GatewayやVirtual Border Router 等)、ネットワークの領域となります。 また、赤色の領域は、カスタマーセグメントごと(企業規模、業界、クラウド化の進捗度 等)に要件が異なる領域です。

一方、黒色の領域はユーザ固有のADやデバイスの管理ポリシーがあります。Windows 365 Businessで課題となっているように、300人以下の中小企業がパブリックネットワーク接続で、ドメイン管理やデバイス管理をしない、月額固定料金での算出を希望するといった、画一的な仕様では対応がとれない領域です。

Windows 365 Businessの仕様と現実のIT環境がアンマッチになった理由は、市場分析でAWS対抗のために中小企業セグメントで本来必要な機能をそぎ落としたことや、技術的に容易な車輪の再発明のような既に他社が実現しているような単純なデプロイ部分に絞ってセルフサービスだけを実装したことにあります。結果、従量課金機能等も無くしてしまったため、価格面でもアンマッチになってしまいました。

国内企業のサービスにおいても失敗事例が多く、自動化、IaC、CI/CD、セルフサービス等の耳に心地よい言葉を並べるだけではいけません。ユーザシステムを市場全体で俯瞰し、セグメントごとに分解して必要な要件を分析する意志と能力を持ち、的確に自らやチームの開発リソースを投入しなければなりません。そのためにはユーザの声に耳を傾け、迷ったら仕様は市場に聞くことが重要です。幸いにも、多くのコミュニケーションツールやサイトが登場し、自社サービスや市場のサービスに対する評価や要望を容易に聞くことができます。弊社でも、コミュニケーションポータルとして、自社サービスに対する課題や操作や仕様に関する疑問点ユーザから直接フィードバックを受けることができ、特にサービスやソリューションの責任者が直接生の声を聞くことができるようにしています。

f:id:sbc_shimizu_m:20211008154045p:plain
コミュニケーションポータルによるエンジニアサポート

特定のセグメントで共通の属性を持つ多くのユーザに適合するセルフサービス化可能なサービス範囲を定め、その周辺に標準化・自動化されたオプションを構えることで対応可能な面積を拡大します。これによりエンジニアリソースを消費する個別SI領域を最小にしていくことができるはずです。エンジニアは反復される個別要件への対応から解放され、本質的に大きなビジネス貢献ができる開発に専念することが可能になります。

エンジニアを救済するのもまたエンジニアなのです。

リーン・アジャイル型の管理者ポータルの高速開発

プラットフォームシステムの構築や運用作業は、パブリッククラウドのコンソールの操作で実現可能であり、手順書作成やスクリプト化による効率化である程度は補えます。しかし、一時的な需要であればともかく、継続増大し、さらに変化する状況において、属人的な判断基準やヒューマンエラーによって、均一の品質を保ち続けることは困難です。ビジネス面においても、契約から購入、サービスの提供と課金請求までが短期間でストレスなく行える必要があり、マルチクラウド時代、またコロナ禍の影響もあり、その要求も高まっています。

セルフサービスポータルによる完全自動化は、エンジニアサービスの効率化の限界点である、概ね年間100社を超えるサービスの販売には不可欠な機能です。弊社ではリーン・アジャイル型開発の共通方針を持っています。

あらためて言葉の意味を確認しておくと、リーンとは、「無駄がない」の意味であり、最小のサービス試作品を短期間で開発し、ユーザ反応で市場ニーズを把握し、サービスを改良していくことです。アジャイルは「機敏な」の意味であり、短期間で開発するスコープを定め、小規模開発を繰り返す手法です。リーンとアジャイルの組みあわせで、ターゲット市場に適合した無駄のないサービスを短期間で開発する考え方となります。 概念は既に広く知られていますが、従来型サービスに対して周辺オプションや新技術・新機能を追加するような仕様変更を加えるセミオーダSI領域に特に適しています。プラットフォームSIはほとんどが大量生産品のコモディティを中心としながらも、個別要件に適合させるセミオーダSIです。

また、プラットフォームSIは職人アーキテクトによるプロフェッショナルサービスの性質もあり、インフラストラクチャに求められる費用対効果を根底の評価として持ちながらも、最後にサービス選定を勝ち取るものはユーザとの対話の中から培ったものです。机上での検討だけではそれを再現することができず、リーンによる仮説と実証が適しています。

マルチクラウド時代においては、資本力のあるプラットフォーマーの得意とする大量生産のプロダクト領域だけではなく、それに満足しない、課題を解決できていないユーザへのソリューション提供には、リーンで市場ニーズを確認しながらアジャイル開発の手法をとり、無駄のない短期間開発を行うことが必要になります。

ただし、リーンの意味を取り違えるとコモディティを市場ニーズと捉え、既に他社が量産化している領域を再開発することになり、注意が必要です。

仮想デスクトップにおいては、例えば、仮想デスクトップの作成は、指定されたユーザVPC内の指定のvSwitchに、仮想デスクトップのWindowsインスタンスを指定のマスタイメージから指定のスペックで、指定の課金形態で指定の台数デプロイします。さらに当該のインスタンスのみ操作可能な権限を保持する一般ユーザをユーザ契約のアカウント内に作成し、また関連するネットワーク設定やセキュリティ設定を実行します。

f:id:sbc_shimizu_m:20211008154119p:plain
管理者ポータルによる仮想デスクトップの新規作成

パブリッククラウドとしては、それぞれのクラウド基盤としてのプリミティブな処理をOpen APIとして実装していますが、高速に開発かつ高い品質のポータル機能を提供するためには、パブリッククラウドで提供されるAPIで提供される機能をフルに活用する必要があります。

管理者ポータルではそれらのプリミティブな処理を束ねたユーザにとって意味のある粒度のユースケースにおける機能を実現するAPIとして実装するバックエンドと、ユーザに機能を実行するUIを提供するフロントエンドに分けて実装されています。

f:id:sbc_shimizu_m:20211008154136p:plain
Cloud Remote Desktopがサービス開発に活用するプロダクト・言語

Cloud Remote Desktopポータル開発チームは、フロントエンドの実装にはReactを採用しています。Reactは、FacebookやInstagram等多くのサービスでも利用されているJavaScriptライプラリですが、リーン・アジャイル型開発に適した特徴を持っています。

◆React採用のメリット

  • Alibaba CloudのコンソールもReactで開発され、オープンソースで公開されている。
  • コンポーネントを再利用可能。バックエンドサーバの開発と平行でのUI開発に適しているため、開発期間全体の短縮が可能。

また、バックエンドであるAPIサーバの実装としてはGoogleによって開発されたGoを採用していますGoはシンプル、性能、安全性を併せ持つ言語で、C言語で伝統的に支持されたコンパイラ言語であることに加え、高速、メモリ安全性やガベージコレクションも備えています。国内でもメルカリやぐるなび等著名なサービスで利用されていることが知られています。

  • シンプルな構造化によりAPI開発を簡素化
  • 単一のバイナリを生成するため、デプロイを簡素化
  • Alibaba Cloudの充実したGo SDKを利用可能(Alibaba Cloud公式 CLIであるAliyunコマンドもGoで開発)

f:id:sbc_shimizu_m:20211008154156p:plain
リーン・アジャイル型開発を実践するCloud Remote Desktop管理者ポータル

管理者ポータルは、サービスのメイン機能のセルフサービス化を実現し、デリバリにおけるエンジニアリソース消費を最小化するためコアとなるコンポーネントです。

実際に仮想デスクトップを利用するユーザや営業、プリセールス、デリバリチーム、エンジニアが直接参加するWebミーティングやコミュニケーションポータルでの対話等で直接得られた課題や新たな要件を短期間で吸い上げます。シンプルな機能であれば1か月単位で新規機能を追加し、ユーザ承諾の上で、ベータテストを経て、改善し、リリースされるまで概ね3か月単位となります。

f:id:sbc_shimizu_m:20211008154211p:plain
実運用から求められたワンタッチのマスタイメージ作成機能

リーン・アジャイルの開発速度と新機能提供の速度を落とさない試みの一つとして、ECSのイメージ更新によるアップデートを経て、Dockerベースのアップデート機能を実装しています。もう一つは、ユーザの占有するVPC内にデプロイを行うことで、ポータル自身のセキュリティ対策を簡素化しています。閉域ネットワークの特性を活かすことはゼロトラストセキュリティの考え方には逆行していますが、インターネット上へのポータル公開は常に侵入やサービス妨害のリスクに晒され、特に新規仮想デスクトップの作成等の課金に直結する機能を提供するポータルの保護は重厚なセキュリティ対策が必要となります。VPC内であれば、パブリックネットワーク特有の攻撃への対策とその一連のプロセス、エンジニアリソースの投入を省略することが可能であり、初期のサービス開発を最速化させるために採用しています。

マルチクラウド時代のサービス開発に求められるもの

仮想デスクトップ市場では、パブリッククラウドにコントロールプレーンサービスを提供するCitrix CloudやHorizon Cloudが存在しています。彼らの宿命として、オンプレミス時代に提供してきた機能の大半を提供しなければなりません。長い歴史とマーケットをリードしてきた経験から培われた豊富な機能のリファレンスの集合としては、大変見るべきものがあります。

一方で、あるユーザが必要とする機能、実際に利用されているかは分からないが仕様として謳ってきた機能の和集合が、結果的にどのユーザからもほとんど利用しない機能の集合体となっている側面があります。 提供ベンダもパブリッククラウドに展開するエンジニアも、こなれていない機能のバグやセキュリティフィクスのためのメンテナンスアップデートから抜け出せません。こうしたコントロールプレーンにかかるライセンス費や人件費は、インフラストラクチャにかかるコストに匹敵してしまい、実に仮想デスクトップの価格を倍増させています。仮想デスクトップ市場は依然として成長する大きな市場ではありますが、後続のベンダがこの二大サービスに割って入ろうとする際に、そのサービス全体を模倣することは、ビジネスの観点はもちろん、有限であるエンジニアリソースの観点でも効率的と言えません。

今回はコロナ禍でニーズが中小企業にまで拡大した仮想デスクトップをテーマにご説明しました。マルチクラウド時代において、サービス化の対象となるプラットフォーム、事業のDXを支えるコミュニケーションやオートメーションの基盤システムは多岐にわたります。

大きな資本とマーケット支配力があれば、非効率な実装でもビジネスとして成立するのかも知れませんが、膨大な時間とエンジニアリソースの浪費となります。カスタマーセグメントと利用シーンを定め、コミュニケーションからユーザの要望を吸い上げて、無駄のない短期間で実装の開発を推進していく必要があります。

西澤 和正
ソフトバンク株式会社 法人事業統括
クラウドエンジニアリング本部
PaaSエンジニアリング統括部
サービス開発部 担当部長
西澤 和正
大手SIer現場での設計・構築経験を経て、エンタープライズや自治体向けにセキュアなプライベートクラウド基盤やワークプレース系ソリューションを提供してきた。SBクラウドでは、Alibaba Cloudを活用したセキュリティソリューションや低価格を実現する仮想デスクトップサービスの企画開発を通し、標準化・自動化への取り組みやリーンアジャイル型ソリューション開発の実践によりマルチクラウド時代のエンジニアリングサービスのモダン化に取り組んでいる。