+
Вход

Въведи своя e-mail и парола за вход, ако вече имаш създаден профил в DEV.BG/Jobs

Забравена парола?
+
Създай своя профил в DEV.BG/Jobs

За да потвърдите, че не сте робот, моля отговорете на въпроса, като попълните празното поле:

92-64 =
+
Забравена парола

Въведи своя e-mail и ще ти изпратим твоята парола

Безплатна DevOps автоматизация от край до край – част 3

*Текстът е предоставен от VSG Bulgaria

Здравейте и добре дошли в част 3 от оптимизацията ни.

Какво изградихме до сега:

В част 1 https://stage2.dev.bg/digest/vsg-bulgaria-devops-automation-dc03/ :
a. Създадохме frontend и backend проект
b. Автоматизирахме билд процесите и създадохме артифакти за разпространение
c. Създадохме тест проект и автоматизирахме тестването на всяка промяна на кода
d. Автоматизирахме публикуването към сървъри на проектите при релийз
e. Автоматизирахме сканирането за уязвимости в проектите

В част 2 https://stage2.dev.bg/digest/vsg-bulgaria-devops-automation-part-2-dc03/
a. Добавихме версия на проектите ни в билд процесите
b. Създадохме докер имиджи на проектите ни и ги публикувахме в докер регистри
c. Автоматизирахме релийз процесите и генерираме файл с всички промени от версия до версия

В част 3
a. Ще създадем статус проект, който следи всяка секунда, дали приложенията ни работят като добавим HealthChecks
b. Ще създадем docker-compose за разпространение на цялата ни инфраструктура
c. Ще добавим Application Insights в Azure за пълно следене на приложенията ни

В тази статия ще разгледаме как да реализираме пълна DevOps автоматизация за .NET приложения, разположени в Azure. Ще се съсредоточим върху четири ключови стъпки, които ще повишат устойчивостта, мониторинга и ефективността на нашите приложения.

Стъпка 1 – Създаване на Статус Проект с HealthChecks

В тази стъпка от нашия път към безплатна DevOps автоматизация, ще се фокусираме върху създаването на статус проект, който ще ни позволи да следим в реално време работата на нашите приложения. Използвайки .NET за програмиране, ще интегрираме HealthChecks, които ще ни предоставят ценна информация за здравето на нашите системи.

Целта на този статус проект е да осигури непрекъсната обратна връзка за състоянието на всички компоненти на приложенията, като по този начин гарантира високо ниво на надеждност и достъпност.

Интегриране на HealthChecks:

Добавяне на HealthChecks във всеки проект:

• Използваме пакета AspNetCore.HealthChecks.UI.Client за всеки отделен проект в нашата инфраструктура.
• Това ще ни позволи да следим основните параметри на всяко приложение като време за отговор, състояние на ресурсите и други важни метрики.

За да интегрираме Health Checks, трябва да модифицираме Startup.cs файла в нашия .NET проект.

С това ако отворим нашия АПИ проект ще видим:

Създаване на главния ‘Статус Проект’:

• За главния статус проект интегрираме пакета AspNetCore.HealthChecks.UI.
• Този проект ще агрегира и визуализира данните от всички HealthChecks, извършвани в различните приложения.
• Той ще предостави централизиран интерфейс, където можем да видим обобщена информация за състоянието на цялата ни инфраструктура.

За „Статус проекта“ отваряме Visual Studio и създаваме нов „ASP.NET Core Web App (Razor Pages) “, след което в Startup.cs файла добавяме:

И след това използваме с:

Този код ще създаде endpoint /health, който връща статуса на здравето на приложението, и UI на адрес /hc-ui, където може да се види подробна информация.

Конфигурация и настройка:

• Конфигурираме HealthChecks да изпращат данни на статус проекта.
• Настройваме периодичността на проверките, така че да получаваме информация в реално време.

Тестване и валидация:

• След приключване на настройките, провеждаме тестове, за да се уверим, че статус проектът коректно отразява състоянието на приложенията.
• Проверяваме дали всички компоненти на инфраструктурата са правилно интегрирани и дали данните се визуализират коректно.

Създаването на ефективен статус проект с HealthChecks е ключова стъпка в постигането на целите ни за автоматизация на DevOps процесите. Тази стъпка не само улеснява мониторинга и управлението на приложенията, но и подобрява надеждността и достъпността на нашата система.

Следващите стъпки ще продължат да разширяват нашата стратегия за автоматизация, като включват още инструменти и практики за оптимизация на DevOps процесите.

Стъпка 2: Създаване на Docker Compose за разпространение на инфраструктурата
Днес те питаме…

