User Tools

Site Tools


методологии_devops

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
методологии_devops [2022/08/16 15:42]
val [Примерный план]
методологии_devops [2022/09/19 13:17]
val [Примерный план]
Line 31: Line 31:
 </​code>​ </​code>​
  
-  * Настраиваем ​четь на gate и server +  * Настраиваем ​сеть на gate и server 
-  * На server запускаем сервис DNS +  * На server запускаем сервис DNS (gate пока БЕЗ dhcp)
   * На gate и server resolv.conf + на host системе dns для vbox адаптера   * На gate и server resolv.conf + на host системе dns для vbox адаптера
   * На server запускаем установку [[Сервис Ansible]] и [[Инструмент GitLab]]   * На server запускаем установку [[Сервис Ansible]] и [[Инструмент GitLab]]
Line 70: Line 70:
   - Загружаем репозиторий openvpn1 на локальную систему в [[Cmder]], открываем проект в npp   - Загружаем репозиторий openvpn1 на локальную систему в [[Cmder]], открываем проект в npp
   - Используем [[Сервис Git#​Работа с ветками]] в Git для тестовой конфигурации в [[Сервис Ansible#​Роль OpenVPN сервера]]   - Используем [[Сервис Git#​Работа с ветками]] в Git для тестовой конфигурации в [[Сервис Ansible#​Роль OpenVPN сервера]]
-  -  
   - Используем GitLab CI/CD [[Инструмент GitLab#​Пример shell ansible]] для сервиса OpenVPN с ручным тестированием тестовой конфигурации   - Используем GitLab CI/CD [[Инструмент GitLab#​Пример shell ansible]] для сервиса OpenVPN с ручным тестированием тестовой конфигурации
  
Line 87: Line 86:
 === Разработка и распространение ПО с использованием контейнеров на примере Docker === === Разработка и распространение ПО с использованием контейнеров на примере Docker ===
  
-  - [[Технология Docker]]+  - [[Средства программирования shell#Web сервер на shell]] 
 +  - [[Сервис INETD]] 
 +  - [[https://​lindevs.com/​install-vegeta-on-ubuntu|Install Vegeta on Ubuntu 20.04]] 
 +  - [[https://​serverfault.com/​questions/​389645/​ftp-tcp-server-failing-looping|ftp/​tcp server failing (looping)]] 
 +<​code>​ 
 +external-host#​ echo "GET http://​172.16.1.13"​ | vegeta attack -duration=10s -rate=200 | vegeta report 
 + 
 +root@node1:​~#​ tail -f /​var/​log/​syslog 
 +</​code>​ 
 + 
 +  - Разрабатываем/​знакомимся с [[Технология Docker]] ​(без sftp) на gitlab-runner@server (удобно для тестов CI/CD из командной строки) 
 +  - Создаем проект webd в [[Сервис Git#​On-Premise gitlab]] 
 +  - Включаем [[Инструмент GitLab#​GitLab Docker Registry]] 
 +  - Cохраняем образ используя [[Технология Docker#​Локальные репозитории]] 
 +  - Автоматизируем сборку образа используя [[Средства программирования shell#​Проверка синтаксиса]] и (уже на локальной системе) [[Инструмент GitLab#​GitLab CI/CD]] не забыв [[Технология Docker#​Предоставление прав непривилегированным пользователям]] на docker для пользователя gitlab-runner 
 + 
 +ТЗ: Горизонтально масштабируем веб сервер используя общий каталог на node1,2,3 
 + 
 +  - [[Сервис NFS]] на server 
 +  - [[Сервис NFS#​Установка nfs клиента]] на node1,2,3 (может добавить в [[Сервис Ansible]] редактировать fstab не будем, поскольку это временное решение) 
 +  - Используя vagrant ansible provisioning устанавливаем docker и docker-compose на node1,2,3 
 +  - Настраиваем [[Технология Docker#​Локальные репозитории]] на node1,2,3 
 +  - Готовимся масштабировать добавив в проект файл [[Технология Docker#​docker-compose]] с ссылкой на образ 
 +  - Используя [[Инструмент GitLab#​Подключение через API]] скачиваем на node1,2,3 файл [[Технология Docker#​docker-compose]] и пробуем масштабировать 
 + 
 +  * Считаем,​ что пришлось делать "​вручную":​ выбирать узлы, монтировать nfs, загружать файл docker-compose,​ выяснять порты - выход: [[Система Kubernetes]] 
 + 
 +=== Разработка и распространение ПО с использованием Kubernetes === 
 + 
 +  - Производим [[Система Kubernetes#​Установка minikube]] для gitlab-runner@server (для доступа к репозиторию,​ на нем же, понадобится включить [[Сервисы Gateway и routing]]) 
 +  - Преподаватель разворачивает [[Система Kubernetes#​Кластер Kubernetes]] на node1,2,3 
 +  - [[Система Kubernetes#​Инструмент командной строки kubectl]] для gitlab-runner@server 
 +  - Изучаем [[Система Kubernetes#​Базовые объекты k8s]] 
 +  - Автоматизируем deploy используя [[Инструмент GitLab#​GitLab CI/CD]], сталкиваемся с необходимостью править версию в манифесте,​ рассмотрев вариант envsubst (здесь же можно и keepalived и нагрузочное тестирование и автоматическое увеличение подов ...) приходим к Helm 
 +  - Изучаем тему [[Система Kubernetes#​Ingress]] для minikube и используем [[Система Kubernetes#​Helm]] для его развертывании в кластере 
 +  - Изучаем тему [[Система Kubernetes#​Helm]] на примере разработки чарта для приложения webd 
 +  - Возвращаемся к deploy используя [[Инструмент GitLab#​GitLab CI/CD]] и чарта [[Система Kubernetes#​Helm]] приложения webd
 ==== ToDo ==== ==== ToDo ====
  
методологии_devops.txt · Last modified: 2022/09/19 13:17 by val