top aws devops tools
Cele mai bune instrumente Amazon AWS DevOps: o conductă , depozit de cod sursă, construire și implementare cu Amazon Web Services
Când mi-am început cariera în domeniul software-ului, în urmă cu peste 20 de ani, infrastructura (software și hardware) pentru orice fel de dezvoltare și implementare a trebuit să fie achiziționată.
Aceasta a inclus plasarea comenzii la furnizor pentru servere, așteptarea unui anumit timp pentru a obține același lucru, odată ce a fost rezervat spațiul serverului livrat, instalarea serverului, sistemul de operare, configurația de stocare etc. De asemenea, a trebuit să ne îngrijorăm performanță, disponibilitate (24 * 7), întreținere, rețea etc.
Acesta a fost un efort prea mare implicat în creșterea unui server pentru activități de dezvoltare și implementare a aplicațiilor.
Ce veți învăța:
- Evoluția Cloud Computing
- Construiți și implementați folosind AWS Tools
- Integrarea Jenkins cu serviciile AWS
- Lectură recomandată
Evoluția Cloud Computing
Lucrurile au trebuit să se schimbe odată cu evoluția Cloud Computing, ceea ce înseamnă că vă accesați toate aplicațiile și bazele de date pe internet. Deci, furnizorii de cloud computing întrețin tot hardware-ul necesar pentru a rula aplicația dvs. web.
Toate resursele cu o configurație adecvată de care aveți nevoie pentru a găzdui aplicația dvs. sunt disponibile într-un clic. Timpul este redus drastic pentru punerea la dispoziție a resurselor pentru dezvoltatori. Cel mai important este că plătiți doar pentru ceea ce trebuie să utilizați.
Accentul pentru dezvoltatorii care utilizează servicii bazate pe Cloud este doar de ceea ce au nevoie pentru a lucra la proiectele noastre și pentru a nu se îngrijora de disponibilitatea infrastructurii. Nu intru în tipuri de cloud computing (IaaS, PaaS, SaaS) există o mulțime de informații disponibile pe internet pentru a descrie care sunt acestea.
Există mulți furnizori de cloud. Dar cele mai populare 3 cu care am lucrat sunt:
- Servicii Web Amazon
- Microsoft Azure
- Google Cloud
În această secțiune, mă voi concentra asupra instrumentelor pentru o conductă , depozit de cod sursă, construire și implementare cu Servicii Web Amazon . Să nu uităm că echipele încă folosesc instrumente DevOps precum Jenkins, Git, Maven și altele.
Deci, este imperativ ca, deși echipele ar putea dori să-și mute activele și artefactele în infrastructura cloud, trebuie, de asemenea, să maximizăm investițiile existente în instrumente și date cu integrări / migrări, pe cât posibil.
Clic Aici pentru a afla despre AWS și diferitele servicii pentru arhitecți, dezvoltatori și SysOPS. Vom folosi contul gratuit pentru instrumentele menționate, dar, desigur, într-un mediu de producție, va trebui să procurați serviciile pentru utilizare.
Construiți și implementați folosind AWS Tools
Din punct de vedere Build and Deployment, vom analiza următoarele servicii AWS
cum devin tester de produse
- AWS CodePipeline
- AWS CodeCommit
- AWS CodeBuild
- AWS CodeDeploy
1. AWS CodePipeline
AWS CodePipeline este similar cu Jenkins Pipeline, care ajută la o vizualizare vizuală a procesului de livrare de la un capăt la altul.
Deci, într-un CodePipeline, veți configura de obicei următoarele
- Depozit de cod sursă - Deci, codul dvs. sursă ar trebui să fie fie în AWS CodeCommit, fie în depozitul GitHub.
- Serviciu de construire - Detaliile AWS CodeBuild vor fi configurate ca parte a conductei.
- Implementați - AWS CodeDeploy va fi configurat în conductă.
- În timpul procesului de implementare în diferite medii, dacă sunt necesare aprobări, acestea ar putea fi configurate și ele
Deci, dacă există o modificare a codului de către dezvoltator, reprezentarea vizuală a Build and Deploy poate fi văzută ca fiind automatizată.
Configurarea depozitului de cod sursă în AWS CodePipeline
Construiți configurația în AWS CodePipeline care utilizează construirea Maven
Configurarea implementării în AWS CodePipeline
Execuția completă este văzută în AWS CodePipeline
2. AWS CodeCommit
AWS CodeCommit este un serviciu securizat de control al versiunilor online care găzduiește depozite private Git. O echipă nu trebuie să întrețină propriul depozit de control al versiunilor, ci folosește AWS CodeCommit pentru a stoca codul sursă sau chiar binare precum fișierele WAR / JAR / EAR generate din build.
Cu AWS CodeCommit creați un depozit și fiecare dezvoltator îl va clona pe mașina lor locală, îl va adăuga fișiere și îl va împinge înapoi în depozitul AWS CodeCommit. Se utilizează comenzile GIT standard cu depozitul AWS CodeCommit.
Pentru De exemplu. odată ce depozitul AWS CodeCommit este clonat pe mașina locală, veți utiliza comenzi precum „git pull”, „git add”, „git commit”, „git push” etc.
Cod AWS ilustrativ Comitere repozitie goală creată
Clonați depozitul pe mașina locală
Fișiere adăugate în depozitul AWS CodeCommit
3. AWS CodeBuild
După cum am văzut, codul sursă și alte artefacte ale proiectului sunt stocate în depozitul AWS CodeCommit.
Pentru a implementa integrarea continuă AWS CodeBuild, ca și Jenkins preia cele mai recente modificări ale codului sursă din depozitul AWS CodeCommit sau GitHub așa cum este configurat și bazat pe specificațiile de construire Fișier YAML (create ca buildspec.yml) comenzile sunt executate pe baza celor patru faze precum Instalare, Pre-build, Build și Post-build.
Odată ce construirea este finalizată, artefactele (WAR / ZIP / JAR / EAR) sunt stocate în AWS Storage, care este o cupă S3.
Exemplu de fișier 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
Exemplu de proiect AWS Codebuild
Construiți succesul
Artefact (fișier WAR) copiat în bucket S3
4. AWS CodeDeploy
După cum sugerează și numele, AWS Codedeploy este serviciul de implementare care automatizează implementarea aplicației (în acest caz fișier WAR) în instanțele Amazon EC2 Linux sau Windows.
Întrucât acum avem artefactele stocate în bucket-ul S3 care a fost finalizat folosind AWS CodeBuild, artefactele sunt apoi preluate din bucket-ul S3 și distribuite în mod corespunzător pe serverul de aplicații Tomcat sau JBoss etc., în provizionarea instanței AWS EC2.
AWS CodeDeploy depinde de un fișier YAML numit appspec.yml care are instrucțiuni despre implementarea în instanțele EC2.
Exemplu de fișier appspec.yml în care fișierul index.html este copiat și implementat pe serverul 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
înainte_instalați scenariu
restart_server scenariu
Repoare GitHub a tuturor fișierelor necesare pentru a rula AWS CodeDeploy
Executarea implementării în AWS CodeDeploy
Integrarea Jenkins cu serviciile AWS
După cum sa menționat mai devreme, în prezent, echipele folosesc Jenkins ca instrument defacto CI și, în majoritatea cazurilor, nu le-ar plăcea cu adevărat să se îndepărteze de acesta, ci mai degrabă să se integreze cu serviciile AWS despre care am discutat. Deși există anumite proceduri implicate și am arătat capturi de ecran ale integrării.
1. Integrarea Jenkins cu AWS CodeCommit
2. Integrarea Jenkins cu AWS CodeBuild
3. Integrarea Jenkins cu AWS CodeDeploy
Punând totul împreună pentru AWS DevOps Stack:
Stiva arată mai jos pentru serviciile AWS care sunt discutate mai sus.
Sper că acest tutorial, instrumente pentru o conductă , depozit de cod sursă, construire și implementare cu Amazon Web Services, v-a fost de ajutor.
Lectură recomandată
- Tutorial AWS CodeCommit pentru implementarea DevOps în cloud
- Lucrul la AWS CodeDeploy DevOps Tool pentru implementare automată
- Implementare continuă în DevOps
- Cele mai bune instrumente de testare software 2021 (Instrumente de automatizare a testelor de calitate)
- Tutorial AWS CodeBuild: Extragerea codului din Maven Build
- Livrare continuă în DevOps
- Cele mai bune 10 instrumente de monitorizare a cloud-ului pentru o gestionare perfectă a cloud-ului
- Testare continuă în DevOps