Kаква нетна месечна заплата получаваш в IT сектора?
Loading ... Loading …

Втората стъпка в процеса на DevOps автоматизацията включва използването на Docker Compose за разпространение на вашата инфраструктура. Docker Compose улеснява дефинирането и стартирането на многоконтейнерни Docker приложения, като ви позволява да използвате YAML файл за конфигуриране на услугите, мрежите и томовете.

Създаване на Dockerfile за всеки микросервис:

За всяко приложение във вашата инфраструктура, създайте Dockerfile, който описва как да се създаде Docker образ за съответното приложение. Това включва копиране на изходния код, инсталиране на зависимостите, и настройка на средата за изпълнение.

За целта Visual Studio има интеграция, която лесно прави всичко това за нас:

Конфигуриране на Docker Compose файл:

Създайте docker-compose.yml файл в корена на проекта. Този файл трябва да дефинира услугите (всеки микросервис или компонент), техните конфигурации, зависимости, и как те взаимодействат помежду си.

Примерна структура на docker-compose.yml:

След това натискаме десен бутон на “docker-compose” проекта, избираме “Set as startup” и стартираме цялата ни инфраструктура от приложения в докер:

Когато сте готови, можете да мигрирате и разпространите вашата инфраструктура в Azure, използвайки Azure Container Instances или Azure Kubernetes Service, за да управлявате контейнерите в облака.

Създаването на Docker Compose файл значително улеснява разпространението и мениджмънта на множество контейнери, осигурявайки гъвкавост и ефективност при разработката и разпространението на комплексни приложения. В комбинация с Azure, това предоставя мощна платформа за създаване, разпространение и управление на вашите микросервиси и приложения.

Стъпка 3: Добавяне на Application Insights в Azure за пълно следене на приложенията

Третата стъпка в нашата стратегия за DevOps автоматизация включва интегрирането на Application Insights от Azure, което предоставя мощни инструменти за мониторинг и анализ на вашите приложения. Application Insights е услуга за управление на производителността на приложенията, която ви позволява да наблюдавате на живо функционирането и използването на вашето приложение.

Създаване на ресурс на Application Insights:

На първо място, трябва да създадете ресурс на Application Insights в Azure портала. Това ще ви предостави ключ за инструментация, който ще използвате за конфигуриране на вашите приложения.

Добавяне на Application Insights към .NET проекта:

Във вашия .NET проект, добавете NuGet пакета Microsoft.ApplicationInsights.AspNetCore. След това, интегрирайте Application Insights във вашето приложение, като използвате ключа за инструментация.

Пример за добавяне в Startup.cs:

След като Application Insights е интегриран и конфигуриран, можете да използвате Azure портала за анализиране на събраните данни. Това включва преглед на производителността, откриване на проблеми, анализ на трафика и потребителското поведение.

Интеграцията на Application Insights предоставя дълбоки инсайти за вашите приложения и улеснява откриването на проблеми, оптимизирането на производителността и разбирането на потребителското поведение. Това е ключов компонент в стратегията за облак-базирана DevOps автоматизация, който осигурява важни данни за управление и подобрение на вашите приложения.

Заключение: Овладяване на DevOps автоматизацията с .NET и Azure

В тази статия, ние разгледахме ключовите стъпки за реализиране на пълна DevOps автоматизация за .NET приложения в Azure. От създаването на статус проекти с Health Checks, през изграждането на контейнеризирани инфраструктури с Docker Compose, до интеграцията на Application Insights за мониторинг и анализ. Всяка стъпка допринася за постигането на повишена устойчивост, ефективност и видимост на вашите приложения.

С фокуса върху .NET и Azure, можем да видим как технологиите на Microsoft предоставят цялостна и скалируема платформа за DevOps практики. Ползите от тази интеграция са многобройни – от лесната настройка и управление, до възможността за бързо разпространение и надежден мониторинг.

Освен техническите аспекти, успехът в DevOps културата също изисква промяна в мисленето и сътрудничеството между разработчици, оперативни екипи и бизнес стейкхолдъри. Подобен цялостен подход към автоматизацията в DevOps не само подобрява техническата ефективност, но и води до по-бърза доставка на стойност за клиентите и по-устойчив растеж на бизнеса.

Надяваме се, че тази статия ви е предоставила ценни инсайти и насоки за вашия DevOps път с .NET и Azure. В крайна сметка най-важното е да продължите да експериментирате, да се учите и да оптимизирате вашите процеси, за да отговорите на непрекъснато променящите се изисквания на съвременната софтуерна разработка!