Что должен знать от DevOps средний веб-программист при устройстве на работу?

Всю жизнь разрабатывал с установкой всего LEMP на свою убунту и деплоил по FTP на прокашн (или git pull на git post-commit hook). В общем, отстал от современных методов.

В мае планирую искать новую работу и решил себя поднатаскать перед собеседованиями. В последний месяц окунулся в изучение Docker. Есть честно, довольно туго и медленно идёт, но прогресс есть (уже не использую LEMP на хосте). Тут уже кучу вопросов задавал. А на очереди ещё надо попробовать Ansible, Jenkins, Vagrant, с которыми дело не имел.
А ещё мне надо успеть кое-какие знания собственно по самому программированию получить.

Вот и вопрос: стоит ли мне тратить много времени на изучение CD / CI? Если да, то какие знания минимум must have? Или уже в новой команде обучат, что там у них используется? Задают ли какие-либо вопросы на собеседовании на эту тему?
  • Вопрос задан
  • 2025 просмотров
Решения вопроса 2
saboteur_kiev
@saboteur_kiev Куратор тега Веб-разработка
software engineer
маст хев:

Понимание принципа работы ssh ключей, чтобы уметь настроить себе доступ на линукс машину или в гит (bitbucket/github/etc)

Базовое понимание git и то, что висит поверх него (github, bitbucket, etc) чтобы не путаться в пулл реквестах, понимать зачем они и как организована у вас работа - неймконвенш для веток, как ревью делается

Если пишете под докер, то Dockerfile - это в основном ответственность разработчика. Где его запускать - уже второй вопрос.

Вы должны уметь ваше приложение развернуть на локальной машине, и понимать как его развернуть на другой машине.
Jenkins\Teamcity - это тулзы, где девопс старается автоматизировать то, что вы разворачиваете на локальной машине. Вы его консультируете где и откуда вы читаете конфиги, возможно у девопсов есть какие-то централизированные способы для этого. Но Jenkins\Teamcity вам нужны на уровне продвинутого юзера. Можно на месте попросить девопса вам показать базу.

Вообще, вы должны хорошо понимать весь стек, чтобы с нуля поставить и настроить машину, где работает ваше приложение. Требования к вашему приложению вы должны знать лучше, чем девопс - потому что именно вы пишете приложение. Вы знаете его примерный performance, его требования к памяти, его бутылочные горлышки.

Задача девопса - это скейл и автоматизация. Девопса потому и стали выделять в отдельную должность, что появилось много приложений, которые нужно развернуть не на дев машине и напродакшене, а на нескольких тест окружениях, на нескольких регрешн, на нескольких продакшн (отказоустойчивость и так далее), и накопилось работы на приличное количество человекочасов. Но это не значит, что девопс вообще должен разбираться в вашем приложении и тем более бизнес-логике лучше, чем разработчик.
Ответ написан
Комментировать
inf
@inf
DevOps Engineer
Если в докер свою приложуху можешь упаковать, то вообще супер.
Если свяжешь в docker-compose с остальными службами, то гений чистой красоты))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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