Як побудувати ІТ-інфраструктуру для малих проектів

У цій статті представлені поради щодо побудови інфраструктури для невеликих проектів без спеціального адміністратора/DevOps інженера.

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

Планування для продакшну

Плануючи розгортання продакшну будь-якого додатку, важливо враховувати принаймні наступні п'ять бізнес-процесів/потоків створення цінності:

  1. Розробка додатків

  2. Конфігурація програми

  3. Конфігурація сервера (або іншого середовища виконання)

  4. Конфігурація процесу розгортання

  5. Конфігурація допоміжних служб (наприклад, моніторинг, резервне копіювання тощо)

Компоненти виробничого середовища

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

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

Важливість процесу

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

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

Бізнес-процеси проти потоків створення цінності

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

Gart може з налаштуванням інфрастуктури для ваших проєктів! Отримайте поради експертів та спростіть розгортання.

Делегування сисадміну / DevOps інженеру

Або ж ми можемо повністю делегувати цей процес працівнику (сисадміну чи DevOps інженеру), не замислюючись над тим, що відбувається в процесі, і сподіваючись, що коли цей працівник врешті-решт звільниться, новий працівник зможе розібратися в цьому. Якщо ми приймаємо цей ризик, то нам байдуже, як цей працівник працює — копіює артефакти через FTP чи пише код в Ansible та Terraform.

Ключові міркування

Ключовим моментом тут є те, що для того, щоб наш продакшн та розробка поводилися передбачувано, ми повинні:

  1. Визначити компоненти, що беруть участь у процесі розробки-поставки-експлуатації. На ілюстрації показано приклад такого розбиття на компоненти.

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

  3. Переконайтеся, що ми приймаємо такі ж рішення для будь-яких нових компонентів, які ми додаємо.

Для складних інсталяцій, природно, може бути більше компонентів. Наприклад, "Конфігурація програми" часто може бути розділена на "Секрети", "Кінцеві точки" і "Функціональну конфігурацію" (пов'язану з логікою програми). Або "Середовище виконання" може складатися як з "Віртуальних серверів", так і з "Оркестратора".

Інфраструктура як код

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

  1. Зміна секрету через інтерфейс Vault.

  2. Наші скрипти автоматизації розгортають ці секрети на всі сервіси.

Але тут виникає цікаве питання: що робити зі змінами в цій автоматизації? Відповідь проста — автоматизація по суті є кодом, тому ми застосовуємо підхід "Інфраструктура як код". Точніше, у нас є Інфраструктура як код як процес розробки, що не те саме, що Інфраструктура як скрипти, як це часто буває.

Висновок

Отже, що ми робимо з усіма цими знаннями?

Для невеликих інсталяцій з низькою частотою зміни інфраструктури:

  • Задокументуйте п'ять згаданих процесів у міру їх використання. Це може бути один рядок "зберіть всю команду і вирішіть, що робити", і це нормально.

  • Подумайте, чи можна покращити якийсь із цих процесів.

  • Оцініть, як довго ми можемо жити з цими процесами і коли ми почнемо досягати межі їхньої ефективності.

Для великих інсталяцій з великою кількістю змін в інфраструктурі:

  • Розробіть компоненти інфраструктури, використовуючи практику розробки програмного забезпечення (класичний "опис функцій -> беклог -> розробка -> тестування -> реліз -> стейджинг-> продакшн").

  • Визначте компоненти даних в інфраструктурі та задокументуйте процес роботи з ними (наприклад, конфігурацію, секрети тощо). Це може призвести до появи завдань у беклозі розвитку інфраструктури.

  • Визначити решту компонентів і процесів, для яких ми не застосовуємо IaC

Зосередьтеся на інноваціях, а не на інфраструктурі. Доручіть Gart розгортання ваших проектів, щоб ви могли швидше втілювати свої ідеї в життя!

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Роман Бурдюжа
Роман Бурдюжа@Roman_Burdiuzha

Cloud Architect

186Прочитань
2Автори
5Читачі
На Друкарні з 7 листопада

Більше від автора

  • Важливість мережевого дизайну для розвитку бізнесу

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

    Теми цього довгочиту:

    Devops
  • Порівняння AWS Activate, хмарної програми Google та Microsoft для стартапів

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

    Теми цього довгочиту:

    Devops
  • Що таке DevOps?

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

    Теми цього довгочиту:

    Devops

Вам також сподобається

  • 50 онлайн книг для вивчення Java

    Ви готові розпочати подорож до володіння Java? Тоді увага – ми створили підбірку з 50 видатних онлайн-книг англійською, які допоможуть вам освоїти кожний аспект програмування на Java!

    Теми цього довгочиту:

    Java
  • Деплой телеграм боту на VPS. GitHub Actions CI/CD. DockerHub. Част. 1

    Ми часто з другом пишемо телеграм ботів для своїх потреб та інколи брейнштормимо різні ідеї для класного проєкту. Декілька днів тому, я задумався про те, щоб взяти хостинг, оскільки Free Tier на AWS закінчився, а платні тарифи там трохи кусаються.

    Теми цього довгочиту:

    Java

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Вам також сподобається

  • 50 онлайн книг для вивчення Java

    Ви готові розпочати подорож до володіння Java? Тоді увага – ми створили підбірку з 50 видатних онлайн-книг англійською, які допоможуть вам освоїти кожний аспект програмування на Java!

    Теми цього довгочиту:

    Java
  • Деплой телеграм боту на VPS. GitHub Actions CI/CD. DockerHub. Част. 1

    Ми часто з другом пишемо телеграм ботів для своїх потреб та інколи брейнштормимо різні ідеї для класного проєкту. Декілька днів тому, я задумався про те, щоб взяти хостинг, оскільки Free Tier на AWS закінчився, а платні тарифи там трохи кусаються.

    Теми цього довгочиту:

    Java