Architecture Design Patterns の紹介

Red Hat でソリューションアーキテクトをしている。荒木です。

赤帽エンジニア Advent Calendar 2018 の8日目の本記事では、私は普段、OpenStack を扱うことが多いという理由から、今回は、Red Hat OpenStack(RHOSP) について、ふわっと紹介します。また、RHOSPに関連する取組として、Architecture Design Patterns (ADP) という活動を紹介したいと思います。

Red Hat OpenStack とは

まず、Red Hat OpenStack について簡単におさらいします。Red Hat OpenStack は、オンプレミスに Infrastructure as a Service (IaaS) 基盤を構築する為のソフトウェアです。

活発なコミュニティーによって継続的に開発されているOpenStack プロジェクトに対し、Red Hat OpenStack は、それらをEnterpriseグレードで利用していただける製品です。 開発コミュニティーが生成するコード郡と、それらの機能補完的な位置づけにあたるソフトウェアの組み合わせを行い、テストを実施し、製品としてまとめています。ソフトウェアそのものに加えて、お客様へのサポートの提供と、機能不具合の改修や、改善の要望に関する、コミュニティーへの還元をおこなっています。 現在(2018年12月初旬時点)は、最新のリリースバージョンが13 (Queensベース)で、14(Rockyベース)が開発中です。

www.redhat.com

製品としてできる事は、細かく見ていくと沢山あるので、別の機会に、少しずつ紹介できたらと思いますが、IaaS の観点で特徴的な機能としては、以下が挙げられます。

  • セルフポータル
  • マルチテナンシー
  • APIの提供

これまでも色々な方が、OpenStack について説明するときに、こういった特徴を述べてきていますが、私も これらが IaaSにっとって、すごく重要な機能だと考えています。この点についても、別の機会に、個人的なスペースで、なんとなくつぶやいてみようと思いますので割愛します。今回は、RHOSPの使用感について、代表的な操作の動画を作成していますのでこちらを掲載します。

管理者編

www.youtube.com

利用者編

www.youtube.com

Architecture Design Patterns とは

さて、本題に入ります。冒頭にも述べたとおり、Architecture Design Patterns (ADP) と題して、情報共有を行っています。

ADPの目的

ADPは、Red Hat OpenStack をはじめとする、クラウド製品のインフラ設計のパターンを共有する事を目的としています。

難解なのに足が早い メチャオラオラ系

私達のクラウド製品の中には、非常に難解な物が多く、ちょっと試そうと思っても、簡単に取り組めないものがあると感じています。 RHOSPの場合でも、サブコンポーネントを含めると、数十のコンポーネントが複雑に連携してIaaS機能を実現しています。これらのコンポーネントを、一つ一つ配置して、コンフィグして、テストして、、、というのは明らかに大変で、非常に苦労なさった方も多いのではないでしょうか。

プロジェクトとしては、テストの自動化(rally)があったり、製品として、インストーラー/構成管理機能を付帯させるなど、徐々にそういった難しさ(気の利いてなさ)は、改善するように考慮されていますが、まだまだ不十分なように思います。 というのも、活発なコミュニティーが手がけるプロジェクトは、ものすごいペースで進歩していて、最大の興味は、先進的な機能の実現にフォーカスされています。逆に、機能実現に直接的な位置づけに無い項目は、結果的に、後回しとされてしまっている部分があるのではないかと想像します。(そもそも、開発途上であって、完成はしていないという認識で、その状態で、素敵インストーラは実装できないということなのかも...)

また、OpenStack が典型的な例ですが、6ヶ月程度の短いサイクルで主要な機能が追加されていくようなソフトウェアもあり、新しい機能によってどんどん便利になってるぜ!って性格に対して、タイムリーに旬な機能を環境へ取り込もうとすると、逆にしんどさをもたらしている部分もあると思います。(さらに、RHOSPとしては、これまで何回か、構築方法や、全体のアーキテクチャー、非機能の実現方法が変更されてきていて、この部分でも負担になっていないわけがないと思っています。)

こういった馴染みにくい性格に対する障壁を、少しでも緩和できたらという思いもあって、よくある用途/目的に対する、設計パターンとその為の構築手順を共有しています。

ADPが目指すもの

ADPは、そこでまとめられた情報を読み、示されている構築手順を実施することで、誰でも目的に応じた環境を構築できる事を目標としています。

あくまで、コミュニティー活動というスタンスで実施していますので、Red Hat として、何かを約束するものではありません。残念ながら、ここに記載査定る情報について、サポートへ問い合わせをいただくこともできません。しかしながら、ADPを参考にする事よって、少しでも早く、スムーズに、プライベートなクラウド環境の基本的な機能が整備される事に役立てるあり方を目指しています。

ADPのサイト

github.com

ADPは、gitlabのスペースをおかりして、情報提供しています。ADPを情報としてまとめ、共有していく上で、心がけている事が2つあります。

  • リアルであること できる限りリアリティーを追求するため、様々な事例/実績に基き、標準的な構成とできることを強く意識しています。

  • 動かせること 実際に動く物であるために、必ず、実際の操作を行い、操作手順として落とし込み、その結果をまとめています。

加えて、設計に関する簡単な情報として、物理的/論理的なネットワーク構成や、ハードウェア構成についても例示しています。ハードウェアの設定等が重要となる場合は、それらの情報についても、知り得る限り記載しています。

活動状況

現在は、RHOSP にフォーカスして、Enterprise IaaS基盤 と、Hyper Converged 構成 に関する情報を公開しています。 今後も、継続して情報を公開していきたいと考えていますが、まずは、RHOSP を中心とした情報の蓄積を進めています。OpenShiftといった他製品との組み合わせについても、後々、取り組んでいく計画です。

最後に

今回は、Architecture Design Patterns という、情報共有の取り組みについて紹介させていただきました。

こういった情報を広くシェアすることで、複雑で分かり難い技術と向き合うきっかけとしていただけたらとても嬉しく思います。また、それによって、新しいテクノロジーとその効果を体験できる場が増え、その場で新しいアイディアが生まれ、それがコミュニティーにいい形で刺激を与え、どんどんイノベーションが加速していったら、、、、素敵ですよね。そんな日を夢見て。

それでは、お付き合いいただき、ありがとうございました。またの機会に、よろしくお願い致します。

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。