AWS Highlights #2: як використовувати AWS Well-Architected Framework для аналізу інфраструктури

Усі статті, обговорення, новини про DevOps — в одному місці. Підписуйтеся на DOU | DevOps!

Привіт, мене звати Сергій Борисов, я — Cloud Solutions Architect в компанії N-iX, яка є Advanced Tier Services партнером Amazon Web Services (AWS). Я майже фанатичний Cloud Solutions Architect з фокусом на AWS. Маю понад 16 років досвіду роботи з інформаційними технологіями, а також пристрасть до розробки та впровадження масштабованих, безпечних та економічно ефективних хмарних рішень.

Разом з Ігорем Іванюком ми продовжуємо цикл статей, у яких розповідаємо про найцікавіші проєкти, пов’язані з AWS. Як Solutions Architect в AWS, Ігор допомагає замовникам впроваджувати свої ноу-хау та розвивати бізнес за допомогою хмарних технологій. До цього Ігор використовував сервіси AWS у своїх проєктах, допомагаючи компаніям впроваджувати хмарні технології у галузі фінтех, банківських рішеннях та ecommerce.

У попередній статті ми розповіли про те, як перенести інфраструктуру підприємства в AWS Cloud. Архітекторам на таких проєктах часто бракує досвіду в тому, як побудувати безпечну, високопродуктивну, відмовостійку та ефективну хмарну інфраструктуру.

У такому разі на допомогу приходить AWS Well-Architected Framework, що забезпечує послідовний підхід до оцінки архітектури та реалізації масштабованих проєктів. Своєю чергою, наявність добре побудованих систем підвищує ймовірність успіху бізнесу.

Ця стаття може бути цікава архітекторам рішень, лідерам технологій та менеджерам команд.

Що таке AWS Well-Architected Framework

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

  • Що ви робите, щоб зменшити ризики під час розгортання систем?
  • Як ви захищаєте обчислювальні ресурси?
  • Як взаємодіють елементи в вашій розподіленій системі, чи це дозволяє запобігти збоям?
  • Як ви використовуєте обчислювальні ресурси в робочому навантаженні?
  • Як ви контролюєте використання ресурсів та витрати?
  • Як ваші організаційні процеси поєднані з бажаною стійкістю системи?

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

Нерідко компанії та підприємства не мають відповідей на деякі з цих питань. У таких випадках на допомогу приходить AWS Well-Architected Framework, що надає рекомендації щодо покращення робочих навантажень. Ці рекомендації допомагають зробити робочі навантаження більш надійними, безпечними, ефективними та економічно вигідними.

У динамічному ландшафті хмарних обчислень AWS Well-Architected Framework є фундаментальним посібником. Цей фреймворк допомагає зрозуміти переваги та недоліки рішень, які ви ухвалюєте під час побудови систем в AWS.

Цей фреймворк дозволяє постійно порівнювати архітектурні рішення з найкращими практиками та визначати сфери для вдосконалення. Щоб дізнатися більше про AWS Well-Architected Framework, перейдіть на офіційну сторінку сервісу.

Шість стовпів як основа фреймворку

AWS Well-Architected Framework побудований на шести стовпах, або базових принципах: операційна досконалість, безпека, надійність, ефективність роботи, оптимізація витрат і стійкість.

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

Операційна досконалість (Operational excellence)

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

Безпека (Security)

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

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

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

Надійність (Reliability)

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

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

Ефективність роботи (Performance efficiency)

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

Найкращі практики містять механізми кешування, безсерверні архітектури, балансування навантаження та ефективні рішення для зберігання даних.

Оптимізація витрат (Cost optimization)

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

Найкращі практики містять використання зарезервованих та spot інстансів у Amazon EC2, автоматизоване масштабування та стратегічне виділення ресурсів.

Стійкість (Sustainability)

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

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

Щоб дізнатися більше про ці шість стовпів, перейдіть на сторінку документації AWS Well-Architected Framework.

Процес аналізу архітектури

Головною метою аналізу архітектури є виявлення критичних проблем та сфер, які потребують покращення і вдосконалення. Результатом аналізу є набір дій, які спрямовані на розв’язання виявлених проблем. Вважається, що аналіз архітектури згідно з принципами AWS Well-Architected Framework повинен бути легким процесом, який займає години, а не дні.

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

Результати аналізу архітектури можна налаштувати згідно з встановленими пріоритетами. Наприклад, якщо клієнт зосереджується одному з принципів AWS Well-Architected Framework, ви можете пропустити питання, що стосуються інших. Однак AWS рекомендує дотримуватися всіх шести принципів.

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

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

Етап підготовки триває приблизно 4-6 годин і будує основу для детальної оцінки архітектури. Для середніх і великих проєктів цей етап містить такі завдання, як-от організація процесу, вибір робочих навантажень, визначення методів аналізу, обговорення цілей тощо.

