top aws devops tools
Най-добрите инструменти за разработка на Amazon AWS: тръбопровод , хранилище на изходен код, изграждане и внедряване с Amazon Web Services
Когато започнах софтуерната си кариера около 20+ години назад, инфраструктурата (софтуер и хардуер) за всякакъв вид разработка и внедряване трябваше да бъде осигурена.
Това включваше даване на поръчка при доставчика за сървъри, изчакване на известно време, за да се получи същото, след като трябва да се резервира доставеното сървърно пространство, инсталиране на сървъра, операционна система, конфигурация на хранилище и т.н. Ние също трябваше да се притесняваме за производителност, наличност (24 * 7), поддръжка, мрежа и др.
Това беше прекалено много усилие, свързано с създаването на сървър за дейности по разработка и внедряване на приложения.
Какво ще научите:
- Еволюция на облачните изчисления
- Изграждане и внедряване с помощта на AWS Tools
- Интеграция на Jenkins с AWS Services
- Препоръчително четене
Еволюция на облачните изчисления
Нещата трябваше да се променят с развитието на облачните изчисления, което означава, че имате достъп до всичките си приложения и бази данни през интернет. Така че доставчиците на облачни изчисления поддържат целия хардуер, необходим за стартиране на вашето уеб приложение.
Всички ресурси с подходяща конфигурация, от които се нуждаете, за да хоствате приложението си, са достъпни само с едно щракване. Драстично се намалява времето за предоставяне на ресурси за разработчици. Най-важното е, че плащате само за това, което трябва да използвате.
Фокусът за разработчиците, използващи услуги, базирани на облак, е само върху това, което им е необходимо, за да работят по нашите проекти, а не да се притесняват от наличността на инфраструктурата. Не се занимавам с видове облачни изчисления (IaaS, PaaS, SaaS), има много информация, достъпна в интернет, за да опише какви са те.
Има много доставчици на облак. Но 3-те най-популярни, с които съм работил са:
- Amazon Web Services
- Microsoft Azure
- Google Cloud
В този раздел ще поставя акцента си върху инструменти за тръбопровод , хранилище на изходен код, изграждане и внедряване с Amazon Web Services . Да не забравяме, че екипите все още използват инструменти на DevOps като Jenkins, Git, Maven и други.
Така че е наложително, въпреки че екипите може да искат да преместят своите активи и артефакти в облачна инфраструктура, ние също трябва да увеличим максимално съществуващите им инвестиции в инструменти и данни с интеграции / миграции, доколкото е възможно.
Щракнете тук за да научите за AWS и различните услуги за архитекти, разработчици и SysOPS. Ще използваме безплатния акаунт за споменатите инструменти, но разбира се, в производствена среда ще трябва да набавите услугите за използване.
Изграждане и внедряване с помощта на AWS Tools
От гледна точка на изграждането и внедряването ще разгледаме следните услуги на AWS
как да превърна видео от youtube в wav файл
- AWS CodePipeline
- AWS CodeCommit
- AWS CodeBuild
- AWS CodeDeploy
1. AWS CodePipeline
AWS CodePipeline е подобен на тръбопровода на Jenkins, който помага да има визуален изглед на процеса на доставка от край до край.
Така че в CodePipeline обикновено ще конфигурирате следното
- Хранилище на изходния код - Така че вашият изходен код ще трябва да бъде или в AWS CodeCommit или в хранилището на GitHub.
- Услуга за изграждане - Подробностите за AWS CodeBuild ще бъдат конфигурирани като част от тръбопровода.
- Разполагане - AWS CodeDeploy ще бъде конфигуриран в тръбопровода.
- По време на процеса на разполагане в различни среди, ако са необходими одобрения, те също могат да бъдат конфигурирани
Така че, ако има промяна на кода от разработчика, визуалното представяне на Build and Deploy може да се види като автоматизирано.
Конфигурация на хранилището на изходния код в AWS CodePipeline
Конфигурация на компилация в AWS CodePipeline, която използва Maven build
Конфигурация за внедряване в AWS CodePipeline
Пълното изпълнение се вижда в AWS CodePipeline
2. AWS CodeCommit
AWS CodeCommit е защитена онлайн услуга за контрол на версиите, която хоства частни хранилища на Git. Екипът не трябва да поддържа собствено хранилище за контрол на версиите, вместо това използва AWS CodeCommit, за да съхранява своя изходен код или дори двоични файлове като файловете WAR / JAR / EAR, генерирани от компилацията.
С AWS CodeCommit създавате хранилище и всеки разработчик ще го клонира на своята локална машина, добавя файлове към него и го връща обратно в хранилището на AWS CodeCommit. Човек използва стандартните GIT команди с хранилището на AWS CodeCommit.
За E.g. след като хранилището на AWS CodeCommit бъде клонирано към локална машина, ще използвате команди като „git pull“, „git add“, „git commit“, „git push“ и т.н.
Илюстративен AWS CodeCommit създадено празно хранилище
Клонирайте хранилището на локалната машина
Файлове, добавени към хранилището на AWS CodeCommit
3. AWS CodeBuild
Както видяхме, изходният код и други артефакти на проекта се съхраняват в хранилището на AWS CodeCommit.
За внедряване на непрекъсната интеграция AWS CodeBuild като Jenkins извлича последните промени на изходния код от хранилището на AWS CodeCommit или GitHub, както е конфигурирано и базирано на спецификацията за изграждане YAML файл (създадени като buildspec.yml) командите се изпълняват въз основа на четирите фази като Install, Pre-build, Build и Post-build.
След като компилацията завърши, артефактите (WAR / ZIP / JAR / EAR) се съхраняват в AWS Storage, който е сегмент 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
Интеграция на Jenkins с AWS Services
Както споменахме по-рано, в днешно време екипите използват Jenkins до голяма степен като инструмента за дефакто CI и в повечето случаи те не биха искали наистина да се отдалечат от него, а по-скоро да се интегрират с AWS услугите, които обсъдихме. Въпреки че има определени процедури и показах скрийншотове на интеграцията.
1. Интеграция на Дженкинс с AWS CodeCommit
2. Интеграция на Jenkins с AWS CodeBuild
3. Интеграция на Jenkins с AWS CodeDeploy
Сглобяване на всичко за AWS DevOps Stack:
Стекът изглежда по-долу за AWS услугите, които са обсъдени по-горе.
Надявам се този урок, инструменти за тръбопровод , хранилище на изходен код, изграждане и внедряване с Amazon Web Services, беше полезно за вас.
Препоръчително четене
- AWS CodeCommit Урок за внедряване на DevOps в облак
- Работа върху инструмента за автоматично внедряване на AWS CodeDeploy DevOps
- Непрекъснато внедряване в DevOps
- Най-добри инструменти за тестване на софтуер 2021 г. (Инструменти за автоматизация на QA теста)
- Урок за AWS CodeBuild: Извличане на код от Maven Build
- Непрекъсната доставка в DevOps
- 10 НАЙ-ДОБРИ инструменти за наблюдение в облак за перфектно управление на облака
- Непрекъснато тестване в DevOps