текст перекладу
Концепції проектування для хмарних технологій
Проектування для хмарних технологій зосереджено на створенні та запуску додатків у хмарі з використанням сучасних архітектур, автоматизації та методів масштабування. Воно використовує керовані сервіси, мікросервіси, слабке зв'язування та динамічне масштабування, щоб забезпечити надійність та ефективність.
1. Керовані сервіси, що надаються хмарними провайдерами
Хмарні провайдери пропонують повністю керовані сервіси, щоб знизити операційні витрати. Замість того щоб вручну керувати серверами, базами даних або мережею, організації використовують сервіси PaaS, SaaS та IaaS, які обслуговуються хмарним провайдером.
Приклад із реального життя:
- Amazon RDS (Служба реляційних баз даних): Замість того щоб налаштовувати та керувати базою даних MySQL на сервері, ви використовуєте Amazon RDS, який займається резервним копіюванням, оновленнями та масштабуванням.
- AWS Lambda: Безсерверна обчислювальна служба, де ви запускаєте код без необхідності керувати серверами.
Основні переваги:
✅ Знижує зусилля на адміністрування
✅ Надає автоматичне масштабування, безпеку та моніторинг
✅ Вигідний за моделлю оплати за використання
2. Розуміння API (Інтерфейс програмування додатків)
API (Інтерфейс програмування додатків) — це міст, який дозволяє різним програмним системам взаємодіяти одна з одною. Він визначає правила та протоколи для того, як додатки запитують і обмінюються даними.
Приклад із реального життя:
- Додатки для доставки їжі (Zomato, Uber Eats, Swiggy)
- Коли ви замовляєте їжу, додаток використовує API, щоб:
- Отримати меню ресторану
- Перевірити реальний статус доставки
- Обробити платежі безпечно
Додаток не зберігає цю інформацію — він запитує її у різних сервісів через API!
Як працює API (крок за кроком):
- Запит клієнта: Ваш додаток (наприклад, Uber Eats) надсилає запит до API ресторану для отримання доступних страв.
- API обробляє запит: API отримує дані з бази даних ресторану.
- Відповідь надсилається назад: API повертає меню, яке відображається у вашому додатку.
Типи API:
1️⃣ REST API (Representational State Transfer) — Використовується у веб-додатках (найпоширеніший). Працює через HTTP/HTTPS.
- Приклад: Коли ви шукаєте рейси на туристичному сайті, сайт викликає API авіакомпаній, щоб отримати ціни.
2️⃣ SOAP API (Simple Object Access Protocol) — Більш безпечний, використовується в банківських та корпоративних системах.
- Приклад: Банківські операції та платіжні шлюзи.
3️⃣ GraphQL API — Отримує тільки необхідні дані (швидше та ефективніше).
- Приклад: Facebook використовує GraphQL для завантаження тільки релевантних постів і коментарів.
4️⃣ Webhooks (API, орієнтовані на події) — Тригерить дії автоматично, коли відбувається подія.
- Приклад: Коли ви отримуєте новий електронний лист, Slack автоматично сповіщає вас через webhook.
Основні переваги API:
✅ Автоматизація: API дозволяють системам обмінюватися даними без ручних зусиль.
✅ Ефективність: Замість того щоб зберігати дані локально, додатки отримують дані за потребою.
✅ Масштабованість: API дозволяють додаткам рости без необхідності переробляти все.
✅ Безпека: API використовують автентифікацію та шифрування (наприклад, API ключі, OAuth).
3. Мікросервіси
Архітектура мікросервісів розбиває додаток на невеликі, незалежні сервіси, які взаємодіють через API. Кожен мікросервіс відповідає за конкретну функцію і може бути оновлений або масштабований незалежно.
Приклад із реального життя:
- Інтернет-магазин:
- Служба користувачів обробляє аутентифікацію.
- Служба замовлень обробляє покупки.
- Служба платежів обробляє транзакції.
- Кожна служба працює окремо і взаємодіє через API.
Основні переваги:
✅ Швидша розробка та впровадження
✅ Краща масштабованість і ізоляція від помилок
✅ Дозволяє використовувати різні технології для різних сервісів
4. Слабко зв'язана архітектура
Слабко зв'язана система гарантує, що різні компоненти можуть функціонувати незалежно. Якщо один компонент виходить з ладу, це не впливає на всю систему.
текст перекладу
Сервіси взаємодіють через API, черги повідомлень або моделі, орієнтовані на події, замість того щоб бути безпосередньо залежними один від одного.
Приклад із реального життя:
- Сервіси потокового відео (Netflix, YouTube):
- Якщо система рекомендацій не працює, користувачі все одно можуть переглядати відео, оскільки це окрема система.
- Інтернет-магазин:
- Якщо платіжний шлюз працює повільно, користувачі все одно можуть переглядати продукти і додавати їх до кошика.
Основні переваги:
✅ Збільшує стійкість та доступність системи
✅ Дозволяє незалежне масштабування сервісів
✅ Зробить додатки більш гнучкими та простими для оновлення
5. Fan-Out (Розповсюдження)
Fan-Out — це шаблон повідомлень, де одна подія викликає кілька дій або процесів одночасно. Це допомагає ефективно масштабувати навантаження.
Приклад із реального життя:
- Система обробки замовлень:
- Коли клієнт робить замовлення:
- ✅ Відправити підтвердження на електронну пошту
- ✅ Сповістити склад
- ✅ Відняти інвентар
- ✅ Оновити систему відстеження замовлень
Це відбувається паралельно за допомогою служб повідомлень, таких як AWS SNS (Simple Notification Service).
Основні переваги:
✅ Покращує ефективність і швидкість відповіді
✅ Підтримує паралельну обробку
✅ Підвищує масштабованість
6. Service Discovery (Виявлення сервісів)
У хмарних середовищах сервіси постійно змінюються (масштабується, перезапускаються). Виявлення сервісів допомагає динамічно знаходити і підключати сервіси без необхідності хардкодити IP-адреси.
Приклад із реального життя:
- Виявлення сервісів у Kubernetes:
- Балансувальник навантаження динамічно підключає користувачів до потрібного контейнеризованого екземпляра сервісу.
- Якщо сервіс масштабується, виявлення сервісів оновлює систему автоматично.
Основні переваги:
✅ Автоматично адаптується до змін масштабу
✅ Зменшує необхідність в ручному налаштуванні та помилках
✅ Покращує доступність і стійкість до збоїв
Останні поради для підготовки до іспиту:
✅ Розуміння керованих сервісів: Знайомтеся з основними хмарними керованими сервісами, такими як Бази даних (RDS), Обчислення (Lambda), Зберігання (S3), Повідомлення (SNS, SQS), і Моніторинг (CloudWatch).
✅ Архітектура мікросервісів: Пам'ятайте, що кожен мікросервіс незалежний, API-орієнтований і масштабований.
✅ Слабко зв'язаний дизайн: Допомагає зменшити залежності і забезпечує стійкість. Сервіси взаємодіють через API або черги повідомлень.
✅ Стратегія Fan-Out: Корисна для паралельної обробки подій (наприклад, відправка повідомлень, ведення журналу, оновлення баз даних від однієї події).
✅ Виявлення сервісів: Забезпечує динамічне підключення сервісів в контейнеризованих і автозмінюваних середовищах. Kubernetes та AWS Auto Scaling використовують це.
✅ Розуміння основ API: API дозволяють додаткам взаємодіяти через запити та відповіді.
✅ Знайомство з типами API: REST (найпоширеніший), SOAP (безпечний), GraphQL (ефективний), Webhooks (орієнтовані на події).
✅ Безпека важлива: API використовують методи автентифікації, такі як API-ключі, OAuth, JWT токени.
✅ Приклади API з реального життя: Google Maps, Платіжні шлюзи, Сайти для бронювання подорожей, Програми погоди.
Перекладено з: CompTIA Cloud+ (CV0–004) : Cloud Architecture — Part 5