ときどきAnsible日記

主にITインフラ基盤の自動化に関する事を書いているブログです

RedHat OpenShiftとは

お疲れ様です。伊藤です。

すっかり年の瀬ですね。よく言う一年はあっという間とか、年々1年が短くなるとか言いますが、本当にマッハで過ぎた気がします。え!?あと2週間で今年終わるの!?という事実が今だ信じられません。


前回の記事の最後で次は柔らかい内容で、と言いつつ今回はOpenShiftのことを記事にしてしまいました。
というのもいよいよシステム開発の現場でもOpenShiftが使われ始めて、実際にプログラムを作っているそこのあなた!にも他人事ではない影響が出つつあるためです。
個人的には通常の仮想マシンとは違い、コンテナでのシステム開発にはかなり癖があると思っています。そのあたりの説明には至りませんが、OpenShiftってなに?という状態から抜け出せるお手伝いが出来れば幸いでございます。


というわけでOpenShiftとは何か?というところですが、実態はDockerによるコンテナ環境だと思っています。ただしコンテナを生で使うにはちょっと使い勝手が悪い部分があるのでそれを管理するソフトkubernetes(クベルネティスとかクーベルネテスとかクゥバネィテスとか読みます、あと略してk8sとかとも書きます)をセットにしてコンテナを管理する環境、というのがOpenShiftの実態と認識しております。


ってかじゃあ何がいいのさ?という方がいらっしゃるかと思います。まずは通常の仮想マシンとコンテナを比べた場合のメリットはこちらの記事(Dockerコンテナの概要 - ときどきAnsible日記)を参照して頂いた前提で、極々簡単に書くとコンテナのメリットは

  • リソースを有効に使える
  • 起動が早い
  • デプロイが簡単かつ安全

といったところかと思います。

  • リソースを有効に使える
    • これは言わずもがな、通常の仮想マシンが2~3台しか立てれないところにコンテナだったら10~20は余裕で作れます。
  • 起動が早い
    • これもリソースが有効に使えるのと同じでOSを起動しない分、起動がめっちゃ早いです。1秒ぐらいで起動します。
  • デプロイが簡単かつ安全
    • こちらは少々ややこしいのですが、コンテナ化することで実行環境を含めた形でアプリケーションを実装することができるので、環境差異による実装ミスが減ります。簡単に書くとテスト環境では動いていたのに、本番環境では動かないよ!あ、環境変数追加するの忘れてた!ということが無くなるということです。さらに環境丸ごとリリースするのでデプロイ作業自体が簡素化されます。


まあこのあたりがコンテナのメリットです。ではさらにOpenShiftは何がいいのか?というところですね。
非常に簡単に行ってしまうと前述のコンテナを簡単に使えるということです。先ほども申し上げた通り、OpenShiftの中身は(2017/12時点では)DockerとKubernetesですが、これらは実際に実装し運用するのに少々知識と経験が必要になります。そういった部分をラッピングしつつ、商用ベースで使えるレベルにしたものがOpenShiftという認識です(個人的にはRedHatのサポートを受けられるのが最大のメリットだと思っていますが。。。)


ぶっちゃけDockerについてはまだまだ色々な問題があり、商用への利用は非常に難しいと思います。果敢に挑戦されている企業様もいらっしゃいますが、かなりのコストと勇気が必要かと。。!いや、実装されている企業様は素晴らしい!
で、そこまでのリスクを負わずともコンテナ環境を実装できるのがOpenShiftと、いう認識でよろしいかと(なんせ天下のRedHatのソリューションですので)


2回連続でRedHat関連の記事になってしまい回し者感が半端ないですが、一円ももらっておりませんのでご勘弁を。
それではお疲れ様でした。