Доступно

Python для инженеров [slurm.io] [Денис Наумов]

Тема в разделе "Курсы по программированию", создана пользователем vovaramonespunk, 29 май 2021.

Цена: 40 000р-95%
Взнос: 1 954р
100%

Основной список: 45 участников

Резервный список: 31 участников

Статус обсуждения:
Комментирование ограничено.
  1. 29 май 2021
    #1
    vovaramonespunk
    vovaramonespunk ЧКЧлен клуба
    Python для инженеров [slurm.io]
    Научим писать автоматизацию: Docker, Gitlab, Prometheus, K8S и др

    upload_2022-9-22_0-9-17.png

    Что будет в курсе:
    1. Разбор библиотек Python для DevOps.
    2. Правила эффективного и поддерживаемого кода.
    3. Решение конкретных задач DevOps.
    4. Подробная обратная связь, ревью кода.

    Чего не будет на курсе:
    1. Любые проявления Python для веба, аналитики, бекенд-разработки и др.
    2. У нас только Питон для DevOps!

    upload_2022-9-22_0-10-53.png

    Итоговый проект:
    После курса у вас останется проект на гитлабе: придумайте свой или сделайте один из предложенных вариантов.
    Спикер даст всем студентам обратную связь.
    Проект можно использовать в качестве тестового задания при трудоустройстве.

    Продажник: Скрытая ссылка

    Программа

    №1: Введение
    • Почему OPS'ам нужен питон?
    • В чем его прелесть?
    • Для каких задач Python хорошо подходит?
    №2: Основы синтаксиса и структур в Python

    Зачем: научиться понимать логику программ на Python и не только, а так же писать простые программы - важнейшая задача. "Самое то", если вы не знакомы с синтаксисом Python
    • Типы данных и переменные, мутабельные/иммутабельные и простые/составные типы данных, приемы отладки
    • Условный оператор - логические операторы, простые условия, вложенные условия и замена оператора switch
    • Базовые циклы - циклы while и for, итераторы, прерывания циклов
    • Функции, методы строк, списков и словарей
    • Генерация и обработка исключений
    • Практика: набор небольших микрозаданий по каждому уроку
    №3: Улучшенное владение Python: оптимизации и ООП

    Зачем: Освоим особенности Python - именно за их счет он так прост и практичен. Также раскроем значение тех самых трех букв (мы про ООП) без академической теории и с понятным предназначением.
    • Продвинутая работа с циклами - оператор yield и генераторы, инсайты о циклах в Python (оператор else в цикле, оптимизации циклов comprehensions, etc.)
    • Специальные типы структур (frozendict, defaultdict, etc.)
    • Базовые понятия ООП: классы, экземпляры классов, инкапсуляция, наследование и полиморфизм
    • Практика: набор небольших микрозаданий по каждому уроку
    • Продвинутая практика: аудит использования услуг. У CTO появилось подозрение, что некоторые услуги и сервисы уже не используются командами. Проблема заключается в том, что модуль мониторинга используемых услуг не обновлялся последние десять лет: он не может выгрузить агрегированные данные, да и формат возвращаемых значений не соответствует общепринятым стандартам. Вы были избраны, чтобы извлечь снятые показатели, агрегировать их по типу и команде и предоставить данную информацию CTO для первоначальной оценки масштабов проблемы
    №4: Подключения по сети

    Зачем: Практически каждый сервис имеет интерфейс для подключения по какому-либо сетевому протоколу. А без подключения невозможно взаимодействие, к счастью в экосистеме Python найдутся модули-клиенты практически для любых протоколов.
    • Пакет pip и установка сторонних модулей
    • Модуль Paramiko для выполнения команд по ssh
    • Модуль requests для выполнения HTTP запросов
    • Обзор модулей для работы с базами данных и брокерами сообщений
    • Практика разминочная: Астрологи объявили неделю кодинга на Python. Количество практик выросло вдвое.
      Вас заметили! Кажется, вы использовали curl, чтобы получать информацию от биллинговой системы. Самое время использовать модуль requests, чтобы выполнить HTTP-запрос внутри вашего приложения. Кстати, модуль мониторинга не умеет собирать данные о лимитах с особых облачных сервисов SBS (Slurm Beautiful Services). Но можно запросить их самостоятельно: по протоколу SSH
    • Практика со звездочкой. Команда разработки внедряет уже не новую методологию: Допустил возникновение алерта - получи задачу. Аналитическая подсистема ищет только отборные ошибки и складывает сообщения о них в брокер сообщений Kafka. Ваша задача завершить цикл возврата багов разработчикам: ваш консьюмер должен автоматически создавать задачи с нужным описанием и приоритетом в Trello
    №5: Работа с текстом в различных форматах

    Зачем: Подключение к сервису - только половина дела. Другая половина это обмен информацией. А информация зачастую представляет собой набор текстовых символов в определенном формате. Раскодировать и закодировать помогут модули. Информация не нужна вся целиком? Извлечь важное, отбросив остальное помогут регулярные выражения.

    • Модуль re и регулярные выражения
    • Модули работы с данными в разных форматах: separated values, json, yaml, xml
    • Использование аргументов командной строки: модуль argparse
    • Практика: создание источника данных об использовании услуг
      В ходе аудита использования услуг вы выявили важную для бизнеса информацию, заинтересовался даже CEO. Было принято решение проанализировать потерянные деньги и больше не допускать таких ситуаций. Для этого нужно дать аналитикам инструмент получения данных, чтобы они подготовили отчеты. Проблема заключается в том, что модуль мониторинга возвращает лимиты по услугам по отдельному запросу в форматах yaml, а цены за услуги возвращаются биллинговой системой в формате xml. Необходимо срастить данные о текущей загрузке с лимитами и ценами. Агрегированную информацию отдел аналитики запросил в формате JSON с возможностью указать интервал времени и шаг агрегации
    №6: Взаимодействие с операционной системой

    Зачем: Важность взаимодействия с операционной системой не нужно объяснять дополнительно. Как подружить её с Python - в этом уроке.
    • Чтение и запись файлов.
    • Модуль os - чтение environment variables, работа с директориями и правами, работа с процессами
    • Модуль subprocess для интерактивного взаимодействия с процессами
    • Практика: автоматическое предоставление доступов к серверам
      В ходе кампании по отказу от неиспользуемых услуг возникла курьезная ситуация: сервер продуктовой команды отключили, но инфраструктурная команда периодически использовала его в качестве хоста для стейджинга. Выяснилось, что продуктовая команда не использовала его потому что периодически кто-то перезаписывал их настройки своими. Было решено, что теперь ресурс будет закрепляться только за членами одной команды, а избежать ошибок поможет автоматика. Вам, как заварившему эту кашу, необходимо написать агент, который будет периодически опрашивать систему управления правами и вносить изменения в конфигурации прав внутри установленных сервисов и по необходимости давать сервисам команду перечитать конфигурации
    №7: Пишем свой модуль для Ansible

    Зачем: Ansible - мощная система управления конфигурациями, да еще и с возможностью расширения собственными модулями. Какое совпадение, что она сама и большинство модулей написаны на Python.

    • Написание своих модулей для ansible
    • Практика: написание модуля управления правами
      Давным-давно, в далёкой-далёкой галактике вы уже писали агент для выдачи прав к определенным сервисам. Пришло время поменять pull на push и в этом поможет ansible. Все что нужно - лишь модуль
    №8: K8S оператор на Python (live-coding stream)

    Зачем: расширим возможности K8S под свои задачи
    • Покажем как делать это не только на Go
    №9: Создание и кейсы использования своего API

    Зачем: подготовка кода к деплою - одна из важнейших задач. Сделать этот процесс гибче и удобнее помогают собственные скрипты для stage пайплайнов.
    • Создание REST API на Flask
    • Создание своего prometheus exporter с Prometheus Python Client и Flask
    • Практика: выгрузка данных в стороннюю систему мониторинга.
      Затраты на неиспользуемое оборудование превысили даже пессимистичные прогнозы. Теперь у команды инженеров есть еще одна зона ответственности - мониторинг неиспользуемых услуг. Для этого вам необходимо периодически опрашивать биллинговую систему через ваш скрипт и передавать данные в Prometheus. Формат получаемых данных все еще не подходит. Вам необходимо реализовать коннектор. А заодно и написать эндпоинт, чтобы отдел аналитики всегда имел под рукой актуальную информацию в формате JSON
    №10: Взаимодействие с CVS и DevOps системами
    • Использование сторонних модулей на примере интеграции в пайплайны Gitlab
    • Использование pygit для получения информации об изменениях в коде
    • Практика: генерация change log из коммитов
      Ваши решения настолько понравились команде инженеров, что они вдохновились ими и начали писать свои. Только вот описания к релизам сделать всегда забывают. Для этого командой было принято решение внедрить commit conventions и генерировать ченджлоги прямо из коммитов при слиянии dev-бранча с релизным, а если название коммита не соответствует commit conventions - не допускать merge-request до merge
    №11: Chatops с Errbot на Python (live-coding stream)

    Зачем: Infrastructure as a Chat - управляй инфраструктурой из мессенджера. Бывает ли так? Мы попробуем.
    • За два часа делаем чатопс в прямом эфире
    №12: Финальный проект
    • Вы можете автоматизировать свою задачу, а мы обещаем сделать ревью вашего кода. Если идей или задач нет - мы поможем их придумать!.

    Код:
    Продажник https://slurm.io/course-python-for-ops#program
     
    Последнее редактирование модератором: 5 ноя 2022
  2. Последние события

    1. skladchik.com
      Складчина доступна.
      16 ноя 2022
    2. Sub-Zero81
      Sub-Zero81 участвует в складчине.
      11 ноя 2022
    3. LifeKorea
      LifeKorea участвует в складчине.
      11 ноя 2022
    4. ober0n4ik
      ober0n4ik участвует в складчине.
      10 ноя 2022

    Последние важные события

    1. skladchik.com
      Складчина доступна.
      16 ноя 2022
    2. skladchik.com
      Взнос в складчине составляет 977р.
      24 сен 2022
    3. skladchik.com
      Складчина активна.
      24 сен 2022
    4. skladchik.com
      Сбор взносов начинается 24.09.2022.
      21 сен 2022
  3. Обсуждение
  4. 30 май 2021
    #2
    vovaramonespunk
    vovaramonespunk ЧКЧлен клуба
    Да, извините. Не нашел ту складчину.
     
    1 человеку нравится это.
  5. 30 май 2021
    #3
    Javaist
    Javaist ЧКЧлен клуба
    Я ее тоже не видел. Записался и туда тоже, на случай, если эту снесут.
     
    1 человеку нравится это.
  6. 30 июн 2021
    #4
    Geralt2020
    Geralt2020 ДолжникДолжник
    Как мне стать организовать эту складчину?
     
  7. 30 сен 2021
    #5
    vadiara50
    vadiara50 ЧКЧлен клуба
    Для начала, внимательно ознакомиться с правилами
     
  8. 10 ноя 2022
    #6
    djuwa
    djuwa ДолжникДолжник
    Народ, пытаюсь оплатить, платежные системы не пашут!(((((((( Админы, почините плиз!
     
  9. 10 ноя 2022
    #7
    djuwa
    djuwa ДолжникДолжник
    Не могу оплатить(((
     
Статус обсуждения:
Комментирование ограничено.