Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΊΠ°Ρ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ ΠΎΡ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠΈ ΠΊΡΠΌ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ βΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°β (PaaS), ΠΊΠ°ΡΠΎ RedHat OpenShift v3, AppDynamics Π½Π°ΠΏΡΠ°Π²ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΈΠΈ Π² ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΡΠ²ΠΎΠΊΠ»Π°ΡΠ½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠ°ΠΊΠΈΠ²Π° Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈ.
AppDynamics ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° ΡΠ²ΠΎΠΈΡΠ΅ Π°Π³Π΅Π½ΡΠΈ Ρ RedHat OpenShift v3, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈΡΠ΅ Source-to-Image (S2I). S2I Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΈ Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π’ΠΎΠΉ ΡΡΠ·Π΄Π°Π²Π° Π³ΠΎΡΠΎΠ²ΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π· ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΎ Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΠ²ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ) ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ, Π³ΠΎΡΠΎΠ² Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΠΊΠ΅Ρ. S2I ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ ΠΈ Ρ.Π½.
ΠΏΡΠΎΡΠ΅Ρ
ΠΡΠ»Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° AppDynamics Ρ RedHat OpenShift
Π‘ΡΡΠΏΠΊΠ° 1: RedHat Π²Π΅ΡΠ΅ Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½
ΠΠ° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΡΡΡΠΏΠΊΠΈ 2 ΠΈ 3, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ S2I ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅ Π² ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° GitHub ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π° JBoss Wildfly ΠΈ EAP ΡΡΡΠ²ΡΡΠΈ.
ΠΠ±ΠΌΠΈΡΠ»Π΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π° Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠ΅Π΄ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ:
- Π£Π²Π΅ΡΠ΅ΡΠ΅ ΡΠ΅, ΡΠ΅ OC Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ (
Π²ΡΡΠ·ΠΊΠ° ) - Π£Π²Π΅ΡΠ΅ΡΠ΅ ΡΠ΅, ΡΠ΅ 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