top aws devops tools
Najlepsze narzędzia Amazon AWS DevOps: potok , repozytorium kodu źródłowego, kompilacja i wdrażanie z Amazon Web Services
Kiedy zaczynałem swoją karierę programistyczną około 20 lat temu, należało zaopatrzyć się w infrastrukturę (oprogramowanie i sprzęt) do wszelkiego rodzaju rozwoju i wdrażania.
Obejmowało to złożenie zamówienia u dostawcy na serwery, oczekiwanie przez określony czas na to samo, raz dostarczona przestrzeń serwerowa musiała zostać zarezerwowana, instalacja serwera, systemu operacyjnego, konfiguracja pamięci itp. Musieliśmy się również martwić wydajność, dostępność (24 * 7), konserwacja, sieć itp.
To był zbyt duży wysiłek związany z przygotowaniem serwera do działań związanych z opracowywaniem i wdrażaniem aplikacji.
Czego się nauczysz:
- Ewolucja przetwarzania w chmurze
- Twórz i wdrażaj za pomocą narzędzi AWS
- Integracja Jenkinsa z usługami AWS
- rekomendowane lektury
Ewolucja przetwarzania w chmurze
Wszystko musiało się zmienić wraz z ewolucją Cloud Computing, co oznacza, że masz dostęp do wszystkich aplikacji i baz danych przez Internet. Dlatego dostawcy usług w chmurze utrzymują cały sprzęt potrzebny do uruchamiania aplikacji internetowych.
Wszystkie zasoby z odpowiednią konfiguracją potrzebne do hostowania aplikacji są dostępne za jednym kliknięciem. Czas na udostępnienie zasobów programistom jest drastycznie skrócony. Co najważniejsze, płacisz tylko za to, czego potrzebujesz.
Programiści korzystający z usług w chmurze koncentrują się tylko na tym, czego potrzebują do pracy nad naszymi projektami i nie muszą martwić się o dostępność infrastruktury. Nie zagłębiam się w rodzaje przetwarzania w chmurze (IaaS, PaaS, SaaS), ponieważ w Internecie dostępnych jest mnóstwo informacji, które pozwalają opisać, czym one są.
Jest wielu dostawców chmury. Ale 3 najpopularniejsze, z którymi pracowałem, to:
- Amazon Web Services
- Microsoft Azure
- Google Cloud
W tej sekcji skupię się na narzędziach dla rurociąg , repozytorium kodu źródłowego, kompilacja i wdrażanie z Amazon Web Services . Nie zapominajmy, że zespoły nadal używają narzędzi DevOps, takich jak Jenkins, Git, Maven i inne.
Dlatego konieczne jest, aby zespoły mogły chcieć przenieść swoje zasoby i artefakty do infrastruktury chmury, ale jednocześnie musimy zmaksymalizować ich istniejące inwestycje w narzędzia i dane z integracjami / migracjami w jak największym stopniu.
Kliknij tutaj aby dowiedzieć się więcej o AWS i różnych usługach dla architektów, programistów i SysOPS. Będziemy korzystać z bezpłatnego konta dla wymienionych narzędzi, ale oczywiście w środowisku produkcyjnym będziesz musiał nabyć usługi do użytku.
Twórz i wdrażaj za pomocą narzędzi AWS
Z punktu widzenia tworzenia i wdrażania przyjrzymy się następującym usługom AWS
python selen znajdź element po tekście
- AWS CodePipeline
- AWS CodeCommit
- AWS CodeBuild
- AWS CodeDeploy
1. AWS CodePipeline
AWS CodePipeline jest podobny do Jenkins Pipeline, który pomaga uzyskać wizualny obraz całego procesu dostarczania.
Dlatego w CodePipeline zazwyczaj konfigurujesz następujące elementy
- Repozytorium kodu źródłowego - Więc twój kod źródłowy musiałby znajdować się w repozytorium AWS CodeCommit lub GitHub.
- Tworzenie usługi - Szczegóły AWS CodeBuild zostaną skonfigurowane jako część potoku.
- Rozmieścić - AWS CodeDeploy zostanie skonfigurowany w potoku.
- Podczas procesu wdrażania w różnych środowiskach, jeśli potrzebne są jakieś zatwierdzenia, można je również skonfigurować
Więc jeśli programista zmieni kod, wizualna reprezentacja kompilacji i wdrożenia może być postrzegana jako zautomatyzowana.
Konfiguracja repozytorium kodu źródłowego w AWS CodePipeline
Buduj konfigurację w AWS CodePipeline, która używa kompilacji Maven
Konfiguracja wdrożenia w AWS CodePipeline
Pełne wykonanie jest widoczne w AWS CodePipeline
2. AWS CodeCommit
AWS CodeCommit to bezpieczna usługa kontroli wersji online, która obsługuje prywatne repozytoria Git. Zespół nie musi utrzymywać własnego repozytorium kontroli wersji, zamiast tego używa AWS CodeCommit do przechowywania kodu źródłowego, a nawet plików binarnych, takich jak pliki WAR / JAR / EAR wygenerowane z kompilacji.
Dzięki AWS CodeCommit tworzysz repozytorium, a każdy programista sklonuje je na swoją maszynę lokalną, doda do niej pliki i prześle je z powrotem do repozytorium AWS CodeCommit. Jeden używa standardowych poleceń GIT z repozytorium AWS CodeCommit.
Dla Na przykład. po sklonowaniu repozytorium AWS CodeCommit na komputer lokalny należy użyć poleceń takich jak „git pull”, „git add”, „git commit”, „git push” itp.
Utworzono przykładowe puste repozytorium AWS CodeCommit
Sklonuj repozytorium na komputer lokalny
Pliki dodane do repozytorium AWS CodeCommit
3. AWS CodeBuild
Jak widzieliśmy, kod źródłowy i inne artefakty projektu są przechowywane w repozytorium AWS CodeCommit.
Aby zaimplementować Continuous Integration, AWS CodeBuild, taki jak Jenkins, pobiera najnowsze zmiany kodu źródłowego z repozytorium AWS CodeCommit lub GitHub zgodnie z konfiguracją i na podstawie specyfikacji kompilacji Plik YAML (utworzone jako buildspec.yml) polecenia są uruchamiane w oparciu o cztery fazy, takie jak instalacja, pre-build, build i post-build.
Po zakończeniu kompilacji artefakty (WAR / ZIP / JAR / EAR) są przechowywane w magazynie AWS, który jest zasobnikiem S3.
Przykładowy plik 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
Przykładowy projekt AWS Codebuild
Buduj sukces
Artefakt (plik WAR) skopiowany do zasobnika S3
4. AWS CodeDeploy
Jak sama nazwa wskazuje, AWS Codedeploy to usługa wdrożeniowa, która automatyzuje wdrażanie aplikacji (w tym przypadku pliku WAR) do instancji Amazon EC2 Linux lub Windows.
Ponieważ mamy teraz artefakty przechowywane w zasobniku S3, który został ukończony przy użyciu AWS CodeBuild, artefakty są następnie pobierane z zasobnika S3 i odpowiednio wdrażane na serwerze aplikacji Tomcat lub JBoss itp. W ramach udostępniania instancji AWS EC2.
AWS CodeDeploy zależy od pliku YAML o nazwie appspec.yml, który zawiera instrukcje dotyczące wdrażania w instancjach EC2.
Przykładowy plik appspec.yml, w którym plik index.html jest kopiowany i wdrażany na serwerze 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 scenariusz
restart_server scenariusz
Repozytorium GitHub wszystkich plików potrzebnych do uruchomienia AWS CodeDeploy
Wdrożenie w AWS CodeDeploy
Integracja Jenkinsa z usługami AWS
Jak wspomniano wcześniej, w dzisiejszych czasach zespoły używają Jenkinsa bardzo jako narzędzia defacto CI iw większości przypadków nie chciałyby od niego odejść, ale raczej zintegrować się z usługami AWS, o których rozmawialiśmy. Chociaż istnieją pewne procedury i pokazałem zrzuty ekranu integracji.
1. Integracja Jenkinsa z AWS CodeCommit
2. Integracja Jenkinsa z AWS CodeBuild
3. Integracja Jenkinsa z AWS CodeDeploy
Wszystko razem dla stosu DevOps AWS:
Stos wygląda poniżej dla usług AWS, które zostały omówione powyżej.
Mam nadzieję, że ten samouczek jest włączony, narzędzia dla rurociąg , repozytorium kodu źródłowego, kompilacja i wdrażanie z Amazon Web Services, był dla Ciebie pomocny.
rekomendowane lektury
- Samouczek AWS CodeCommit dotyczący wdrażania DevOps w chmurze
- Praca nad AWS CodeDeploy DevOps Tool do automatycznego wdrażania
- Ciągłe wdrażanie w DevOps
- Najlepsze narzędzia do testowania oprogramowania 2021 [Narzędzia do automatyzacji testów QA]
- Samouczek AWS CodeBuild: wyodrębnianie kodu z kompilacji Maven
- Ciągłe dostarczanie w DevOps
- 10 NAJLEPSZYCH narzędzi do monitorowania chmury dla idealnego zarządzania chmurą
- Ciągłe testowanie w DevOps