モダンなソフトウェア開発の課題【後編】
マイクロサービスの複雑性を解決する方法
マイクロサービスはシステムの複雑性を増大させる。これを解決するにはどうすればいいのか。
前編「モダンなソフトウェア開発のための開発チーム運営方法」では、開発チームを運営する勘所を紹介した。後編ではマイクロサービスの複雑性の解決方法と効果的なテスト方法を解説する。
PagerDutyのエンジニアリング担当上級ディレクターを務めるアラップ・チャクラバーティ氏は、「マイクロサービスはこれまでよりもずっと、顧客エクスペリエンスにフォーカスできるようになる」と語る。
ただしチャクラバーティ氏の経験では、マイクロサービスの利用は爆発的な複雑性と、それに伴うあらゆる課題をもたらすこともある。
Bloombergは一部のモノリシックアプリケーションをコンテナ化したマイクロサービスに分割した。だがこのアーキテクチャは独自の課題をもたらした。特に、何が起きているのかを開発者が完全に把握するのが難しくなった。
Bloombergの開発エクスペリエンスチーム上級エンジニア、ピーター・ウェインライト氏によると、分散トレースは、サービスの依存関係を把握するのに役立つ。どのアップストリームサービスがダウンストリームサービスに依存しているかを把握できる。
「その代表例が証券計算サービスだ。証券の世界を中心とした計算は、多数の場所で行われる。そうした計算のためのリクエストをどこにルーティングすべきか判断するのは簡単ではない。われわれはリクエストのための『ブラックボックス』ルーターとなる一種のスマートプロキシを利用する」。ウェインライト氏はそう説明する。
「サービスは、誰が要求しているのかを知らなくてもリクエストされたデータを提供する。残念ながら、性能問題があるときにこれが障壁となる。分散トレースは、かつてモノリシックがエンジニアに暗黙のうちに与えていた『自分が誰を呼び出しているのか』『誰が自分を呼び出しているのか』の可視性を復元する」
エンジニアが確実に自分のアプリケーションに集中できるよう、Bloombergは「Kubernetes」「Redis」「Kafka」「Chef」といったOSS(オープンソースソフトウェア)を使って拡張可能なプラットフォームを構築した。ウェインライト氏によると、これで開発者は自分たちのアプリケーションの重量化や軽量化のために、ターンキーインフラを利用できるようになった。
モダンなソフトウェア開発におけるテスト
バグを減らすことに関しては、オープンソースコードのテスト方法から学べることが多数ある。
SUSEのCTO(最高技術責任者)、ジェラルド・ファイファー氏は「『GCC』(GNU Compiler Collection)のような成功したOSSは、パッチを提出する前のテストを何十年も義務付けてきた」と話す。
「LibreOffice」などは、「Gerrit」などのツールを使って変更を追跡して「Jenkins」などの開発&テスト自動化ツールと緊密に連携させている。
「統合テストの効力を長期的に保つためには、それを真剣に受け止める必要がある。それを飛ばしたりリグレッション(訳注:機能・性能が低下すること)を無視したりすることがあってはならない」とファイファー氏は言う。
集中的な自動化は、ポリシーの徹底とコードの品質の保証が成功の要因だと同氏は考える。「自分のワークフローがコードの検証と承認を伴うのであれば、検証プロセスが始まる前から自動化されたテストを行うアプローチが望ましい」
ファイファー氏によると、LibreOfficeやGCCには品質を重視して成功を収めた他のプロジェクトと共通する重要な特性がある。「バグが修正されるたびに、リグレッションテストスイートに新しいテストが加わる。それによって古い問題が再び忍び込む事態を防止できるだけでなく、新しい問題が入り込む事態も防止できる。同じことは新機能にも当てはまる」
Bloombergのサービスメッシュアーキテクチャのテスト方法について、ウェインライト氏はこう形容する。「変更を固定されたスケジュールにまとめるのではなく、テストを向上させれば変更のペースを速めることができる。小さな変更であれば失敗が少なくなり、対策もシンプルになる」
コードの品質は欠陥率やエラー予算などで測定されることもある。ウェインライト氏の考えでは、テストを簡単にすることの真のメリットは精神状態にある。「自分たちのツールに自信を持っているチームの方が短期間で進歩する。つまり、顧客に価値を提供する速度を速めることができる」
ただしPagerDutyのチャクラバーティ氏が指摘する通り、ここ数年で最大の変化は性能に関して不完全なものが顧客に容認されなくなったことにある。「エンジニアには取り組むべき『100ミリ秒ルール』があると考える人が多い。『後で』という反応はもはや受け入れられなくなった」
チャクラバーティ氏によると、Webスケールアプリケーションを構築するというアイデアは、コロナ禍の中ではごく当然のことと受け止められている。PagerDutyの統計によれば、新しいコードとトラフィック量の増大はインシデントの増加につながっており、業界によっては11倍以上に増えている。
「われわれは顧客エクスペリエンスに影響を与えずに修正することをもっとうまくできるようにならなければならない。自動修正はまだ初期の段階だが、われわれが技術に委ねるコントロールは増え始めている。機械学習がさらに進歩すれば、過去のイベントに基づく自己修復を一部のシステムに教えられるようになるだろう。それがたとえめったに起きない状況だったとしても」(チャクラバーティ氏)
Copyright © ITmedia, Inc. All Rights Reserved.
Computer Weekly日本語版
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
2
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
3
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
4
情シスの約8割が転職や退職を意識 調査で分かった“辞めたくなる最大の理由”
-
5
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
6
【漫画付き】ひとり情シス協会が明かす、RAG導入でしくじる企業「2つの共通点」
-
7
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
-
8
「IBM iはDXのボトルネック」は誤解 意外と知らない今風モダナイズの効果
-
9
「朝8時にバッチが終わらない」データ爆発の危機をJPX総研はどう乗り越えたか
-
10
「中堅・中小企業のネットワーク・セキュリティ運用実態」に関するアンケート
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
5
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
6
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
生成AIを開発に導入しても効果が見えない? 実証実験で分かった成果と課題
-
9
経産省DX指針から読み解く、受発注業務デジタル化ロードマップ
-
10
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー