Попался на глаза курс «Professional DevOps» от Packt. Краткое содержание и моё субъективное мнение о нем ниже.
Ссылка на курс будет в конце, краткое резюме: очень (ОЧЕНЬ) базовый.
О чем курс Professional DevOps?
Сразу оговорюсь, что нисколько не умаляю профессионализма автора (Umar Murtaza), речь пойдет о самом видео-курсе.
Пайплайн курса выглядит очень вкусным. Тут тебе и жизненный цикл и инструментарий и вроде бы получил инъекцию знаний в мозг и стал 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, поверхностный, но достаточный, затем Vagrant (с VirtualBox‘ом), 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).
А затем по слайду на каждый пункт. В итоге из 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, мне он показался интересным, приведу полностью (первый уровень списка — это этапы в пайплайне):
- Инструменты Test-First
- Pre-commit
- Continuous Integration
- Continuous Delivery
- Operation
О системности
Итак, курс, несмотря на название, ОЧЕНЬ базовый, для новичков (в первый раз Jenkins, в первый раз Git, Docker, Nagios) может оказаться интересным, но следует учесть еще один нюанс. Пусть инструменты и рассматриваются в виде kick-start’а, они не увязываются вместе. Окей, Jenkins, Docker, Ansible, Security Tools, но ни слова об интеграции всего этого в единый, автоматизированный, стабильный и надежный пайплайн. Разве что показано, как Git настроить в Jenkins, но тоже по верхам.
Обещанная вначале ссылка на курс:
https://www.packtpub.com/virtualization-and-cloud/professional-devops-video
Похожие статьи: