Отзыв на курс «Professional DevOps» от Packt

Попался на глаза курс «Professional DevOps» от Packt. Краткое содержание и моё субъективное мнение о нем ниже.

Ссылка на курс будет в конце, краткое резюме: очень (ОЧЕНЬ) базовый.

О чем курс Professional DevOps?

Сразу оговорюсь, что нисколько не умаляю профессионализма автора (Umar Murtaza), речь пойдет о самом видео-курсе.

Пайплайн курса выглядит очень вкусным. Тут тебе и жизненный цикл и инструментарий и вроде бы получил инъекцию знаний в мозг и стал DevOps Professional 🙂

Программа курса DevOps Professional

Однако, курс оказался очень поверхностным и организованным, на мой взгляд, бессистемно.

Введение в DevOps и его жизненный цикл

Здесь как раз все достаточно четко и понятно. Без лишних слов, многое по делу. Действительно «DevOps — это культура, принципы и процессы направленные на автоматизацию и рационализацию, от разработки до прода». Действительно, Agile — хорош, но с ограничениями, он не покрывает поставку и эксплуатацию.

Дальше много общих слов об автоматизации всего и вся, но интересно, что Умар вводит ролевой состав участников процесса:

  • DevOps Architect/Evangelist
  • Core Release Manager
  • Automation Architect
  • Software Developer/Tester
  • QA/XI Professional
  • Security Engineer
  • Utility Tech Player

Набор спорный, про SRE ни слова, да и в целом, не принято в DevOps широком смысле говорить об ролевом делении (это всё контекстно-зависимо).

Затем в общих чертах разбираются основные процессы, например, один слайд на весь Configuration Management, две минуты и список буллетов:

  • Изменения окружения
  • Множество серверов за раз
  • Отслеживание изменений
  • Заскриптованные сборки
  • Одинаковые окружения для Dev и Prod

Оно всё правильно, но ведь управление конфигурациями — это куда более широкий спектр задач. Сюда же и управление артефактами попадает и управление сторонними компонентами. Словом Infrastructure as a Code в этом курсе «не пугают» ни разу 🙂

Понравилось, что в блоке про мониторинг есть фраза «Мониторинг начинается с первого спринта». Это как с Unit-тестами. Если система долгое время развивается без тестов — велика вероятность, что начинать придется через боль, так как дизайн может оказаться не тестопригодным. Так же и с мониторингом. Если мониторинг навешивается перед самым продом (хуже, если после), то неминуемо придется вносить изменения в дизайн, почти наверняка не будет статусных страниц, логи будут так себе, раскрыть внутреннее состояние продукта может оказаться не так просто. В общем — не мониторингопригодно, а мониторить нужно многое:

  • Инфраструктуру
  • Производительно приложения
  • Логи
  • Безопасность
  • Бизнес-данные (для сбора бизнес-метрик)

Непрерывная интеграция

Сначала идет обзор Git, поверхностный, но достаточный, затем VagrantVirtualBox‘ом), Docker (включая работу с сетью) и разбирается юзкейс с применением докера: блог платформа.

Вроде все логично? Но только 50% темы — это как зарегаться на github.com, где скачать vagrant, то есть установка окружения. А ведь курс — «DevOps Professional». В общем — тут всё очень базовое, никаких лайфхаков.

Когда же дело дошло до юзкейса и наконец не стало затянутых объяснений о том, где скачать, как распаковать, а появился краткий лаконичный docker-compose, промелькнула надежда, что может в курсе больше и не будет на это тратиться время.

version: '2'

services:
  varnish:
    build: varnish
    ports:
      - 80:80
    depends_on:
      - nginx

  nginx:
    build: nginx
    restart: always
    volumes_from:
      - wordpress

  wordpress:
    image: wordpress:php7.1-fpm
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_PASSWORD: example
    depends_on:
      - mysql

  mysql:
    image: mariadb
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - ./demo-db:/var/lib/mysql

Увы, надежда оказалась ложной.

Вообще, я считаю, что если курс не по установке инструментов, то весь контент по установке должен быть «optional и skippable» и не учитываться автором в основном тайминге курса. Иначе как здесь — половина курса не несет ценности относительно заявленной цели.  

Управление конфигурациями

Здесь кратко описываются Chef, Puppet, Ansible и практический пример использования Ansible. И снова половина — это его установка 🙂

Выглядит это так. Сначала рассказываются общие шаги (это первый слайд, дальше слайд с генерацией ключей (ssh-keygen, ssh-copy-id).

Установка Ansible

А затем по слайду на каждый пункт. В итоге из 8 минут, выделенных на Ansible, почти шесть — это установка.

Jenkins

После Ansible идет Jenkins. Снова множество apt-get’ов и конфигураций, в общем, выполняем

docker run -p 8083:8080 -p 50000:50000 -v /local/jenkins_home/:/var/jenkins_home jenkins

и пролистываем половину. А затем и вторую, если хотя бы раз в жизни видели Jenkins 🙂

Кратко об оставшейся части

Дальше разбирается Kubernates (на примере minikube), а за ним идет Nagios. Вместо первого 10-минутного видео по Nagios можно выполнить

docker run --name nagios4 -p 0.0.0.0:8083:80 jasonrivers/nagios:latest

и смело пропустить его 🙂 Еще раз оговорюсь, что это если хоть раз что-то ставили. В противном случае, на начальном уровне, может быть полезным.

Инструменты безопасности

В конце приводится список инструментов для Continuous Security, мне он показался интересным, приведу полностью (первый уровень списка — это этапы в пайплайне):

О системности

Итак, курс, несмотря на название, ОЧЕНЬ базовый, для новичков (в первый раз Jenkins, в первый раз Git, Docker, Nagios) может оказаться интересным, но следует учесть еще один нюанс. Пусть инструменты и рассматриваются в виде kick-start’а, они не увязываются вместе. Окей, Jenkins, Docker, Ansible, Security Tools, но ни слова об интеграции всего этого в единый, автоматизированный, стабильный и надежный пайплайн. Разве что показано, как Git настроить в Jenkins, но тоже по верхам.

Обещанная вначале ссылка на курс:
https://www.packtpub.com/virtualization-and-cloud/professional-devops-video

Похожие статьи:

ProDevOps

Плагины Jenkins для масштабирования

Share

Leave a Reply