User Tools

Site Tools


все_что_должен_знать_devops_про_python

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_про_python [2025/05/16 08:02]
val
все_что_должен_знать_devops_про_python [2025/06/19 14:44] (current)
val [Запись вебинара]
Line 5: Line 5:
 ===== Реклама ===== ===== Реклама =====
  
-  * Всем привет! Продолжаем цикл вебинаров на тему "​Что должен знать Ops из области Dev". Сегодня нас с Вами ждет один из популярнейших языков программирования ...+  * Всем привет! Продолжаем цикл вебинаров на тему "​Что должен знать Ops из области Dev". Сегодня нас с Вами ждет один из популярнейших языков программирования. ​Зачем он нужен DevOps-су?​ Да хотя бы потому,​ что Ansible и YAML имеют прямое отношение к PythonА еще, иногда не хватает возможностей Bash и Python - прекрасный кандидат на роль "​когда надо в пайплайне запрограммировать что-то посложнее ​..."
  
 ===== Техническое задание ===== ===== Техническое задание =====
  
-  *  +  * Научиться использовать базовые элементы языка - структуры данных,​ алгоритмические конструкции,​ файловый ввод/​вывод,​ пакеты и модули 
 +  * Научиться использовать Python для рабы с протоколом HTTP, данными в формате JSON/YAML и регулярными выражениями 
 +  * Научиться использовать возможности Python в Ansible Playbooks и Jinja2 template 
 +  * Сделать Python привычным инструментом для автоматизации - наравне с Bash
 ===== Запись вебинара ===== ===== Запись вебинара =====
  
