コンテナを使う価値と始め方

10月に開催されたEDB Postgres Vision Tokyo 2020 にて講演しましたコンテンツをご紹介します。

DXシステムに求められること

既存のビジネスをデジタル化するという「DX=デジタルトランスフォーメーション」という言葉が現在は多くの企業で取り組み始めている状況ですが、このDXのためのシステムには何が求められるのでしょうか。

デジタルトランスフォーメーションでは、いかにアイデアを早く形にできるか、そして市場のニーズに合わせて変更していけるか、そして成長に合わせてシステムも拡大、縮小が可能なことが望まれます。言い換えれば不確実性の高い要件のなかで運用をしなければならないのです。

このような要件を、既存の手法で対応することができるのでしょうか?

課題解決マイクロサービス

多くの企業がいままでの手法で開発した場合、アプリケーションのコードがどんどん肥大化していき、そのたびに開発期間は長くなる、テスト範囲も増加しアップデートの難易度が上がってしまうのではないでしょうか。

また、このようなシステムではひとたび障害が発生すると与える影響が大きく、また障害時には復旧の難易度も高く運用の負荷があがることが想定されます。

既存の手法では1枚岩の一つの大きなアプリケーションを開発していましたが、前述の課題があり迅速性が求められる開発現場には合わないものでした。この課題を解決できる手法として注目をされているのがマイクロサービスです。このようなマイクロサービスとはどのような手法なのかを見ていきたいと思います。

マイクロサービスとは

マイクロサービスではアプリケーションは機能単位で可能な限り最小に切り出し、開発を行う。アプリケーション同士はREST APIなどで疎結合で繋ぐ手法になります。

この手法では、これまでの運用概念にある「止まることなく5年間運用し続けられる確実性の高いシステム運用」ではなく、「不確実性の中で変化に対応できる運用へ」と考えかたも変えなければなりません。

マイクロサービスの特徴は以下のポイントになります。

  • アプリケーション開発の高速化と単純化
  • CI/CDやDevOpsも非常に相性がよい
  • アプリケーションを機能ごとに作るため、アプリケーション毎に言語や利用するソフトウェアを選べる
  • アプリケーションは独立して起動しているため、アップデート時も他のサービスへの影響を最小限にできるほか、スケールアウトをサービス単位で行うことができる
  • アプリケーションとしての独立性を持たせるためにデータは各アプリケーション内で持たせるように設計することが重要

サービスに適したコンテナ技術

短い開発サイクルを目指し導入されるマイクロサービスでは、アプリケーション開発の高速化とデリバリーまでの自動化に取り組むためにクラウドネイティブな設計が基本となります。同じプラットフォームをどこでも展開できること、可搬性と軽量性を求めるとコンテナプラットフォームがもっとも適したプラットフォームになると言われています。

大規模な利用にも、コンテナプラットフォームのオーケストレーションソフトウェアである、Kubernetesが標準的に利用されるようになったことで更にコンテナの利用は拡大しています。

課題

コンテナプラットフォームの課題としては、写真のイメージのように利用するコンテナリソースの数が数百、数千、時には万単位にもなるために発生する課題があります。

運用の煩雑化、特に複数のホストでのコンテナ運用が煩雑になります。変更を加えたいコンテナリソースがどこにあるのか?ホストに障害が発生した際のリソース再配置など、オーケストレーションソフトウェアがないと運用は回らなくなります。また、適切な配置を行わないと無駄なリソースが増加し、運用コストが増加します。

アプリケーションのリリースサイクルが短縮されるため、これまでのようにパッケージをインストールする、アップデートパッケージをインストールするというような手法では追いつけません。コンテナプラットフォームを利用した場合の多くは、コンテナイメージごと置き換えるという手法に変わっていきます。

そして、コンテナ技術の多くは新しい技術となるため、学習しなければならない技術が増えること、その範囲も広範囲に拡大されることがあげられます。

弊社での取り組み

このような課題に対して、サイオステクノロジーはRed Hat OpenShiftやパラメーターチューニングを支援するAIOpsであるRed Sky Opsなどを含めたソリューションでのご支援を行っております。

SIOSでは、デジタルトランスフォーメーションをはじめるため、コンテナプラットフォームをはじめるために必要な支援を提供する「デジタルトランスフォーメーションサポートソリューション」のもとにエンジニアリング、ナレッジ、トレーニング、プリセールス、コンサルティングの提供を開始しています。

しかし、コンテナの階段の第一歩は非常に高く、取り組みたくても上手くいかない企業も多いのではないでしょうか?

サイオステクノロジーも昨年の12月にコンテナプラットフォーム事業を立ち上げましたが、最初はエンジニアが立ち上がらず非常に苦労した経験があります。コンテナプラットフォームに精通したエンジニアは日本国内をみてもまだまだ少なく、外部から取ろうにもコンテナプラットフォームを設計できるエンジニアは非常に価値が高いため採用したくても採用できない状況が多いのではないでしょうか。

このような中で、サイオステクノロジーはどのようにコンテナビジネスをはじめたのかをご紹介したいと思います。

サイオステクノロジーでは、コンテナプラットフォームに精通するエンジニアを育成するためのトレーニングを開発し社内に展開してコンテナビジネスをはじめています。

こちらのスライドはトレーニングの1例ですが、Dockerの基礎からKubernetesの利用まで、基礎をしっかりと抑えながら顧客からの要望を形にできるエンジニアを育成するためのコンテンツを開発しています。

ポイントは「顧客から発生するゆるい要求・課題に対してもしっかりと意図を汲み取り、構築・設定が出来る」この能力を高めるために実際に起こり得るシチュエーションに基づき内容を構成しています。

ここは独学で書籍などから学ぶではなかなかできない部分であり、また、レビューのサービスがついているため、独学にありがちな独自仕様をなくし、標準的な使い方、お作法を広く浸透させることができます。

エンジニアの教育は非常に重要なポイントになりますので、ぜひこちらのサービスもご活用頂きまして1社でも多くの企業がコンテナプラットフォームを利用してデジタルトランスフォーメーションを成功に導いていただきたいです。