Введення в DevOps для початківців

DevOps став модним словом, яке означає багато різних речей для багатьох людей.

Важко зрозуміти та визначити, що саме таке DevOps. І ось чому, якщо ви знаєте фундаментальні концепції DevOps, з якими асоціюється більшість людей, і історію того, як вона розвивалася, то отримаєте цілісне уявлення про це.

Походження DevOps

DevOps — чудовий приклад гнучкої розробки програмного забезпечення. Ідея DevOps виникла через необхідність не відставати від збільшення швидкості програмного забезпечення та досягати цього за допомогою гнучких методів. За останнє десятиліття значний прогрес у гнучкій культурі та практиках виявив потребу у більш цілісному підході до життєвого циклу доставки програмного забезпечення від кінця до кінця.

Вам може бути цікаво дізнатися, що таке гнучка розробка програмного забезпечення –

Гнучка розробка — це широкий термін для визначення кількох ітеративних і поетапних методологій розробки програмного забезпечення. Популярними гнучкими методологіями є Scrum, Kanban, Scaled Agile Framework® (SAFe®), Lean Development і Extreme Programming (XP).

Основні цінності та бачення всіх цих гнучких методологій однакові, але кожна з них має унікальний підхід. Усі ці методології включають ітерації та безперервний зворотний зв’язок для успішного вдосконалення та надання масштабованого програмного забезпечення. Усі ці методології передбачають постійне планування, постійне тестування, постійну інтеграцію та інші нескінченні форми як для проекту, так і для програмного забезпечення.

На відміну від звичайних процесів у стилі водоспаду, ці гнучкі методології є легкими та мають природу адаптації. Однією з найкращих переваг цих гнучких методологій є те, що всі вони зосереджені на розширенні можливостей людей, коли справа доходить до співпраці та швидкого спільного прийняття рішень.

Зображення Segue

Ідеали DevOps реалізують розширену практику гнучкої розробки для вдосконалення руху змін програмного забезпечення через збірку, перевірку, розгортання та різні етапи доставки. Це дозволяє міжфункціональній команді повністю володіти програмним продуктом, починаючи від проектування до виробництва.

  Чому 2020 рік – ідеальний час, щоб повернутися до IRC

Проблеми, які вирішує DevOps

Процес розгортання – розподілені програми часто вимагають розгортання двійкових і конфігураційних файлів на кількох серверах. Це стає складніше, якщо у вас є ферма серверів. Стає складно зрозуміти, що, як і де розгортати. Очевидний результат?

Довге очікування доставки артефактів у наступне середовище маршруту для життя призводить до затримки всього, як-от тестування, час життя тощо.

DevOps дозволяє програмним або веб-розробникам і ІТ-операціям розгортати процеси під час сеансу співпраці, який є абсолютно бездоганним. Це дозволить нам перевірити, що працює, а потім вивести це на наступний рівень за допомогою автоматизації для впровадження постійного розвитку. Це також створює можливості для більш частого розвитку.

Цілі DevOps

Він покращує співпрацю між зацікавленими сторонами від планування до доставки та реалізує автоматизацію процесу доставки, щоб:

  • Покращити частоту розгортання
  • Досягніть швидшого часу виведення кінцевого продукту на ринок
  • Зменшує частоту відмов нових випусків
  • Це скорочує час між виправленнями
  • Покращує тимчас для відновлення

Загальний сценарій DevOps

Все програмне забезпечення приходить до точки зустрічі перед початком нового програмного проекту. Команда складається з розробників, тестувальників, спеціалістів з експлуатації та підтримки. Команда складає план створення повнофункціонального програмного забезпечення, готового до розгортання.

Щодня розгортається новий код, щойно розробники його завершують. Автоматизована процедура тестування гарантує, що код готовий до впровадження. Коли код отримує зелений сигнал від процесу автоматизованого тестування, він розгортається для невеликої кількості користувачів. Код контролюється протягом короткого періоду, щоб переконатися, що немає непередбачених проблем і він стабільний. Потім новий код розгортається для решти користувачів, коли остаточний моніторинг показує, що код стабільний. Значна частина кроків після планування та розробки виконується без втручання людини.

Різні фази зрілості DevOps

Існує багато різних фаз зрілості DevOps. Ось ключові фрази, які ви повинні знати.

Водоспад розвитку

До часу безперервної інтеграції групи розробників писали величезну кількість коду, а потім ті з різних команд об’єднувалися для випуску. Версії коду були настільки різними, що раніше вимагали великої кількості змін.

  Як увімкнути Chromebook, коли ви закриваєте кришку

