Какие DevOps практики(инструменты) используете для разворачивания инфраструктуры?

Вступление

Привет
Совсем недавно на практике начал использовать инструменты DevOps и примерно представляю что для чего служит
(configuration management (ansible, cheff, pappet, salstack и др.),clouds,git,jenkins,системы мониторинга и логирования,разделение сред на группы dev,testing,staging,prod )
Отчасти я понимаю, что практика DevOps в целом заключается в автоматизации действий, быстром внесении изменений в инфраструктуру, максимально быстром(мультиплатформенном) деплое в новую среду(будь то клауд или голое железо), разработки инфраструктуры для автоматического масштабирования, предоставлении сред под разные задачи ( testing, development, staging, prod) и централизованного максимально детального сбора логов, метрик и service discovery со всего этого добра. К сожалению на данный момент, так как я full-time и один выполняю обязанности Ops, в конторе которая динамично развивается, и до этого не имел представления о том как строится инфраструктура - я не имею целостной картины инфраструктуры - используемой на практике в больших софтварных конторах. Нет никакого Agile, никто даже не ставит задачи, все на словах. На деле, никто не заинтересован внедрять практики DevOps. В общем пока в голове каша. ). Теперь собственно к чему этот набор слов:


Посоветуйте пожалуйста, где можно хотя бы поверхностно (в теории) ознакомится с готовой, рабочей схемой инфраструктуры, чтобы в общем понимать, категории и связку всех инструментов которые используются и в какой последовательности (workflow).

Пример: у меня есть плейбук ansible который разворачивает гит репозитарий на группе серверов, но я примерно понимаю, что скорее всего, у "больших дядек" это делается не через плейбук, а через jenkins + docker + webhook, но на практике взглянуть на такое я не могу :)

Спасибо.

Критика приветствуется и поощряется )

PS
ЗЫ: нет сеньора, который скажет, так никто не делает - потому что так и так... Есть группа dev-ов которым плевать на инфраструктуру так же как и руководству - работает прекрасно, не работает - сам дурак. А мне нужен "experience adviсe"(набитые другими шишки и best practice).
  • Вопрос задан
  • 874 просмотра
Решения вопроса 1
inf
@inf
DevOps Engineer
- Terraform для конфигурации инфраструктуры в облаках + chef для автоматизации.
- На серверах docker swarm для небольших проектов.
- CI/CD на gitlab
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега Организация работы
software engineer
Пример: у меня есть плейбук ansible который разворачивает гитрепозитарий на групе серверов, но я примерно понимаю, что скорее всего, у "больших дядек" это делается не через плейбук, а через jenkins + docker + webhook, но на практике взглянуть на такое я не могу :)


У больших дяденек это и руками может делаться. Нет одного лучшего способа, есть определенные правила игры (бюджет, количество серверов, количество компонентов и стек) - и выбираете себе удобные инструменты.
Тоже использование докера - не всегда оправдано.

Зачастую самые удобные инструменты это не самые лучшие в мире, а те, которые комфротны для вас и разработчиков (но это не значит, что не нужно периодически подучивать новое и пытаться смотреть на свою инфраструктуру незамыленным глазом).

Старайтесь не оптимизировать что-либо, а решать конкретные проблемы, типа "вот тут я трачу еженедельно xx часов на рутину. Имеет ли смысл потратить неделю на оптимизацию и сэкономить потом на этом, или рутина связана с процессами, неподдающимися автоматизации (например из-за бюрократии).
Ответ написан
@Logout_90
- Ansible
- Molecule
- Gitlab
Роли правятся разработчиком, прогоняются локальные тесты, пушится все в репу, потом тригерится запуск ci/cd, там тесты прогоняются, MR, code review, тесты, выкатка на прод.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы