Π‘ΠΎ ΠΎΠ³Π»Π΅Π΄ Π½Π° ΡΠΎΠ° ΡΡΠΎ ΠΌΠ½ΠΎΠ³Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΠΎΠ΄Π°ΠΌΠ½Π° ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°Π°Ρ Π΄Π° Π³ΠΈ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ°Ρ ΡΠ²ΠΎΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΠ΄ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠΈ Π½Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΠΊΠΎ ΡΡΠ»ΡΠ³Π° (PaaS), ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ RedHat OpenShift v3, AppDynamics Π½Π°ΠΏΡΠ°Π²ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΈΠΈ Π²ΠΎ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΠ΅ΡΠΎ Π²ΡΠ²Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΡΠΎ ΡΠ°ΠΊΠ²ΠΈΡΠ΅ ΠΏΡΠΎΠ²Π°ΡΠ΄Π΅ΡΠΈ.
AppDynamics Π³ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° ΡΠ²ΠΎΠΈΡΠ΅ Π°Π³Π΅Π½ΡΠΈ ΡΠΎ RedHat OpenShift v3 ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈΡΠ΅ Source-to-Image (S2I). S2I Π΅ Π°Π»Π°ΡΠΊΠ° Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ Π½Π° ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΈ Docker ΡΠ»ΠΈΠΊΠΈ. Π‘ΠΎΠ·Π΄Π°Π²Π° ΡΠ»ΠΈΠΊΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΡΠΎ Π²ΠΌΠ΅ΡΠ½ΡΠ²Π°ΡΠ΅ Π½Π° ΠΈΠ·Π²ΠΎΡΠΎΡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π²ΠΎ ΡΠ»ΠΈΠΊΠ° Π½Π° Docker ΠΈ Π³ΡΠ°Π΄Π΅ΡΠ΅ Π½ΠΎΠ²Π° ΡΠ»ΠΈΠΊΠ° Π½Π° Docker. ΠΠΎΠ²Π°ΡΠ° ΡΠ»ΠΈΠΊΠ°, ΠΊΠΎΡΠ° Π²ΠΊΠ»ΡΡΡΠ²Π° ΠΎΡΠ½ΠΎΠ²Π½Π° ΡΠ»ΠΈΠΊΠ° (Π³ΡΠ°Π΄ΠΈΡΠ΅Π») ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ ΠΈΠ·Π²ΠΎΡ, Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½Π° Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π° ΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° docker run. S2I ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈ Π³ΡΠ°Π΄Π±ΠΈ ΠΊΠΎΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΏΡΠ΅ΡΡ
ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅Π·Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠ΅ΡΡ
ΠΎΠ΄Π½ΠΎ ΠΊΡΠ΅ΠΈΡΠ°Π½ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ ΠΈΡΠ½.
ΠΏΡΠΎΡΠ΅Ρ
ΠΠΎΠΌΠΏΠ»Π΅ΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ Π·Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° AppDynamics ΡΠΎ RedHat OpenShift
Π§Π΅ΠΊΠΎΡ 1: RedHat Π²Π΅ΡΠ΅ Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½
ΠΠ° Π΄Π° Π³ΠΈ Π·Π°Π²ΡΡΠΈΡΠ΅ ΡΠ΅ΠΊΠΎΡΠΈΡΠ΅ 2 ΠΈ 3, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ S2I ΡΠΊΡΠΈΠΏΡΠΈΡΠ΅ Π²ΠΎ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ Π½Π° GitHub ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΡΠΎΠ° ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ Π³ΡΠ°Π΄ΠΈΡΠ΅Π» ΡΠ»ΠΈΠΊΠΈ Π·Π° ΡΠ΅ΡΠ²Π΅ΡΠΈΡΠ΅ JBoss Wildfly ΠΈ EAP.
ΠΡΠ΄Π΅ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΡΓ¨ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ ΠΎΠ±ΡΠ°Π·Π΅Ρ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°
ΠΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈ:
- ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΠΠ‘ (
Π»ΠΈΠ½ΠΊ ) - ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ sti (
Π»ΠΈΠ½ΠΊ ) - ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ ΠΈΠΌΠ°ΡΠ΅ ΡΠΌΠ΅ΡΠΊΠ° Π½Π° dockerhub (
Π»ΠΈΠ½ΠΊ )
Π§Π΅ΠΊΠΎΡ 2: Π‘ΠΎΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ»ΠΈΠΊΠ° Π½Π° AppDynamics Builder
$ git clone https://github.com/Appdynamics/sti-wildfly.git
$ cd sti-wildfly
$ make build VERSION=eap6.4
Π§Π΅ΠΊΠΎΡ 3: Π‘ΠΎΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ»ΠΈΠΊΠ° Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°
$ s2i build -e βAPPDYNAMICS_APPLICATION_NAME=os3-ticketmonster,APPDYNAMICS_TIER_NAME=os3-ticketmonster-tier,APPDYNAMICS_ACCOUNT_NAME=customer1_xxxxxxxxxxxxxxxxxxf,APPDYNAMICS_ACCOUNT_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxx,APPDYNAMICS_CONTROLLER_HOST=xxxx.saas.appdynamics.com,APPDYNAMICS_CONTROLLER_PORT=443,APPDYNAMICS_CONTROLLER_SSL_ENABLED=trueβ https://github.com/jim-minter/ose3-ticket-monster appdynamics/sti-wildfly-eap64-centos7:latest pranta/appd-eap-ticketmonster
$ docker tag openshift-ticket-monster pranta/openshift-ticket-monster:latest
$ docker push pranta/openshift-ticket-monster
Π§Π΅ΠΊΠΎΡ 4: ΡΠ°ΡΠΏΠΎΡΠ΅Π΄Π΅ΡΠ΅ ΡΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° OpenShift
$ oc login 10.0.32.128:8443
$ oc new-project wildfly
$ oc project wildfly
$ oc new-app βdocker-image=pranta/appd-eap-ticketmonster:latest βname=ticketmonster-demo
Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΠ°Π²ΠΈΡΠ΅ Π²ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΎΡΠΎΡ ΠΈ Π΄Π° ΡΠ° Π²ΠΈΠ΄ΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ticketmonster Π²ΠΎ Π»Π΅Π½ΡΠ°ΡΠ° ΡΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ:
ΠΠ·Π²ΠΎΡ: www.habr.com