Submit Search
Upload
Legacy App Operator というパワーワードで Cloud Native 時代を乗り越えられないか考えてみた
•
Download as PPTX, PDF
•
2 likes
•
930 views
Daiki Kawanuma
Follow
2019/12/20 OPENSHIFT.RUN 発表資料
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 17
Download now
Recommended
Machine configoperatorのちょっとイイかもしれない話
Machine configoperatorのちょっとイイかもしれない話
Toshihiro Araki
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
Daiki Kawanuma
マルチテナントECシステムにおける拡張性と最新性の両立
マルチテナントECシステムにおける拡張性と最新性の両立
水野 謙
Java on Azure 2019
Java on Azure 2019
Yoshio Terada
Java on Azure 2019
Java on Azure 2019
Yoshio Terada
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
Yoichi Kawasaki
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Masaki Yamamoto
Java によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けて
Shigeru Tatsuta
Recommended
Machine configoperatorのちょっとイイかもしれない話
Machine configoperatorのちょっとイイかもしれない話
Toshihiro Araki
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
Daiki Kawanuma
マルチテナントECシステムにおける拡張性と最新性の両立
マルチテナントECシステムにおける拡張性と最新性の両立
水野 謙
Java on Azure 2019
Java on Azure 2019
Yoshio Terada
Java on Azure 2019
Java on Azure 2019
Yoshio Terada
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
Yoichi Kawasaki
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Masaki Yamamoto
Java によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けて
Shigeru Tatsuta
GitLab Auto DevOps with Container CI/CD
GitLab Auto DevOps with Container CI/CD
Shingo Kitayama
Circle of Code with Cloud Foundry
Circle of Code with Cloud Foundry
Tomohiro Ichimura
Jjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring Cloud
Yoshio Terada
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
Yoshio Terada
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
Japan Container Days: 「今こそKubernetes。最高の仕事道具で使いこなそう」by capsmalt
Japan Container Days: 「今こそKubernetes。最高の仕事道具で使いこなそう」by capsmalt
capsmalt
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
Kazuto Kusama
Java on Kubernetes on Azure
Java on Kubernetes on Azure
Yoshio Terada
20220302_TechDojo_OpenShift_BootCamp_1章概要
20220302_TechDojo_OpenShift_BootCamp_1章概要
Airi Furukawa
Wagby on Cloud Foundry
Wagby on Cloud Foundry
Tomohiro Ichimura
Garden introduction for dea users public
Garden introduction for dea users public
Takehiko Amano
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Yoichi Kawasaki
Krustlet101
Krustlet101
Shiho ASA
Spring native について
Spring native について
Takamasa Mitsuji
ソフトバンクにおける Java による クラウドネイティブの実現
ソフトバンクにおける Java による クラウドネイティブの実現
Shigeru Tatsuta
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure
Issei Hiraoka
Kubernetesのない世界 すべてがサーバーレスになる
Kubernetesのない世界 すべてがサーバーレスになる
真吾 吉田
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要
Takekazu Omi
Kubernetes 導入から始める DevOps について
Kubernetes 導入から始める DevOps について
Shigeru Tatsuta
5分でわかる Capabilities と Privilege + KubeCon Recap
5分でわかる Capabilities と Privilege + KubeCon Recap
Masaya Aoyama
HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解
Monaca
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
Masataka MIZUNO
More Related Content
What's hot
GitLab Auto DevOps with Container CI/CD
GitLab Auto DevOps with Container CI/CD
Shingo Kitayama
Circle of Code with Cloud Foundry
Circle of Code with Cloud Foundry
Tomohiro Ichimura
Jjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring Cloud
Yoshio Terada
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
Yoshio Terada
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
Japan Container Days: 「今こそKubernetes。最高の仕事道具で使いこなそう」by capsmalt
Japan Container Days: 「今こそKubernetes。最高の仕事道具で使いこなそう」by capsmalt
capsmalt
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
Kazuto Kusama
Java on Kubernetes on Azure
Java on Kubernetes on Azure
Yoshio Terada
20220302_TechDojo_OpenShift_BootCamp_1章概要
20220302_TechDojo_OpenShift_BootCamp_1章概要
Airi Furukawa
Wagby on Cloud Foundry
Wagby on Cloud Foundry
Tomohiro Ichimura
Garden introduction for dea users public
Garden introduction for dea users public
Takehiko Amano
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Yoichi Kawasaki
Krustlet101
Krustlet101
Shiho ASA
Spring native について
Spring native について
Takamasa Mitsuji
ソフトバンクにおける Java による クラウドネイティブの実現
ソフトバンクにおける Java による クラウドネイティブの実現
Shigeru Tatsuta
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure
Issei Hiraoka
Kubernetesのない世界 すべてがサーバーレスになる
Kubernetesのない世界 すべてがサーバーレスになる
真吾 吉田
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要
Takekazu Omi
Kubernetes 導入から始める DevOps について
Kubernetes 導入から始める DevOps について
Shigeru Tatsuta
5分でわかる Capabilities と Privilege + KubeCon Recap
5分でわかる Capabilities と Privilege + KubeCon Recap
Masaya Aoyama
What's hot
(20)
GitLab Auto DevOps with Container CI/CD
GitLab Auto DevOps with Container CI/CD
Circle of Code with Cloud Foundry
Circle of Code with Cloud Foundry
Jjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring Cloud
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
Japan Container Days: 「今こそKubernetes。最高の仕事道具で使いこなそう」by capsmalt
Japan Container Days: 「今こそKubernetes。最高の仕事道具で使いこなそう」by capsmalt
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
Java on Kubernetes on Azure
Java on Kubernetes on Azure
20220302_TechDojo_OpenShift_BootCamp_1章概要
20220302_TechDojo_OpenShift_BootCamp_1章概要
Wagby on Cloud Foundry
Wagby on Cloud Foundry
Garden introduction for dea users public
Garden introduction for dea users public
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Krustlet101
Krustlet101
Spring native について
Spring native について
ソフトバンクにおける Java による クラウドネイティブの実現
ソフトバンクにおける Java による クラウドネイティブの実現
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure
Kubernetesのない世界 すべてがサーバーレスになる
Kubernetesのない世界 すべてがサーバーレスになる
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要
Kubernetes 導入から始める DevOps について
Kubernetes 導入から始める DevOps について
5分でわかる Capabilities と Privilege + KubeCon Recap
5分でわかる Capabilities と Privilege + KubeCon Recap
Similar to Legacy App Operator というパワーワードで Cloud Native 時代を乗り越えられないか考えてみた
HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解
Monaca
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
Masataka MIZUNO
HTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティス
アシアル株式会社
Intalio japan special cloud workshop
Intalio japan special cloud workshop
Daisuke Sugai
Introduction to web development 1
Introduction to web development 1
hideaki honda
Salesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれ
寛 吉田
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
Etsuji Nakai
Force.com開発基礎
Force.com開発基礎
Salesforce Developers Japan
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践
bitbank, Inc. Tokyo, Japan
Jawsug chiba API Gateway
Jawsug chiba API Gateway
Takuro Sasaki
[AWSマイスターシリーズ] AWS Elastic Beanstalk
[AWSマイスターシリーズ] AWS Elastic Beanstalk
Amazon Web Services Japan
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)
Monaca
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
Amazon Web Services Japan
サーバーレスの今とこれから
サーバーレスの今とこれから
真吾 吉田
Google Compute EngineとPipe API
Google Compute EngineとPipe API
maruyama097
Google Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline API
maruyama097
Azureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流について
真吾 吉田
Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発
Akihiro Iwaya
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
Koichiro Sumi
[Modern Cloud Day Tokyo 2019] Oracle Functions = サーバーレス × Dockerコンテナ:AWS Lamb...
[Modern Cloud Day Tokyo 2019] Oracle Functions = サーバーレス × Dockerコンテナ:AWS Lamb...
オラクルエンジニア通信
Similar to Legacy App Operator というパワーワードで Cloud Native 時代を乗り越えられないか考えてみた
(20)
HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
HTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティス
Intalio japan special cloud workshop
Intalio japan special cloud workshop
Introduction to web development 1
Introduction to web development 1
Salesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれ
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
Force.com開発基礎
Force.com開発基礎
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践
Jawsug chiba API Gateway
Jawsug chiba API Gateway
[AWSマイスターシリーズ] AWS Elastic Beanstalk
[AWSマイスターシリーズ] AWS Elastic Beanstalk
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
サーバーレスの今とこれから
サーバーレスの今とこれから
Google Compute EngineとPipe API
Google Compute EngineとPipe API
Google Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline API
Azureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流について
Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
[Modern Cloud Day Tokyo 2019] Oracle Functions = サーバーレス × Dockerコンテナ:AWS Lamb...
[Modern Cloud Day Tokyo 2019] Oracle Functions = サーバーレス × Dockerコンテナ:AWS Lamb...
Legacy App Operator というパワーワードで Cloud Native 時代を乗り越えられないか考えてみた
1.
Legacy App Operator
というパワーワードで Cloud Native 時代を乗り越えられないか 考えてみた 2019-12-20 OPENSHIFT.RUN Daiki Kawanuma IBM Japan, Ltd.
2.
本発表はあくまで思考実験です。 ですが、使えるかも(?)と思えるエッセンスもあります。 どこまで本気なのかはご自身で判断ください。 本発表は私自身の見解であり、 所属組織の立場、戦略、意見を代表するものではありません。
3.
Cloud Native 時代
4.
「Lift & Shift
だ」と人々は言う でも実際に Shift しますか? Lift Shift OS App OS App OS App
5.
Forcibly run legacy
apps on Kubernetes using Operator Legacy App Operator
6.
対象となるレガシーアプリ やばさ その1 レガシーアプリの仕様 JDK
バージョン:1.5 フレームワーク:使用せずスクラッチ ビルド方式:Apache Antベースの独自仕様 パッケージ方式:war アプリケーションサーバ:Tomcat 使用プロトコル:http/https, JDBC, RMI Web Batch Server Batch Timer DB JDBC JDBC JDBC RMI RMI
7.
対象となるレガシーアプリ やばさ その2 ビルド方式 Ant
ベースの独自 Windows バッチ 数十のフォルダを強引にwar構造にした上で 1つの巨大なwarファイルを作り上げる アプリケーション構造 1つのwarであるにも関わらずプロセスは3つ warを展開した後、個別にプロセスを起動 依存関係があり、起動の順番に注意が必要 # BatchServer コンポーネントプロセス java -cp /opt/apache-tomcat/…/classes/: ¥ labo.hirarins.legacy.app.batch.Server & # BatchTimer コンポーネントプロセス java -cp /opt/apache-tomcat/…/classes/: ¥ labo.hirarins.legacy.app.batch.Timer & # Web コンポーネントプロセス (Tomcat プロセス) /opt/apache-tomcat/bin/catalina.sh run
8.
対象となるレガシーアプリ やばさ その3 RMI通信先の ハードコーディング private static
synchronized void setRegistry() { if (registry == null) { registry = LocateRegistry.getRegistry("localhost"); } } アプリケーション起動時の 初期データ書き込み 起動 ↓ 初期データ書き込み ↓ 再起動 ↓ 初期データ書き込み失敗 起動 ↓ 初期データ書き込み ↓ スケールアウト ↓ 初期データ書き込み失敗 ←データ削除が必要→ アカウントロック解除機能の 欠如 ログイン失敗数超過 ↓ ロック解除依頼メール送信 ↓ 運用担当者のオペレーションで解除 バッチ処理の リカバリ・リラン • 単純リランで解決するバッチ処理エラーなど存在しない • 運用監視システムによって発報された障害連絡が運用担当者に届く • 昼夜問わず対応が強いられる
9.
対象となるレガシーアプリ やばさ その4 アプリ改修 ダメ、絶対 業務チーム
10.
対象となるレガシーアプリ やばさ その4 業務チーム 基盤チーム
11.
Legacy App Operator その1 apiVersion:
”example.com/v1" kind: LegacyApp metadata: name: enterprise-xxx spec: db-hostname: postgres.default.svc.cluster.local db-port: 5432 db-dbname: postgres db-user: postgres db-password: password 業務チームにやってもらうこと legacyapp-cr.yaml これだけ!! 1. ビルド済み War の提供 2. CR.yaml の提供
12.
Legacy App Operator その2 機能別に
Pod を分離 Web Batch Server Batch Timer catalina.sh java BatchServer java BatchTimer Ambassador コンテナの差し込み Web Batch Server Batch Timer localhost:1099 localhost:1099 batch-server:1099
13.
Legacy App Operator その3 アカウントロック解除 &
バッチ処理 リカバリ batchtimer- deployment.yaml アカウントロック 解除用コンテナ バッチリカバリ 用コンテナ スケールアウト対応 Web Web DB Pod起動時に DBを初期化 by initContainers
14.
regacy- app:1.0.0 war 1. Legacy App
Dockerfile batch-server- deployment .yaml batch-timer- deployment .yaml web- deployment .yaml 2. Legacy App Deployments ref legacyapp- operator .shapply 5. Operator Shell operator: 1.0.0include 6. Operator Dockerfile operator- deployment .yaml 7. Operator Deployment ref legacyapp- cr.yaml legacyapp- crd.yaml 4. Legacy App CR 3. Legacy App CRD ref listen 基盤チーム 業務チーム
15.
もともとは1つの war だったものを Operator
で強引に分割して動かすことができた Web Web DB Batch Server Batch Timer
16.
Legacy App Operator
案外いけるんじゃない?
17.
EOF
Download now