コード化でDevOpsを支えるHashiCorpのツールと開発背景
各ツールの連携を進めるATLAS
2014年末にHashiCorpが発表したATLASは、開発から運用に至るまで、これまで紹介したツール群を包括する役割を持つ新サービスです。
ATLASの目指すところ
ATLASはどのような役割を提供しているのでしょうか。サイトには「アプリケーションの開発、デプロイ、保守をどこでも。開発から本番運用に至るまで、1つのコンソールと、1つのワークフローで」と紹介されています。言い替えますと、これまで提供されてきたそれぞれのツールがATLASを通して1つにつながることを意味しています(図2参照)。これまでのHashiCorpのツールは、それぞれ独立した機能・役割を持つものであり、つながりはありませんでした。それらのツールを、ATLASというプラットフォームを通して統合することができます。
ATLASそのものは、2014年に提供開始されたVagrant Cloudをベースとしています。元々はVagrant BoxというVagrantで作られた環境を共有・検索するためのサービスでした。現在は、同一のアカウントでATLASのサービスを利用できます。ATLASそのものはまだ開発途上であり、現時点ではベータ版として提供されています。機能面でもVagrant Cloudで提供されていたものとほとんど同じで、主に開発者向けの印象があります。今後はTerraformやConsulといった運用担当向けの機能も充実していくと思われます。
HashiCorpの開発思想
HashiCorpはどのような意図で、これらのサービスやツールを提供してきたのでしょうか。これについては、同社の開発思想が書かれたブログ記事「The Tao of HashiCorp」(=HashiCorpの道という意味)から読み取れます。この記事の中で、HashiCorpのビジョンやロードマップ、プロダクト設計のための基礎として、複数の要素を発表しています。以下では、その記事の概要を紹介します。
目標はワークフローの解決であり、技術ではない
HashiCorpの手法は、根底にある技術よりも、ワークフロー(業務上の流れ)をどうやって解決するかにおかれています。まず目標を決めて、そこに至るまでのワークフローを検討します。そして、その仕事を単純にするためにツールが存在しなければ、HashiCorpが作るというものです。その際、新しい技術を導入するかどうかの判断は、効率的なユーザ経験をもたらすかどうかが基準となり、技術的に新しいかどうかではありません。
Unix哲学の影響を受けた設計方針
HashiCorpのツールは、それぞれが十分に1つの機能を果たすように設計されています。これはUnix哲学の「Simple, Modular, Composable」(単純、モジュール型、組みあわせ可能)といった姿勢による影響を受けています。問題解決にあたっては課題を1つ1つの要素に分解し、それらをツールの機能に落とし込み、各ツールがつながって問題解決に至るという考えです。個々のツールは、APIを通じて他のツールと通信できるように、独立したものとして扱われます。そうすることで、ソフトウェアでよくみられるような、機能拡張による複雑化を避けられます。
イミュータブル・インフラストラクチャとコード化
Immutability(イミュータビリティ)は「変わることがないという性質」を示す言葉です。これは、開発環境におけるバージョン管理システムに近い考え方ではないでしょうか。コードを一度コミットしてしまえば、そのコミット内容は固定(fix)されます。バージョンで管理されるので、バージョンのロールバック(巻き戻し)も可能ですし、変更の経緯も分かります。これらをソースコードだけでなく、サーバやアプリケーションの状態にも適用する考えが、イミュータブル・インフラストラクチャです。インフラ構築の情報がコード化されバージョン管理されていれば、構築当時の担当者が不在の場合や社内に適切な情報が記録されていなくても、状況の把握が容易になります。
コード化を通じた自動化
一般的なシステムにおいて、インフラに対して手動で変更を加えると、システムの規模を拡大する際や、変更を加える際の手間が大変になりがちです。この課題を解決するために自動的に行う方法がありますが、それに対してHashiCorpは「コード化」という手法を提案します。コード化された知識の利点は、システムによって自動実行できることだけではありません。人間にとっても状態がコードで読みやすいものとなり、その結果生産性を向上し、人的ミスを減らすことにもつながります。
まとめ
今回はHashiCorp製ツールの概要や、その開発思想を見てきました。HashiCorpのツール1つ1つは別々の機能を持っていますが、それらの目的は別々ではなく、開発と運用の境界線上における問題、いわゆるDevOpsを促すためのルールでもあるとご理解いただけたのではないかと思います。次回以降は、それぞれのツールの実践的な使い方を紹介していきます。
HashiCorpの提供するツールの大きな特徴は、開発者だけでなく、運用担当者も使える点ではないでしょうか。この連載では、ツールに対する知識だけでなく、実際に手を動かしながら理解を深めていければと思っています。そして、今後のクラウド・コンピューティングが生み出す未来について思いを馳せつつ、みなさんの仕事を良くするきっかけとなれば、それはとても嬉しいなって思っています。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 開発から運用に至るフローを一体化するAtlas
- ビルドからリリースまでを抽象化するツールWaypointをHashiCorpがリリース
- HashiCorpが日本での活動を始動。ゼロトラストのデファクトスタンダードを目指す
- クリエーションライン、米HashiCorp社プロダクトの日本国内での導入支援事業を開始
- de:codeに黒船襲来!? 日本とMicrosoftはDevOpsでどう変わるか
- 開発環境の構築・共有を簡単にするVagrant入門
- サービス・ディスカバリのためのConsul入門
- マシン・イメージを自動構築し、作業効率を高めるPacker入門
- オープンソースのスタートアップが失敗する本当の理由、Linuxカーネルの最新版「Linux 4.0」をリリース、ほか
- GitHub Universe開催。βユーザーたちが語るActions導入の容易さ