際際滷

際際滷Share a Scribd company logo
Legacy App Operator というパワ`ワ`ドで
Cloud Native r旗を\り埆えられないか
深えてみた
2019-12-20
OPENSHIFT.RUN
Daiki Kawanuma
IBM Japan, Ltd.
云k燕はあくまで房深gYです。
ですが、聞えるかも(?)と房えるエッセンスもあります。
どこまで云櫃覆里はご徭附で登僅ください。
云k燕は暴徭附の盾であり、
侭奉Mの羨、藺圈吭を旗燕するものではありません。
Cloud Native r旗
仝Lift & Shift だ々と繁?は冱う
でもgHに Shift しますか
Lift Shift
OS
App
OS
App
OS
App
Forcibly run legacy apps on
Kubernetes using Operator
Legacy App
Operator
鵑箸覆襯譽シ`アプリ
やばさ その1
レガシ`アプリの碧
? JDK バ`ジョン1.5
? フレ`ムワ`ク妻荒辰擦坤好ラッチ
? ビルド圭塀Apache Antベ`スの鏡徭碧
? パッケ`ジ圭塀war
? アプリケ`ションサ`バTomcat
? 聞喘プロトコルhttp/https, JDBC, RMI
Web
Batch
Server
Batch
Timer
DB
JDBC
JDBC
JDBC
RMI
RMI
鵑箸覆襯譽シ`アプリ
やばさ その2
ビルド圭塀
? Ant ベ`スの鏡徭 Windows バッチ
? 方噴のフォルダを哈にwar夛にした貧で
1つの賞寄なwarファイルを恬り貧げる
アプリケ`ション夛
? 1つのwarであるにもvわらずプロセスは3つ
? warを婢_した瘁、eにプロセスを軟
? 卆贋vSがあり、軟咾零桑に廣吭が駅勣
# 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
鵑箸覆襯譽シ`アプリ
やばさ その3
RMI宥佚枠の
ハ`ドコ`ディング
private static synchronized void setRegistry() {
if (registry == null) {
registry = LocateRegistry.getRegistry("localhost");
}
}
アプリケ`ション軟rの
兜豚デ`タきzみ
軟
◎
兜豚デ`タきzみ
◎
壅軟
◎
兜豚デ`タきzみ払
軟
◎
兜豚デ`タきzみ
◎
スケ`ルアウト
◎
兜豚デ`タきzみ払
○デ`タ茅が駅勣★
アカウントロック盾茅C嬬の
之泌
ログイン払(階^
◎
ロック盾茅卆mメ`ル僕佚
◎
\喘毅輝宀のオペレ`ションで盾茅
バッチI尖の
リカバリ?リラン
? gリランで盾Qするハ?ッチI尖エラ`なと?贋壓しない
? \喘Oシステムによってk鵑気譴腎郎Bjが\喘毅輝宀に曙く
? 帛匚わす?鬉いられる
鵑箸覆襯譽シ`アプリ
やばさ その4
アプリ個俐
ダメ、~
I侫践`ム
鵑箸覆襯譽シ`アプリ
やばさ その4
I侫践`ム 児Pチ`ム
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
I侫践`ムにやってもらうこと
legacyapp-cr.yaml
これだけ。
1. ビルドgみ War の戻工
2. CR.yaml の戻工
Legacy App Operator
その2
C嬬eに Pod を蛍x
Web Batch
Server
Batch
Timer
catalina.sh
java
BatchServer
java
BatchTimer
Ambassador コンテナの餓しzみ
Web
Batch
Server
Batch
Timer
localhost:1099
localhost:1099
batch-server:1099
Legacy App Operator
その3
アカウントロック盾茅
 バッチI尖 リカバリ
batchtimer-
deployment.yaml
アカウントロック
盾茅喘コンテナ
ハ?ッチリカハ?リ
喘コンテナ
スケ`ルアウト
Web Web
DB
Pod軟rに
DBを兜豚晒
by initContainers
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
児Pチ`ム
I侫践`ム
もともとは1つの war だったものを
Operator で哈に蛍護して咾すことができた
Web
Web
DB
Batch
Server
Batch
Timer
Legacy App Operator 宛翌いけるんじゃない
EOF

More Related Content

Legacy App Operator というパワ`ワ`ドで Cloud Native r旗を\り埆えられないか深えてみた