top aws devops tools
Beste Amazon AWS DevOps-tools: een pijplijn broncode repository, build en implementatie met Amazon Web Services
Toen ik mijn softwarecarrière begon, ongeveer 20+ jaar geleden, moest de infrastructuur (software en hardware) voor elke vorm van ontwikkeling en implementatie worden aangeschaft.
Dit omvatte het plaatsen van een bestelling bij de leverancier voor servers, wachten op een bepaalde hoeveelheid tijd om hetzelfde te krijgen, eenmaal geleverde serverruimte moest worden gereserveerd, installatie van de server, besturingssysteem, opslagconfiguratie etc. We moesten ons ook zorgen maken over prestaties, beschikbaarheid (24 * 7), onderhoud, netwerk etc.
Dit was een te grote inspanning die gemoeid was met het opzetten van een server voor activiteiten van ontwikkeling en implementatie van applicaties.
Wat je leert:
- Evolutie van cloud computing
- Bouw en implementeer met behulp van AWS-tools
- Jenkins-integratie met AWS-services
- Aanbevolen literatuur
Evolutie van cloud computing
Er moest iets veranderen met de evolutie van Cloud Computing, wat betekent dat u al uw applicaties en databases via internet kunt openen. Cloud computing-providers onderhouden dus alle hardware die nodig is om uw webapplicatie uit te voeren.
Alle bronnen met een geschikte configuratie die u nodig hebt om uw toepassing te hosten, zijn met één klik beschikbaar. De tijd die nodig is om de middelen voor ontwikkelaars beschikbaar te stellen, wordt drastisch verminderd. Het belangrijkste is dat u alleen betaalt voor wat u nodig heeft.
De focus voor ontwikkelaars die cloudgebaseerde services gebruiken, ligt alleen op wat ze nodig hebben om aan onze projecten te werken en zich geen zorgen te maken over de beschikbaarheid van de infrastructuur. Ik ga niet in op soorten cloud computing (IaaS, PaaS, SaaS), er is heel veel informatie beschikbaar via internet om te beschrijven wat ze zijn.
Er zijn veel cloudproviders. Maar de 3 meest populaire waarmee ik heb gewerkt zijn:
- Amazon Web Services
- Microsoft Azure
- Google Cloud
In deze sectie zal ik mijn focus leggen op tools voor een pijpleiding broncode repository, build en implementatie met Amazon Web Services Niet te vergeten dat teams nog steeds DevOps-tools gebruiken, zoals Jenkins, Git, Maven en anderen.
Het is dus absoluut noodzakelijk dat, hoewel teams hun activa en artefacten misschien willen verplaatsen naar de cloudinfrastructuur, we ook hun bestaande investeringen in tools en gegevens met integraties / migraties zo veel mogelijk moeten maximaliseren.
Klik hier om meer te weten te komen over AWS en de verschillende services voor architecten, ontwikkelaars en SysOPS. We zullen het gratis account gebruiken voor de genoemde tools, maar in een productieomgeving moet u de services natuurlijk aanschaffen voor gebruik.
Bouw en implementeer met behulp van AWS-tools
Vanuit het oogpunt van Build en Deployment kijken we naar de volgende AWS-services
beste mp3-muziekdownloader voor Android
- AWS CodePipeline
- AWS CodeCommit
- AWS CodeBuild
- AWS CodeDeploy
1. AWS CodePipeline
AWS CodePipeline is vergelijkbaar met de Jenkins Pipeline, wat helpt om een visueel beeld te krijgen van het end-to-end leveringsproces.
Dus in een CodePipeline configureert u normaal gesproken het volgende
- Broncode-opslagplaats - Dus je broncode moet in de AWS CodeCommit- of GitHub-repository staan.
- Bouw service - AWS CodeBuild-details worden geconfigureerd als onderdeel van de pijplijn.
- Inzetten - AWS CodeDeploy wordt in de pijplijn geconfigureerd.
- Tijdens het implementatieproces naar verschillende omgevingen, als er goedkeuringen nodig zijn, kunnen deze ook worden geconfigureerd
Dus als er een codewijziging is door de ontwikkelaar, kan de visuele weergave van Build and Deploy worden gezien als geautomatiseerd.
Configuratie van broncode-opslagplaats in AWS CodePipeline
Bouw een configuratie in AWS CodePipeline die Maven-build gebruikt
Implementatieconfiguratie in AWS CodePipeline
Volledige uitvoering is te zien in AWS CodePipeline
2. AWS CodeCommit
AWS CodeCommit is een veilige online versiebeheerservice die privé Git-repositories host. Een team hoeft geen eigen opslagplaats voor versiebeheer te onderhouden, maar gebruikt AWS CodeCommit om hun broncode of zelfs binaire bestanden op te slaan, zoals de WAR / JAR / EAR-bestanden die tijdens de build zijn gegenereerd.
Met AWS CodeCommit creëer je een repository en elke ontwikkelaar zal deze naar zijn lokale machine klonen, er bestanden aan toevoegen en het terugsturen naar de AWS CodeCommit-repository. Men gebruikt de standaard GIT-commando's met de AWS CodeCommit-repository.
Voor Bijv. zodra de AWS CodeCommit-repository is gekloond naar de lokale machine, zou je commando's gebruiken zoals ‘git pull’, ‘git add’, ‘git commit’, ‘git push’ enz.
Illustratieve AWS CodeCommit lege repository gemaakt
Kloon de repository naar de lokale computer
Bestanden toegevoegd aan de AWS CodeCommit-repository
3. AWS CodeBuild
Zoals we hebben gezien, worden de broncode en andere projectartefacten opgeslagen in de AWS CodeCommit-repository.
Om continue integratie te implementeren haalt AWS CodeBuild zoals Jenkins de laatste wijzigingen van de broncode op uit de AWS CodeCommit of GitHub repository zoals geconfigureerd en gebaseerd op de buildspecificatie YAML-bestand (gemaakt als buildspec.yml) de commando's worden uitgevoerd op basis van de vier fasen, zoals Installeren, Pre-build, Build en Post-build.
Zodra de build is voltooid, worden de artefacten (WAR / ZIP / JAR / EAR) opgeslagen in de AWS Storage, een S3-bucket.
Voorbeeld buildspec.yml-bestand
Voorbeeld van een AWS Codebuild-project
Bouw succes op
Artefact (WAR-bestand) gekopieerd naar S3-bucket
4. AWS CodeDeploy
Zoals de naam al doet vermoeden, is AWS Codedeploy de implementatieservice die de implementatie van de applicatie (in dit geval WAR-bestand) naar de Amazon EC2 Linux- of Windows-instances automatiseert.
Aangezien we nu de artefacten hebben opgeslagen in de S3-bucket die is voltooid met behulp van AWS CodeBuild, worden de artefacten vervolgens opgehaald uit de S3-bucket en op de juiste manier geïmplementeerd op de app-server Tomcat of JBoss enz. In de AWS EC2-instantie-provisioning.
AWS CodeDeploy is afhankelijk van een YAML-bestand met de naam appspec.yml dat instructies bevat over de implementatie naar de EC2-instanties.
Voorbeeld van appspec.yml-bestand waarin het index.html-bestand wordt gekopieerd en geïmplementeerd op de Apache-server
before_install script
herstart_server script
GitHub-opslagplaats van alle bestanden die nodig zijn om AWS CodeDeploy uit te voeren
Implementatie-uitvoering in AWS CodeDeploy
Jenkins-integratie met AWS-services
Zoals eerder vermeld, gebruiken teams Jenkins tegenwoordig veel als de defacto CI-tool en in de meeste gevallen willen ze er niet echt van af, maar integreren ze liever met de AWS-services die we hebben besproken. Hoewel er bepaalde procedures bij betrokken zijn, heb ik screenshots van de integratie laten zien.
1. Jenkins-integratie met AWS CodeCommit
2. Jenkins-integratie met AWS CodeBuild
3. Jenkins-integratie met AWS CodeDeploy
Alles bij elkaar voor AWS DevOps Stack:
De stack kijkt hieronder naar de AWS-services die hierboven worden besproken.
Hoop deze tutorial op, tools voor een pijpleiding broncode repository, build en implementatie met Amazon Web Services, was nuttig voor je.
Aanbevolen literatuur
- AWS CodeCommit-zelfstudie voor DevOps-implementatie in de cloud
- Werken aan AWS CodeDeploy DevOps Tool voor geautomatiseerde implementatie
- Continue implementatie in DevOps
- Beste softwaretesttools 2021 (QA Test Automation Tools)
- AWS CodeBuild-zelfstudie: code extraheren uit Maven Build
- Continue levering in DevOps
- 10 BESTE cloudbewakingstools voor perfect cloudbeheer
- Continu testen in DevOps