top aws devops tools
Найкращі інструменти Amazon AWS DevOps: конвеєр , сховище вихідного коду, побудова та розгортання з Amazon Web Services
Коли я розпочав свою кар'єру програмного забезпечення приблизно 20 років тому, потрібно було закупити інфраструктуру (програмне та апаратне забезпечення) для будь-якого розвитку та розгортання.
Сюди входило оформлення замовлення у постачальника для серверів, очікування певного часу, щоб отримати те саме, після доставки місця на сервері потрібно було зарезервувати, установку сервера, операційну систему, конфігурацію сховища тощо. Ми також повинні були турбуватися про продуктивність, доступність (24 * 7), технічне обслуговування, мережа тощо.
Це було занадто багато зусиль, спрямованих на створення сервера для діяльності з розробки та розгортання програм.
Що ви дізнаєтесь:
- Еволюція хмарних обчислень
- Створення та розгортання за допомогою AWS Tools
- Інтеграція Дженкінса зі службами AWS
- Рекомендована література
Еволюція хмарних обчислень
З розвитком хмарних обчислень ситуація мала змінитися, що означає, що ви отримуєте доступ до всіх своїх програм та баз даних через Інтернет. Отже, постачальники хмарних обчислень підтримують все обладнання, необхідне для запуску веб-програми.
Усі ресурси з відповідною конфігурацією, які вам потрібні для розміщення вашої програми, доступні за клік. Різко скорочується час для надання ресурсів розробникам. Найголовніше ви платите лише за те, що вам потрібно використовувати.
Основна увага розробників, які використовують хмарні сервіси, зосереджена лише на тому, що їм потрібно для роботи над нашими проектами, а не турбуватися про наявність інфраструктури. Я не займаюся типами хмарних обчислень (IaaS, PaaS, SaaS), в Інтернеті є маса інформації, яка описує, що це таке.
Існує багато хмарних провайдерів. Але 3 найпопулярніші з якими я працював:
- Amazon Web Services
- Microsoft Azure
- Google Cloud
У цьому розділі я зупинюсь на інструментах для трубопровід , сховище вихідного коду, побудова та розгортання з Amazon Web Services . Не варто забувати, що команди все ще використовують інструменти DevOps, такі як Jenkins, Git, Maven та інші.
Тому надзвичайно важливо, що хоча команди можуть захотіти перенести свої активи та артефакти до хмарної інфраструктури, нам також потрібно максимально збільшити їхні існуючі інвестиції в інструменти та дані за допомогою інтеграцій / міграцій, наскільки це можливо.
Клацніть тут дізнатись про AWS та різні послуги для архітекторів, розробників та SysOPS. Ми використовуватимемо безкоштовний рахунок для згаданих інструментів, але, звичайно, у виробничому середовищі вам потрібно буде придбати послуги для використання.
Створення та розгортання за допомогою AWS Tools
З точки зору збірки та розгортання ми розглянемо наступні служби AWS
Як відкрити виконуваний файл
- AWS CodePipeline
- Комісія AWS
- AWS CodeBuild
- AWS CodeDeploy
1. AWS CodePipeline
AWS CodePipeline схожий на трубопровід Дженкінса, який допомагає мати візуальний огляд кінця процесу доставки.
Отже, у CodePipeline ви зазвичай налаштовуєте наступне
- Сховище вихідного коду - Отже, ваш вихідний код повинен знаходитись у AWS CodeCommit або у сховищі GitHub.
- Служба побудови - Деталі AWS CodeBuild будуть налаштовані як частина конвеєру.
- Розгортати - AWS CodeDeploy буде налаштовано на конвеєр.
- Під час процесу розгортання в різних середовищах, якщо потрібні будь-які погодження, їх можна також налаштувати
Отже, якщо розробник змінює код, візуальне представлення Build and Deploy може бути автоматичним.
Конфігурація сховища вихідного коду в AWS CodePipeline
Конфігурація збірки в AWS CodePipeline, яка використовує збірку Maven
Конфігурація розгортання в AWS CodePipeline
Повне виконання видно в AWS CodePipeline
2. AWS CodeCommit
AWS CodeCommit - це безпечна послуга контролю версій в Інтернеті, яка розміщує приватні сховища Git. Команді не потрібно підтримувати власний репозиторій контролю версій, замість цього вони використовують AWS CodeCommit для зберігання свого вихідного коду або навіть двійкових файлів, таких як файли WAR / JAR / EAR, створені у збірці.
За допомогою AWS CodeCommit ви створюєте сховище, і кожен розробник клонує його на свою локальну машину, додає до нього файли та повертає назад до сховища AWS CodeCommit. Один використовує стандартні команди GIT із сховищем AWS CodeCommit.
Для Наприклад як тільки сховище AWS CodeCommit буде клоновано на локальну машину, ви будете використовувати такі команди, як «git pull», «git add», «git commit», «git push» тощо.
Ілюстративний код AWS CodeCommit створено порожнє сховище
Клонуйте сховище на локальну машину
Файли, додані до сховища AWS CodeCommit
3. AWS CodeBuild
Як ми бачили, вихідний код та інші артефакти проекту зберігаються у сховищі AWS CodeCommit.
Для реалізації безперервної інтеграції AWS CodeBuild, як Дженкінс, отримує останні зміни вихідного коду зі сховища AWS CodeCommit або GitHub, як налаштовано та базується на специфікації збірки Файл YAML (створені як buildspec.yml) команди виконуються на основі чотирьох фаз, таких як встановлення, попередня збірка, збірка та післязбірка.
Після завершення побудови артефакти (WAR / ZIP / JAR / EAR) зберігаються в сховищі AWS, яке є сегментом S3.
Зразок файлу 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
Зразок проекту AWS Codebuild
Побудувати успіх
Артефакт (файл WAR) скопійовано у відро S3
4. AWS CodeDeploy
Як випливає з назви, AWS Codedeploy - це служба розгортання, яка автоматизує розгортання програми (в даному випадку файлу WAR) на екземплярах Amazon EC2 Linux або Windows.
Оскільки тепер у нас є артефакти, що зберігаються в сегменті S3, який був завершений за допомогою AWS CodeBuild, артефакти потім піднімаються з сегмента S3 і належним чином розгортаються на сервері додатків Tomcat або JBoss тощо у забезпеченні екземпляра AWS EC2.
AWS CodeDeploy залежить від файлу YAML, який називається appspec.yml, який містить інструкції щодо розгортання в екземплярах EC2.
Зразок файлу appspec.yml, де файл index.html копіюється та розгортається на сервері 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
до_встановлення сценарій
restart_server сценарій
GitHub репо всіх файлів, необхідних для запуску AWS CodeDeploy
Виконання розгортання в AWS CodeDeploy
Інтеграція Дженкінса зі службами AWS
Як вже згадувалося раніше, сьогодні команди використовують Дженкінса так само, як інструмент дефакто CI, і в більшості випадків вони не дуже хочуть відходити від нього, а скоріше інтегруватись із послугами AWS, які ми обговорювали. Хоча є певні процедури, і я показав скріншоти інтеграції.
1. Інтеграція Дженкінса з AWS CodeCommit
2. Інтеграція Дженкінса з AWS CodeBuild
3. Інтеграція Дженкінса з AWS CodeDeploy
Склавши все разом для стеку AWS DevOps:
Нижче наведено стек для служб AWS, про які йшлося вище.
Сподіваюсь на цей посібник, інструменти для трубопровід , сховище вихідного коду, побудова та розгортання з Amazon Web Services, було вам корисно.
Рекомендована література
- Підручник AWS CodeCommit з реалізації DevOps у хмарі
- Робота над AWS CodeDeploy DevOps Tool для автоматизованого розгортання
- Постійне розгортання в DevOps
- Найкращі засоби тестування програмного забезпечення 2021 р. (Інструменти автоматизації тестування якості)
- Підручник з AWS CodeBuild: Витяг коду з Maven Build
- Постійна доставка в DevOps
- 10 КРАЩИХ інструментів моніторингу хмар для ідеального управління хмарою
- Постійне тестування в DevOps