古賀政純「Dockerがもたらすビジネス変革」

HPEの開発部門におけるDockerを使ったCI/CD基盤

古賀政純(日本ヒューレットパッカード) 2018年08月08日 07時30分

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

 こんにちは。日本ヒューレットパッカードのオープンソース、Linuxテクノロジーエバンジェリストの古賀政純です。前回の記事では、HPEの開発部門が採用しているDockerイメージの管理手法について紹介しました。今回は、HPEの開発部門におけるDockerを使った「継続的インテグレーション/継続的デリバリ(CI/CD)」基盤について紹介します。

Jenkinsの採用

 HPE社内に設置されたソフトウェア開発基盤のシステム構成では、徹底的なオープンソースの活用を図っています。新型のブレードサーバには、アプリケーションのビルド、実行、リリースなどの開発作業を行うためのDockerエンジンが稼働します。Dockerエンジンの上では、以前の連載記事でも紹介したCI/CDと呼ばれる開発手法を実現するソフトウェアが稼働します。

 CI(継続的インテグレーション)において、開発者が頻繁に変更するソフトウェアのソースコード(設計図)は、中央集権的なリポジトリ(ソースコードそのものの保管庫であり、バージョン管理などをする場所)にアップロード(マージ)され、そのたびにビルドやテストが実行されます。ソフトウェアのインテグレーション作業は、従来に比べると短い期間に何度も繰り返されます。これにより、インテグレーションに伴う不具合箇所の修正が迅速になり、結果的に開発工数の短縮が期待できます。

 一方、CD(継続的デリバリ)は、CIに加えてソフトウェアのソースコードの変更とビルドを行った後、テスト環境や本番前のステージング環境に配備し、テストを実施します。

 HPEでは、CI/CD向けのオープンソースソフトウェアに「Jenkins」を採用しています。Jenkinsは、CI/CDを行うための統合ソフトウェアツールです。大規模なコードの開発においても、変更したコードをすぐにテストし、レポートするといった機能があります。Jenkinsのおかげで、開発者はコードの不具合を迅速に発見、解決し、ビルドやテストの作業を大幅に自動化できます。

 CI/CDモデルの実装目的は、アプリケーション開発速度の劇的な向上です。従来、HPEにおいて、主要なアプリケーションの新バージョンのリリースサイクルは、1年に数回程度でしたが、現在のDocker基盤では、新バージョンのソフトウェアをリリースしてから数分以内で実稼働テストを行えるようになっています。これにより、ソフトウェアのリリースから実稼働までに掛かる遅延を大幅に改善し、節約できた時間を使って開発者が余裕を持ってコーディングできるようになり、結果的にソフトウェアの品質向上に大きく貢献しています。

図1.一般的なCI/CDの構成要素
図1.一般的なCI/CDの構成要素

Docker環境におけるソフトウェアリポジトリと開発業務

 HPEのソフトウェア開発部門が、Docker環境においてどのような作業手順で開発業務を進めているのかを簡単に紹介します。HPEの開発部門では、まずテスト用の新しいコードを「Git/Gerritゲートウェイ」と呼ばれるマシンに送信します。Gerritは、コードレビューを行うウェブベースのオープンソースソフトウェアであり、コードのレビュー作業を素早く行えるのが特徴です。このテスト用のコードは通常、複数の開発チームによって開発された新機能や追加モジュールなどで構成されています。

 Git/Gerritゲートウェイは、ソフトウェアのリリース管理と承認サービスを提供します。新しいコードがGit/Gerritゲートウェイに登録(ここでは、コードの登録のことをコミットと言います)されると、コンプライアンスのチェック処理が行われます。コンプライアンスチェックを通過させ、無事承認されれば、次の処理に進むことができます。この時点で、コンプライアンスチェックを通過できず否認された場合、そのコードは製品を形成するモジュールとして構成することはできません。

 HPE社内で規定するコンプライアンスに準拠し、承認されたコードのみがJenkinsサーバに送信され、自動化機能によってジョブが開始されます。Jenkinsサーバ上のコードは、Sonatypeのパッケージリポジトリ管理ソフトウェア「Nexus」が稼働するサーバに登録されます。登録されたコードは、複数の開発者の間で共有、管理されます。また、ソフトウェア製品本体に組み込めますので、Dockerコンテナ上でビルドされ、コードの変更・追加・削除、機能テストなどに使用されます。最終的には、ソフトウェア製品のイメージファイル(Open Virtual Appliance、通称:OVA形式ファイル)が作成され、別途、テストチームによって製品の品質分析が行われます。

図2.HPE開発部門におけるDockerを使ったCI/CD環境
図2.HPE開発部門におけるDockerを使ったCI/CD環境

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

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

この記事を読んだ方に

関連ホワイトペーパー

連載

CIO
ITアナリストが知る日本企業の「ITの盲点」
シェアリングエコノミーの衝撃
デジタル“失敗学”
コンサルティング現場のカラクリ
Rethink Internet:インターネット再考
インシデントをもたらすヒューマンエラー
トランザクションの今昔物語
エリック松永のデジタルIQ道場
研究現場から見たAI
Fintechの正体
米ZDNet編集長Larryの独り言
大木豊成「仕事で使うアップルのトリセツ」
山本雅史「ハードから読み解くITトレンド放談」
田中克己「展望2020年のIT企業」
松岡功「一言もの申す」
松岡功「今週の明言」
内山悟志「IT部門はどこに向かうのか」
林 雅之「デジタル未来からの手紙」
谷川耕一「エンプラITならこれは知っとけ」
大河原克行「エンプラ徒然」
内製化とユーザー体験の関係
「プロジェクトマネジメント」の解き方
ITは「ひみつ道具」の夢を見る
セキュリティ
エンドポイントセキュリティの4つの「基礎」
企業セキュリティの歩き方
サイバーセキュリティ未来考
ネットワークセキュリティの要諦
セキュリティの論点
スペシャル
エンタープライズAIの隆盛
インシュアテックで変わる保険業界
顧客は勝手に育たない--MAツール導入の心得
「ひとり情シス」の本当のところ
ざっくり解決!SNS担当者お悩み相談室
生産性向上に効くビジネスITツール最前線
ざっくりわかるSNSマーケティング入門
課題解決のためのUI/UX
誰もが開発者になる時代 ~業務システム開発の現場を行く~
「Windows 10」法人導入の手引き
ソフトウェア開発パラダイムの進化
エンタープライズトレンド
10の事情
座談会@ZDNet
Dr.津田のクラウドトップガン対談
Gartner Symposium
IBM World of Watson
de:code
Sapphire Now
VMworld
Microsoft WPC
Microsoft Connect()
HPE Discover
Oracle OpenWorld
Dell Technologies World
AWS re:Invent
AWS Summit
PTC LiveWorx
吉田行男「より賢く活用するためのOSS最新動向」
古賀政純「Dockerがもたらすビジネス変革」
中国ビジネス四方山話
ベトナムでビジネス
日本株展望
企業決算
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]