Внесення такої кількості використаних змін займає більше кількох місяців. Цей процес не був продуктивним.

Безперервна інтеграція

Це практика швидкої інтеграції нещодавно розробленого коду з основним кодом, який буде випущено. Коли справа доходить до випуску коду, постійний розвиток допомагає заощадити багато часу.

DevOps не вводив цей термін. Безперервна інтеграція — це гнучка інженерна практика, яка походить від методології екстремального програмування. DevOps прийняв цю практику, оскільки для успішного виконання безперервної інтеграції потрібна автоматизація. Постійна інтеграція часто є першим на шляху до зрілості DevOps.

Безперервна інтеграція з точки зору DevOps включає такі етапи, як перевірка коду, компіляція його в придатний для використання код і виконання деяких необхідних перевірочних тестів. ‘

Безперервна доставка

Це розширення безперервної інтеграції та другий етап DevOps.

Continuous Delivery дозволяє додати додаткову автоматизацію та тестування, щоб ви не тільки швидко об’єднали код із основним рядком коду, але й отримали код, майже готовий до розгортання без втручання людини.

Це практика, щоб ваша кодова база була майже готовою до розгортання.

Безперервне розгортання

Безперервне розгортання — це просунутий розвиток безперервної доставки. Ця практика дозволяє нам розгортати всі способи у виробництві без втручання людини.

Команда, яка працює над безперервною розробкою, ніколи не розгортає код без тестування. Весь новостворений код проходить автоматичне тестування перед тим, як потрапити на етап виробництва. Код розгортається для невеликої кількості користувачів, і існує автоматичний цикл зворотного зв’язку, який контролює якість і використання, перш ніж код перейде на наступний рівень.

Невелика кількість компаній, таких як Netflix, Etsy, Amazon, Pinterest, Flicker, IMVU, Google тощо, постійно розвиваються.

Значення

DevOps дуже зосереджується на розвитку культури співпраці та підвищенні ефективності за допомогою автоматизації за допомогою різних інструментів DevOps. Щоб реалізувати DevOps для свого програмного рішення, вам потрібно використовувати поєднання культури та інструментів.

  Як налаштувати пакет браузера Tor на Ubuntu

Культура DevOps

DevOps — це особлива культура, яка сприяє покращенню співпраці, зменшенню хаосу, кращому виконанню спільних обов’язків, реалізації автоматизації, покращенню якості, оцінці зворотного зв’язку та підвищенню автоматизації.

Гнучкі методи завжди були найкращим цілісним способом доставки програмного забезпечення. Коли справа доходить до вимірювання прогресу, команда гнучких розробників робить це з точки зору робочого програмного забезпечення. Гнучкий метод культури DevOps дозволяє власникам продуктів, розробникам, тестувальникам і людям з UX тісно співпрацювати з тією самою метою.

Інструменти DevOps

Включає інструменти для керування конфігурацією, тестування та побудови систем, розробки додатків, керування версіями та моніторингу. Коли йдеться про впровадження безперервної інтеграції, безперервної доставки та безперервного розгортання, вони потребують різних інструментів, і водночас вони також використовують ті самі інструменти. У міру просування по ланцюжку доставки вам потрібно буде використовувати більше інструментів.

Давайте познайомимося з деякими популярними інструментами та практиками.

Репозиторій вихідного коду – це місце, де розробники можуть перевірити та змінити код. Репозиторій вихідного коду керує різними версіями коду, які перевіряються, щоб переконатися, що розробники переписують код один одного.

Git, Apache Subversion, IBM Rational, Artifactory, Nexus, Eclipse тощо є одними з популярних інструментів сховища коду.

Сервер побудови: – сервер побудови – це інструмент автоматизації, який використовується для компіляції коду вихідного коду диханням у базу виконуваного коду. Одними з найбільш часто використовуваних інструментів для серверів збірки є Jenkins, SonarQube і Artifactory.

Керування конфігурацією – Puppet, Chef, Ansible, SaltStack, Run Deck тощо допомагає керувати конфігурацією програми та інфраструктури для підтримки узгодженості серед середовищ.

Віртуальна інфраструктура – ​​AWS, GCP і Azure є трьома провідними публічними хмарними провайдерами, які пропонують майже всі інфраструктурні послуги. Вони пропонують API, який дозволяє створювати інфраструктуру та керувати нею як кодом.

Висновок

Сподіваюся, це дасть вам уявлення про DevOps, і якщо це вас захопить, ви можете спробувати цей онлайн-курс майстер-класу.

Стаття Payal Goyal