Openshift を試してみた。Redhat提供のハンズオンLab感想

Redhat のOpenshift がずっと気になっていましたので、ハンズオンLabをやって学んでみました。
その時の感想を記事にしようと思います。

こちらがLabのリンクです：
https://developer.ibm.com/openlabs/openshift

パート1から5まであり、「Launch Lab」をクリックするとテスト用アカウントの上でOpenshiftがプロビジョニングされ、無料で試すことができます！
最近パート６も追加されたようです。今回は5までの感想となります。
なお、Labの途中で個人アカウントでLiteプラン（無料）のデータベースなどをデプロイする手順がありますが、誤って有償プランを選択しないようにしましょう。

Labの前に、Openshiftとは何でしょう？他のベアメタルやKubernetesとどう違うの？私なりにまとめてみました：
##Openshiftとは：
背景として、次のように時代が変化しています：
ユーザーはオンプレミスでサーバーを運営していました。
クラウドでサーバーを借りるサービスが発展し、インフラの一部もしくはすべてをクラウドで運営することも多くなりました。
近日、ベンチャーなどが急成長し、そのスピードで大企業をもあっという間に技術やサービスで超えてしまうこともある時代になりつつあります。俗にいうデジタルイノベーションですね（Disruptive innovationとも言えます）。
なので、ベンチャーでも大企業でも迅速にテクノロジーを使用・変更できることがアドバンテージとなることが多く、素早くかつセキュアに使用できるコンテナテクノロジーが注目を浴びています。
コンテナ自体は概念レベルだとしますと、それを運用できるようにするのがKubernetesで、さらにOpenshiftのようなKubernetesをベースにしたオープンソースのツールは開発者が追加でテストも行っており、素のKubernetesにはない機能も搭載されており、コミュニティもあるのでより信頼性があります。

ざっとまとめてみましたが、あくまで個人の見解となります。それではLabを試してみましょう！

##インストールからアプリのデプロイまで(Lab1)
自分のクラウドアカウントを持っていることがLabの前提条件となっています。
自分のアカウントとは別に、Lab用のアカウントも立ち上がるので：
＊OpenshiftはLabアカウントで使用
＊その他連携するDBなどの製品は個人アカウントで使用します。

カタログでOpenshiftをプロビジョニングすると、リソースページから詳細ページを開けるようになります：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660071/d709b7f6-2f57-8a67-e813-eb7d192f2fbb.png)

右上の「OpenShift Web Console」をクリックするとコンソールでOpenshiftを管理できるようになります。
コンソールは管理者（Administrator）と開発者（Developer）の２つのビューがあり、切り替えることができます：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660071/fba25fed-81ac-a79a-a4a3-5310b39d8f46.png)

管理者は主にメトリックなど状態の確認を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660071/8552c4cb-998e-e495-0493-9c40a1e9d66c.png)

開発者はプロジェクトの管理などを行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660071/f7aaf354-cd75-6ec4-2e5c-fc4e428e6511.png)

ここからの手順としては次のようになります：
１）開発者が、プロジェクトを作成します
２）プロジェクト上で、GithubにあるNode.jsアプリを紐づけます
３）アプリをデプロイします
４）アプリにアクセスします
５）基本的な監視ツールを確認します

詳細は割愛していますが、アプリがデプロイできたら次のように表示されます：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660071/9eee3d76-1608-4bdb-0903-f56a39d47898.png)

右下のリンクをクリックするとアプリがWebブラウザ上で表示されます：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660071/a7a9fac2-5c04-daeb-20e6-ca6454fb4061.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660071/cf4131b1-abfd-b099-cc44-c275239de7d1.png)

もちろんサンプルなのでデータはすべてダミーです。ログインも今は適当に入力すればできます。

このクラスタはCLIコマンドを使用することで管理・操作することが可能です。
自分の環境からセキュリティ設定を行って、CLIでアクセスすることが基本的な使用方法となりますが、Lab中は特別なCLIウィンドウが表示されており設定なしですぐに使用することができます。

ここからはCLIのOCコマンドを使用して様々な操作を行います。（kubernetes おなじみの kubectlコマンドの拡張版のようなものです。）
プロジェクトを参照したり、Namespaceの情報を得たりします。

監視ツール：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660071/0ca1fe1e-ed62-c52c-34a0-75b94e368c18.png)

付属の監視ツールを使用して、基本できなCPUやメモリーの状況を確認することができます。
ログタブからはある程度ログも出力されます：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660071/38b7abf9-e3bb-9982-c301-06ac089091c9.png)

メトリック情報に至っては、オープンソースのPrometheusが付属されており、クラスタの状況確認やアラートの設定など様々なことで可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660071/ceb025df-61bb-c134-cc0c-5ff224671351.png)

オートスケールを設定して、自動でPodの数を不可によって増やしていくこともできます。
設定のためにはコンソール上でYAML形式の設定コードを変更する必要があります。



一旦はここまでのご案内とします。

Openshiftは中々充実した機能を持っているようです！監視ツールはLogDNAなどを使用して拡張することもできますが（Lab3参照）、既存のものでも基本的な情報を得ることは十分可能です。
すべての操作があっという間に終わってしまったのもびっくりです！

なお、Labを行っている時はLab用のアカウントが立ち上がっていますが、4時間の制限時間があり、期限が切れると環境が無くなってしまうため、やり直す必要があります。
私も全部まとめてできませんでしたので何度かやり直しましたが、とても親切なガイドで書いている通りにCLIをインプットすればので、やり直してもすぐに進めることができます。
Lab2はLab1と内容がつながっていますので、できればまとめてやりたいところですが別々に行っても大丈夫です。

以上です！なかなか面白いLabでした。Openshiftの可能性を感じました。