レッドハット株式会社
Agenda
● コンテナの概要
●
OpenShiftの概要
●
OpenShiftのコアバリュー
そもそもコンテナとは...?
●
カーネルの機能の1つであり、プロセスグループごとに独立したOS環境を
見せるための技術
○
ローカルディスクの内容 (ディレクトリー内のファイル)
○
ネットワーク環境 (NIC名、ポート番号、IPアドレス)
○
プロセスID
○
共有メモリ
●
カーネルの一般的な機能である「名前空間」機能を利用
○
コンセプトはプログラミング言語のnamespaceと類似
○
1台のサーバ上で複数のアプリを同居させる際に、ライブラリなどの
リソース競合を起こさないようにするためのもの
●
OSまで仮想化する仮想化技術とは異なり、プロセスグループを分離する
だけなので、CPU/メモリ/ストレージなどのリソース消費量も少なくなりま
す
○
分離されたプロセス間で、ホストOSのカーネルは共有されます
HOST OS CONTAINER SUPPORTING FILES/ RUNTIME APP/ SERVICESSERVER
コンテナのメリット
HOST OS CONTAINERSERVER
CONTAINER SUPPORTING FILES/ RUNTIME APP/ SERVICES 高い互換性 ポータビリティ Java+JBoss PHP, C++, Ruby Database ・開発者(Dev)は、アプリを動かす上で 必要なライブラリなど依存関係をコン テナにまるごとパッケージすると、環境 依存の問題から解放される ・機能/非機能要件の変更への対応が容易 ・運用者(Ops)は、 動作が確認されているコンテナを受け入れる ・言語や技術、バージョン等によって デプロイ手順を変えなくてよい ・コンテナ管理サービス以外の基盤がアプリと 独立しているため、環境変更などの SUPPORTING FILES/ RUNTIME APP/ SERVICESコンテナのメリット (続き)
●
プラットフォームに、アプリケーションのパッケージングが可能であるコンテナ
環境を導入することで、
業務への柔軟な対応を目指すべく、業務単位でサー
ビス化されたアプリケーションの品質良い開発
をスムーズに行い、実稼働環境
においても無駄なリソースを発生させずに
負荷への柔軟な対応を行うなど、業
務を効率よく支援できる
ようになります。
●
上記のような環境を導入するために、今や標準技術となったKubernetesを中
心とした標準技術として採用されるコンテナプラットフォームを活用すること
で、その上で実行される、
多数のコンテナアプリケーションやオブジェクトの管
理を効率よく
行えます。
コンテナの注意点
●
できないこと
○
別バージョンのカーネルを利用
○
異種カーネルを利用
■
Linuxの上でWindowsコンテナを動かすなどは不可能
●
多少なりとも実行可能
○
別バージョンのLinuxカーネルの利用を前提にしたコンテナの実行
■
例: RHEL8サーバの上で、RHEL7コンテナを実行
○
別ディストリビューションのコンテナを実行
■
例: RHELサーバの上で、Ubuntuコンテナを実行する場合、Linux共通
コマンドやシェルスクリプトなどは実行可能だが、Debian系パッケージ
を前提とするソフトウェアの実行は不可
仮想マシンの運用
コンテナの運用
コンテナと仮想マシンの違いとは
Virtual Machine vs Containersコンテナ化することで、環境依存や役割を切り離す
インフラ運用 責任範囲 (環境固有) アプリ開発 責任範囲 インフラ運用 責任範囲 (環境固有) アプリ開発 責任範囲コンテナによるリソース/責任分離
App Libraries Guest OS App Libraries アプリケーション 開発担当 インフラ 運用担当 Hypervisor cloud dependency ・アプリ開発の迅速なライフサイクル ・頻繁なリリース更新 ・テストの自動化 ・自由な開発環境 開発スピードの向上 ・Guest OSの定期的なバージョンアップ (仮想マシンイメージの更新) ・ハードウェア更改対応 ・アプリ特性依存のインフラ設計 システムの安定性 Container Engine Any Infrastructure アプリケーション 開発担当 インフラ 運用担当 ・アプリ開発の迅速なライフサイクル ・頻繁なリリース更新 ・テストの自動化 ・自由な開発環境 開発スピードの向上 ・動的な基盤の復旧 ・サービス指標の提供 ・Immutableな運用環境 ・アプリ特性に依存しない基盤 システムの安定性Dev vs Ops DevOps
コンテナを利用するための技術要素
●
Kubernetes (k8s) が有名です
○
コマンド1つで、コンテナの実行・削除・実行履歴の管理が可能
○
例えば、コンテナ実行時には下記のようなことを自動実行
■
複数台のサーバに跨った仮想ネットワークの設定
●
数千、数万のコンテナもカバー
■
コンテナを作成するためのテンプレート(コンテナイメージ)の中にあるファイ
ルシステムツリーの展開
■
コンテナの冗長構成の担保
●
サーバ障害発生時に、正常系サーバでのコンテナ自動再起動
■
プラグインを利用した外部ストレージの自動マウント
●
NFS、Ceph、クラウドのストレージサービスなど
11
KubernetesのValue
Declarative Configuration
Self-Healing
Auto Scaling
リソースの抽象化
自己回復性
自動スケーリング
クラウドプロバイダごとに異な る実装やサービスの詳細を知 る必要がなく、 Kubernetesは開 発者を特定のインフラ依存から 開放します。 クラウド上で高度なポータビリ ティを担保できます。 Kubernetesは、現在のシステ ム状態が望ましい状態に一致 するように動作します。 はじめにシステムを初期化す るだけでなく、その後も継続的 にシステムが不安定になった場 合や、信頼性に影響を及ぼす 障害時に、もとの状態に動的に 戻します。 迅速で簡単なロールバック で、信頼性の高い頻繁なコンテ ナイメージのビルドとデプロイを 提供します。 Web ベースのサービスは数 時間ごとに機能改善されること が珍しくなく、新しいコンポーネ ントや機能を開発しデプロイで きます。Node Node Node Node
リソースの抽象化
Declarative Configuration Declar ativ e Configur ation apiVersion: apps/v1 kind: Deployment metadata: name: test-nginx #コンテナの名前 spec: selector: matchLabels: app: nginx #テンプレートを指定 replicas: 3 #レプリカ数(Podの数) template: #作成されるPodのテンプレート metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 #ポート番号クラウドプロバイダごとに異なる実装やサービスの詳細を知る必要がなく、
宣言的にインフラリソースを管理できます。
Deploy Infra ResourcesNode Node Node Node
自己回復性
Self-Healing Self-HealingKubernetesは、現在のシステム状態が望ましい状態に一致するように動作します。
Replicas = 3
Replicas = 4
Auto-Healing Node Error 望ましい状態 (設定した値) 起動状態(稼働している値 )自動スケーリング
Auto ScalingAut o S
caling
Node Node Node
Auto Scale
Load Balancer
Kubernetesの適用範囲 (Container Platform on Platform)
CI/CD Workload Serverless Workload Machine Learning Workload IoT Workload Workload Abstraction Any Applications Resource Abstraction Any Resources
Virtual Private cloud
Bare metal Edge
開発コンポーネントは、 ユーザーの選択と 柔軟性を維持
What is OpenShift?
● エンタープライズコンテナプラットフォーム
●
Kubernetes+PaaS機能
CONTAINER Image OS RUNTIME APP ビルド デプロイ・オーケストレーション 利 用 ソースコードNode Node Node
開発用途のコンテナイメージの テンプレートを標準提供
事前設定したドメインを利用した パブリックURLも自動作成
What is OpenShift? (cont’d)
●
Enterprise向けにコンテナ技術を利用しやすくなるような各種機能を提供
○
アプリケーションのライフサイクル管理
■
アプリ作成用のGUI
■
コンテナイメージのビルド&デプロイの自動化
■
ビルド&デプロイのパイプラインを作って、CI/CD対応も推進可能
OpenShiftで提供される、開発者用のカタログを利用した開発が可能
Developer Catalog (例: OpenShift環境にNode.jsアプリをデプロイ)
開発者は自身がアプリ開発に利用している GitリポジトリのURLを指定 OpenShift上にデプロイするコンテナアプリ用 のビルダーイメージを選択 (この例では Node.jsアプリをビルド・デプロイするために予 めOpenShiftで用意されている、専用のコンテ ナイメージを選択 ) Node.jsのバージョンを選択
AWSマネージド・サービスとの連携
※ 画像はイメージです。プレビュー版の情報も含みます。20
●
AWSマネージド・サービスと連携して、OpenShiftのカタログからAWSマネージド・
サービスのアプリケーションをデプロイすることも可能
○
連携の仕組みには、AWS Service Brokerや後述するOperatorを利用
利用中のAWS上でのマネージド なOpenShift環境のリスト
AWSマネージド・サービスをデプロイ するための、OpenShiftのカタログ
21
●
RHEL7とRHEL8をベースとしたコンテナイメージとして無償提供
○ RHELの有償サブスクリプションの有無とは無関係
●
UBIに独自ソフトウェアを追加して第3者に配布可能
○
UBIに関するEnd User License Agreement
を遵守することが条件○ Red Hatが提供するパッケージについては、 UBI専用のリポジトリによって提供されるパッケージの
みをUBIに追加できるといった制約があります
●
UBIは任意の環境で実行可能
○ RHEL/OpenShift環境の場合だと、コンテナの 実行基盤からUBIの部分までRed Hatのサポート対象 ○ UBIはOpenShift環境での、コンテナ開発の カスタムテンプレートとしても利用可能 CONTAINER UBI RUNTIME APPRED HAT PLATFORM
CONTAINER
UBI
RUNTIME APP
NON-RED HAT PLATFORM
Fully supported by Red Hat Supported by end user
RED HAT UNIVERSAL BASE IMAGE (UBI)
システムの基盤としてOpenShiftを利用
Red Hatが提供するミドルウェア製品をコンテナとして提供 キャッシュ コンテナ 通知 モバイル管理 コンテナ BPMコンテナ 意思決定(ルール)コ ンテナ API管理 コンテナ SaaS 既存システム 既存DB システム連携 コンテナ データのマネタイズ 業務フローの定型処理 ルールエンジン Key-Value インメモリデータベースRed Hat FUSE Red Hat A-MQ
Red Hat Process Automation
Manager
コンテナ管理プラットフォーム
Virtual Private cloud
https://www.youtube.com/watch?v=LymzLHRbQdk
コンテナオーケストレーターが求められる背景
従来型の運用体制のままでは、結局コンテナ化したところでリソース把握や管理に追われる固有のアプリケーションやインフラリソースを手作業で対応する時代は終焉
IT Operation
(Manual)
コンテナ運用に必要な作業
コンテナやクラスタシステムを管理するには、 管理者の負担が大きくなりがち ・異常を継続的にチェック ・属人的な障害復旧オペレーション ・手動によるのコンテナ変更作業 ・アプリケーションごとの設定管理 ・ビジネス変化に応じた適切なリソース調整 23自律化するシステム運用 (クラウド環境への適合)
Operatorによる運用の自律化Full-Lifecycle
Deep Insights
Auto Pilot
いままで人が対応してきた障害対応を自律化
Manage with simplicity.
App lifecycle Storage lifecycle - Backup - Failure Recovery Processing and workload analysis - Metrics - Alerts - Logging Horizontal/Vertical Scaling - Auto config - Auto tuning - Abnormal detection - scheduling tuning 24
Enterprise Linux CoreOS
Red Hatが目指すアプリケーションデプロイ
新しいアプリケーションデプロイの展開
Cloud-native apps
AI/ML, Functions...
Traditional apps
サービス提供に対して、環境を意識しない世界
Virtual Private cloud
Bare metal Edge
OpenShiftはKubernetesを補完する付加価値
運用プロセスを含めたポータビリティの実現 AUTOMATED OPERATIONS CLUSTER SERVICES APPLICATION SERVICES DEVELOPER SERVICESMiddleware, Service Mesh Functions, ISV Monitoring, Chargeback Registry, Logging Automated Builds, CI/CD, IDE Any Infrastructure どの環境でも、迅速かつ 信頼性の高いOS どの環境でも、同様の手順 でアプリケーションを稼働 どの環境でも、自動化さ れた運用プロセスを実現
Automated operations
Enterprise Linux CoreOS
27
コンテナアプリの本番適用
OpenShift involve Kubernetes ecosystem with partner & communityCluster Services
クラスタ管理を容易にし、運用業務を自動化するサービス
Physical Virtual Private Any infrastructure
Developer Services
開発者がコンテナアプリケーション開発に集中できる環境を 整えるサービス Cluster services monitoring, showback, registry, logging Application servicesmiddleware, functions, ISV
Service mesh
Developer services
dev tools, automated builds, CI/CD, IDE certified
Application Services
マイクロサービス間の連携やファンクションサービスを実現 を支援するサービス Logging Registry Monitoring ISV Middleware Function Service ServiceMesh IDE CI/CD Developer Tools チームがスピード、アジリティに自信を持っ てビルドできる環境を提供。クラウドネイ ティブな開発を伴う本番へのコード作成を 支援。Build fast. Ship first.
Prometheus fluentd
Istio Knative Operator
Automated operations
堅牢化されたコンテナ実行環境
OpenShift Core supports Developer Productivity & Cluster Management for EnterpriseKubernetes
デファクトスタンダードなコンテナオーケストレーション Installation Configuration Cluster Scalability Cluster Upgrade Security GUI NetworkEnterprise Linux CoreOS
Physical Virtual Private Any infrastructure certified
Cluster Management
高度なセキュリティと監査、可用性、管理の容易性 Cluster services monitoring, showback, registry, logging Application servicesmiddleware, functions, ISV
Service mesh
Developer services
dev tools, automated builds, CI/CD, IDE Declarative Configuration Self-Healing Auto Scaling コンテナスタックのあらゆるレベルとアプリ ケーションライフサイクル全体のセキュリ ティに重点を置いている。
29
参考: Red Hat Advanced Cluster Management for Kubernetes
オンプレとAWSに跨ったハイブリッドなOpenShiftのクラスター管理 ACM はオペレーター として提供されます (ACMを実行するための 専用のOpenShift Clusterが必要) 1) クラスターのライフサイクル管理
● クラスターのライフサイクル管理 (Create, Upgrade, Destroy)
● 各クラスター毎のリソース(CPU, Memory等)使用状況をモニタリング 2) ポリシーベースのガバナンス ● 集中的にセキュリティや、アプリケーション、インフラのポリシーを設定、適用 3) アプリケーション・ライフサイクル管理 3つのポイント!
OpenShift Core Value(For Developer/Operator)
堅牢化された
コンテナ実行環境
エンタープライズシステムの
自律運用化
コンテナアプリの
開発・実行促進
運用を自律化し、開発者のイノベーションを加速する基盤
自動インストールと Kubernetes運用の自律化は OpenShiftの主要な機能であ り、管理、アップグレードを支 援し、難易度の高いコンテナ プラットフォームの提供を容易 にします。 開発者がコードの提供とすぐ に使える豊富なサポートを利 用することで、開発作業に集 中できる環境を提供します。・AMT (Application Migration Toolkit) ・ISV
・CI/CD Pipeline ・Service Mesh Service ・Serverless Service 20年以上にわたってビジネス クリティカルなアプリケーション 向けのOSを提供してきた経験 を、Trustedなコンテナ基盤に 活用しています。 ・RHEL CoreOS ・Container Catalog ・UBI
Trust with Red Hat. Manage with simplicity. Build fast. Ship first.
Red Hat Container Value(for Executive)
1800社以上の
企業が選んだコンテナ基盤
オープンソースリード
既存アプリ開発
スタイルからの脱却
エンタープライズにおけるコンテナリーダーシップ
・コンテナに関するプロダクトの多くが オープンソースを主軸としている。 ・Kubernetesがオープンソース化され た当時からソースへの貢献を行ってい る。 ・Kubernetesだけに関わらず周辺の エ コシステムプロダクトへの貢献 ・開発者向けの SaaSポータル (OpenShift Online)の提供 ・Open Innovation Labの活用 ・豊富なコンテナトレーニング ・Container Adoption Program ・1800社以上のコンテナ導入実績・コンテナに特化した Partner Program (OpenShift Practice Builder
Program/OMPPなど)
・Developerコミュニティの支援
Enterprise market share. Open source empowerment. Modernization for DX.
Source: Company subscription data. CAGR is from FY17 to FY19
1800社以上の企業が選んだコンテナ基盤
https://www.openshift.com/learn/success-stories/
HCA Healthcare uses technology to save lives
OPTUS transforms the teleco customer experiences with OpenShift
Deutsche Bank speeds time to market with OpenShift-based platform
OpenShift enables BMW Groups to deliver continuous service that today’s customers expect.
Financial services Government Telco Media/technology Other 34
35
●
OpenShiftのマネージド・サービスを導入
○
Red HatがAWS上で運用を担当
●
プロビジョニングの時間を5日から1時間に削減
●
自動アップデートとパッチ適用によるガバナンスの向上
●
自前で構築した場合と比べて運用コスト50%の節約
日本語Red Hat OpenShift Dedicated 国内導入事例:
Business Benefit
既存システムと比べ、コンテナ
(Kubernetes)導入に期待する一番のビジ
ネスメリットはなんですか?
*N=582 コンテナ導入には、インフラ側の効果よりも、「開 発の生産性向上 (Agility)」や「アプリケーション運用 の効率化(Cost Reduction)」など、アプリケーション への効果を期待している。アプリ側へのメリット
インフラ側へのメリット
25.9%(N=151)
37アプリケーションワークロードの変遷
すべてをコンテナ化することがゴールではなく、ワークロードに応じた使い分けが必要 Workload BareMetal Virtual Machine Container Time 2010 2020 0% 100% We are HERE 更新頻度の高い ワークロード (ビジネスに柔軟に対応 ) 更新頻度の低い ワークロード 2030 業務効率が企業価値となる時代 ビジネス変化が企業価値となる時 代 38既存アプリ開発スタイルからの脱却
PRE-WORK
RESIDENCY
TRANSITION
Prepare what to expect Agile, DevOps, Lean UX, Design Thinking Roadmap & Scale
Cloud Native Application
Traditional Application
Drive your DX
・開発者向けの SaaSポータル提供 (OpenShift Online)
・Open Innovation Labの活用 ・豊富なコンテナトレーニング (GLS)
Red Hat Open Innovation Labs
スクラム・フレームワークでアジャイル開発を行う方法をレッドハットのコンサルチームが ワークショップ形式でレクチャしリード 共創の場 ● ビジネス側の変革のためにリーンスタートアップ方法論を取り入れる ● 仮説の構築と検証を最低限のコストで行い、顧客ニーズを探り当てる ● 新規/既存 アプリケーションを対象に実践 ● 場所の制約を受けない Lab 環境 (PBI) Lab チーム● Agile/Lean, Architect, Cloud 等の専門性を有するコンサルティングチーム ● お客様とワンチームで実践
● フェーズに合わせてレッドハットのコンサル/エンジニアが3〜5名体制で支援 ● 3~6monthのサイクルで回す
アイデアをイノベーションに変える
文化、プロセス、技術を育成
Red HatとAWS様による、お客様の今後のビジネス推進支援
41
●
Red Hat OpenShift Service on AWSによるマネージドなコンテナ基盤を提供
○ 迅速かつ効率的に、信頼できるコンテナ基盤の構築が可能
○ AWS Service BrokerやOperatorを利用したAWSマネージドサービスとの効率的な連携