Открыто

Python для инженеров [Денис Наумов] [Slurm] [Слёрм] [Повтор]

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

Цена: 50000р.-96%
Взнос: 1890р.

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

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

  1. 27 апр 2021
    #1
    Blink_182
    Blink_182 ЧКЧлен клуба

    Python для инженеров [Денис Наумов] [Slurm] [Слёрм] [Повтор]

    Python-slurm.PNG

    Что будет в курсе:

    1. Разбор библиотек Python для DevOps.

    2. Правила эффективного и поддерживаемого кода.

    3. Решение конкретных задач DevOps.

    4. Подробная обратная связь, ревью кода.

    Чего не будет на курсе:

    1. Любые проявления Python для веба, аналитики, бекенд-разработки и др.

    2. У нас только Питон для DevOps!

    Требования:
    — Базовые навыки администрирования Linux (взаимодействие с процессами, файлами, использование прикладных протоколов передачи данных).
    — Опыт работы с git.
    — Понимание предназначения Ansible и модулей Ansible.
    — Иметь представления о предназначении Kubernetes и операторов Kubernetes.
    — Желательно, опыт работы с GitLab и GitLab CI.
    — Желательно, базовые навыки автоматизации на Bash.

    Процесс обучения:

    Каждую неделю даем лекцию и домашку.
    Общий чат со спикером в телеграме.
    QA-сессии по мере прохождения курса.
    Длительность потока 2 месяца.

    Итоговый проект:

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

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

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

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

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

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

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

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

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

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

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

    Продажник: Скрытая ссылка
     
    1 человеку нравится это.
  2. Последние события

    1. Oppundale
      Oppundale не участвует.
      15 мар 2024
    2. skladchik.com
      В складчине участвует 30 человек(а).
      15 мар 2024
    3. skladchik.com
      В складчине участвует 30 человек(а).
      11 мар 2024
    4. Felix Faust
      Felix Faust не участвует.
      28 фев 2024

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

    1. skladchik.com
      Нужен организатор складчины.
      12 фев 2024
    2. skladchik.com
      Сбор взносов начинается 15.02.2024.
      12 фев 2024
    3. skladchik.com
      Цена составляет 50000р.
      11 фев 2024
    4. skladchik.com
      Назначен организатор.
      11 фев 2024
  3. Обсуждение
  4. 27 сен 2021
    #2
    rasswet
    rasswet ЧКЧлен клуба
    у них там очередной поток по сабжевому курсу стартует скоро, говорят много чего улучшили в стравнении с предыдущим.
     
    2 пользователям это понравилось.
  5. 30 сен 2021
    #3
    Slevin777
    Slevin777 ЧКЧлен клуба
    Давайте брать :)
     
    3 пользователям это понравилось.
  6. 7 окт 2021
    #4
    KrisMan1
    KrisMan1 ДолжникДолжник
    Кого ждемс?)
     
    1 человеку нравится это.
  7. 7 окт 2021
    #5
    tosha_louie
    tosha_louie СкладчикСкладчик
    :) Становится актуально) Когда уже будет сбор?
     
    3 пользователям это понравилось.
  8. 26 окт 2021
    #6
    KrisMan1
    KrisMan1 ДолжникДолжник
    allo)
     
  9. 19 дек 2021
    #7
    kraster
    kraster ЧКЧлен клуба
    Скоро начнется очередной поток, найдется организатор?
     
    3 пользователям это понравилось.
  10. 30 дек 2021
    #8
    kraster
    kraster ЧКЧлен клуба
    Ребята, нужен орг на эту складчину.
     
  11. 18 сен 2022
    #9
    Necr0s
    Necr0s ЧКЧлен клуба
    Орг найдись!
     
  12. 9 ноя 2022
    #10
    djuwa
    djuwa ДолжникДолжник
    Народ, как организатором стать? Я попробовал нажать: организовать, у меня ошибка нелепая выходит: Цена складчины должна быть не более 15000 рублей.
     

Поделиться этой страницей