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