Архітектура, заснована на подіях (Event-Driven Architecture, EDA), — це спосіб проектування програмних систем, які реагують на події. Подія — це щось важливе, що відбувається, наприклад, завантаження файлу або натискання кнопки. EDA робить системи більш гнучкими, чутливими та здатними обробляти велику кількість завдань одночасно. У цій статті ми пояснимо EDA простими словами та покажемо, як можна використовувати цю архітектуру з Microsoft Azure.
Рішення для управління людськими ресурсами на основі архітектури, заснованої на подіях — Кредити Microsoft
Що таке архітектура, заснована на подіях?
Архітектура, заснована на подіях, ґрунтується на подіях. Ці події повідомляють системі, що щось сталося, і система відповідно реагує. Це схоже на дверний дзвінок: коли хтось дзвонить, ви відкриваєте двері.
Основні елементи EDA
- Продуценти подій (Event Producers): Це джерела подій, наприклад, система, що завантажує файл.
- Споживачі подій (Event Consumers): Це частини системи, які реагують на події, наприклад, програма, що обробляє завантажений файл.
- Проміжний обробник подій (Event Broker): Це щось на кшталт листоноші, що забезпечує доставку подій від продюсера до споживача.
- Типи подій:
- Одинарні події (Single Events): Одноразові випадки (наприклад, реєстрація користувача).
- Потоки подій (Streams of Events): Потік взаємопов’язаних подій (наприклад, дані з датчиків).
Простий приклад: обробка завантажених зображень
Уявіть, що у вас є вебсайт, на якому користувачі можуть завантажувати зображення. Кожного разу, коли хтось завантажує зображення, система повинна:
- Помітити, що зображення було завантажено.
- Обробити зображення, змінити його розмір і додати водяний знак.
- Зберегти нове зображення в сховище.
Це чудовий приклад архітектури, заснованої на подіях, і Azure робить налаштування цього процесу легким.
Як це працює
- Продуцент подій (Event Producer): Azure Blob Storage помічає, коли зображення завантажено.
- Проміжний обробник подій (Event Broker): Azure Event Grid надсилає подію до обробника.
- Споживач подій (Event Consumer): Azure Function обробляє зображення.
Розглянемо це покроково.
Кроки для побудови цієї системи в Azure
1. Налаштування Azure Blob Storage
Azure Blob Storage — це місце, де користувачі завантажують зображення. Ось що потрібно зробити:
- Створити обліковий запис сховища та контейнер для зображень.
- Увімкнути сповіщення Event Grid для нових завантажень.
2. Налаштування Azure Event Grid
Event Grid — це як листоноша. Він бере подію з Blob Storage і надсилає її споживачу. Ось як це налаштувати:
- Підписатися на події для нових завантажень.
- Вказати Event Grid, щоб він надсилав події в Azure Function.
3. Створення Azure Function
Azure Function — це маленька програма, яка реагує на події. Ось що ваша функція робить:
- Отримує завантажене зображення.
- Змінює його розмір і додає водяний знак.
- Зберігає оброблене зображення в інший контейнер.
Приклад на Node.js:
const { BlobServiceClient } = require('@azure/storage-blob');
module.exports = async function (context, eventGridEvent) {
const blobUrl = eventGridEvent.data.url;
// Логіка для завантаження, обробки та повторного завантаження зображення
context.log(`Обробка зображення з ${blobUrl}`);
// Приклад: витягнення імені блобу та контейнера з URL
const blobServiceClient = BlobServiceClient.fromConnectionString(process.env.AZURE_STORAGE_CONNECTION_STRING);
const containerName = '';
const blobName = '';
// Логіка обробки та повторного завантаження тут
context.log(`Зображення оброблено та завантажено в ${containerName}/${blobName}`);
};
4. Тестування вашої системи
Завантажте зображення в Blob Storage. Система зробить наступне:
- Зафіксує завантаження.
- Обробить зображення.
- Збереже нове зображення в контейнері для результатів.
Чому варто використовувати архітектуру, засновану на подіях, в Azure?
- Окрема обробка великих обсягів: Вона добре працює, навіть якщо багато людей завантажують зображення одночасно.
- Безперервна робота: Якщо одна частина зупиняється, інші продовжують працювати.
- Гнучкість: Легко додавати нові функції, наприклад, інструменти ШІ для аналізу зображень.
Економить гроші: Ви платите лише за те, що використовуєте.
Інші прості приклади EDA в Azure
- Дані в реальному часі:
- Збирайте дані з пристроїв за допомогою Azure IoT Hub.
- Обробляйте їх за допомогою Azure Functions або Azure Stream Analytics.
2. Автоматизовані робочі процеси:
- Використовуйте Azure Logic Apps для автоматизації завдань, наприклад, відправлення електронних листів при надходженні нового замовлення.
3. Сповіщення DevOps:
- Отримуйте повідомлення, коли ваші збірки або розгортання програм завершено.
Висновок
Архітектура, заснована на подіях (Event-Driven Architecture, EDA), допомагає створювати розумні, ефективні та масштабовані системи. Завдяки таким інструментам Azure, як Blob Storage, Event Grid і Functions, ви можете створювати системи, які реагують на події в реальному часі. Незалежно від того, чи це обробка зображень, робота з даними IoT або автоматизація робочих процесів, Azure робить використання EDA простим і зручним для ваших потреб.
Почніть використовувати архітектуру, засновану на подіях, в Azure вже сьогодні і дізнайтеся, як вона може трансформувати ваші додатки!
🌐 Підписуйтесь сьогодні та досліджуйте безмежні можливості хмарних технологій!
🔔Слідкуйте за Techieonix для подібного контенту
♻️Перепости, якщо це було корисно
🌐https://www.techieonix.io
🌐https://www.linkedin.com/company/techieonix
🌐https://www.facebook.com/techieonix
🌐https://www.instagram.com/techieonix
🌐https://www.x.com/techieonix
Перекладено з: Simplify Event-Driven Systems with Azure