CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
今回から紹介する「Aeolus(アイオロス)」は、レッドハット社が提供する「CloudForms」の1コンポーネントとして採用されており、アプ リケーション実行環境の自動構築機能を提供しています。先日、CloudFormsの現行バージョン(v1.0)で日本語表示の誤りを見つけて開発チーム に報告したところ、開発中の次期バージョン(v1.1)のソースコードを渡されて、「せっかくだから翻訳の改善提案があったらどんどんしてね」とのお願い を受けました。
一般の商用ソフトウェアでは、そのソースコードは「知的財産」として厳格に管理されていて、開発者以外の社員がソースコードを目にすることはあまりない でしょう。レッドハットには、誰もがソースコードを閲覧できて改善提案を自由に行える、オープンソースならではの文化が社内に根付いています。「ソース コード好き」の社員には天国のような環境です(*1)。
さて、今回は、Aeolusそのものの説明に入る前に、なぜ自動構築機能が必要なのか、少し大きな視点で捉えてみます。やや唐突に感じるかも知れませんが、クラウドの自動化を考えるヒントとして、ソフトウェア開発における自動化から話を進めます。
ソフトウェアの開発速度を上げながら、品質を向上する開発手法として、「継続的インテグレーション(CI:Continuous Integration)」と呼ばれる方法があります(*2)。たとえば、既存のソフトウェアに新機能を追加する際に、新機能の実装がある程度完了した段 階でまとめてテストを実施する場合を考えます。当然ながら、開発中には気づかなかった多数の問題点が発見されることになります。
一方、開発者がソースコードを修正したら、その段階で即座にソフトウェアのビルドとテストを実施して、開発を進めながら問題点の発見と修正を継続的に行 うのがCIの進め方です。そのためには、ソフトウェアのビルドとテストを自動化して、何度でも繰り返し実施できるようにしておく必要があります。CIのプ ロセスを自動化するオープンソースのツールには、「Jenkins(ジェンキンス)」などがあります。
CIが注目される背景には、ビジネスや技術の変化の加速があります。従来の開発手法では、要件定義から運用開始までの期間が長く、「当初設計したシステ ムが、運用開始時にはすでに時代遅れになっていた」という危険性があります。そこで、CIによって開発期間を短縮し、小さな変化を積み重ねながら、継続的 にシステムを成長させようというわけです(図1)。ソフトウェア開発の世界では、さまざまな自動化への取り組みが進められており、これらは、ソフトウェア 開発の「俊敏性(開発速度の向上)」と「堅牢性(品質の向上)」に貢献しています。
図1 継続的インテグレーションによるシステムの成長
ソフトウェア開発の自動化が進む中で、開発されたソフトウェアを実行するサーバやネットワークなどのインフラ環境の整備、すなわち、図1の「運用」部分 における自動化の要求も高まりつつあります。とりわけ、図1のようにソフトウェアが頻繁に変化する世界では、一度構築した環境を「塩漬け」で使いつづける わけにはいきません。ここでは、インフラ構築・変更の自動化が必須となります。クラウドにより、このようなインフラ整備の自動化が進むことは間違いないで しょう。
インフラの構築を手作業で行うこれまでの世界では、開発から運用への引き継ぎにおいて、導入手順書や運用手順書など、大量のドキュメントを作成する必要 がありました。クラウドによる運用の自動化が進めば、これらのドキュメントから開放されることも考えられます。最近では、開発から運用への引き継ぎに伴う 作業を自動化して実践する、「継続的デリバリー」という考え方も登場しています(*3)。
また、ソフトウェア開発とインフラ運用が自動化を通して結合されると、ソフトウェアの役割がこれまで以上に広がる可能性があります。これまで運用担当者 の手作業にまかされていた部分がソフトウェアから制御できるようになることで、耐障害性や性能要件など、いわゆる「非機能要件」を純粋にソフトウェアだけ で制御する世界が実現するかも知れません。
ITシステムが支えるビジネスが急速に変化する中で、ITシステム全般において、「俊敏性(稼働環境をすばやく変更すること)」と「堅牢性(稼働を安定 継続すること)」という、相反する要求を満たすことが求められています。クラウドにおける自動化は、インフラ環境の「俊敏性」と「堅牢性」を両立する鍵と なる可能性を秘めているのです。
今回は、少しばかり想像を膨らませて、将来のインフラ構築・運用におけるクラウドの役割を考えてみました。もちろん、現在の環境で、今すぐにこのような世界が実現できるわけではありません。今後、さまざまな自動化ツールの整備が必要です。
Aeolusでは、事前に用意した設計書、すなわち「インフラ環境のソースコード」からアプリケーション実行環境を自動で準備する仕組みを提供しています。これは、その第一歩となる取り組みとも言えます。
次回からは、より具体的に、Aeolusの機能や特徴を紹介していきます。
*1)「ソースコード天国」実現に向けて[PDF]
レッドハット社内で利用されている「閲覧用ソースコード配置システム」の解説です。
*2)継続的インテグレーション入門~開発プロセスを自動化する47の作法
継続的インテグレーションの考え方と進め方を詳しく説明した解説書です。
*3)継続的デリバリー~信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化
継続的デリバリーの全体像やプロセスの包括的な解説書です。
++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
CTC教育サービス Linuxのページ
http://www.school.ctc-g.co.jp/linux/
筆者書籍紹介 Software Design plusシリーズ 「独習Linux専科」サーバ構築/運用/管理 ――あなたに伝えたい技と知恵と鉄則 本物の基礎を学ぶ!新定番のLinux独習書 中井悦司 著 B5変形判/384ページ 定価3,129円(本体2,980円) ISBN 978-4-7741-5937-9 詳しくはこちら(出版社WEBサイト) |
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes