DevOps
7-
800 UAH Гитлаб ЦИ
DevOpsИспользование Gitlab трубопровода
-
88 680 UAH Построение и миграция инфраструктуры в AWS
DevOpsОписание проекта
Для веб-проекта, размещённого на собственных серверах (on-premises), стояла задача перенести инфраструктуру в облако с целью автоматизации процессов, обеспечения высокой доступности (HA) и снижения затрат на сопровождение инфраструктуры.
… Что было выполнено:
Проектирование и согласование новой инфраструктуры: разработан детальный план инфраструктуры и утверждён с клиентом.
Оптимизация затрат: рассчитана и оптимизирована стоимость использования облачной платформы.
Infrastructure as Code: инфраструктура описана с использованием Terraform.
Immutable-серверы: реализована стратегия создания неизменяемых серверов с помощью Packer.
Тестирование производительности: проведено нагрузочное тестирование для оценки производительности и выявления узких мест.
Пошаговая миграция сервисов: выполнен поэтапный перенос сервисов.
Соблюдение требований безопасности: инфраструктура построена в соответствии с политиками безопасности и требованиями облачной платформы.
Мониторинг и оповещения: настроен мониторинг и система уведомлений для всех критически важных компонентов.
Резервное копирование и восстановление: реализованы стратегии резервного копирования и восстановления после сбоев.
Финальное тестирование и документация: проведено итоговое тестирование и задокументированы все процессы.
#Amazon #AWS #terraform #packer #IaC #ansible
-
44 340 UAH Настройка и внедрение стека мониторинга (Icinga, Prometheus)
DevOpsЗадача:
Для одного из проектов было необходимо развернуть стек мониторинга. Клиенту требовался мониторинг сервисов и система уведомлений на базе Nagios. Кроме того, для отслеживания SLO/SLI и отдельных сервисов были необходимы Prometheus и Grafana.
… Как я это реализовал:
Вместо Nagios я рекомендовал использовать Icinga благодаря более мощному API и удобной панели управления. Кроме того, Icinga лучше подходит для масштабирования и реализации высокой доступности. Сервер Icinga изначально был настроен с учётом масштабируемости. Я сгруппировал все сервисы и настроил детальные метрики и уведомления для персонала.
Для сбора расширенных метрик по отдельным сервисам был использован Prometheus. В качестве хранилища метрик применялся VictoriaMetrics благодаря его высокой производительности и широким возможностям масштабирования. Для клиента был развернут распределённый кластер VictoriaMetrics.
Для критически важных сервисов были настроены SLI и оповещения при нарушении SLO. Для удобной визуализации графиков использовалась Grafana.
#grafana #prometheus #icinga2
-
Server Management
DevOpsInstallation and setup under any project.
Full management.
-
1108 UAH Терраформ AWS EKS Kubernetes Кластер
DevOpsПостроение отказоустойчивой, высокодоступной, масштабируемой и безопасной инфраструктуры AWS Cloud и кластера Kubernetes с использованием Terrafrom IaC
-
Развертывание приложения Spring PetClinic с использованием Vagrant
DevOpsСоздайте репозиторий на Gitlab и зафиксируйте все изменения в вашем репозитории gitlab
Создайте скрипт развертывания для приложения PetClinic. Используйте Vagrant для автоматизации процесса создания инфраструктуры для развертывания с помощью Virtualbox (предпочтительно). Для настройки вы можете выбрать использование bash, python или ansible в любом сочетании.
Подзадача I - Инфраструктура
… Опишите две виртуальные машины, используя Vagrantfile для развертывания приложения (кодовое имя APP_VM) и базы данных (кодовое имя DB_VM)
Предпочтительно использовать функцию частной сети для удобной связи между ВМ
ВМ должны быть либо Centos, либо Ubuntu
Если не используется частная сеть, то APP_VM должен иметь перенаправленный порт 8080 на хост
Подзадача II - База данных
Используйте любой скрипт настройки, который вы создали, для установки MySQL и любых зависимостей на DB_VM
Настройте базу данных mysql для принятия соединений только из вашей подсети частной сети vagrant
Создайте пользователя без прав root и пароль (кодовое имя DB_USER и DB_PASS) в mysql. Используйте переменные окружения хоста для установки этих значений и передайте их в Vagrantfile с помощью ENV
Создайте базу данных в mysql (кодовое имя DB_NAME) и предоставьте все привилегии для DB_USER для доступа к базе данных
Подзадача III - Приложение
Создайте пользователя без прав root (кодовое имя APP_USER), который будет использоваться для запуска приложения на APP_VM
Используйте любой провизионер для установки Java JDK, git и любых зависимостей на APP_VM
Клонируйте этот репозиторий в рабочую папку (кодовое имя PROJECT_DIR)
Используйте инструмент Maven для запуска тестов и упаковки приложения. Для получения дополнительной информации вы можете использовать эту 5-минутную документацию по maven. Для удобства в папке проекта есть скрипт обертки Maven (mvnw), который автоматически загружает и выполняет необходимый бинарный файл Maven.
Если тестирование и упаковка прошли успешно, получите пакет *.jar из папки $PROJECT_DIR/target и поместите его в домашнюю папку APP_USER (кодовое имя APP_DIR).
Установите переменные окружения в APP_VM (предпочтительно использовать те же переменные окружения, переданные с хост-машины с помощью ENV, как в DB_VM):
DB_HOST - IP адрес DB_VM
DB_PORT - порт MySql (по умолчанию 3306)
DB_NAME - имя базы данных MySql
DB_USER - пользователь MySql
DB_PASS - пароль пользователя MySql
Запустите приложение с APP_USER, используя команду java -jar
Если все прошло успешно - вы увидите приложение PetClinic на $APP_VM_IP:8080
-
1108 UAH Настройка DevSecOps CI/CD
DevOpsНастройка Secure CI/CD через систему GitLab. Стоимость за час