Спрощуйте системи, орієнтовані на події, за допомогою Azure

Архітектура, заснована на подіях (Event-Driven Architecture, EDA), — це спосіб проектування програмних систем, які реагують на події. Подія — це щось важливе, що відбувається, наприклад, завантаження файлу або натискання кнопки. EDA робить системи більш гнучкими, чутливими та здатними обробляти велику кількість завдань одночасно. У цій статті ми пояснимо EDA простими словами та покажемо, як можна використовувати цю архітектуру з Microsoft Azure.

pic

Рішення для управління людськими ресурсами на основі архітектури, заснованої на подіях — Кредити Microsoft

Що таке архітектура, заснована на подіях?

Архітектура, заснована на подіях, ґрунтується на подіях. Ці події повідомляють системі, що щось сталося, і система відповідно реагує. Це схоже на дверний дзвінок: коли хтось дзвонить, ви відкриваєте двері.

Основні елементи EDA

  1. Продуценти подій (Event Producers): Це джерела подій, наприклад, система, що завантажує файл.
  2. Споживачі подій (Event Consumers): Це частини системи, які реагують на події, наприклад, програма, що обробляє завантажений файл.
  3. Проміжний обробник подій (Event Broker): Це щось на кшталт листоноші, що забезпечує доставку подій від продюсера до споживача.
  4. Типи подій:
  • Одинарні події (Single Events): Одноразові випадки (наприклад, реєстрація користувача).
  • Потоки подій (Streams of Events): Потік взаємопов’язаних подій (наприклад, дані з датчиків).

Простий приклад: обробка завантажених зображень

pic

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

  • Помітити, що зображення було завантажено.
  • Обробити зображення, змінити його розмір і додати водяний знак.
  • Зберегти нове зображення в сховище.

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

Як це працює

  1. Продуцент подій (Event Producer): Azure Blob Storage помічає, коли зображення завантажено.
  2. Проміжний обробник подій (Event Broker): Azure Event Grid надсилає подію до обробника.
  3. Споживач подій (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. Система зробить наступне:

  1. Зафіксує завантаження.
  2. Обробить зображення.
  3. Збереже нове зображення в контейнері для результатів.

Чому варто використовувати архітектуру, засновану на подіях, в Azure?

  1. Окрема обробка великих обсягів: Вона добре працює, навіть якщо багато людей завантажують зображення одночасно.
  2. Безперервна робота: Якщо одна частина зупиняється, інші продовжують працювати.
  3. Гнучкість: Легко додавати нові функції, наприклад, інструменти ШІ для аналізу зображень.
    Економить гроші: Ви платите лише за те, що використовуєте.

Інші прості приклади EDA в Azure

  1. Дані в реальному часі:
  • Збирайте дані з пристроїв за допомогою 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

Leave a Reply

Your email address will not be published. Required fields are marked *