top aws devops tools
Les millors eines DevOps d'Amazon AWS: una canonada , repositori, compilació i desplegament de codi font amb Amazon Web Services
Quan vaig començar la meva carrera com a programari fa més de vint anys, calia adquirir la infraestructura (programari i maquinari) per a qualsevol tipus de desenvolupament i desplegament.
Això incloïa fer comandes al proveïdor per a servidors, esperar un cert temps per obtenir el mateix, un cop s’havia de reservar l’espai del servidor lliurat, instal·lació del servidor, sistema operatiu, configuració d’emmagatzematge, etc. També ens havia de preocupar rendiment, disponibilitat (24 * 7), manteniment, xarxa, etc.
Això va suposar un esforç excessiu en la creació d'un servidor per a activitats de desenvolupament i desplegament d'aplicacions.
Què aprendreu:
- Evolució del Cloud Computing
- Compilació i desplegament mitjançant AWS Tools
- Integració de Jenkins amb els serveis AWS
- Lectura recomanada
Evolució del Cloud Computing
Les coses van haver de canviar amb l'evolució del Cloud Computing, cosa que significa que accediu a totes les vostres aplicacions i bases de dades per Internet. Així, els proveïdors de Cloud Computing mantenen tot el maquinari necessari per executar la vostra aplicació web.
Tots els recursos amb la configuració adequada que necessiteu per allotjar la vostra aplicació estan disponibles en un clic. El temps es redueix dràsticament per posar a disposició dels recursos els desenvolupadors. El més important és que només pagueu pel que heu d’utilitzar.
L’objectiu dels desenvolupadors que utilitzen serveis basats en el núvol només és el que necessiten per treballar en els nostres projectes i no preocupar-se per la disponibilitat d’infraestructures. No em dedico als tipus de computació en núvol (IaaS, PaaS, SaaS), hi ha un munt d'informació disponible a Internet per descriure què són.
Hi ha molts proveïdors de núvol. Però els 3 més populars amb els quals he treballat són:
- Serveis web d’Amazon
- Microsoft Azure
- Google Cloud
En aquesta secció, em centraré en les eines per a una canonada , repositori, compilació i desplegament de codi font amb Serveis web d’Amazon . Per no oblidar que els equips encara fan servir eines DevOps com Jenkins, Git, Maven i altres.
Per tant, és imprescindible que, tot i que els equips vulguin traslladar els seus actius i artefactes a la infraestructura del núvol, també hem de maximitzar les inversions existents en eines i dades amb integracions / migracions en la mesura del possible.
Feu clic a aquí per conèixer AWS i els diversos serveis per a arquitectes, desenvolupadors i SysOPS. Utilitzarem el compte gratuït per a les eines esmentades, però, per descomptat, en un entorn de producció, haureu de contractar els serveis per utilitzar-los.
Compilació i desplegament mitjançant AWS Tools
Des del punt de vista de compilació i desplegament, analitzarem els serveis AWS següents
on veure animis en línia de forma gratuïta
- AWS CodePipeline
- AWS CodeCommit
- AWS CodeBuild
- AWS CodeDeploy
1. AWS CodePipeline
AWS CodePipeline és similar al Jenkins Pipeline, que ajuda a tenir una visió visual del procés de lliurament de final a final.
Per tant, en un CodePipeline, normalment configureu el següent
- Dipòsit de codi font - Per tant, el vostre codi font hauria d'estar al repositori AWS CodeCommit o GitHub.
- Servei de construcció - Els detalls de AWS CodeBuild es configuraran com a part de la canonada.
- Desplegar - AWS CodeDeploy es configurarà a la canonada.
- Durant el procés de desplegament a diferents entorns, si cal alguna aprovació, també es podrien configurar
Per tant, si hi ha un canvi de codi per part del desenvolupador, la representació visual de Build and Deploy es pot veure automatitzada.
Configuració del dipòsit de codi font a AWS CodePipeline
Configuració de compilació a AWS CodePipeline que utilitza la compilació de Maven
Configuració de desplegament a AWS CodePipeline
L’execució completa es veu a AWS CodePipeline
2. AWS CodeCommit
AWS CodeCommit és un servei de control de versions en línia segur que allotja repositoris privats de Git. Un equip no necessita mantenir el seu propi dipòsit de control de versions, sinó que utilitza AWS CodeCommit per emmagatzemar el seu codi font o fins i tot binaris com els fitxers WAR / JAR / EAR generats fora de la compilació.
Amb AWS CodeCommit, creeu un dipòsit i tots els desenvolupadors el clonaran a la màquina local, hi afegiran fitxers i el tornaran a introduir al dipòsit AWS CodeCommit. Un utilitza les ordres GIT estàndard amb el repositori AWS CodeCommit.
Per a Per exemple. un cop clonat el repositori AWS CodeCommit a la màquina local, faríeu servir ordres com 'git pull', 'git add', 'git commit', 'git push', etc.
S'ha creat un repositori buit AWS CodeCommit il·lustratiu
Cloneu el dipòsit a la màquina local
Fitxers afegits al dipòsit AWS CodeCommit
3. AWS CodeBuild
Com hem vist, el codi font i altres artefactes del projecte s'emmagatzemen al dipòsit AWS CodeCommit.
Per implementar la integració contínua AWS CodeBuild com si Jenkins obtingui els darrers canvis del codi font del dipòsit AWS CodeCommit o GitHub tal com es configura i es basa en l'especificació de compilació Fitxer YAML (creades com buildspec.yml) les ordres s'executen basant-se en les quatre fases com Instal·lar, Pre-construir, Construir i Post-construir.
Un cop finalitzada la compilació, els artefactes (WAR / ZIP / JAR / EAR) s’emmagatzemen a l’AWS Storage, que és un dipòsit S3.
Mostra el fitxer buildspec.yml
version: 0.2 phases: install: commands: - echo Nothing in the install phase... pre_build: commands: - echo Nothing in the pre_build phase... build: commands: - echo Build started on `date` - mvn clean install post_build: commands: - echo Build completed on `date` artifacts: files: - target/HelloWorld-Maven.war
Mostra de projecte AWS Codebuild
Construeix l’èxit
Artefacte (fitxer WAR) copiat al dipòsit S3
4. AWS CodeDeploy
Com el seu nom indica, AWS Codedeploy és el servei de desplegament que automatitza el desplegament de l'aplicació (en aquest cas fitxer WAR) a les instàncies Amazon EC2 Linux o Windows.
Com que ara tenim els artefactes emmagatzemats al dipòsit S3 que es va completar amb AWS CodeBuild, els artefactes es recullen del dipòsit S3 i es desplegaran adequadament al servidor d'aplicacions Tomcat o JBoss, etc., al subministrament d'instàncies AWS EC2.
AWS CodeDeploy depèn d'un fitxer YAML anomenat appspec.yml que conté instruccions sobre el desplegament a les instàncies EC2.
Mostra el fitxer appspec.yml on es copia el fitxer index.html i es desplega al servidor Apache
version:10.0 os:linux files: -source: /opt/deploy/index.html destination:/var/www/html/ hooks: BeforeInstall: -location:scripts/before_install runas:niranjan AfterInstall: -location:scripts/restart_server runas:niranjan
abans_instal·lar guió
restart_server guió
Reposició de GitHub de tots els fitxers necessaris per executar AWS CodeDeploy
Execució del desplegament a AWS CodeDeploy
Integració de Jenkins amb els serveis AWS
Com es va esmentar anteriorment, avui en dia els equips utilitzen Jenkins com a eina defacto CI i, en la majoria dels casos, no els agradaria allunyar-se’n, sinó integrar-se amb els serveis AWS que hem comentat. Tot i que hi ha certs procediments implicats i he mostrat captures de pantalla de la integració.
1. Integració de Jenkins amb AWS CodeCommit
2. Integració de Jenkins amb AWS CodeBuild
3. Integració de Jenkins amb AWS CodeDeploy
Unir-ho tot per a AWS DevOps Stack:
La pila es mostra a continuació per als serveis AWS que es descriuen més amunt.
Espero que aquest tutorial, eines per a una canonada , repositori, compilació i desplegament de codi font amb Amazon Web Services, us ha estat útil.
Lectura recomanada
- Tutorial AWS CodeCommit per a la implementació de DevOps al núvol
- Treballar a l'eina AWS CodeDeploy DevOps per al desplegament automatitzat
- Desplegament continu a DevOps
- Les millors eines de prova de programari 2021 (Eines d'automatització de proves de control de qualitat)
- Tutorial AWS CodeBuild: extracció de codi de Maven Build
- Lliurament continu en DevOps
- 10 MILLORS eines de monitorització del núvol per a una gestió perfecta del núvol
- Proves contínues en DevOps