From 7e6c42cd9e9535f13ae246bde39f42b4c9c43a0d Mon Sep 17 00:00:00 2001 From: AlexPrib Date: Thu, 19 Feb 2026 16:32:31 +0400 Subject: [PATCH 1/5] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BB=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GenerationService/Models/Course.cs | 57 +++++++++++++ GenerationService/Program.cs | 58 +++++++++++++ README.md | 131 +++-------------------------- ServiceDefaults/Extensions.cs | 84 ++++++++++++++++++ 4 files changed, 211 insertions(+), 119 deletions(-) create mode 100644 GenerationService/Models/Course.cs create mode 100644 GenerationService/Program.cs create mode 100644 ServiceDefaults/Extensions.cs diff --git a/GenerationService/Models/Course.cs b/GenerationService/Models/Course.cs new file mode 100644 index 0000000..9d9e780 --- /dev/null +++ b/GenerationService/Models/Course.cs @@ -0,0 +1,57 @@ +namespace GenerationService.Models; + +/// +/// Модель, описывающая учебный курс и его основные метаданные +/// +public class Course +{ + /// + /// Уникальный идентификатор курса + /// + public int Id { get; init; } + + /// + /// Название курса + /// + public string Name { get; init; } = string.Empty; + + /// + /// Полное имя преподавателя курса + /// + public string TeacherFullName { get; init; } = string.Empty; + + /// + /// Дата начала курса + /// + public DateOnly StartDate { get; init; } + + /// + /// Дата окончания курса + /// + public DateOnly EndDate { get; init; } + + /// + /// Максимально допустимое количество студентов, которые могут быть зачислены на курс + /// + public int MaxStudents { get; init; } + + /// + /// Текущее количество записанных студентов + /// + public int CurrentStudents { get; init; } + + /// + /// Выдаётся ли по окончании курса сертификат + /// + public bool HasCertificate { get; init; } + + /// + /// Стоимость курса + /// + public decimal Cost { get; init; } + + /// + /// Рейтинг курса + /// + public int Rating { get; init; } +} diff --git a/GenerationService/Program.cs b/GenerationService/Program.cs new file mode 100644 index 0000000..3fd46b7 --- /dev/null +++ b/GenerationService/Program.cs @@ -0,0 +1,58 @@ +using GenerationService.Models; +using GenerationService.Services; +using Microsoft.Extensions.Caching.Distributed; +using System.Text.Json; +using ServiceDefaults; + +var builder = WebApplication.CreateBuilder(args); + +builder.AddServiceDefaults(); + +builder.AddRedisDistributedCache("cache"); + +builder.Services.AddCors(options => + options.AddDefaultPolicy(policy => + policy.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod())); + +var app = builder.Build(); + +app.UseCors(); +app.MapDefaultEndpoints(); + +app.MapGet("/course", async (int id, IDistributedCache cache, ILogger logger) => +{ + if (id <= 0) + return Results.BadRequest("Received invalid ID. ID must be a positive number"); + + var cacheKey = $"course:{id}"; + + var cached = await cache.GetStringAsync(cacheKey); + if (cached is not null) + { + var cachedCourse = JsonSerializer.Deserialize(cached); + if (cachedCourse is not null) + { + logger.LogInformation("Cache hit for course with id {CourseId}", id); + return Results.Ok(cachedCourse); + } + } + + logger.LogInformation("Cache miss for course with id {CourseId}, generating new data", id); + var course = CourseGenerator.Generate(id); + + await cache.SetStringAsync( + cacheKey, + JsonSerializer.Serialize(course), + new DistributedCacheEntryOptions + { + AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10) + }); + + logger.LogInformation( + "Generated and cached course {CourseName} with id {CourseId}", + course.Name, id); + + return Results.Ok(course); +}); + +app.Run(); diff --git a/README.md b/README.md index dcaa5eb..f1b8b2e 100644 --- a/README.md +++ b/README.md @@ -1,128 +1,21 @@ -# Современные технологии разработки программного обеспечения -[Таблица с успеваемостью](https://docs.google.com/spreadsheets/d/1an43o-iqlq4V_kDtkr_y7DC221hY9qdhGPrpII27sH8/edit?usp=sharing) +## Цель лабораторной работы +Реализация минимального микросервисного бэкенда с кэшированием -## Задание -### Цель -Реализация проекта микросервисного бекенда. +## Технологии и требования -### Задачи -* Реализация межсервисной коммуникации, -* Изучение работы с брокерами сообщений, -* Изучение архитектурных паттернов, -* Изучение работы со средствами оркестрации на примере .NET Aspire, -* Повторение основ работы с системами контроля версий, -* Интеграционное тестирование. +- .NET 8 +- Redis +- Bogus -### Лабораторные работы -
-1. «Кэширование» - Реализация сервиса генерации контрактов, кэширование его ответов -
- -В рамках первой лабораторной работы необходимо: -* Реализовать сервис генерации контрактов на основе Bogus, -* Реализовать кеширование при помощи IDistributedCache и Redis, -* Реализовать структурное логирование сервиса генерации, -* Настроить оркестрацию Aspire. - -
-
-2. «Балансировка нагрузки» - Реализация апи гейтвея, настройка его работы -
- -В рамках второй лабораторной работы необходимо: -* Настроить оркестрацию на запуск нескольких реплик сервиса генерации, -* Реализовать апи гейтвей на основе Ocelot, -* Имплементировать алгоритм балансировки нагрузки согласно варианту. +## Что я сделал в проекте -
-
-
-3. «Интеграционное тестирование» - Реализация файлового сервиса и объектного хранилища, интеграционное тестирование бекенда -
+В рамках этой лабораторной работы реализовано и настроено следующее: -В рамках третьей лабораторной работы необходимо: -* Добавить в оркестрацию объектное хранилище, -* Реализовать файловый сервис, сериализующий сгенерированные данные в файлы и сохраняющий их в объектном хранилище, -* Реализовать отправку генерируемых данных в файловый сервис посредством брокера, -* Реализовать интеграционные тесты, проверяющие корректность работы всех сервисов бекенда вместе. +- HTTP-эндпоинт `GET /course?id={id}` в сервисе `GenerationService`, возвращающий DTO `Course`. +- Механизм генерации данных курсов (используется Bogus)., +- Кэширование ответов через `IDistributedCache` с провайдером Redis: ключи `course:{id}`, TTL 10 минут. +- Набор расширений `ServiceDefaults` для единообразной конфигурации сервисов: OpenTelemetry (метрики/трейсы), health checks и настройки `HttpClient`. -
-
-
-4. (Опционально) «Переход на облачную инфраструктуру» - Перенос бекенда в Yandex Cloud -
- -В рамках четвертой лабораторной работы необходимо перенестиервисы на облако все ранее разработанные сервисы: -* Клиент - в хостинг через отдельный бакет Object Storage, -* Сервис генерации - в Cloud Function, -* Апи гейтвей - в Serverless Integration как API Gateway, -* Брокер сообщений - в Message Queue, -* Файловый сервис - в Cloud Function, -* Объектное хранилище - в отдельный бакет Object Storage, -
-
-## Задание. Общая часть -**Обязательно**: -* Реализация серверной части на [.NET 8](https://learn.microsoft.com/ru-ru/dotnet/core/whats-new/dotnet-8/overview). -* Оркестрация проектов при помощи [.NET Aspire](https://learn.microsoft.com/ru-ru/dotnet/aspire/get-started/aspire-overview). -* Реализация сервиса генерации данных при помощи [Bogus](https://github.com/bchavez/Bogus). -* Реализация тестов с использованием [xUnit](https://xunit.net/?tabs=cs). -* Создание минимальной документации к проекту: страница на GitHub с информацией о задании, скриншоты приложения и прочая информация. - -**Факультативно**: -* Перенос бекенда на облачную инфраструктуру Yandex Cloud - -Внимательно прочитайте [дискуссии](https://github.com/itsecd/cloud-development/discussions/1) о том, как работает автоматическое распределение на ревью. -Сразу корректно называйте свои pr, чтобы они попали на ревью нужному преподавателю. - -По итогу работы в семестре должна получиться следующая информационная система: -
-C4 диаграмма -Современные_технологии_разработки_ПО_drawio -
- -## Варианты заданий -Номер варианта задания присваивается в начале семестра. Изменить его нельзя. Каждый вариант имеет уникальную комбинацию из предметной области, базы данных и технологии для общения сервиса генерации данных и сервера апи. - -[Список вариантов](https://docs.google.com/document/d/1WGmLYwffTTaAj4TgFCk5bUyW3XKbFMiBm-DHZrfFWr4/edit?usp=sharing) -[Список предметных областей и алгоритмов балансировки](https://docs.google.com/document/d/1PLn2lKe4swIdJDZhwBYzxqFSu0AbY2MFY1SUPkIKOM4/edit?usp=sharing) - -## Схема сдачи - -На каждую из лабораторных работ необходимо сделать отдельный [Pull Request (PR)](https://docs.github.com/en/pull-requests). - -Общая схема: -1. Сделать форк данного репозитория -2. Выполнить задание -3. Сделать PR в данный репозиторий -4. Исправить замечания после code review -5. Получить approve - -## Критерии оценивания - -Конкурентный принцип. -Так как задания в первой лабораторной будут повторяться между студентами, то выделяются следующие показатели для оценки: -1. Скорость разработки -2. Качество разработки -3. Полнота выполнения задания - -Быстрее делаете PR - у вас преимущество. -Быстрее получаете Approve - у вас преимущество. -Выполните нечто немного выходящее за рамки проекта - у вас преимущество. -Не укладываетесь в дедлайн - получаете минимально возможный балл. - -### Шкала оценивания - -- **3 балла** за качество кода, из них: - - 2 балла - базовая оценка - - 1 балл (но не более) можно получить за выполнение любого из следующих пунктов: - - Реализация факультативного функционала - - Выполнение работы раньше других: первые 5 человек из каждой группы, которые сделали PR и получили approve, получают дополнительный балл - -## Вопросы и обратная связь по курсу - -Чтобы задать вопрос по лабораторной, воспользуйтесь [соответствующим разделом дискуссий](https://github.com/itsecd/cloud-development/discussions/categories/questions) или заведите [ишью](https://github.com/itsecd/cloud-development/issues/new). -Если у вас появились идеи/пожелания/прочие полезные мысли по преподаваемой дисциплине, их можно оставить [здесь](https://github.com/itsecd/cloud-development/discussions/categories/ideas). diff --git a/ServiceDefaults/Extensions.cs b/ServiceDefaults/Extensions.cs new file mode 100644 index 0000000..4027740 --- /dev/null +++ b/ServiceDefaults/Extensions.cs @@ -0,0 +1,84 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Diagnostics.HealthChecks; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Diagnostics.HealthChecks; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using OpenTelemetry; +using OpenTelemetry.Metrics; +using OpenTelemetry.Trace; + +namespace ServiceDefaults; + +public static class ServiceDefaultsExtensions +{ + public static IHostApplicationBuilder AddServiceDefaults(this IHostApplicationBuilder builder) + { + builder.ConfigureOpenTelemetry(); + builder.AddDefaultHealthChecks(); + + builder.Services.AddServiceDiscovery(); + builder.Services.ConfigureHttpClientDefaults(http => + { + http.AddStandardResilienceHandler(); + http.AddServiceDiscovery(); + }); + + return builder; + } + + public static IHostApplicationBuilder ConfigureOpenTelemetry(this IHostApplicationBuilder builder) + { + builder.Logging.AddOpenTelemetry(logging => + { + logging.IncludeFormattedMessage = true; + logging.IncludeScopes = true; + }); + + builder.Services.AddOpenTelemetry() + .WithMetrics(metrics => + { + metrics.AddAspNetCoreInstrumentation() + .AddHttpClientInstrumentation() + .AddRuntimeInstrumentation(); + }) + .WithTracing(tracing => + { + tracing.AddAspNetCoreInstrumentation() + .AddHttpClientInstrumentation(); + }); + + builder.AddOpenTelemetryExporters(); + return builder; + } + + private static IHostApplicationBuilder AddOpenTelemetryExporters(this IHostApplicationBuilder builder) + { + var useOtlpExporter = !string.IsNullOrWhiteSpace(builder.Configuration["OTEL_EXPORTER_OTLP_ENDPOINT"]); + if (useOtlpExporter) + { + builder.Services.AddOpenTelemetry().UseOtlpExporter(); + } + return builder; + } + + public static IHostApplicationBuilder AddDefaultHealthChecks(this IHostApplicationBuilder builder) + { + builder.Services.AddHealthChecks() + .AddCheck("self", () => HealthCheckResult.Healthy(), ["live"]); + return builder; + } + + public static WebApplication MapDefaultEndpoints(this WebApplication app) + { + if (app.Environment.IsDevelopment()) + { + app.MapHealthChecks("/health"); + app.MapHealthChecks("/alive", new HealthCheckOptions + { + Predicate = r => r.Tags.Contains("live") + }); + } + return app; + } +} From 30c9894009664d17c6b4895af37d725f77808313 Mon Sep 17 00:00:00 2001 From: AlexPrib <113890812+AlexPrib@users.noreply.github.com> Date: Thu, 19 Feb 2026 16:36:47 +0400 Subject: [PATCH 2/5] Add images to README for visual enhancement Added images to README for better visual representation. --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index f1b8b2e..0807a53 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,13 @@ - Кэширование ответов через `IDistributedCache` с провайдером Redis: ключи `course:{id}`, TTL 10 минут. - Набор расширений `ServiceDefaults` для единообразной конфигурации сервисов: OpenTelemetry (метрики/трейсы), health checks и настройки `HttpClient`. +Снимок экрана 2026-02-19 162728 +Снимок экрана 2026-02-19 162815 +Снимок экрана 2026-02-19 162752 +Снимок экрана 2026-02-19 162917 + + + From 2da569913c55f0ef1715d0258f5ff99dcc2425cd Mon Sep 17 00:00:00 2001 From: AlexPrib Date: Thu, 26 Feb 2026 17:08:53 +0400 Subject: [PATCH 3/5] =?UTF-8?q?=D0=97=D0=B0=D0=BA=D0=B8=D0=BD=D1=83=D0=BB?= =?UTF-8?q?=20=D0=BD=D0=B5=D0=B4=D0=BE=D1=81=D1=82=D0=B0=D1=8E=D1=89=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AppHost/AppHost.csproj | 22 ++++++ AppHost/Program.cs | 13 ++++ AppHost/Properties/launchSettings.json | 17 ++++ Client.Wasm/Components/StudentCard.razor | 8 +- Client.Wasm/Properties/launchSettings.json | 6 +- Client.Wasm/wwwroot/appsettings.json | 4 +- CloudDevelopment.sln | 54 +++++++++++++ GenerationService/GenerationService.csproj | 18 +++++ GenerationService/Program.cs | 2 +- .../Properties/launchSettings.json | 23 ++++++ GenerationService/Services/CourseGenerator.cs | 77 +++++++++++++++++++ .../appsettings.Development.json | 1 + GenerationService/appsettings.json | 12 +++ ServiceDefaults/Extensions.cs | 10 +-- ServiceDefaults/ServiceDefaults.csproj | 20 +++++ 15 files changed, 272 insertions(+), 15 deletions(-) create mode 100644 AppHost/AppHost.csproj create mode 100644 AppHost/Program.cs create mode 100644 AppHost/Properties/launchSettings.json create mode 100644 GenerationService/GenerationService.csproj create mode 100644 GenerationService/Properties/launchSettings.json create mode 100644 GenerationService/Services/CourseGenerator.cs create mode 100644 GenerationService/appsettings.Development.json create mode 100644 GenerationService/appsettings.json create mode 100644 ServiceDefaults/ServiceDefaults.csproj diff --git a/AppHost/AppHost.csproj b/AppHost/AppHost.csproj new file mode 100644 index 0000000..5ad3592 --- /dev/null +++ b/AppHost/AppHost.csproj @@ -0,0 +1,22 @@ + + + + + + Exe + net8.0 + enable + enable + + + + + + + + + + + + + diff --git a/AppHost/Program.cs b/AppHost/Program.cs new file mode 100644 index 0000000..517407f --- /dev/null +++ b/AppHost/Program.cs @@ -0,0 +1,13 @@ +var builder = DistributedApplication.CreateBuilder(args); + +var cache = builder.AddRedis("cache"); + +var generationService = builder.AddProject("generation-service") + .WithReference(cache) + .WaitFor(cache); + +builder.AddProject("client-wasm") + .WithExternalHttpEndpoints() + .WaitFor(generationService); + +builder.Build().Run(); diff --git a/AppHost/Properties/launchSettings.json b/AppHost/Properties/launchSettings.json new file mode 100644 index 0000000..dba56c0 --- /dev/null +++ b/AppHost/Properties/launchSettings.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:17136;http://localhost:15136", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "DOTNET_ENVIRONMENT": "Development", + "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:21197", + "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:20131" + } + } + } +} diff --git a/Client.Wasm/Components/StudentCard.razor b/Client.Wasm/Components/StudentCard.razor index 661f118..beaf9f0 100644 --- a/Client.Wasm/Components/StudentCard.razor +++ b/Client.Wasm/Components/StudentCard.razor @@ -4,10 +4,10 @@ - Номер №X "Название лабораторной" - Вариант №Х "Название варианта" - Выполнена Фамилией Именем 65ХХ - Ссылка на форк + Номер №1 "Кэширование" + Вариант №12 "Учебный курс" + Выполнена Прибыловым Александром 6511 + Ссылка на форк diff --git a/Client.Wasm/Properties/launchSettings.json b/Client.Wasm/Properties/launchSettings.json index 0d824ea..60120ec 100644 --- a/Client.Wasm/Properties/launchSettings.json +++ b/Client.Wasm/Properties/launchSettings.json @@ -12,7 +12,7 @@ "http": { "commandName": "Project", "dotnetRunMessages": true, - "launchBrowser": true, + "launchBrowser": false, "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5127", "environmentVariables": { @@ -22,7 +22,7 @@ "https": { "commandName": "Project", "dotnetRunMessages": true, - "launchBrowser": true, + "launchBrowser": false, "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:7282;http://localhost:5127", "environmentVariables": { @@ -31,7 +31,7 @@ }, "IIS Express": { "commandName": "IISExpress", - "launchBrowser": true, + "launchBrowser": false, "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/Client.Wasm/wwwroot/appsettings.json b/Client.Wasm/wwwroot/appsettings.json index d1fe7ab..82d7512 100644 --- a/Client.Wasm/wwwroot/appsettings.json +++ b/Client.Wasm/wwwroot/appsettings.json @@ -6,5 +6,5 @@ } }, "AllowedHosts": "*", - "BaseAddress": "" -} + "BaseAddress": "http://localhost:5134/course" +} \ No newline at end of file diff --git a/CloudDevelopment.sln b/CloudDevelopment.sln index cb48241..65c3563 100644 --- a/CloudDevelopment.sln +++ b/CloudDevelopment.sln @@ -5,16 +5,70 @@ VisualStudioVersion = 17.14.36811.4 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Client.Wasm", "Client.Wasm\Client.Wasm.csproj", "{AE7EEA74-2FE0-136F-D797-854FD87E022A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceDefaults", "ServiceDefaults\ServiceDefaults.csproj", "{0857E538-DB2E-4DDC-88C1-1FDF48405F7A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GenerationService", "GenerationService\GenerationService.csproj", "{6A40CB16-F88F-47CF-AF4A-95B01FF8054D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppHost", "AppHost\AppHost.csproj", "{916C4526-14E2-484A-AD98-72F31B11CA7B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {AE7EEA74-2FE0-136F-D797-854FD87E022A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AE7EEA74-2FE0-136F-D797-854FD87E022A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE7EEA74-2FE0-136F-D797-854FD87E022A}.Debug|x64.ActiveCfg = Debug|Any CPU + {AE7EEA74-2FE0-136F-D797-854FD87E022A}.Debug|x64.Build.0 = Debug|Any CPU + {AE7EEA74-2FE0-136F-D797-854FD87E022A}.Debug|x86.ActiveCfg = Debug|Any CPU + {AE7EEA74-2FE0-136F-D797-854FD87E022A}.Debug|x86.Build.0 = Debug|Any CPU {AE7EEA74-2FE0-136F-D797-854FD87E022A}.Release|Any CPU.ActiveCfg = Release|Any CPU {AE7EEA74-2FE0-136F-D797-854FD87E022A}.Release|Any CPU.Build.0 = Release|Any CPU + {AE7EEA74-2FE0-136F-D797-854FD87E022A}.Release|x64.ActiveCfg = Release|Any CPU + {AE7EEA74-2FE0-136F-D797-854FD87E022A}.Release|x64.Build.0 = Release|Any CPU + {AE7EEA74-2FE0-136F-D797-854FD87E022A}.Release|x86.ActiveCfg = Release|Any CPU + {AE7EEA74-2FE0-136F-D797-854FD87E022A}.Release|x86.Build.0 = Release|Any CPU + {0857E538-DB2E-4DDC-88C1-1FDF48405F7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0857E538-DB2E-4DDC-88C1-1FDF48405F7A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0857E538-DB2E-4DDC-88C1-1FDF48405F7A}.Debug|x64.ActiveCfg = Debug|Any CPU + {0857E538-DB2E-4DDC-88C1-1FDF48405F7A}.Debug|x64.Build.0 = Debug|Any CPU + {0857E538-DB2E-4DDC-88C1-1FDF48405F7A}.Debug|x86.ActiveCfg = Debug|Any CPU + {0857E538-DB2E-4DDC-88C1-1FDF48405F7A}.Debug|x86.Build.0 = Debug|Any CPU + {0857E538-DB2E-4DDC-88C1-1FDF48405F7A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0857E538-DB2E-4DDC-88C1-1FDF48405F7A}.Release|Any CPU.Build.0 = Release|Any CPU + {0857E538-DB2E-4DDC-88C1-1FDF48405F7A}.Release|x64.ActiveCfg = Release|Any CPU + {0857E538-DB2E-4DDC-88C1-1FDF48405F7A}.Release|x64.Build.0 = Release|Any CPU + {0857E538-DB2E-4DDC-88C1-1FDF48405F7A}.Release|x86.ActiveCfg = Release|Any CPU + {0857E538-DB2E-4DDC-88C1-1FDF48405F7A}.Release|x86.Build.0 = Release|Any CPU + {6A40CB16-F88F-47CF-AF4A-95B01FF8054D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A40CB16-F88F-47CF-AF4A-95B01FF8054D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A40CB16-F88F-47CF-AF4A-95B01FF8054D}.Debug|x64.ActiveCfg = Debug|Any CPU + {6A40CB16-F88F-47CF-AF4A-95B01FF8054D}.Debug|x64.Build.0 = Debug|Any CPU + {6A40CB16-F88F-47CF-AF4A-95B01FF8054D}.Debug|x86.ActiveCfg = Debug|Any CPU + {6A40CB16-F88F-47CF-AF4A-95B01FF8054D}.Debug|x86.Build.0 = Debug|Any CPU + {6A40CB16-F88F-47CF-AF4A-95B01FF8054D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A40CB16-F88F-47CF-AF4A-95B01FF8054D}.Release|Any CPU.Build.0 = Release|Any CPU + {6A40CB16-F88F-47CF-AF4A-95B01FF8054D}.Release|x64.ActiveCfg = Release|Any CPU + {6A40CB16-F88F-47CF-AF4A-95B01FF8054D}.Release|x64.Build.0 = Release|Any CPU + {6A40CB16-F88F-47CF-AF4A-95B01FF8054D}.Release|x86.ActiveCfg = Release|Any CPU + {6A40CB16-F88F-47CF-AF4A-95B01FF8054D}.Release|x86.Build.0 = Release|Any CPU + {916C4526-14E2-484A-AD98-72F31B11CA7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {916C4526-14E2-484A-AD98-72F31B11CA7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {916C4526-14E2-484A-AD98-72F31B11CA7B}.Debug|x64.ActiveCfg = Debug|Any CPU + {916C4526-14E2-484A-AD98-72F31B11CA7B}.Debug|x64.Build.0 = Debug|Any CPU + {916C4526-14E2-484A-AD98-72F31B11CA7B}.Debug|x86.ActiveCfg = Debug|Any CPU + {916C4526-14E2-484A-AD98-72F31B11CA7B}.Debug|x86.Build.0 = Debug|Any CPU + {916C4526-14E2-484A-AD98-72F31B11CA7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {916C4526-14E2-484A-AD98-72F31B11CA7B}.Release|Any CPU.Build.0 = Release|Any CPU + {916C4526-14E2-484A-AD98-72F31B11CA7B}.Release|x64.ActiveCfg = Release|Any CPU + {916C4526-14E2-484A-AD98-72F31B11CA7B}.Release|x64.Build.0 = Release|Any CPU + {916C4526-14E2-484A-AD98-72F31B11CA7B}.Release|x86.ActiveCfg = Release|Any CPU + {916C4526-14E2-484A-AD98-72F31B11CA7B}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/GenerationService/GenerationService.csproj b/GenerationService/GenerationService.csproj new file mode 100644 index 0000000..e670c27 --- /dev/null +++ b/GenerationService/GenerationService.csproj @@ -0,0 +1,18 @@ + + + + net8.0 + enable + enable + + + + + + + + + + + + diff --git a/GenerationService/Program.cs b/GenerationService/Program.cs index 3fd46b7..72b9db1 100644 --- a/GenerationService/Program.cs +++ b/GenerationService/Program.cs @@ -1,8 +1,8 @@ +using ServiceDefaults; using GenerationService.Models; using GenerationService.Services; using Microsoft.Extensions.Caching.Distributed; using System.Text.Json; -using ServiceDefaults; var builder = WebApplication.CreateBuilder(args); diff --git a/GenerationService/Properties/launchSettings.json b/GenerationService/Properties/launchSettings.json new file mode 100644 index 0000000..b29e0a0 --- /dev/null +++ b/GenerationService/Properties/launchSettings.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "http://localhost:5134", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "https://localhost:7134;http://localhost:5134", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/GenerationService/Services/CourseGenerator.cs b/GenerationService/Services/CourseGenerator.cs new file mode 100644 index 0000000..53d8107 --- /dev/null +++ b/GenerationService/Services/CourseGenerator.cs @@ -0,0 +1,77 @@ +using Bogus; +using GenerationService.Models; + +namespace GenerationService.Services; + +public static class CourseGenerator +{ + private static readonly string[] _courseNames = + [ + "Основы программирования", + "Математический анализ", + "Линейная алгебра", + "Теория вероятностей и математическая статистика", + "Базы данных и СУБД", + "Операционные системы", + "Компьютерные сети", + "Машинное обучение", + "Веб-разработка", + "Алгоритмы и структуры данных", + "Компьютерная графика", + "Искусственный интеллект", + "Облачные технологии", + "Кибербезопасность", + "Проектирование программного обеспечения", + "Объектно-ориентированное программирование", + "Функциональное программирование", + "Архитектура компьютеров", + "Цифровая обработка сигналов", + "Разработка мобильных приложений" + ]; + + private static readonly string[] _malePatronymics = + [ + "Иванович", + "Петрович", + "Сидорович", + "Алексеевич" + ]; + + private static readonly string[] _femalePatronymics = + [ + "Ивановна", + "Петровна", + "Сидоровна", + "Алексеевна" + ]; + + public static Course Generate(int id) + { + var faker = new Faker("ru") { Random = new Randomizer(id) }; + + var person = faker.Person; + var patronymic = person.Gender == Bogus.DataSets.Name.Gender.Male + ? faker.PickRandom(_malePatronymics) + : faker.PickRandom(_femalePatronymics); + + var maxStudents = faker.Random.Int(10, 100); + var currentStudents = faker.Random.Int(0, maxStudents); + + var startDateTime = faker.Date.Past(1); + var endDateTime = faker.Date.Future(1, startDateTime); + + return new Course + { + Id = id, + Name = faker.PickRandom(_courseNames), + TeacherFullName = $"{person.LastName} {person.FirstName} {patronymic}", + StartDate = DateOnly.FromDateTime(startDateTime), + EndDate = DateOnly.FromDateTime(endDateTime), + MaxStudents = maxStudents, + CurrentStudents = currentStudents, + HasCertificate = faker.Random.Bool(), + Cost = Math.Round(faker.Random.Decimal(0, 50000), 2), + Rating = faker.Random.Int(1, 5) + }; + } +} diff --git a/GenerationService/appsettings.Development.json b/GenerationService/appsettings.Development.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/GenerationService/appsettings.Development.json @@ -0,0 +1 @@ +{} diff --git a/GenerationService/appsettings.json b/GenerationService/appsettings.json new file mode 100644 index 0000000..abddb8a --- /dev/null +++ b/GenerationService/appsettings.json @@ -0,0 +1,12 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*", + "ConnectionStrings": { + "cache": "localhost:6379" + } +} diff --git a/ServiceDefaults/Extensions.cs b/ServiceDefaults/Extensions.cs index 4027740..19661d6 100644 --- a/ServiceDefaults/Extensions.cs +++ b/ServiceDefaults/Extensions.cs @@ -1,8 +1,8 @@ +using Microsoft.Extensions.Hosting; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; -using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using OpenTelemetry; using OpenTelemetry.Metrics; @@ -12,7 +12,7 @@ namespace ServiceDefaults; public static class ServiceDefaultsExtensions { - public static IHostApplicationBuilder AddServiceDefaults(this IHostApplicationBuilder builder) + public static WebApplicationBuilder AddServiceDefaults(this WebApplicationBuilder builder) { builder.ConfigureOpenTelemetry(); builder.AddDefaultHealthChecks(); @@ -27,7 +27,7 @@ public static IHostApplicationBuilder AddServiceDefaults(this IHostApplicationBu return builder; } - public static IHostApplicationBuilder ConfigureOpenTelemetry(this IHostApplicationBuilder builder) + public static WebApplicationBuilder ConfigureOpenTelemetry(this WebApplicationBuilder builder) { builder.Logging.AddOpenTelemetry(logging => { @@ -52,7 +52,7 @@ public static IHostApplicationBuilder ConfigureOpenTelemetry(this IHostApplicati return builder; } - private static IHostApplicationBuilder AddOpenTelemetryExporters(this IHostApplicationBuilder builder) + private static WebApplicationBuilder AddOpenTelemetryExporters(this WebApplicationBuilder builder) { var useOtlpExporter = !string.IsNullOrWhiteSpace(builder.Configuration["OTEL_EXPORTER_OTLP_ENDPOINT"]); if (useOtlpExporter) @@ -62,7 +62,7 @@ private static IHostApplicationBuilder AddOpenTelemetryExporters(this IHostAppli return builder; } - public static IHostApplicationBuilder AddDefaultHealthChecks(this IHostApplicationBuilder builder) + public static WebApplicationBuilder AddDefaultHealthChecks(this WebApplicationBuilder builder) { builder.Services.AddHealthChecks() .AddCheck("self", () => HealthCheckResult.Healthy(), ["live"]); diff --git a/ServiceDefaults/ServiceDefaults.csproj b/ServiceDefaults/ServiceDefaults.csproj new file mode 100644 index 0000000..43f03f5 --- /dev/null +++ b/ServiceDefaults/ServiceDefaults.csproj @@ -0,0 +1,20 @@ + + + + net8.0 + enable + enable + + + + + + + + + + + + + + From 3198009f5f0132b42d0b0615129c1562438cd9d3 Mon Sep 17 00:00:00 2001 From: AlexPrib Date: Tue, 3 Mar 2026 16:00:48 +0400 Subject: [PATCH 4/5] =?UTF-8?q?=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AppHost/Program.cs | 3 +- GenerationService/Models/Course.cs | 10 +-- GenerationService/Program.cs | 21 +++++-- GenerationService/Services/CourseGenerator.cs | 63 +++++++------------ GenerationService/appsettings.json | 9 +++ 5 files changed, 55 insertions(+), 51 deletions(-) diff --git a/AppHost/Program.cs b/AppHost/Program.cs index 517407f..68b7b18 100644 --- a/AppHost/Program.cs +++ b/AppHost/Program.cs @@ -1,6 +1,7 @@ var builder = DistributedApplication.CreateBuilder(args); -var cache = builder.AddRedis("cache"); +var cache = builder.AddRedis("cache") + .WithRedisInsight(); var generationService = builder.AddProject("generation-service") .WithReference(cache) diff --git a/GenerationService/Models/Course.cs b/GenerationService/Models/Course.cs index 9d9e780..22ff958 100644 --- a/GenerationService/Models/Course.cs +++ b/GenerationService/Models/Course.cs @@ -8,17 +8,17 @@ public class Course /// /// Уникальный идентификатор курса /// - public int Id { get; init; } + public int Id { get; set; } /// /// Название курса /// - public string Name { get; init; } = string.Empty; + public required string Name { get; init; } /// /// Полное имя преподавателя курса /// - public string TeacherFullName { get; init; } = string.Empty; + public required string TeacherFullName { get; init; } /// /// Дата начала курса @@ -33,12 +33,12 @@ public class Course /// /// Максимально допустимое количество студентов, которые могут быть зачислены на курс /// - public int MaxStudents { get; init; } + public int MaxCountStudents { get; init; } /// /// Текущее количество записанных студентов /// - public int CurrentStudents { get; init; } + public int CurrentCountStudents { get; init; } /// /// Выдаётся ли по окончании курса сертификат diff --git a/GenerationService/Program.cs b/GenerationService/Program.cs index 72b9db1..577ed36 100644 --- a/GenerationService/Program.cs +++ b/GenerationService/Program.cs @@ -11,15 +11,26 @@ builder.AddRedisDistributedCache("cache"); builder.Services.AddCors(options => - options.AddDefaultPolicy(policy => - policy.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod())); +{ + if (builder.Environment.IsDevelopment()) + { + options.AddDefaultPolicy(policy => + policy.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod()); + } + else + { + var allowedOrigins = builder.Configuration.GetSection("Cors:AllowedOrigins").Get() ?? []; + options.AddDefaultPolicy(policy => + policy.WithOrigins(allowedOrigins).AllowAnyHeader().AllowAnyMethod()); + } +}); var app = builder.Build(); app.UseCors(); app.MapDefaultEndpoints(); -app.MapGet("/course", async (int id, IDistributedCache cache, ILogger logger) => +app.MapGet("/course", async (int id, IDistributedCache cache, IConfiguration configuration, ILogger logger) => { if (id <= 0) return Results.BadRequest("Received invalid ID. ID must be a positive number"); @@ -40,12 +51,14 @@ logger.LogInformation("Cache miss for course with id {CourseId}, generating new data", id); var course = CourseGenerator.Generate(id); + var cacheExpirationMinutes = configuration.GetValue("Cache:ExpirationMinutes", 10); + await cache.SetStringAsync( cacheKey, JsonSerializer.Serialize(course), new DistributedCacheEntryOptions { - AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10) + AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(cacheExpirationMinutes) }); logger.LogInformation( diff --git a/GenerationService/Services/CourseGenerator.cs b/GenerationService/Services/CourseGenerator.cs index 53d8107..efb3e56 100644 --- a/GenerationService/Services/CourseGenerator.cs +++ b/GenerationService/Services/CourseGenerator.cs @@ -29,49 +29,30 @@ public static class CourseGenerator "Разработка мобильных приложений" ]; - private static readonly string[] _malePatronymics = - [ - "Иванович", - "Петрович", - "Сидорович", - "Алексеевич" - ]; - - private static readonly string[] _femalePatronymics = - [ - "Ивановна", - "Петровна", - "Сидоровна", - "Алексеевна" - ]; + private static readonly Faker _faker = new Faker("ru") + .RuleFor(c => c.Id, f => 0) + .RuleFor(c => c.Name, f => f.PickRandom(_courseNames)) + .RuleFor(c => c.TeacherFullName, f => + { + var person = f.Person; + var patronymicBase = f.Name.FirstName(Bogus.DataSets.Name.Gender.Male); + var patronymic = person.Gender == Bogus.DataSets.Name.Gender.Male + ? $"{patronymicBase}ович" + : $"{patronymicBase}овна"; + return $"{person.LastName} {person.FirstName} {patronymic}"; + }) + .RuleFor(c => c.StartDate, f => DateOnly.FromDateTime(f.Date.Past(1))) + .RuleFor(c => c.EndDate, (f, c) => DateOnly.FromDateTime(f.Date.Future(1, c.StartDate.ToDateTime(TimeOnly.MinValue)))) + .RuleFor(c => c.MaxCountStudents, f => f.Random.Int(10, 100)) + .RuleFor(c => c.CurrentCountStudents, (f, c) => f.Random.Int(0, c.MaxCountStudents)) + .RuleFor(c => c.HasCertificate, f => f.Random.Bool()) + .RuleFor(c => c.Cost, f => Math.Round(f.Random.Decimal(0, 50000), 2)) + .RuleFor(c => c.Rating, f => f.Random.Int(1, 5)); public static Course Generate(int id) { - var faker = new Faker("ru") { Random = new Randomizer(id) }; - - var person = faker.Person; - var patronymic = person.Gender == Bogus.DataSets.Name.Gender.Male - ? faker.PickRandom(_malePatronymics) - : faker.PickRandom(_femalePatronymics); - - var maxStudents = faker.Random.Int(10, 100); - var currentStudents = faker.Random.Int(0, maxStudents); - - var startDateTime = faker.Date.Past(1); - var endDateTime = faker.Date.Future(1, startDateTime); - - return new Course - { - Id = id, - Name = faker.PickRandom(_courseNames), - TeacherFullName = $"{person.LastName} {person.FirstName} {patronymic}", - StartDate = DateOnly.FromDateTime(startDateTime), - EndDate = DateOnly.FromDateTime(endDateTime), - MaxStudents = maxStudents, - CurrentStudents = currentStudents, - HasCertificate = faker.Random.Bool(), - Cost = Math.Round(faker.Random.Decimal(0, 50000), 2), - Rating = faker.Random.Int(1, 5) - }; + var course = _faker.Generate(); + course.Id = id; + return course; } } diff --git a/GenerationService/appsettings.json b/GenerationService/appsettings.json index abddb8a..dee2e65 100644 --- a/GenerationService/appsettings.json +++ b/GenerationService/appsettings.json @@ -8,5 +8,14 @@ "AllowedHosts": "*", "ConnectionStrings": { "cache": "localhost:6379" + }, + "Cors": { + "AllowedOrigins": [ + "https://example.com", + "https://api.example.com" + ] + }, + "Cache": { + "ExpirationMinutes": 10 } } From 627de3ab20a655da88ee1174dcefe8622eeb39e1 Mon Sep 17 00:00:00 2001 From: AlexPrib Date: Thu, 5 Mar 2026 16:48:57 +0400 Subject: [PATCH 5/5] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=B2=D1=82=D0=BE=D1=80=D1=83=D1=8E=20=D0=BB=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BD=D1=83=D1=8E=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ApiGateway/ApiGateway.csproj | 23 +++++++++++ ApiGateway/NoServicesAvailableError.cs | 7 ++++ ApiGateway/Program.cs | 42 +++++++++++++++++++ ApiGateway/Properties/launchSettings.json | 38 +++++++++++++++++ ApiGateway/QueryBasedLoadBalancer.cs | 47 ++++++++++++++++++++++ ApiGateway/appsettings.Development.json | 8 ++++ ApiGateway/appsettings.json | 15 +++++++ ApiGateway/ocelot.json | 28 +++++++++++++ AppHost/AppHost.csproj | 3 +- AppHost/Program.cs | 23 ++++++++++- Client.Wasm/Components/StudentCard.razor | 2 +- Client.Wasm/wwwroot/appsettings.json | 2 +- CloudDevelopment.sln | 18 ++++++++- GenerationService/Program.cs | 4 +- README.md | 25 +++++++----- image-1.png | Bin 0 -> 79732 bytes image-2.png | Bin 0 -> 54549 bytes image.png | Bin 0 -> 60737 bytes 18 files changed, 265 insertions(+), 20 deletions(-) create mode 100644 ApiGateway/ApiGateway.csproj create mode 100644 ApiGateway/NoServicesAvailableError.cs create mode 100644 ApiGateway/Program.cs create mode 100644 ApiGateway/Properties/launchSettings.json create mode 100644 ApiGateway/QueryBasedLoadBalancer.cs create mode 100644 ApiGateway/appsettings.Development.json create mode 100644 ApiGateway/appsettings.json create mode 100644 ApiGateway/ocelot.json create mode 100644 image-1.png create mode 100644 image-2.png create mode 100644 image.png diff --git a/ApiGateway/ApiGateway.csproj b/ApiGateway/ApiGateway.csproj new file mode 100644 index 0000000..61ea778 --- /dev/null +++ b/ApiGateway/ApiGateway.csproj @@ -0,0 +1,23 @@ + + + + net8.0 + enable + enable + + + + + + + + + + + + + PreserveNewest + + + + diff --git a/ApiGateway/NoServicesAvailableError.cs b/ApiGateway/NoServicesAvailableError.cs new file mode 100644 index 0000000..11eeec2 --- /dev/null +++ b/ApiGateway/NoServicesAvailableError.cs @@ -0,0 +1,7 @@ +using Ocelot.Errors; + +namespace ApiGateway; + +public class NoServicesAvailableError(string message) : Error(message, OcelotErrorCode.UnknownError, 503) +{ +} diff --git a/ApiGateway/Program.cs b/ApiGateway/Program.cs new file mode 100644 index 0000000..f6be0fc --- /dev/null +++ b/ApiGateway/Program.cs @@ -0,0 +1,42 @@ +using Ocelot.DependencyInjection; +using Ocelot.Middleware; +using ServiceDefaults; +using ApiGateway; + +var builder = WebApplication.CreateBuilder(args); + +builder.AddServiceDefaults(); + +builder.Configuration.AddJsonFile("ocelot.json", optional: false, reloadOnChange: true); + +builder.Services.AddCors(options => +{ + if (builder.Environment.IsDevelopment()) + { + options.AddDefaultPolicy(policy => + policy.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod()); + } + else + { + var allowedOrigins = builder.Configuration.GetSection("Cors:AllowedOrigins").Get() ?? []; + options.AddDefaultPolicy(policy => + policy.WithOrigins(allowedOrigins).AllowAnyHeader().AllowAnyMethod()); + } +}); + +builder.Services + .AddOcelot(builder.Configuration) + .AddCustomLoadBalancer((serviceProvider, route, serviceDiscoveryProvider) => + { + return new QueryBasedLoadBalancer(serviceDiscoveryProvider.GetAsync); + }); + +var app = builder.Build(); + +app.UseCors(); +app.MapDefaultEndpoints(); + +await app.UseOcelot(); + +app.Run(); + diff --git a/ApiGateway/Properties/launchSettings.json b/ApiGateway/Properties/launchSettings.json new file mode 100644 index 0000000..75e3489 --- /dev/null +++ b/ApiGateway/Properties/launchSettings.json @@ -0,0 +1,38 @@ +{ + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:7138", + "sslPort": 44326 + } + }, + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "http://localhost:5067", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "https://localhost:7022;http://localhost:5067", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": false, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/ApiGateway/QueryBasedLoadBalancer.cs b/ApiGateway/QueryBasedLoadBalancer.cs new file mode 100644 index 0000000..3cb8834 --- /dev/null +++ b/ApiGateway/QueryBasedLoadBalancer.cs @@ -0,0 +1,47 @@ +using Ocelot.LoadBalancer.Interfaces; +using Ocelot.Responses; +using Ocelot.Values; + +namespace ApiGateway; + +public class QueryBasedLoadBalancer : ILoadBalancer +{ + private readonly Func>> _services; + + public QueryBasedLoadBalancer() + { + _services = () => Task.FromResult(new List()); + } + + public QueryBasedLoadBalancer(Func>> services) + { + _services = services; + } + + public string Type => nameof(QueryBasedLoadBalancer); + + public void Release(ServiceHostAndPort hostAndPort) { } + + public async Task> LeaseAsync(HttpContext httpContext) + { + var services = await _services(); + + if (services == null || services.Count == 0) + { + return new ErrorResponse( + new NoServicesAvailableError("No services available for load balancing")); + } + + if (!httpContext.Request.Query.TryGetValue("id", out var idValues) + || !int.TryParse(idValues.FirstOrDefault(), out var id)) + { + var firstService = services[0]; + return new OkResponse(firstService.HostAndPort); + } + + var replicaIndex = id % services.Count; + var selectedService = services[replicaIndex]; + + return new OkResponse(selectedService.HostAndPort); + } +} diff --git a/ApiGateway/appsettings.Development.json b/ApiGateway/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/ApiGateway/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/ApiGateway/appsettings.json b/ApiGateway/appsettings.json new file mode 100644 index 0000000..2a49fbd --- /dev/null +++ b/ApiGateway/appsettings.json @@ -0,0 +1,15 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*", + "Cors": { + "AllowedOrigins": [ + "https://example.com", + "https://api.example.com" + ] + } +} diff --git a/ApiGateway/ocelot.json b/ApiGateway/ocelot.json new file mode 100644 index 0000000..8449c95 --- /dev/null +++ b/ApiGateway/ocelot.json @@ -0,0 +1,28 @@ +{ + "Routes": [ + { + "DownstreamPathTemplate": "/course", + "DownstreamScheme": "http", + "UpstreamPathTemplate": "/course", + "UpstreamHttpMethod": [ "Get" ], + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 5000 + }, + { + "Host": "localhost", + "Port": 5001 + }, + { + "Host": "localhost", + "Port": 5002 + } + ], + "LoadBalancerOptions": { + "Type": "QueryBasedLoadBalancer" + } + } + ], + "GlobalConfiguration": {} +} diff --git a/AppHost/AppHost.csproj b/AppHost/AppHost.csproj index 5ad3592..dde99fb 100644 --- a/AppHost/AppHost.csproj +++ b/AppHost/AppHost.csproj @@ -1,4 +1,4 @@ - + @@ -15,6 +15,7 @@ + diff --git a/AppHost/Program.cs b/AppHost/Program.cs index 68b7b18..a110bb0 100644 --- a/AppHost/Program.cs +++ b/AppHost/Program.cs @@ -3,12 +3,31 @@ var cache = builder.AddRedis("cache") .WithRedisInsight(); -var generationService = builder.AddProject("generation-service") +var generationService0 = builder.AddProject("generation-service-0") .WithReference(cache) + .WithEndpoint("http", endpoint => endpoint.Port = 5000) .WaitFor(cache); +var generationService1 = builder.AddProject("generation-service-1") + .WithReference(cache) + .WithEndpoint("http", endpoint => endpoint.Port = 5001) + .WaitFor(cache); + +var generationService2 = builder.AddProject("generation-service-2") + .WithReference(cache) + .WithEndpoint("http", endpoint => endpoint.Port = 5002) + .WaitFor(cache); + +var apiGateway = builder.AddProject("api-gateway") + .WithEndpoint("http", endpoint => endpoint.Port = 5100) + .WithExternalHttpEndpoints() + .WaitFor(generationService0) + .WaitFor(generationService1) + .WaitFor(generationService2); + builder.AddProject("client-wasm") .WithExternalHttpEndpoints() - .WaitFor(generationService); + .WithReference(apiGateway) + .WaitFor(apiGateway); builder.Build().Run(); diff --git a/Client.Wasm/Components/StudentCard.razor b/Client.Wasm/Components/StudentCard.razor index beaf9f0..52793e3 100644 --- a/Client.Wasm/Components/StudentCard.razor +++ b/Client.Wasm/Components/StudentCard.razor @@ -4,7 +4,7 @@ - Номер №1 "Кэширование" + Номер №2 "Балансировка нагрузки" Вариант №12 "Учебный курс" Выполнена Прибыловым Александром 6511 Ссылка на форк diff --git a/Client.Wasm/wwwroot/appsettings.json b/Client.Wasm/wwwroot/appsettings.json index 82d7512..5124163 100644 --- a/Client.Wasm/wwwroot/appsettings.json +++ b/Client.Wasm/wwwroot/appsettings.json @@ -6,5 +6,5 @@ } }, "AllowedHosts": "*", - "BaseAddress": "http://localhost:5134/course" + "BaseAddress": "http://localhost:5100/course" } \ No newline at end of file diff --git a/CloudDevelopment.sln b/CloudDevelopment.sln index 65c3563..2c4dd7f 100644 --- a/CloudDevelopment.sln +++ b/CloudDevelopment.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.14.36811.4 +# Visual Studio Version 18 +VisualStudioVersion = 18.3.11520.95 d18.3 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Client.Wasm", "Client.Wasm\Client.Wasm.csproj", "{AE7EEA74-2FE0-136F-D797-854FD87E022A}" EndProject @@ -11,6 +11,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GenerationService", "Genera EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppHost", "AppHost\AppHost.csproj", "{916C4526-14E2-484A-AD98-72F31B11CA7B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ApiGateway", "ApiGateway\ApiGateway.csproj", "{ABE66B30-BD47-A7B2-B17B-5BA67959B026}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -69,6 +71,18 @@ Global {916C4526-14E2-484A-AD98-72F31B11CA7B}.Release|x64.Build.0 = Release|Any CPU {916C4526-14E2-484A-AD98-72F31B11CA7B}.Release|x86.ActiveCfg = Release|Any CPU {916C4526-14E2-484A-AD98-72F31B11CA7B}.Release|x86.Build.0 = Release|Any CPU + {ABE66B30-BD47-A7B2-B17B-5BA67959B026}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABE66B30-BD47-A7B2-B17B-5BA67959B026}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABE66B30-BD47-A7B2-B17B-5BA67959B026}.Debug|x64.ActiveCfg = Debug|Any CPU + {ABE66B30-BD47-A7B2-B17B-5BA67959B026}.Debug|x64.Build.0 = Debug|Any CPU + {ABE66B30-BD47-A7B2-B17B-5BA67959B026}.Debug|x86.ActiveCfg = Debug|Any CPU + {ABE66B30-BD47-A7B2-B17B-5BA67959B026}.Debug|x86.Build.0 = Debug|Any CPU + {ABE66B30-BD47-A7B2-B17B-5BA67959B026}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABE66B30-BD47-A7B2-B17B-5BA67959B026}.Release|Any CPU.Build.0 = Release|Any CPU + {ABE66B30-BD47-A7B2-B17B-5BA67959B026}.Release|x64.ActiveCfg = Release|Any CPU + {ABE66B30-BD47-A7B2-B17B-5BA67959B026}.Release|x64.Build.0 = Release|Any CPU + {ABE66B30-BD47-A7B2-B17B-5BA67959B026}.Release|x86.ActiveCfg = Release|Any CPU + {ABE66B30-BD47-A7B2-B17B-5BA67959B026}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/GenerationService/Program.cs b/GenerationService/Program.cs index 577ed36..fac723a 100644 --- a/GenerationService/Program.cs +++ b/GenerationService/Program.cs @@ -32,8 +32,8 @@ app.MapGet("/course", async (int id, IDistributedCache cache, IConfiguration configuration, ILogger logger) => { - if (id <= 0) - return Results.BadRequest("Received invalid ID. ID must be a positive number"); + if (id < 0) + return Results.BadRequest("Received invalid ID. ID must be a non-negative number"); var cacheKey = $"course:{id}"; diff --git a/README.md b/README.md index 0807a53..dba9e9e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -## Цель лабораторной работы -Реализация минимального микросервисного бэкенда с кэшированием +## Цель лабораторной работы №2 +Реализация API Gateway на основе Ocelot с кастомным алгоритмом балансировки нагрузки Query Based. ## Технологии и требования @@ -7,19 +7,22 @@ - Redis - Bogus +### Вариант №12 +- **Доменная область**: Учебный курс +- **Алгоритм балансировки**: Query Based + ## Что я сделал в проекте -В рамках этой лабораторной работы реализовано и настроено следующее: +Реализован API Gateway с кастомным алгоритмом балансировки нагрузки Query Based, который: +- Обеспечивает детерминированное распределение запросов по репликам на основе параметра `id` +- Интегрирован с Aspire для удобной оркестрации и мониторинга +- Поддерживает масштабирование через изменение количества реплик +- Использует Redis для кэширования и уменьшения нагрузки на генерацию данных -- HTTP-эндпоинт `GET /course?id={id}` в сервисе `GenerationService`, возвращающий DTO `Course`. -- Механизм генерации данных курсов (используется Bogus)., -- Кэширование ответов через `IDistributedCache` с провайдером Redis: ключи `course:{id}`, TTL 10 минут. -- Набор расширений `ServiceDefaults` для единообразной конфигурации сервисов: OpenTelemetry (метрики/трейсы), health checks и настройки `HttpClient`. +![alt text](image.png) +![alt text](image-1.png) +![alt text](image-2.png) -Снимок экрана 2026-02-19 162728 -Снимок экрана 2026-02-19 162815 -Снимок экрана 2026-02-19 162752 -Снимок экрана 2026-02-19 162917 diff --git a/image-1.png b/image-1.png new file mode 100644 index 0000000000000000000000000000000000000000..63eae1eeaec631c0478c836abda4a5adc99a578b GIT binary patch literal 79732 zcmce-c{rO}+yAX|=|-znMbYlk7DbCt6m7LM#u`Ee(VAl{F^?U!hR_--imEY)6fu+R zR#EeunCBoOF$+TSi{AIM_x&8l`##6}$MgQK!;mY$^Tz#AAIeP7VPM zHa0d+;G+jdY-}fF*w_x+pFGZb$M!Dv57xg!Fe9z|Y{i`yNvxBjj`#HLv9XoJp4xkM zjCIcb{E<0~jg70};P+6oN4^~!8#4#^;GT&;WN9oU*o2tIWcu-3dauuxmfx5l@b&6Z zy%vSL*!!7}b825@=k%aHB-tTPZWa<Qk2iJcv0C19HJwUIusOstukrP2eO+hg zMWsWm_WkSl>)3g+`+uFVvAsC;a)syb)4L{@>W=<>cAEF3%s&@CIQB#5?~m9F|5q-1 z57g6Bop+DU_K&izwjD*K-8Ra>j6{y2{;BBntJeRlHq#<8IZ6c8Lm`A$GzJ+b$oJO4 zO3n3N%4MFaW5hX(RjOe)|GC(*h8GfU{4EpmHl9Zmhzin{_q>-9bmpHgES&3WI{f$P zdybIPkn@F2%gGbV$vCX#vAEuKymKF#3|GKeGc-1bLFK0F9^Pn|M_ucri1`X6gLdK- zd3#@ZWket`%mo`aDtUYCwsoVR^Dx>1rvsRfdM+acPeMJoR6!cSv5!d#PXf<0GIn_@uGS%rX4RQYc>Uk zMGXJGJIm4COLc$v5D^0V*-jO`XoXxvqG+Soub>&%o%BM(Rqy%UIMV?qm)Y;*!Ua%AvU^RY} zu-3qn;63vM&IyIzfIcfp`qW4AbsLJZ|kjj6$6Zf1#hIirui_ zb8#EEx-;60IW?`7>jY+i-F6MlG=4%QAUKnutxW^6iL8vZeY0iMTYz38_jqwa_q)Gu z>BXU3kA}8;q}^cs$Z3mI6Ixrxuw}iu3gbdIf1$eC!)osHDg}aKoU#nRIW&BDwQLh? zRi)b&NpK-&SWq7FT$M`jaDUDV)COaL>c4c%?tdOyalZ>!flpLd2No_eE_SDs#qiFl zWzLIy&J~rst1?oMt7_3fRCH-xMhxuwHLnTrTYZ_9aV#wC$*D6gpLIZY9u+8W7{*=s z-h9oYBB_Xr^Gy8tB=WQ7nN!8J<`y)0pat_wfpzn zLK?uo3KNi>zhEW!@f2xEE*I6uxj_tQ?`yIE$4j2ZUT)7!%}c@N5#e3D7nV`cKIOjBfw_9ZO`7lxn4pHuGoR;X^m%Ngv(>4Gvh`1_GZMf0106dDZz=p^kS{EQ@OH;+ zwqb@q9|?Q9A0cWsW9t$`hi1`l+%kP3f`YGUZYmpe2dz!wqvkioZH~@+H`je#(zKc7 z4^&>&Q;6rTk06pZUE?9UH2Q`mU*Ykw&wY*QO5cp>`qjxNXI!%&yG?=BBE*;<^Cpg} zKdVIHR!-xc87N&zXow#!6!YcA1qHBk6sAUD5aHdh^nvc0k=6_mgj8U2YxJm^Kxb3qs4MU5 zcJUt|;#PgvHeK=s)88j*lTR+gubjz!B4rHwt0wKs14+ZW%eQWeQNot{0?8FRV~n|{56K|l zncNt?$6H>wz0mb}q8INt!cI4}woG?o&lyO6+An(@NObY)SXqrmD5ws?CuO~B2Jcb= z#|U$ff8yv7;6!+`>IX*RH4NpitE#Ji1$U$?L&OPrzfw=5x4GtI^{Ve&aK^&CV2`YC zucP%b9+eeX-d=)FW?!QMV>UGL4X0?sb~EYMp=TG45xhOa+ENFm-N^-2M{{%;bqtD5 z->B+6GkXbGb^zTqipzuY4GZYsC|@I9=xdbtra?|JsZRdelz*|EO`IZ5OaQJ_l42K6 z&@%!l~4XSm$Pt2(Q$&bG@ZF0q@sC?6Z=gs9vKeKJo7bam!*zZSZ%@&PLi)8`AS zx=&N@PrEG}C(0>wuFkJ%v;!4JnP$vg6Tbk{>@BEy*PD>!z-Vtb>uFLx)_LKOL*RJW zVnj97N7us@G<0bFNwXMq3*p84q;J{R34sr_t%#ep(-qtMrTS;h-?QyqmdV&7wAlsS zi4rP}1xa_Z<{C81XO~pu?Dg0L2dlxxUduhD)0?dL2J#Uy0pRxyzK!1`}@cJeDil|aI<^E%^!KL!_w;MiMS-FSQMb6W?{DW-6mP&g5ueCoF&Oh`^A!6 z7wb(js>SyJGUU(-^$WrfIS|%oePqA$wEA{A7tUo|SOKywEWITE;?&0ve_jcq%z2k2 zy>ac3@nklM@)lvONSJr1NBo&lrZXe}5?j31Qt6CJ z_eVkuW{+l7&ZXsmJ;vPwXv@Aqy(pJ*q#bf@zMaq;H(yT4X%tXzr*dstlQ%xA=D60y zF^2Noa45r_nsTs3si})jdiT18FX=Cx#yMFsXt(WZE#lVH%(1{}S}leIblK4YLCWf2KkJfYnX~(*Q{Hz0vU+{yokPTZAVPly7It~4w_KY5wo9Wl8>-T z-FOgDf{S&}H{7?a*1omgET;wOrPWqh1LNHX_P)*omS;@;`MWbwX_ktZibu4)FZ%d1 z2A?n{#Hqsrr*-*G{nway@%SLR;Gyg3rj6Eekjil->-FW&C@A4X;WZ0x^}GQczd@QJ zbDQA%Fk`w-yUYBBb%a3_tVxojo8^1)WLSp|(%k-(u*uN!;qSR0#akKkLx?mvi!xX) zbngOs8dabPR52aRTHY%i;yMawFWf-l*D59GO`>8)Pu&|Kx3D_)iUr7LHkzk6BX=lZ z9iTpM3dc2ZaCcpQT&v#}db);KlbA^tT-GCCF4~59q$PYkx?Yl|Q~{bWx6Gb2^wIfO zfSPd}3D+XF33?bPj?~Qaqo_YH#T{L<AfTDE2B7J*R?At+rH#>JCE>S?N3c$@;XIak8X zNB+d-^O`3kDiYv5y+jJsv~b;%QEr$TwcMK^X8-KIp-UJm6%lEmcw|*Do~Jl;)ERVb zKE-un6kM1FrY_W1&v7bsLXy-TWvxb+*3ow$>`mQ$vH$SmOVOYD`}<+krg2b_Kv=Pn zoe3mKx7{oy=;O=ltfaE749?Mf1*Bbz`c?mTq+z@HWg~zn_P15o-e~x<|9y5z;`Dz+ z^7kBX{)wb)Uk^|HbJ>gh)A0yIVCUG$zprHrf&aH;{eNYR@PBtj@;}t}_TQ$C8p=tA z6nwm*<-E|H85t4b>33wocD^&MkJOjvvo;G%Q}$^c8`HP03$Lv;Sj^gA)KOJBSVOY0 zZIpk1eZuA7s;H>i>kQ!&yQ#4GPSVm)nR3W3W;~1;;^)_2HP|_3)qY!sofEU-#rkf| zbfn}4wRTx^Q&9Y7_aDM{o-~AW_C=h%=DoWC^{ea%|qJy*e@jCq#n3u&PZXtRH3jGYSp|xw;nVrz!I$&NoTp zVSapaojNvm-zHztjQ)mWKYXd?$;5|XI;C>VssbCz>1UteeQ2vt#%J@w?_#?NcZ6f@ zOi652--?`@Dk>EG2*>Bee8yFKTF%1%huty{N37;dedTRTPeNvr3>q--|hPS=PTcT^Vhro&u)I7^CwLE@)h&2lSI(AO*Y+<8P;l?&|q#$T+?*w1w?~eS!{j;&LWqzHM zXa+I#^eoZV*2egdO+#h`C%U^cHO8Wju)R<__pj06Um~F7mHoSK>k{+1zT|f7MI8 z;Cet-%1+0cP5y|&-+H@sV5hBNgX;>pWI%kLekEyPwSnq@q)*wGIPX|>G^2GSJ8twFE7Oi)FmSrRC#0`~N$))o!Qde(J4)&2xjkx9cvq%xTc>nH>3Y~i+ga(aoJkb5JM&;9gQ~* zgSm<2mxUPd(b{A$yM?bgNcWL&xRI%4p->X9fU@1E(7m;WVe$l(N;S6ndkj+dRH++{ zGNFb9ND#^t%@yWLoq8vNe|h8t#?zL&i+SjXN#6VieE%R1SC#$ ze?D0fQ|z1q9#^9dYd?0RXG>F)`{vaGD#uk|+PI?Fy{ochW-w6Wcq94k#2q4a5%wRZ zWT;A)$=dbh>eY~oYnLK*D%)gmmJ|C_KhWdHlhnoP!n{SDN^KdYe;#9zdPJIMOzE9T zT_ZY0D#ZB0KpKsMARvEb<=GFd3<*J5?+-t6rOCse{;aFJ;8Pze zSM(={0tHP2@anUT1*>!-jrBt)yfaZk#$^P3<`8deQF;2kq$jo0Ir*AboX;ek8kHqa&D z4za**_EhKROhUWlK(tHj;-rM%yD6tHdcq#1S&ezxDtu0liLK8mj?mzLNP1gjRwso;ReOh4 zFKXZc$uSrY{F;mNut(c$a1rB!+dBuJk0Q%&H!nBnIhF! zxBTv6|DQ;wuy~#({ZneyF0zSUv-T=N2A|}OcQdOybI;q4j7UBX2+8c_PQDNV1vz6X zRx@`JJl#_FR2sCB5sK!};X-FJXM6f_1s!v9b1>obw~^%B-SSRXv}uepN--yLY^^c? z&>Grzco+SwA)FL6K~L9=kw1J}hcziB$ygV&pS}79qv0GdUsWvI(6;0$2XI`&0prvZ ziSByUBn4n^;+6RRHT~Jh?#`9E-`&zZ9<*GaS5?)ShpFA@)k#dS+oO!zD$Xs8Lwh@$ zMF=zM%-6$U=9dh0MpbC&5;$a>>!ycMXT4HQ3xwpXw?AFK+bi!_2gQs9p?B8JVWa~e zzD!1R^kL6g;`erXF@^B0uJPYj4h(^6|~<#t8=0=zSer5;>K6qndV@MOs^}kB+aIfXS{jNy^Ko-}@F{Ygrvy zXcQOd(mU^(Z&qB;zH0onspM^e`ISVePx%-OYnciKk%h0ooUPBe&RRzVX(uF^=H%j) z6SH%Wv(IZdG!E-F3kW7%9|OGNL=^;G*Mp`aMujNebsplaLb$HbJ3iy1AMPp;T$Zvv zqJh=3lry0nziOyi)gc!jLAH3qLLAV@)-45d)oiH1 zI1v!yy2AyixGEt&!68=o%D63QUNY=$HZQ$D;e(U4Mwx$bBx38tDSr!E!tu6XGZSPn z;9-i3DAB;UX3@l19r&=-L-CVZ^oy8x?Q;t~Z%(v(Xy3Vc@8$4h9UdEPClqq)$y~kX zDi6vuT|4g@Ip4OrTQLW&9Qp%P&%R;2jHMTI3E#=@?KKh;6@4_PexJE2!pxLJ*BQ~b zC@{3_WPL#CP;p)KZ0i}qLPvZDbxwLF;P)!^Qk{-;^#e0Y&$qQhzGFTF(mrj%?9$Wo z;v3!l?V^C?e7uMyC2VZ9$hTrF8~E&1Lt$P=f4MVEQOCJYB$QDlJkhgL{R&6*H;p~; z8b-51`TpvB;NEKU<`NgIbl4@=x!om}>?!wHNR6U{(B{AXRsUrxF0Q!At=_D(ALRBj z>oQH%T&IJhH3#wBCTPXTOHwXjFR+~YE%LKOl2eNWP!cBp-F$CW+AdJ)ONFE+$p&4& zM2E$*w?c%$dJDAq;h}hwqEVpHSXa>=Qdfmb#gUitCME2coVdo&tK@-%55>^SW#Qnd zpe%^mlCxPP&slK)McH~c0|0WdVsfTs!h!b`B6jm#4AhO)FZ$26`g(`Ic4qY#?@W%e z@-p9pXz!?go9xcj^Lj=0VKqJ;cgG6Otu%M0Lfd{nbZ7r2kTYe%BC4)n!BWmvifK87p;$Yc(VNx%IK1CK7(N_I{5(UKS~9 zkX7ttJPDw!h0iK|k6R5_YUyS3H~#ULiK%HW0wJKfGaD~(%jOMZMxCJ{9IIu`+$C(r zhV3=fZ@(Y}E_w(An18KR`uV=C&RKO+(GOPn_mDR>P|ZPy?UShvBayt48w**nzPHO= z2^f;yiJkcsNlWC^fH45JK_2$Ific(a|MkYtyHrs+X{Sja#O$ftC!`J2!nFvwagaY- zi&{XtQ$|GGBK0;du3p$LepmoMRDBo!{SQEYl7xZL_;rukFMV?~4)_XT^0hkY2~UG7mXUWgit2JwDT+|F$C=(a)1xRl42j4Pe~Fg4MiCOU+NU@>4*|12Q>N78ht6K`|J8ui!x z!s}P+SKk~@XGPyugmBT%qtXiMjMdo9=_r{+KHT) zyq9iD{Kc(jt3E`6*#r$ST75?|~`(*M!X7ycD({J}-FCvOz z@tJ*Gc{w@a9mSSQufC<2MDoCY^nL*VT0tvo?=LIgXooFL3R%bYCVzAdEwst8MbBtJj@(c8Cgm4hl~N|#?!JL1E760a2Z3~_fZE-B4C zNmKPRWsST-R=%dzpHSj{hqdjB|pM79!BHJ}Wp+J(brsYq zF7#$nBtJKh>Q{^&A~qkV@ysjFovV;$1E-@SI(2FP6S`&9ft8;!=6zqq+$n@w`*zyAJ*cTtTM3^V_Iy9y z#fNIuYo;7zEwl>mr!UvV?!gNp{h`(CE;IUJwPeHN=zyUw;Yvp3fLfbI9=$L-bR9lt zM)*-YBtCnfreSEj`>6q-@WYS%mtq2)dgsSXzbbna&mcaHAr)>IGag9Bw}K)A*c*S8 zz$MsIya4xitpgVE;tVxj*iyW<}o5ao-*{XaUD< z>2-e{o!b3B^fOZnf2!t8Nj_A6W5)El+vO1?KkGOnBhrKHOEbBhYGY(<+*K_|2eUF| zDMRE{W$o`#mD_-_9MNn_!@m~PxKsBU>x>4*rBq?*xd9y()`f2ao4D>Cx^SFZxG4Ub zK~1WgRRCx6&z}nxr&{IxyHD2#&4mFLBV9K43r=i0uOG^RGp>aIXwLwZ^3cJ@u?$+h z-v$L9HI{m^XGjehMJM`(7=^2;5ZiXC2FVq*?^pLTm@y2Ts^I4Q-0RB}K5es@e@WmW zsB2-de$9g=wwn}>Fbmp57%oQ0#qV+}wK}i>>s`3v^~gyas3<-^juc=tXOM@4G`j}+ zu-Per=3UfBCY|-hi5pG&s_w^953*Ep%mo@cy+9^}arKzXli`hb8R{-(9>*)sj#B5f zu*K^B?!9{KR3aMRFB1y6LQ^eXR9ALCk-MmqA%YBvH7iV>Hn#lvb@QT;-?(Hjh_m&! zKQ=dD6Ips$<3t&?+u4urM`Y(MP!VERRI6m{*az$4UDm9lMEL;{&+st(z5Shm3@Lsc ze6K-gT~9)5ptY4kto)dm*rX`$|N8JSX-OoDS{L3NENZo?A>Bg`+a%Y^)FqJNr>fb(4E2^#a{el-EaO`3rr;u#ByGqcOh_iC&qeNWj9lN1ZNXh2k zgXIMl--m0ioe39o?^dOaW}#Vg616zA`J@c(*z3n%k{_~k2={ukc1aNB2y{(d)=DSP zXYS{nM7%U;I0J9k-_O~jlzUQ!{^J;@49igxRWzN46Y#|*Tle23v+Y7y`hwMa!gJQ* z_7uiCftLq^A?zNjp_QY%t)3(vMz%k`~5lVPgT{PPjlJPWVRQf z|6K>Y@OX+?4LjlxZu!M}aS1SN&fMuvoES>9-z|&UU;XV;yVn?yV_$VJ*sEFpA#6Ez zrGs>Jqigx^o_ik=(KA%$IM#8wGhMZCa1a|b5($S>yfeH%;wrs~|H^tN?=O%KG(PfT z0Or(`jhdg|t(m&nzZAYOeAHQbh%pvoiJgJ8qtgvUP9Pq zPAT-aEz{bV^!f6^v4C~3+xox7lQH%`L=V&y5H9mlw$Cs^Kxl_6_&vW?} zBcwK!pa1d*#;Td1tw1h-FigybSgF&iZqKU(9~!jC@-~m?xa;O-Ri^WtUynW4ocqM<$mUom+N4!Nzu^Yr|%s zNU|Ff3+$*>bb)O;xQ$InbivDrba891gUoX>2{pAE7vnZi`okW))#gAu%%;5Y%vwXm zq;&FpNU$ZMw<(7-lhJ9$0(|&49>|0zcQ}V?XyXD(Uab;shz6B zTvuPwuI9+o0UOU~SM9IST}&<-l_c4j1`0p!KtSV4LEEF!11i`wEYb-DJ6 zi8L28Xz_kZ&(6@~UrAb&uGFEn41zQnRy={;mB`3N-X+E;%sX<-tUJLYHMWc>4)F^s zaupmHyg6`}?iOhCYz6&x1AQmc4adEesD4{&dgAwH(P(MnZ6oLXjEUd95=x5>I)of^ zWK8ZXPD_RER6fbrjyKup$=raC5sF|s?-G+yZ~ z6^gm~>CnY|Grg8zEv}E*J7RzW^`~1R!?{|D;mq2vx7(}z|FBELg~vJUU`UntL9dwl zPFQMoExur`^2E}uDz~wQv^`F$lSi_(Qt8!o%NOgL7LRMBwgpyc%vek()!@vfCMDAP9Wv0j0; zj`48&K!FNrV7vMlVtGLiArH|?hveGFx`Nifd3P|I!1jKat{9)0=FnEI)KYcz@zpu; znGPnMiQFMnI+GiAT4lxy@VCk~H$5s-ohr`)!MiJWa*PWI%l7Cs(iS-UYi^ z&+yC17Ie@dJ}kKXTyr(!*T8UU8EB6PU8}&8Qp7-8Yb+QpAt@=hS{-V%_sIgV+@=}S z`m1l4w&y%nHY2|_OMX>ho_Q|OOIZa^6g@_VyBo_4}!;JoFc?F z94N)KnxlGND9(JHJ!kD}2}<&2f;$8S?~v*?-%a$hx@S00*N7aN$Sd7fnn(uZm#xpT zYw&u6#!LjZkB`2Kv)Ii}8b@T~DP&C1^YZj{9dRXV0(X+2<76Hx;J$Si@FT-A$LDPu z#y#k67kF8n`SUkfx`kCiOX8lwzG%4TTmcPcJQH1m3Dk7~f%V0n+u1 zd_#+~MR#&z&Gx2*z_el*atEP0E-4gX-WFMCVrKj`nX6JetJ!%=#LtNp=IVXGah(fk zEFR0UUIUIVNY?K=d#YJSt6*dDl`OwUc^7mDH+& z@v+VqXJ#{el3^afxS45%-83R;{5DTA}O1l!890;}Pq~NE1gRHr8Gjg32As zv=tN!KtO@i^9+yQ5=CZdSzN*w2ceyu+U958adi!y*Pn|9gHr6;S4=-ELL6h{Ta^0- z>l_Oe%slWa%n#XpfrWu(3QXCD@hVCN>E3X&)#c;;c4+#ul=-=dLF89Do)!9F;C-~Z z+02lCjsZdjS}~`mXSiowx%hqbPZWB*Xp!d}-hE4UD*(|stjS_fGF z1e}=;EwgUew?c;}D_4MJmesE;Zx2aS1t4?bi2}4D-?SI}g+D*WHO(UW3U)!a#V^}M zJmPV0H`NX<+}f{t^u3Rdgs@(#tJvRq!F6$=wZbTY%$oeYGD~GR^NSa?yfn2OJ8Mov z)Kqjia=9=|{NZU8CN%-rCP-g)NZ9i|+YcGp4}k3P9F)?r(OXTx{L6S*_92OAObBaF zD-!n^wS9!Qz}b_QsV=_9xRX-|lnJT5Znt+Vt!GMIUNUqk4`VWf2s4gDY>6n0ck8B# zgg&xoirI&{r0%f>n^hTUZlhd5}^GS&66GTcm?+=IPn)xZjl zjG~_6z?rf@>ZeHoTeSX7yj)&WB@O!cIsZY}`FLUe4_>EUG^1^7{&}GpyK|oklR`Zy zu}u?e6~-%9W=(CPj`$)nKSYMKvsy7>gSXHEv^2xo6w> zv+#&zr=hPFCZ&00mP0pc^->E<8-(rESDyd!37(#L~IWbb&G64x4d}7a+@@#vzFZ0wzo&LcRNF%NUM7!yBgN<$9GKEV-k)nnHs<82o zJj}|RKY-zyf>-Ktd^a!@ux4qWC%Vus`0ffdewEfL)jBbF-AYccdd^;26y`kgV=@5| z-r%exE+)DkKf~j0CNX71(zUp>{jmE3L)r;t39dD;|c2OPh}$i*>FL0^|CH1{5V%!@UD$ zQptX7K+O)PL%PenB!AL2Z+QH zQW{jsu~GEVy3h6@_StE@$UR$RN-|N@eB#11!2zYF^giw}-Tn zHw%z+DiWle>K~rZME&c9bot27UF)}mA_#-k#_*e?n|0TC$BLIevbL0fG%SdfWqvhk znUO(~qRsk})X{nd#RJ1}<$)X3ZoBvN<2o-QdudUruL(VmvqIH8(tMBdBGz^+wn_vIe|6}S!aIyCgYQ`ft3Z@QA2C#ZoLduNJnRi+uk2?YGK@ZEFMl#8yL?4 zkZCKFdl!a!PrM01*RhB@KVc5VE14Er^DXfS^}*?-^^V^DT0bZ7nR3el^Gy_SfEcg~ zy3Tmv-C@G3Uh||3HrGb$>ylJ02GJQfpC+~a5>Smp0p5KD8rm5w6|xqfy0{y6ZL)uW z@IhhOxX&D2x-65->I{eZ8>XHEXV;V}c*QHl3jxw_Ss!=_b?*cVFpNF_M*19Za8KeM zWSM_JH6*rR)G8~aCdBBKxBols8W4%UK2W``-+{%PCG{88togoUF`{!8IrEI`VjYlz zaxoX8#Rp_&7{zAnNdQ)Ov|kk7GSDE%fthKRL9W`pYLWpLmeU*;(-f6iJ_7Q!DBiK{ z%J-b{yDy=ZYORXu3bsWB2h8v?o48PP=Lke?O_#&qIrSnS9bY@KL^j#j^cg;L;p@_! z417}2KyR3S_k_xIg2y}@#Tvr;hh-k%~*@D289RFI|1thf=(nZ*P!-tsbm$z2Cd<0$N%1KgKA$FVJ`sYDcYbL#m@$$Nb3uL0PSX?6G~LjjcNCWiU`l zF5DF#lNV)&536~@jIL+!sq_b51(rqO7uA_Q?-3K;MMjWpkUBI$vkTuFR}QAb58HFO zIVc?Pa$n9?h7#2iRTLnRIz3CECO#1Y>t2V$^jSH`>M6n^c|CITXZYb9oJF3`gp;++ zx&9&)w;$0m=kj#G8o(g`j=Gf_vz&!HEwyyW)TuB90^wvKJ0_k9prK(ce zpGr(zbb=9KA%!f0{P7M^Gi(T_n$P-V&8{OE{WGsok+VnT+L(pstvvWx#WQU0Kz4_H zTF0q~C?El%5yvQe#I1(akZLFe;G9tSq#Fb6AH%p+%|uup)kS#S)sGbW{)A9@(^x~_ zR{;Rq#-XGfxlHnZU8Lz(Kg=);9Ob7>EMlW=nY{m^nQmVqCKrYVRDcz3fp~}M1Ouk^ z{zhW+Xa~z4{}w~+>sM(SEZLSf#?2&RJ22=B|Ilx`L;k@F zH_qChx+)>%+W1M77iucNYkODApYx&m4;`HV>{Z!I|B_k{;`gcW|BWY>{{86DKUCxk ztmc0}kuUQ9UuZE_3;sta^8fQ?_uH?j@3g?EnyeE4eJr@#LL!m>n1qc@`gSh-;MuZ& z9sk!J$U3k}w<4BF6ps}2im-Y22WV+BGg45t9jkhsVbsVaTrhaqp*Doh)A*Cq*Mnoe z<+BoOR8MFax8WOd(=K1_!Z~!=>zU2(lamyfhV-rBqUwP zD^*VdY;1`U@Sc^b+pJf!5%7WcRaM_84Kp^pB4=mD`yV1}o6oXZ^4Hsc0jidF$sAX! zQ){yG*FMy;&)<9a@L{D!>=7C>surnpmARluz52&vRenE@FkJswzZh^LxO>dIht#rq za68YZScypY2|TYZ$IjorbT{Z9V{aJ0KEaJY0O1Z8rih4$-CaIh9(D9VC}IJ zsTo*D1+iT!IP*6k+uil^=g(g=t4_1OJ_;zfemc%6kbPl25TDGY_jq_Atd~zM1eXrM zYWQ{3b=51gJ&^iGAKd+@BeS}&)+R#`OSb$IxXaoM+F+3@$ntWKMW{ul2(Hd_lVK(b zEGhAcDf9S(pDGmqRv*5>JfJ4m&XWe}NDBhIPDGh*Bf> zG1YmuR$@RieY{m!8m{MZNJV|x zuaU!ScjH)$&d8V6MCw-h8nU#)B!D`nMl`n9$O(?alp1kzayA(xb}giv6@bYKHSYE~ z&V&;g=GGvMU;9pdsr2MZEM8daqqXFjrnK@-HbFmZ0XVS}R_WWo+PSKk&@nYF`0fmY zYq7B%eFTRY)rZ|^qypbr^mG}d>xY(+I$<=&o zD+scAdv4rP>;01=1d-${AEwok{(u-B@_Om1`dVA!kj*iE)+U`@VfSkIXwNOSKxwZp z5EiYs%h?#ialcuehDTWL@ zKtBT4_^u^B3y(0PO(78^0g{^Pdjo=sX|gkHI=c*B0Ga-)yWRpPv|&-^l=fos|2O z*ZT*0xTv;}+U>jigPZTeVYcor-L^WbxDDKLeb#*FCX3sCCsCQK&5|6{zqW`lqia=4 zxw@JyBIVnpZ`@3FNkmjsclGc}`WfASbc(IYN2TsYO~=V|sbfMCrqn^r#L@G)4lQT2 z6Qn*7KaH2NHpw4F5RSfXE_Tgg5mhsKXx*I=M8Zv9#F@aN7L(SG$&?Ahib;EbShfp- z9QZ70y$sm`5i`sAL1rDu(T^;pujldlg$laHfBeT_a zo&bloeDAVglBu56EAOJ4Dt*b5p0S#iP$}ZTZ0+a(!VJ3Btg5`x>Ru0(a;WwyrIr?4 zcf3{`B*dHU2QA%KVQmm38zlNRCTFcd4@MW=1njbT?8pUc(Du!y$w7!)j)Y4Z`Iux| zG{u8V5RY!M`eZwI(Id0Vo^CG&G=ANMl*4eU zxNB@DWKzIJXIxt>aF54dkJtwfD-?~-Ci_VYur?N7+FGtX02li|XY0 zkgHTIMcDCK<4Blw1KFbZ^}V5jP0CVeWdy{{(B=MDBT-(<_@9mEEGqQ%CwE&A*4WxB2DY+OU3JP8H`oPL(V$At1iC`=VpJ3p8gojsFF( zy|U)GUW3y9ZU%HpwCQ2QzzO0rJ>cLa75AU6^Dsp1vnjZD`yFm93<}?SuN#)FlYOVtpx1%X#ip#yPc?@c;Tjh zsly`!{t&W2T`TGOBiWq-uUWSzj;_nd7j@}RCl)OWOI_3UkV&Qc$FSjc6z6y#rxb9;Q$+D4Uq3!&0HRi1ao6ea+My#5cyC3?7v?GLr|! z!}vqZTe8?8usYRJvvJaQ666ZpVx;wtfFn&UpqbE|q`=Bb^l9{Msz3D*Th(^R>{=`^ zE~f5T=re3;Og;4T6Xtsw*w5^!P(~~_`Yy3jH2iaHLiFJrOAyo)RaSDBxY?<5U(frT z&>_C20kde+XX9CjB&B9|y1HVg3F~BcA(1fTX1zC$CSgZCB(Gj=a@Sa1C|@a^L_C1% z27Z%W%2XEX1T?(nE&HL*1lQ%T7?-Dsc7%$LUmy5^0s_jw?Wy7v<+lE%J+Q+C>i)?R z);t>zRxV~74t#rSpy13m{=Ra}^H9ro`dz2@9E_t74RDV(gn-K6dKY}Jq~Wx{(ewJ+ zkMG+=@;_ivwbl~C8Tn1a!4wsnF$2RkLA=ZLwHa?ykMpqxhJB2iph5STf`!Q$zwk0= zzmB%|_nf%lsrA<{2n%08UW5$~D*Cw*E_d0rOZbj@@ggY*2=fYL?onaeq=Z%}nwaUj3fn_$8d!3_A#oZPK?80cx zx9mB={0`-iUtWbiD?YY6b%wp;e6-fosrWf~9PPnPwo*xzdC|5Ry(ElbEprx7IDYY7 zp3YzVfsY(OgMS7 z_)29uJ*yv#7-U1&?!eN{o)GGSecF$2FQFVj$!@g}N!6)~ew`mY#xi;_{al)KQdQY8 z$s3f_vz|j0lgXzfeA_(Ks4-0_y-pUDvhe~>tik4A;(zu$>~=cqQLnhmuit6M zv8dYCu>rAV1i3MFgk;$~Khpq?FLZS|ub{)q;peqM6bCE$PS|lr$D=ITnw)n%XcSc= z6@(qzN w-m0PYjgbO@e?)#R4plDpmN&qK81F7}lR+|#UTy*V^s zm_qMMmc6m%#-FUMJE-tK)d z_p-wZwl(-)KZ0kF8k+B&V08|xJdt4mUV_^8DfpNKhy(QsypCo=p?Gp0D?saz`l1r; zLT^KzZ!HIJ%>HXCzs)NjWFKvJ>bP#O{aCNDRgtgqbs_)vn-*2|;tn;aT~hI9VK; z$r?JWs60P7QS|Ll5+Hr;ex5(2->|kjKl(P}Mtm%2CA39?Phg3_JyJ|P~Dw;Qbbmmbi zI%+cp)<=Z<(wkVTLFR2bw$(*@qt8sZPmqGW6UALf_|aCXsJvJFR^#_mMtnxR4hy>q zmVJMXf5?A>KVRD`@x7)q-7Zv4)biKa0Cl_L$sh0QeW6u1K^gKnwb-77o8pA@?D*8P7KfIlFSX=A5?Ng%^Ev2+L zZE-0Scc}mcic4^JE$&jZcyV|4;u55|JHdlA#R=|uXS&wed+l@YbDn+o+2`ahc#tG> ze)(kl-Z5U$@BqvHLkA(3EsJVrku9Dr)!2>RQWL$B?+Oj3;{GBe*f*s8z^_vrswRWH zg0&WCfDO7}s*>UTJp7nn)}PAOlX&0S1b7Z@yt4%pDN0&|ZCwr~6|>RTCUA-`)OZnu zT}0#PtQKT_;hayLE*q& zUkj_7-9~lG`KJ5|Y>f4UEmq2z(B2R78cmTH{6kL(kM4*&)XAKD+KKOlw35^%Esw@4 z(#wy)WKs60ue@8Vz)+oNWFPBp!HM4B=uMAiZ<4uyL$?EO#b)~50`9(jlvyym;Z(Y! z`vjxAngx@nTE79WFhM?tG>%GnoN4&CL8u`&hy8xH2F>F9qe%C6SuG)u&)p0vn&HQd zt0p#u+$?R3L@MC!636KB51(B&8Q|yy7OvGpsSR8z3pbzn?ts=QJ)O7M#pE{EKRJTq z)IB8uwP0G!)4|a`9T=1uZBHqI`gaF!J&xLy8F85)8^o4cEUjmz?D_~-&6|OoUtZ0} zQ@Gv8@h1<i|L1H0=~%5ADTlF8}>c z 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 Kn41T3Bgxh#)4>mGM4tXz3|8 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 literal 0 HcmV?d00001 diff --git a/image-2.png b/image-2.png new file mode 100644 index 0000000000000000000000000000000000000000..7d06ea05d25108f6b0f3bdd46ecbe52a94e96517 GIT binary patch literal 54549 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%0DbwyJXa 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 literal 0 HcmV?d00001