top aws devops tools
Bästa Amazon AWS DevOps-verktyg: En pipeline , källkodsförvar, bygga och distribuera med Amazon Web Services
När jag började min programvarukarriär för mer än 20 år tillbaka måste infrastrukturen (programvara och hårdvara) för någon form av utveckling och distribution skaffas.
Detta inkluderade att göra en beställning hos leverantören för servrar, vänta på en viss tid för att få samma, när levererat serverutrymme måste reserveras, installation av servern, operativsystem, lagringskonfiguration etc. Vi var också oroliga för prestanda, tillgänglighet (24 * 7), underhåll, nätverk etc.
Detta var för mycket ansträngning för att ta fram en server för aktiviteter för utveckling och distribution av applikationer.
Vad du kommer att lära dig:
- Evolution of Cloud Computing
- Skapa och distribuera med AWS-verktyg
- Jenkins-integration med AWS-tjänster
- Rekommenderad läsning
Evolution of Cloud Computing
Saker måste förändras med utvecklingen av Cloud Computing vilket innebär att du får åtkomst till alla dina applikationer och databaser via internet. Så Cloud Computing-leverantörer underhåller all hårdvara som behövs för att köra din webbapplikation.
Alla resurser med en lämplig konfiguration som du behöver för att vara värd för din applikation finns tillgängliga med ett klick. Tiden minskas drastiskt för att göra resurser tillgängliga för utvecklare. Viktigast, du betalar bara för det du behöver använda.
Fokus för utvecklare som använder molnbaserade tjänster ligger bara på vad de behöver för att arbeta med våra projekt och inte att oroa sig för infrastrukturens tillgänglighet. Jag går inte in på olika typer av molntjänster (IaaS, PaaS, SaaS) det finns massor av information tillgänglig över internet för att beskriva vad de är.
Det finns många molnleverantörer. Men de tre mest populära som jag har arbetat med är:
- Amazon Web Services
- Microsoft Azure
- Google Cloud
I det här avsnittet kommer jag att fokusera på verktyg för en rörledning , källkodsförvar, bygga och distribuera med Amazon Web Services . För att inte glömma att lag fortfarande använder DevOps-verktyg som Jenkins, Git, Maven och andra.
Så det är absolut nödvändigt att även om team kanske vill flytta sina tillgångar och artefakter till molninfrastruktur måste vi också maximera deras befintliga investeringar i verktyg och data med integrationer / migreringar så långt som möjligt.
Klick här för att lära dig mer om AWS och de olika tjänsterna för arkitekter, utvecklare och SysOPS. Vi kommer att använda det kostnadsfria kontot för de nämnda verktygen, men naturligtvis, i en produktionsmiljö, måste du skaffa tjänsterna för användning.
Skapa och distribuera med AWS-verktyg
Ur byggnads- och implementeringssynpunkt kommer vi att titta på följande AWS-tjänster
vad är den bästa vr-appen
- AWS CodePipeline
- AWS CodeCommit
- AWS CodeBuild
- AWS CodeDeploy
1. AWS CodePipeline
AWS CodePipeline liknar Jenkins Pipeline som hjälper till att få en visuell bild av leveransprocessen från slut till slut.
Så i en CodePipeline konfigurerar du vanligtvis följande
- Källkodsförvar - Så din källkod måste antingen finnas i AWS CodeCommit eller GitHub-arkivet.
- Bygg service - AWS CodeBuild-detaljer kommer att konfigureras som en del av rörledningen.
- Implementera - AWS CodeDeploy kommer att konfigureras i rörledningen.
- Under distributionsprocessen till olika miljöer om några godkännanden behövs kan de också konfigureras
Så om det sker en kodändring av utvecklaren kan den visuella representationen av Build and Deploy ses som automatiserad.
Konfiguration av källkodsförvar i AWS CodePipeline
Bygg konfiguration i AWS CodePipeline som använder Maven build
Driftsättningskonfiguration i AWS CodePipeline
Komplett utförande visas i AWS CodePipeline
2. AWS CodeCommit
AWS CodeCommit är en säker online-versionskontrolltjänst som är värd för privata Git-arkiv. Ett team behöver inte underhålla sitt eget versionskontrollförvar istället använder de AWS CodeCommit för att lagra sin källkod eller till och med binära filer som WAR / JAR / EAR-filer som genereras ur byggnaden.
Med AWS CodeCommit skapar du en databas och varje utvecklare kommer att klona den till sin lokala maskin, lägga till filer i den och trycka tillbaka den till AWS CodeCommit-förvaret. Man använder standard-GIT-kommandona med AWS CodeCommit-förvaret.
För T.ex. när AWS CodeCommit-förvaret är klonat till lokal maskin skulle du använda kommandon som 'git pull', 'git add', 'git commit', 'git push' etc ..
Illustrativ AWS-kod Skapa tomt arkiv
Klona förvaret till den lokala maskinen
Filer tillagda i AWS CodeCommit-arkivet
3. AWS CodeBuild
Som vi har sett lagras källkoden och andra projektartefakter i AWS CodeCommit-arkivet.
För att implementera kontinuerlig integration AWS CodeBuild som Jenkins hämtar de senaste ändringarna av källkoden från AWS CodeCommit eller GitHub-förvaret som konfigurerat och baserat på byggspecifikationen YAML-fil (skapad som buildspec.yml) kommandona körs baserat på de fyra faserna som Install, Pre-build, Build och Post-build.
När byggnaden är klar lagras artefakterna (WAR / ZIP / JAR / EAR) i AWS-lagringen, som är en S3-hink.
Exempel på buildspec.yml-fil
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
Exempel på AWS Codebuild-projekt
Bygg framgång
Artefakt (WAR-fil) kopieras till S3-hink
4. AWS CodeDeploy
Som namnet antyder är AWS Codedeploy distributionstjänsten som automatiserar distributionen av applikationen (i detta fall WAR-fil) till Amazon EC2 Linux- eller Windows-instanser.
Eftersom vi nu har artefakterna lagrade i S3-hink som slutfördes med hjälp av AWS CodeBuild plockas artefakterna sedan från S3-hinken och distribueras på lämpligt sätt till appservern Tomcat eller JBoss etc. i AWS EC2-inställningen.
AWS CodeDeploy beror på en YAML-fil som heter appspec.yml som har instruktioner om distributionen till EC2-instanser.
Exempel på appspec.yml-fil där index.html-filen kopieras och distribueras till Apache-servern
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
före_installera manus
restart_server manus
GitHub repo av alla filer som behövs för att köra AWS CodeDeploy
Driftsättning i AWS CodeDeploy
Jenkins-integration med AWS-tjänster
Som tidigare nämnts använder nuförtiden lag Jenkins mycket som defacto CI-verktyget och i de flesta fall skulle de inte riktigt vilja flytta ifrån det utan snarare integrera med AWS-tjänsterna som vi diskuterade. Även om det är vissa procedurer inblandade och jag har visat skärmdumpar av integrationen.
1. Jenkins-integration med AWS CodeCommit
2. Jenkins-integration med AWS CodeBuild
3. Jenkins-integration med AWS CodeDeploy
Att sätta ihop allt för AWS DevOps Stack:
Stapeln ser nedan för AWS-tjänsterna som diskuteras ovan.
Hoppas den här guiden på, verktyg för en rörledning , källkodsförvar, bygga och distribuera med Amazon Web Services, var till hjälp för dig.
Rekommenderad läsning
- AWS CodeCommit Tutorial för DevOps Implementation in Cloud
- Arbetar med AWS CodeDeploy DevOps Tool för automatiserad distribution
- Kontinuerlig distribution i DevOps
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)
- AWS CodeBuild Tutorial: Extrahera kod från Maven Build
- Kontinuerlig leverans i DevOps
- 10 BÄSTA molnövervakningsverktyg för perfekt molnhantering
- Kontinuerlig testning i DevOps