top aws devops tools
Najbolji Amazon AWS DevOps alati: Cjevovod , spremište izvornog koda, izgradnja i implementacija s Amazon Web Services
Kad sam započeo svoju softversku karijeru otprilike prije više od 20 godina, morala se nabaviti infrastruktura (softver i hardver) za bilo kakav razvoj i implementaciju.
To je uključivalo naručivanje kod dobavljača za poslužitelje, čekanje određenog vremena da se dobije isti, nakon isporuke prostora na poslužitelju trebalo je rezervirati, instalaciju poslužitelja, operativni sustav, konfiguraciju pohrane itd. Morali smo biti zabrinuti i zbog performanse, dostupnost (24 * 7), održavanje, mreža itd.
Ovo je bio prevelik napor u uspostavljanju poslužitelja za aktivnosti razvoja i postavljanja aplikacija.
Što ćete naučiti:
- Evolucija računalstva u oblaku
- Izrada i primjena pomoću AWS alata
- Jenkinsova integracija s AWS uslugama
- Preporučena literatura
Evolucija računalstva u oblaku
Stvari su se morale promijeniti s razvojem Cloud Computinga, što znači da svim svojim aplikacijama i bazama podataka pristupate putem Interneta. Tako davatelji usluga Cloud Computing održavaju sav hardver potreban za pokretanje vaše web aplikacije.
Svi resursi s odgovarajućom konfiguracijom koji su vam potrebni za hostiranje vaše aplikacije dostupni su jednim klikom. Drastično se smanjuje vrijeme za dostupnost resursa programerima. Najvažnije je da plaćate samo ono što trebate koristiti.
Fokus za programere koji koriste usluge temeljene na oblaku je samo na onome što im je potrebno za rad na našim projektima, a ne da brinu o dostupnosti infrastrukture. Ne upuštam se u vrste računalstva u oblaku (IaaS, PaaS, SaaS), na internetu je dostupno mnoštvo podataka koji opisuju što su.
Mnogo je pružatelja usluga u oblaku. Ali 3 najpopularnija s kojima sam surađivao su:
- Amazon Web Services
- Microsoft Azure
- Google Cloud
U ovom dijelu usredotočit ću se na alate za cjevovod , spremište izvornog koda, izgradnja i implementacija s Amazon Web Services . Da ne zaboravimo da timovi i dalje koriste DevOps alate poput Jenkinsa, Gita, Mavena i drugih.
Stoga je nužno da, iako timovi možda žele premjestiti svoja sredstva i artefakte u oblačnu infrastrukturu, mi također trebamo maksimalno povećati njihova postojeća ulaganja u alate i podatke integracijama / migracijama.
Klik ovdje kako biste saznali više o AWS-u i raznim uslugama za arhitekte, programere i SysOPS. Za spomenute alate koristit ćemo besplatni račun, ali naravno, u proizvodnom okruženju trebat ćete nabaviti usluge za upotrebu.
Izrada i primjena pomoću AWS alata
S gledišta izrade i primjene razmotrit ćemo sljedeće AWS usluge
kako izbrisati element iz niza java
- AWS CodePipeline
- AWS CodeCommit
- AWS CodeBuild
- AWS CodeDeploy
1. AWS CodePipeline
AWS CodePipeline sličan je Jenkinsovom cjevovodu koji pomaže u vizualnom pogledu na postupak isporuke od kraja do kraja.
Tako ćete u CodePipelineu obično konfigurirati sljedeće
- Repozitorij izvornog koda - Dakle, vaš izvorni kôd trebao bi biti u AWS CodeCommit ili GitHub spremištu.
- Usluga gradnje - AWS CodeBuild detalji bit će konfigurirani kao dio cjevovoda.
- Rasporediti - AWS CodeDeploy bit će konfiguriran u cjevovod.
- Tijekom postupka implementacije u različita okruženja, ako su potrebna odobrenja, mogu se i konfigurirati
Dakle, ako programer promijeni kod, vizualni prikaz Build and Deploya može se vidjeti automatiziranim.
Konfiguracija spremišta izvornog koda u AWS CodePipeline
Konfiguracija gradnje u AWS CodePipelineu koja koristi Maven gradnju
Konfiguracija postavljanja u AWS CodePipeline
Potpuno izvršavanje vidi se u AWS CodePipelineu
2. AWS CodeCommit
AWS CodeCommit je sigurna internetska usluga kontrole verzija koja hostira privatna Git spremišta. Tim ne mora održavati vlastito spremište za kontrolu verzija, već koristi AWS CodeCommit za spremanje svog izvornog koda ili čak binarnih datoteka poput WAR / JAR / EAR datoteka generiranih iz izrade.
Pomoću AWS CodeCommit stvarate spremište i svaki će ga programer klonirati na svoj lokalni stroj, dodavati mu datoteke i vraćati ga natrag u spremište AWS CodeCommit. Koriste se standardne GIT naredbe s AWS CodeCommit repozitorijumom.
Za Npr. nakon što se AWS CodeCommit spremište klonira na lokalni stroj, upotrebljavat ćete naredbe poput 'git pull', 'git add', 'git commit', 'git push' itd.
Izrađeno je ilustrativno AWS CodeCommit prazno spremište
Klonirajte spremište na lokalni stroj
Datoteke dodane u spremište AWS CodeCommit
3. AWS CodeBuild
Kao što smo vidjeli, izvorni kod i drugi projektni artefakti pohranjeni su u AWS CodeCommit spremištu.
Za implementaciju kontinuirane integracije AWS CodeBuild poput Jenkinsa dohvaća najnovije promjene izvornog koda iz AWS CodeCommit ili GitHub spremišta kako je konfigurirano i temeljeno na specifikaciji gradnje YAML datoteka (stvorene kao buildspec.yml) naredbe se izvode na temelju četiri faze kao što su Instaliraj, Pre-build, Build i Post-build.
Nakon završetka izrade, artefakti (WAR / ZIP / JAR / EAR) spremaju se u AWS Storage koji je S3 segment.
Uzorak datoteke 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
Uzorak AWS Codebuild projekta
Izgradite uspjeh
Artefakt (WAR datoteka) kopiran u S3 segment
4. AWS CodeDeploy
Kao što i samo ime govori, AWS Codedeploy je usluga implementacije koja automatizira postavljanje aplikacije (u ovom slučaju WAR datoteke) na Amazon EC2 Linux ili Windows instance.
Budući da sada imamo artefakte pohranjene u S3 segmentu koji je dovršen pomoću AWS CodeBuild-a, artefakti se zatim preuzimaju iz segmenta S3 i odgovarajuće raspoređuju na poslužitelj aplikacija Tomcat ili JBoss itd. U AWS EC2 instanci.
AWS CodeDeploy ovisi o YAML datoteci nazvanoj appspec.yml koja ima upute o postavljanju na instance EC2.
Uzorak datoteke appspec.yml gdje se datoteka index.html kopira i postavlja na Apache poslužitelj
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
prije_instalacije skripta
restart_server skripta
GitHub repo svih datoteka potrebnih za pokretanje AWS CodeDeploya
Izvršenje postavljanja u AWS CodeDeploy
Jenkinsova integracija s AWS uslugama
Kao što je ranije spomenuto, danas timovi koriste Jenkinsa kao defacto CI alat i u većini slučajeva ne bi se željeli odmaknuti od njega, već se integriraju s AWS uslugama o kojima smo razgovarali. Iako postoje određeni postupci i pokazao sam snimke zaslona integracije.
1. Jenkinsova integracija s AWS CodeCommit
2. Jenkinsova integracija s AWS CodeBuild
3. Jenkinsova integracija s AWS CodeDeployom
Sve zajedno za AWS DevOps Stack:
Niz izgleda dolje za AWS usluge o kojima smo gore govorili.
Nadam se ovom vodiču, alatima za cjevovod , spremište izvornog koda, izgradnja i implementacija s Amazon Web Services, bilo vam je korisno.
Preporučena literatura
- AWS CodeCommit Vodič za implementaciju DevOpsa u oblaku
- Rad na AWS CodeDeploy DevOps alatu za automatiziranu implementaciju
- Kontinuirano postavljanje u DevOps
- Najbolji alati za testiranje softvera 2021. (Alati za automatizaciju ispitivanja kvalitete)
- AWS CodeBuild Tutorial: Izdvajanje koda iz Maven Build-a
- Kontinuirana isporuka u DevOpsu
- 10 NAJBOLJIH alata za nadzor oblaka za savršeno upravljanje oblakom
- Kontinuirano testiranje u DevOpsu