Сегодня же я хочу поднять тему «Что должен знать начинающий Junior DevOps». Каков же самый минимум знаний для этого?
Всем привет друзья, давайте разберемся!
Строго говоря, я не встречал строгих требований к Джуниор ДевОпс`у, но вход в профессию будет намного легче, если вы будете обладать следующими навыками.
Быть Middle System Administrator
Тут идея в том, что вы должны хорошо разбираться в среде, в которой будут работать ваши приложения. Как происходит запуск, что делать, если вы в логах увидели ошибку, как грамотно настроить ту же операционную систему. И да, сейчас речь шла про ОС *nix. Вам это очень сильно пригодится.
Вам необходимо пройти хотя бы базовый курс по Linux
Обычно это Ubuntu, Debian или же CentOS
Изучить bash, он вам точно пригодится
И главное во время обучения – полностью погрузиться в происходящее. Не просто читать, а еще и выполнять все прочитанное в терминале
Сети
Сети очень важная часть работы DevOps`а. Хотя многие про это и забывают. Необходимо знать хотя бы следующие основы:
Как изучить сети? Пройдите курс CCNA, а также установите себе GNS 3 и пробуйте настраивать сетевое оборудование.
Нужно ли быть разработчиком?
Отчасти да. Вы должны понимать, как пишется код, что такое объектно-ориентированное программирование (ООП) и еще кучу разных вещей.
Вы можете сказать, что код должны писать программисты. Но, как вы будете автоматизировать сборку вашего продукта, тестирование, деплой?
Знание баз данных
Тут все просто, вам нужно уметь писать SQL запросы. Всё, точка.
Заключение и совет
DevOps должен обладать действительно широким кругозором. Вам придется постоянно заниматься самообучением. Ниже приведу примерные шаги, которые помогут вам в начале пути.
Напишите небольшое приложение. Язык программирование можно выбрать любой. Пусть приложение отдает инфу о пользователях через HTTP. Получится некое API.
Добавьте в него работу с БД. Хранение информации о пользователях, например.
Зарегистрируйте аккаунт на GitHub, если у вас его еще нет. Создайте репозиторий с вашим приложением.
Установите себе на компьютер Jenkins, ну или TeamCity и настройте автоматическую сборку вашего приложения из репозитория по кнопке.
Следующий этап. Настраиваем webhooks на GitHub, которые будут запускать сборку проекта на вашей машине (Jenkins/TeamCity).
Добавьте тесты в Jenkins. Как минимум линтер по вашему коду.
Создаем виртуальную машину и настраиваем ее с помощью Ansible, Chef или Puppet. Пользователи, библиотеки, зависимости и т. д.
Подводим все это дело под Vagrant. Мы же хотим все автоматизировать.
Подключаем Vagrant к Jenkins с помощью плагина. При пуше в Git приложение будет собираться, и подниматься на виртуалке с помощью Vagrant + Configuration System Management.
На этом пока всё. Можно еще прикрутить тесты, мониторинг, завернуть все это в Docker, использовать оркестрацию, поднять кластер и так далее. Но мы же говорим сейчас про Junior`а. Так что списка выше хватит на первое время с головой.
Обсудить эту заметку можно в нашем Телеграм канале: https://t.me/devops_spb_ru (@devops_spb_ru)