top aws devops tools
I migliori strumenti DevOps di Amazon AWS: una pipeline , repository di codice sorgente, build e distribuzione con Amazon Web Services
Quando ho iniziato la mia carriera nel settore del software, circa 20+ anni fa, era necessario procurarmi l'infrastruttura (software e hardware) per qualsiasi tipo di sviluppo e distribuzione.
Ciò includeva l'ordine con il fornitore per i server, l'attesa di un certo periodo di tempo per ottenere lo stesso, una volta consegnato lo spazio sul server doveva essere riservato, l'installazione del server, il sistema operativo, la configurazione dell'archiviazione, ecc. prestazioni, disponibilità (24 * 7), manutenzione, rete ecc.
Questo era uno sforzo eccessivo per avviare un server per attività di sviluppo e distribuzione di applicazioni.
Cosa imparerai:
- Evoluzione del cloud computing
- Crea e distribuisci utilizzando gli strumenti AWS
- Integrazione di Jenkins con i servizi AWS
- Lettura consigliata
Evoluzione del cloud computing
Le cose dovevano cambiare con l'evoluzione del Cloud Computing, il che significa che accedi a tutte le tue applicazioni e database su Internet. Quindi i provider di Cloud Computing mantengono tutto l'hardware necessario per eseguire la tua applicazione web.
Tutte le risorse con una configurazione appropriata di cui hai bisogno per ospitare la tua applicazione sono disponibili con un clic. Il tempo è drasticamente ridotto per rendere disponibili le risorse per gli sviluppatori. Soprattutto, paghi solo per ciò che devi utilizzare.
L'attenzione per gli sviluppatori che utilizzano servizi basati su cloud è solo su ciò di cui hanno bisogno per lavorare sui nostri progetti e non preoccuparsi della disponibilità dell'infrastruttura. Non sto entrando nei tipi di cloud computing (IaaS, PaaS, SaaS), ci sono tonnellate di informazioni disponibili su Internet per descrivere cosa sono.
Esistono molti fornitori di servizi cloud. Ma i 3 più popolari con cui ho lavorato sono:
- Amazon Web Services
- Microsoft Azure
- Google Cloud
In questa sezione, concentrerò la mia attenzione sugli strumenti per una pipeline , repository di codice sorgente, build e distribuzione con Amazon Web Services . Per non dimenticare che i team utilizzano ancora strumenti DevOps come Jenkins, Git, Maven e altri.
Quindi è imperativo che, sebbene i team possano voler spostare le loro risorse e artefatti nell'infrastruttura cloud, dobbiamo anche massimizzare gli investimenti esistenti in strumenti e dati con integrazioni / migrazioni il più possibile.
Clic Qui per conoscere AWS e i vari servizi per architetti, sviluppatori e SysOPS. Useremo l'account gratuito per gli strumenti menzionati ma ovviamente, in un ambiente di produzione, sarà necessario procurarsi i servizi per l'uso.
Crea e distribuisci utilizzando gli strumenti AWS
Dal punto di vista della compilazione e della distribuzione, esamineremo i seguenti servizi AWS
vantaggi di linux su windows 10
- AWS CodePipeline
- AWS CodeCommit
- AWS CodeBuild
- AWS CodeDeploy
1. AWS CodePipeline
AWS CodePipeline è simile a Jenkins Pipeline che aiuta ad avere una visione visiva del processo di consegna end-to-end.
Quindi in una CodePipeline, in genere configurerai quanto segue
- Repository del codice sorgente - Quindi il tuo codice sorgente dovrebbe essere nel repository AWS CodeCommit o GitHub.
- Build Service - I dettagli di AWS CodeBuild verranno configurati come parte della pipeline.
- Distribuisci - AWS CodeDeploy verrà configurato nella pipeline.
- Durante il processo di distribuzione in ambienti diversi, se sono necessarie approvazioni, è possibile configurarle
Quindi, se c'è una modifica al codice da parte dello sviluppatore, la rappresentazione visiva di Build and Deploy può essere vista automatizzata.
Configurazione del repository del codice sorgente in AWS CodePipeline
Configurazione della build in AWS CodePipeline che utilizza la build Maven
Configurazione della distribuzione in AWS CodePipeline
L'esecuzione completa è visibile in AWS CodePipeline
2. AWS CodeCommit
AWS CodeCommit è un servizio di controllo delle versioni online sicuro che ospita repository Git privati. Un team non ha bisogno di mantenere il proprio repository di controllo della versione, invece utilizza AWS CodeCommit per archiviare il proprio codice sorgente o anche i file binari come i file WAR / JAR / EAR generati dalla build.
Con AWS CodeCommit crei un repository e ogni sviluppatore lo clonerà sul proprio computer locale, vi aggiungerà file e lo invierà nuovamente al repository AWS CodeCommit. Uno utilizza i comandi GIT standard con il repository AWS CodeCommit.
Per Per esempio. una volta che il repository AWS CodeCommit è stato clonato sulla macchina locale, useresti comandi come 'git pull', 'git add', 'git commit', 'git push' e così via.
Creazione di un repository vuoto illustrativo di AWS CodeCommit
Clona il repository sulla macchina locale
File aggiunti al repository AWS CodeCommit
3. AWS CodeBuild
Come abbiamo visto, il codice sorgente e altri artefatti del progetto sono archiviati nel repository AWS CodeCommit.
Per implementare l'integrazione continua, AWS CodeBuild come Jenkins recupera le ultime modifiche del codice sorgente dal repository AWS CodeCommit o GitHub come configurato e in base alla specifica di build File YAML (creato come buildspec.yml) i comandi vengono eseguiti in base alle quattro fasi come Installazione, Pre-build, Build e Post-build.
Una volta completata la compilazione, gli artefatti (WAR / ZIP / JAR / EAR) vengono archiviati nello storage AWS, che è un bucket S3.
File buildspec.yml di esempio
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
Esempio di progetto AWS Codebuild
Costruisci il successo
Artefatto (file WAR) copiato nel bucket S3
4. AWS CodeDeploy
Come suggerisce il nome, AWS Codedeploy è il servizio di distribuzione che automatizza la distribuzione dell'applicazione (in questo caso file WAR) nelle istanze Amazon EC2 Linux o Windows.
Poiché ora gli artefatti sono archiviati nel bucket S3 che è stato completato utilizzando AWS CodeBuild, gli artefatti vengono quindi prelevati dal bucket S3 e distribuiti in modo appropriato al server app Tomcat o JBoss ecc. Nel provisioning dell'istanza AWS EC2.
AWS CodeDeploy dipende da un file YAML denominato appspec.yml che contiene istruzioni sulla distribuzione nelle istanze EC2.
File appspec.yml di esempio in cui il file index.html viene copiato e distribuito sul server 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
before_install script
restart_server script
Repo GitHub di tutti i file necessari per eseguire AWS CodeDeploy
Esecuzione della distribuzione in AWS CodeDeploy
Integrazione di Jenkins con i servizi AWS
Come accennato in precedenza, oggigiorno i team utilizzano Jenkins come lo strumento CI di fatto e nella maggior parte dei casi non vorrebbero allontanarsi da esso, ma piuttosto integrarsi con i servizi AWS di cui abbiamo discusso. Mentre ci sono alcune procedure coinvolte e ho mostrato screenshot dell'integrazione.
1. Integrazione di Jenkins con AWS CodeCommit
2. Integrazione di Jenkins con AWS CodeBuild
3. Integrazione di Jenkins con AWS CodeDeploy
Mettere tutto insieme per AWS DevOps Stack:
Lo stack cerca di seguito i servizi AWS discussi sopra.
Spero che questo tutorial su, strumenti per una pipeline , repository di codice sorgente, build e distribuzione con Amazon Web Services, ti è stato utile.
Lettura consigliata
- Tutorial di AWS CodeCommit per l'implementazione di DevOps nel cloud
- Lavorare su AWS CodeDeploy DevOps Tool per la distribuzione automatizzata
- Distribuzione continua in DevOps
- Migliori strumenti di test del software 2021 (Strumenti di automazione del test QA)
- Tutorial AWS CodeBuild: estrazione del codice da Maven Build
- Consegna continua in DevOps
- 10 MIGLIORI strumenti di monitoraggio del cloud per una perfetta gestione del cloud
- Test continuo in DevOps