Python для инженеров от Слерм

    Слерм
    Стоимость курса
    50 000 Р
    Рассрочка
    от 12 500 Р в месяц
    Сертификат
    Нет
    Начало курса
    В любой момент
    Трудоустройство
    Нет

    Кому подойдет

    • Инженерам

    Программа обучения

    1. Вводный блок

    2. Основы синтаксиса и структур в Python, 1 часть

    Зачем: научиться понимать логику программ на Python, а так же писать простые программы важнейшая задача. «Самое то», если вы не знакомы с синтаксисом Python.

    • Типы данных и переменные, мутабельные/иммутабельные и простые/составные типы данных, приемы отладки.
    • Условный оператор логические операторы, простые условия, вложенные условия и замена оператора switch.
    • Базовые циклы циклы while и for, итераторы, прерывания циклов.
    • Функции, методы строк, списков и словарей.
    • Генерация и обработка исключений.

    Практика: набор небольших микрозаданий по каждому уроку.

    3. Основы синтаксиса и структур в Python, 2 часть

    Зачем: научиться понимать логику программ на Python, а так же писать простые программы важнейшая задача. «Самое то», если вы не знакомы с синтаксисом Python.

    • Типы данных и переменные, мутабельные/иммутабельные и простые/составные типы данных, приемы отладки.
    • Условный оператор логические операторы, простые условия, вложенные условия и замена оператора switch.
    • Базовые циклы циклы while и for, итераторы, прерывания циклов.
    • Функции, методы строк, списков и словарей.
    • Генерация и обработка исключений.

    Практика: набор небольших микрозаданий по каждому уроку.

    4. Улучшенное владение Python: оптимизации и ООП

    Зачем: Освоим особенности Python именно за их счет он так прост и практичен. Также раскроем значение тех самых трех букв (мы про ООП) без академической теории и с понятным предназначением.

    • Продвинутая работа с циклами оператор yield и генераторы, инсайты о циклах в Python, оператор else в цикле, оптимизации циклов comprehensions, etc.
    • Специальные типы структур: frozendict, defaultdict, etc.
    • Базовые понятия ООП: классы, экземпляры классов, инкапсуляция, наследование и полиморфизм.
    • Создание контекстных менеджеров для своих типов: конструкция with.

    Практика: набор небольших микрозаданий по каждому уроку.

    Продвинутая практика: аудит использования услуг.

    У CTO появилось подозрение, что некоторые услуги и сервисы уже не используются командами. Проблема заключается в том, что модуль мониторинга используемых услуг не обновлялся последние десять лет: он не может выгрузить агрегированные данные, да и формат возвращаемых значений не соответствует общепринятым стандартам. Вы были избраны, чтобы извлечь снятые показатели, агрегировать их по типу и команде и предоставить данную информацию CTO для первоначальной оценки масштабов проблемы.

    5. Подключения по сети

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

    • Пакет pip и установка сторонних модулей.
    • Модуль Paramiko для выполнения команд по ssh.
    • Модуль requests для выполнения HTTP запросов.
    • Обзор модулей для работы с базами данных и брокерами сообщений.

    Практика. Команда разработки внедряет уже не новую методологию: Допустил возникновение алерта получи задачу. Аналитическая подсистема ищет только отборные ошибки и складывает сообщения о них в брокер сообщений Kafka. Ваша задача завершить цикл возврата багов разработчикам: ваш консьюмер должен автоматически создавать задачи с нужным описанием и приоритетом в Trello.

    6. Работа с текстом в различных форматах

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

    • Модуль re и регулярные выражения.
    • Модули работы с данными в разных форматах: separated values, json, yaml, xml.
    • Использование аргументов командной строки: модуль argparse.

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

    В ходе аудита использования услуг вы выявили важную для бизнеса информацию, заинтересовался даже CEO. Было принято решение проанализировать потерянные деньги и больше не допускать таких ситуаций. Для этого нужно дать аналитикам инструмент получения данных, чтобы они подготовили отчеты. Проблема заключается в том, что модуль мониторинга возвращает лимиты по услугам по отдельному запросу в форматах yaml, а цены за услуги возвращаются биллинговой системой в формате xml. Необходимо срастить данные о текущей загрузке с лимитами и ценами. Агрегированную информацию отдел аналитики запросил в формате JSON с возможностью указать интервал времени и шаг агрегации.

    7. Взаимодействие с операционной системой

    Зачем: Важность взаимодействия с операционной системой не нужно объяснять дополнительно. Как подружить её с Python в этом уроке.

    • Чтение и запись файлов.
    • Модуль os чтение environment variables, работа с директориями и правами, работа с процессами.
    • Модуль subprocess для интерактивного взаимодействия с процессами.

    Практика: автоматическое предоставление доступов к серверам.

    В ходе кампании по отказу от неиспользуемых услуг возникла курьезная ситуация: сервер продуктовой команды отключили, но инфраструктурная команда периодически использовала его в качестве хоста для стейджинга. Выяснилось, что продуктовая команда не использовала его потому что периодически кто-то перезаписывал их настройки своими.

    Было решено, что теперь ресурс будет закрепляться только за членами одной команды, а избежать ошибок поможет автоматика. Вам, как заварившему эту кашу, необходимо написать агент, который будет периодически опрашивать систему управления правами и вносить изменения в конфигурации прав внутри установленных сервисов и по необходимости давать сервисам команду перечитать конфигурации.

    8. K8S оператор на Python

    Зачем: расширим возможности K8S под свои задачи.

    9. Пишем свой модуль для Ansible

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

    • Написание своих модулей для Ansible.

    Практика: написание модуля управления правами.

    Давным-давно, в далёкой-далёкой галактике вы уже писали агент для выдачи прав к определенным сервисам. Пришло время поменять pull на push и в этом поможет Ansible. Все что нужно лишь модуль.

    10. Создание и кейсы использования своего API

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

    • Создание REST API на Flask.
    • Создание своего prometheus exporter с Prometheus Python Client и Flask.

    Практика: выгрузка данных в стороннюю систему мониторинга.

    Затраты на неиспользуемое оборудование превысили даже пессимистичные прогнозы. Теперь у команды инженеров есть еще одна зона ответственности мониторинг неиспользуемых услуг. Для этого вам необходимо периодически опрашивать биллинговую систему через ваш скрипт и передавать данные в Prometheus. Формат получаемых данных все еще не подходит. Вам необходимо реализовать коннектор. А заодно и написать эндпоинт, чтобы отдел аналитики всегда имел под рукой актуальную информацию в формате JSON.

    11. Юнит-тестирование своего приложения

    Зачем: Иногда лучше не иметь никакого кода, чем код, который работает нестабильно. Для того чтобы не бояться сломать свой код, нужно писать тесты.

    • Виды тестов: unit, интеграционные и end-to-end.
    • Обзор модуля pyhamcrest и его матчеров.
    • Архитектура и возможности pytest.
    • Использование pytest и pyhamcrest для написания юнит-тестов.

    Практика: написание тестов при помощи pytest и pyhamcrest для вашего API.

    12. Взаимодействие с CVS и DevOps системами

    • Использование сторонних модулей на примере интеграции в пайплайны Gitlab.
    • Использование pygit для получения информации об изменениях в коде.

    Практика: генерация change log из коммитов.

    Ваши решения настолько понравились команде инженеров, что они вдохновились ими и начали писать свои. Только вот описания к релизам сделать всегда забывают. Для этого командой было принято решение внедрить commit conventions и генерировать ченджлоги прямо из коммитов при слиянии dev-бранча с релизным, а если название коммита не соответствует commit conventions не допускать merge-request до merge.

    13. Chatops с Errbot на Python

    Зачем: Основные проблемы бизнеса не в производительности приложений и даже не в возникающих в коде ошибках. Самые серьезные проблемы возникают когда коммуникация сотрудников происходит неэффективно. Chatops является одним из способов решения этой проблемы.

    • Концепция Chatops: какие проблемы решает внедрение Chatops?
    • Фреймворк Errbot: установка, создание базового шаблон плагина, конфигурирование и запуск.
    • Фреймворк Errbot: создание своего плагина для Chatops с различными вариантами обработки сообщений.

    Отзывы о школе 1

    5 из 5
    1
    0
    0
    0
    0
    Сортировать:
    Дате публикации
    • Дата публикации
    • Популярности
    • Сначала положительные
    • Сначала отрицательные
    • Станислав 4 июня 2023

      Я решил пройти интенсивный практический курс для того, чтобы более подробно ознакомиться с принципами работы k8s. После внимательного рассмотрения многих вариантов я остановился на интенсиве от Слерм. Мне очень понравилось качество преподавания, и мне не потребовалось обращаться в службу поддержки, что говорит об отличном организационном уровне этого курса. На курсе для меня самым интересным моментом стало добавление rollback piplin'а для отката версии Docker-образа. Однако, так как я являюсь ценителем CI/CD, то эта тема была для меня весьма актуальной. Очень приятно было узнать больше о интеграции CI/CD с Kubernetes через Helm, хотя создание собственной базы helm chart'а оказалось для меня достаточно сложной практической задачей. После курса я лично убедился в том, что Kubernetes - это наиболее совершенный оркестратор для контейнеров на данный момент времени. Я продолжаю развиваться в этой сфере и применять новые знания в рабочих задачах. В настоящее время я пересматриваю материалы курса, которые связаны с helm, так как мне приходится пересобирать все наши ci/cd под деплойку через Helm. В целом, курс был полезным и оказался очень интересным. Я получил множество новых знаний и навыков, которые несомненно помогут мне в дальнейшей работе с Kubernetes и CI/CD. Если вы хотите улучшить свои знания и навыки в этой сфере, я рекомендую обратить особое внимание на интенсивы от Слерм.

      Был ли отзыв полезен?
    Посмотреть все отзывы о Слерм