製品概要 - Red Hat OpenShift の主な特徴 サッカーベット者のメリット
製品概要インデックス
- OpenShift 概要
- Red Hat OpenShift の主な特徴
- Red Hat OpenShift の主な特徴 サッカーベット者のメリット
- Red Hat OpenShift の主な特徴 運用管理者のメリット
マルチテナントのサッカーベット体制実現の支援機能
- サッカーベット者用のWebコンソールを利用した、セルフサービスでのサッカーベットが可能
- 下記などを利用したイメージビルド/デプロイの自動化が可能
- Gitリポジトリに置いているソースコード
- コンテナイメージ (DockerやOpen Container Initiative仕様に準拠)
- Dockerfile
- サッカーベット言語/ミドルウェア/データベースなどのサッカーベット環境のカタログ
- 下記などを利用したイメージビルド/デプロイの自動化が可能
- Webコンソールは、OpenShiftのMaster Node上で動作するコンテナアプリ
- サッカーベットしたコンテナイメージは、OpenShift内部のレジストリに保存され、他チームがデプロイに利用することも可能
- イメージのバージョン管理により、デプロイの再現性や一貫性を向上
- OpenShiftの管理者が予め設定した権限やリソース制限のもとで、サッカーベット者が各プロジェクト※の中でコンテナアプリをサッカーベット
- 管理者によって、予め割り当てられたプロジェクトを利用
- サッカーベット者が利用する、CPU/メモリ/ストレージの上限設定が可能
- ※
- プロジェクトは、OpenShiftのコンテナサッカーベット/デプロイの作業単位となる概念のこと。技術的には、Kubernetesのnamespaceにいくつかのアノテーションが付いたものです。
OpenShiftで提供される、セルフサービスサッカーベットの利用例
Gitリポジトリのソースコードを利用して、OpenShift環境にNode.jsアプリをデプロイ
サッカーベット者用コンソールを利用した、コンテナアプリのモニタリング
サッカーベット者が利用している各プロジェクトの、各Podのメトリクス(CPU/メモリ/送受信帯域幅など)を、サッカーベット者用コンソールから確認可能
コンテナアプリのビルド/テスト/デプロイの完全自動化
- OpenShiftに統合されたPipelines (Tekton) を利用可能
- ソースコードの静的解析/ビルド、単体/インテグレーションテストを実施 (CI部分を担当)
- サーバレスなアーキテクチャ
- OpenShiftに統合されたGitOps (Argo CD) を利用可能
- GitリポジトリをSingle Source of Truthとし、デプロイ先の状態変化を自動検知して、定義された状態を維持
- TektonとArgo CDは、Operatorによって運用を自動化
OpenShiftに統合されたWeb IDE
- Eclipse Cheをベースとした、Kubernetes-NativeなWebブラウザベースのIDEであるRed Hat CodeReady WorkspacesをOpenShiftの標準機能として提供
- サッカーベット者が自分のマシンで環境構築する手間をかけることなく、ブラウザベースの統一されたサッカーベット環境を利用することで、迅速なサッカーベット開始が可能
- サッカーベット者用のWebコンソールに統合されており、コンソール上のリンクから簡単にアクセス可能
- Che-Theia IDEがデフォルトのエディタになっており、Visual Studio Code(VS Code)のプラグインが利用可能
- OpenShiftのCLIも利用できるため、このWeb IDEからOpenShift上へのアプリデプロイ・テストも実行可能
- CodeReady Workspacesは、OpenShift上のコンテナアプリとして稼働
- サッカーベット環境をコード化(Devfile)することで、サッカーベット環境自体にも冪等性を持たせることが可能
CodeReady Workspacesが提供するサッカーベット環境
様々なサッカーベット環境のテンプレートを利用可能
コード化されたサッカーベット環境: Devfile
- サッカーベット環境をYAML形式で記述したファイル
- サッカーベットするソースコードの参照先
- サッカーベットコンポーネント
- エディタ/プラグイン/ビルドツール/ランタイム/コンテナイメージ/ユーザが定義するコマンド、など
- 作成したdevfileからワークスペース(Workspace Pod)の自動構築が可能
- サッカーベット者は、コンソールでDevfileの内容を直接入力するか、Devfileを置いたGitリポジトリのURLを指定するだけでO.K.
- 参考情報:
apiVersion:1.0.0 metadata:name:java-web-vertx # ワークスペース(サッカーベット環境)の名前 projects: # ソースコードの参照先 - name:java-web-vertx source:type:git location:"https://github.com/che-samples/web-java-vertx" components: # ワークスペースの構成要素 - type:chePlugin # ワークスペースで利用するプラグイン id:redhat/java/latest - type:dockerimage # 指定したコンテナをTerminalやコマンド実行に利用 alias:maven image:quay.io/eclipse/che-java8-maven:nightly env: -name:JAVA_OPTS value:"-Duser.home=/home/user" - name:MAVEN_OPTS value:$(JAVA_OPTS) memoryLimit:512Mi endpoints: -name:'8080/tcp' port:8080 commands: # ユーザが定義するコマンド - name:maven build actions: -type:exec component:maven command:"mvn clean install"
OpenShift Serverless
- Knativeをベースとした、ServerlessをOpenShiftの標準機能として提供
- Zero Server Opsやアイドル時のコンピューティングコストを0にすることが可能
- .NET/Go/Java/Node.js/PHP/Python/Ruby/Shellなど、様々なプログラミング言語に対応 (サンプルコード)
- Serverlessの主要な特徴
- Serving: 使う時だけアプリを起動し、使われていない時は0へスケール可能
- Eventing: HTTPリクエストやデータのアップロードなど、様々なイベントをトリガーにしたアプリの起動が可能 (イベントソースのリスト)
OpenShift Service Mesh
- IstioやMaistraをベースとして、マイクロサービス間の通信制御や複雑な運用機能をOpenShiftの標準機能として提供
- ネットワークの検出、負荷分散、サービス間認証、障害回復、モニタリング
- A/Bテスト、カナリアリリース、レート制限、アクセス制御、エンドツーエンド認証
- Service Meshは、Sidecarと定義されるL7 Proxyコンテナ(Envoy Proxy)を管理
- Envoyはルーティングやテレメトリ収集、アクセス制限/リトライなどを適宜実施
Service Meshを利用したサンプルアプリのデプロイ
- 4つの異なるマイクロサービスで構成されるサンプルアプリ(Bookinfo)のデプロイイメージ
- 運用管理者は、サッカーベット者から渡されたアプリをデプロイする際に、Istioの利用を有効化
- 全てのマイクロサービスは、サービスの全ての送受信トラフィックをインターセプトするEnvoy Proxyと一緒にパッケージ化され、サービス間通信制御ができるようになります