-  * Тэги: ​+  ​* [[https://​youtu.be/​dNwCQ4xx98Q|YouTube]],​ [[https://​rutube.ru/​video/​private/​81a077f638a21917e0055407e84b3ee4/​|RuTube]] 
 +  ​* Тэги: ​Python, Gunicorn, FastAPI, Uvicorn, Unittest, Ansible, Docker, Kubernetes
  
 ===== Методическая подготовка ===== ===== Методическая подготовка =====
  
 +  * С использованием образа [[https://​val.bmstu.ru/​unix/​img/​My%20Documents/​debian_12.5_64_02.ova|debian_12]],​ выполнены 1-ый и 3-ий (student, так же, назначен администратором GitLab) шаги из статьи [[https://​habr.com/​ru/​articles/​716454/​|Самый простой пример CI/​CD]]  ​
 +
 +  * Добавляем [[Инструмент GitLab#​GitLab Docker Registry]] (IP вместо server.corpX.un)
 +
 +
 +===== Где Девопс может встретиться с Python? =====
 +
 +==== Случай 1. Развертывание Kubernetes ====
 +
 +  - [[https://​github.com/​kubernetes-sigs/​kubespray/​]]
 +  - [[https://​github.com/​kubernetes-sigs/​kubespray/​blob/​master/​docs/​getting_started/​getting-started.md#​setting-up-your-first-cluster]]
 +  - [[https://​github.com/​kubernetes-sigs/​kubespray/​blob/​master/​docs/​getting_started/​setting-up-your-first-cluster.md#​set-up-kubespray]]
 +
 +  * [[Язык программирования Python#​Виртуальная среда Python]]
 +  * [[Система Kubernetes#​Развертывание через Kubespray]] (kube1 заменяем на localhost)
 +
 +==== Случай 2. Тестовое задание ====
 +
 +  * [[https://​github.com/​smenateam/​assignments/​blob/​master/​devops/​docs/​assignment.md|Тестовое задание DevOps разработчик]]
 +
 +  * [[https://​metanit.com/​python/​fastapi/​1.1.php|Основы FastAPI]]
 +  * [[https://​webadventures.ru/​sravnenie-wsgi-serverov-uvicorn-i-gunicorn/​|Сравнение WSGI-серверов:​uvicorn и Gunicorn]] (узнать у ИИ, откуда название)
 +
 +  * Обсудить Python [[Язык программирования Python#​Flask Gunicorn]] приложение pywebd (подключение модулей,​ декораторы,​ варианты запуска)
 +  * Создать Python приложение [[Язык программирования Python#​FastAPI Uvicorn]] pywebd2
 +
 +  * [[Технология Docker#​Установка]] Docker
 +  * Dockerfile для [[Технология Docker#​Приложение python pywebd2]]
 +
 +  * Docker - Настройка [[Технология Docker#​Insecure Private Registry]] (IP вместо server.corpX.un)
 +  * Docker - [[Технология Docker#​Аутентификация в Registry]] (IP вместо server.corpX.un)
 +
 +  * Создаем в GitLab проект **pywebd2** (публичный,​ без Readme)
 +  * Загружаем образ pywebd2 в GitLab - [[Технология Docker#​Использование Private Registry]] (IP вместо server.corpX.un)
 +
 +  * Kubernetes - [[Система Kubernetes#​Настройка доступа к Insecure Private Registry]] (IP вместо server.corpX.un)
 +  * [[Система Kubernetes#​Deployment]] и [[Система Kubernetes#​Service]] для приложения pywebd2 в Kubernetes
 +==== Случай 3. Проект ====
 +
 +  * [[https://​team.vk.company/​projects/​285/​|Проект VK People Hub]]
 +===== Для чего еще может понадобиться Python НЕ разработчику?​ =====
 +
 +==== Генерация множества файлов по шаблону ====
 +
 +  * [[Сервис Asterisk#​Provisioning|Bash]] или Ansible [[Сервис Ansible#​Провижининг IP телефонов]] на примере [[SIP Phone Panasonic KX-HDVXXX]] и [[Linksys SPA-3102]]
 +
 +==== Обработка сложных структур данных ====
 +
 +  * [[Язык программирования Python#​Интерактивная оболочка REPL (Read-Eval-Print Loop)]]
 +  * Сервис Zabbix [[Сервис Zabbix#​Статистика DHCP сервера]]
 +
 +==== Выгрузить что-то через API ====
 +
 +  * Сервис Zabbix [[Сервис Zabbix#​API]]
 +
 +==== Даже, для сетевых инженеров) ====
 +
 +  * [[https://​pyneng.readthedocs.io/​ru/​latest/​|Python для сетевых инженеров]]
 +
 +===== Что, насчет других языков?​ =====
 +
 +  * [[https://​www.freecodecamp.org/​news/​learn-kubernetes-in-under-3-hours-a-detailed-guide-to-orchestrating-containers-114ff420e882|Learn Kubernetes in Under 3 Hours: A Detailed Guide to Orchestrating Containers]]
 +
 +===== Черновик =====
 +
 +==== Темы ====
 +
 +  * [[Сервис Asterisk#​Asterisk ARI]]
 +  * Тестирование web приложений
 +  * Парсинг ответов Ansible
 +  * Prometheus exporter
 +  * Работа с SQL, JSON, YAML
 +  * Веб сервис провиженинг для телефонов
 +
 +==== Разное ====
 +
 +  * https://​github.com/​smenateam/​assignments/​blob/​master/​devops/​docs/​project_install.md
 +  * gitignore
 +
 +<​code>​
 +server# docker run -ti python:​3.9-alpine sh
 +</​code>​
 +
 +  * [[Управление ПО в Linux#APK Alpine Linux]]
 +
 +<​code>​
 +/ # cd
 +
 +~ # git clone https://​github.com/​smenateam/​assignments.git
 +
 +~ # cd assignments/​devops
 +
 +~/​assignments/​devops # pip install poetry
 +
 +~/​assignments/​devops # poetry lock
 +
 +~/​assignments/​devops # poetry install
 +
 +~/​assignments/​devops # eval $(poetry env activate)
 +
 +(hello-world-py3.9) ~/​assignments/​devops # cat Makefile
 +
 +(hello-world-py3.9) ~/​assignments/​devops # uvicorn main:app --port=8000 --reload --host 0.0.0.0
 +
 +(hello-world-py3.9) ~/​assignments/​devops # gunicorn main:app --bind 0.0.0.0:​8000 -k uvicorn.workers.UvicornWorker
 +
 +poetry install --no-root
 +
 +apk add --no-cache build-base
  
 +  10 pip install gunicorn
 +  11 /​gunicorn.sh
 +  12 pip install uvicorn
 +  13 /​gunicorn.sh
 +  14 pip install fastapi
  
-===== Шаг 1. Что у нас есть для начала =====+</​code>​
все_что_должен_знать_devops_про_python.1747371753.txt.gz · Last modified: 2025/05/16 08:02 by val