Далі розпочинається етап оцінювання, який вимагає 4-6 годин для занурення в деталі. На цьому етапі проводиться детальний аналіз, що дозволяє визначити потенційні ризики та проблеми в архітектурі.

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

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

Цей документ є цінним джерелом для розуміння поточного стану архітектури. Ось як виглядає цей звіт в консолі керування AWS.

Завершальним етапом огляду архітектури є розробка стратегії вдосконалення системи. Цей етап зазвичай займає 2-4 години. Формально, цей етап не є частиною аналізу архітектури згідно з AWS Well-Architected Framework. Але ми вирішили зробити документ, що описує план з вдосконалення системи своїм клієнтам.

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

Ось як виглядає план з рекомендаціями щодо покращення принципу безпеки:

Переваги аналізу архітектури

Використання AWS Well-Architected Framework для аналізу архітектури надає такі переваги.

  • По-перше, аналіз надає комплексну оцінку архітектури. Ця оцінка є результатом поверхового погляду на архітектуру. Головною метою такого погляду є перспектива, що надає чітке розуміння структури вашої інфраструктури. Своєю чергою, таке розуміння сприяє ухваленню обґрунтованих рішень і стратегічному плануванню.
  • По-друге, аналіз архітектури згідно з AWS Well-Architected Framework виявляє проблеми з високим рівнем ризику в системі. Розуміння цих ризиків допомагає вжити проактивних заходів для їхнього зменшення або пом’якшення. Такий підхід дозволяє створити безпечну та відмовостійку хмарну інфраструктуру.
  • По-третє, аналіз допомагає забезпечити відповідність найкращим практикам AWS Cloud. Ця відповідність сприяє підвищенню ефективності, масштабованості та адаптивності. Зрештою система завжди відповідає актуальним стандартам надійності, що вкрай важливо в хмарному середовищі, що постійно розвивається.
  • Нарешті, аналіз підвищує відмовостійкість і продуктивність вашої системи. Такий проактивний підхід допомагає забезпечити безперебійну роботу та швидкий час реагування, а також призводить до значного скорочення витрат завдяки оптимізації використання ресурсів. Крім того, дотримання запропонованих рекомендацій зміцнює безпеку системи, створюючи надійний механізм захисту від потенційних загроз, захищаючи конфіденційні дані й підвищуючи загальну цілісність системи.

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

AWS надає декілька інструментів і ресурсів для аналізу архітектури згідно з Well-Architected Framework. Наприклад, можна провести структуровану оцінку за допомогою AWS Well-Architected Tool, отримати корисні поради й докладні рекомендації, удосконалити практичні навички або скористатися експертизою надійних партнерів.

AWS Well-Architected Tool (AWS WA Tool) допомагає провести аналіз архітектури. Цей інструмент, що надається без оплати в консолі керування AWS, впроваджує структурований підхід до аналізу робочих навантажень. AWS WA Tool допомагає виявити проблеми з високим рівнем ризику і дозволяє систематично відстежувати прогрес з вдосконалення системи.

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

Офіційні документи AWS Well-Architected Framework містять детальну інформацію про всі шість принципів. Ці документи пропонують практичні рекомендації з операційної досконалості, безпеки, надійності, ефективності роботи, оптимізації витрат і стійкості.

AWS Well-Architected Labs надають практичний досвід і допомагають навчитися використовувати теоретичні знання на практиці. Ці лабораторні роботи побудовані на реальних сценаріях і допомагають зрозуміти, як проєктувати, розгортати та оптимізувати робочі навантаження в хмарі AWS. Щоб дізнатися більше про AWS Well-Architected Labs, перейдіть на офіційну сторінку сервісу.

Партнерська програма AWS Well-Architected Partner Program надає організаціям доступ до послуг перевірених партнерів. Ці партнери мають підтверджену експертизу в проведенні аналізу архітектури згідно з AWS Well-Architected Framework, і можуть допомогти клієнтам, які не мають такого досвіду. Щоб дізнатися більше про перевірених партнерів, перейдіть на офіційну сторінку проєкту.


Тепер ви знаєте, як проводити аналіз архітектури на основі AWS Well-Architected Framework. Також, в цій статті ви познайомилися зі стовпами цього фреймворку та інструментами, які можна використовувати для аналізу та вдосконалення ваших архітектурних рішень.

👍ПодобаєтьсяСподобалось12
До обраногоВ обраному3
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Дякую, гарний і потрібний цикл статей, точно стежитиму.
Маю питання.
Окрім вище вказаних характеристики системи (operability, security, reliability, performance...), в моєму списку критичних є ще з пяток, для прикладу, три найгарячіші: maintainability, testability, modifiability.
Фреймворк дасть аналіз системи по цих (чи інших) «-абіліті»?

Підписатись на коментарі