Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Сегодня речь пойдет не о списке инструментов, которые необходимо изучить. Не о сетевых моделях взаимодействия, и даже не о протоколах. Сегодня я, DevOps Automation Engineer в компании Altenar, расскажу вам, почему DevOps - это целая философия, и, по сути, каждый IT-шник в своей мере DevOps.
Кто такой этот ваш девопс?
Под страхом развязывания холивара, постараюсь объяснить глазами бывшего разработчика, как я представлял себе DevOps в целом.
У инженера обязательно присутствие некоторых отличительных признаков, по которым его можно выделить из группы IT-шников:
а) Дядька в возрасте;
б) Борода;
в) Матюки откуда-то со стороны серверной;
г) Абсолютное спокойствие в моменты всеобщей паники.
Дядька-девопс - удивительный человек, к которому можно прийти со словами “я упаль” и грустными-грустными глазами, и, выслушав пару тяжелых вздохов, получить решение любой проблемы в твоей жизни.
Такой образ достаточно долго сидел в моей голове, как джуна, и я не мог представить себе, насколько же работа системного инженера по-исследовательски интересна.
Изначально я устроился как Backend-разработчик, прекрасная деятельность для зеленого студента - сидеть и воплощать в жизнь те алгоритмы, которые были забиты мне в мозг университетскими преподавателями. За полтора года появился бесценный опыт работы в больших проектах и понимание устройства бизнеса. Но однажды произошел переломный момент - мне предложили отчасти исследовательскую задачу - поизучать, а стоит ли нам использовать репликацию данных в MongoDB - соответственно, задача проста - установи, настрой, потестируй, сделай выводы.
Тут-то все и закрутилось. Пока я копался с настройками виртуальных машин, пока изучал команды Ubuntu, настраивал сеть между тремя ВМками (отрастил бороду, заматюгался) мне было жутко интересно, потому что с каждой итерацией было заметно приближение к цели и вот-вот раздастся крик “It`s alive!!!”
Спустя пару недель самокопания и созидания мое чудовище ожило и потребовало внимания.
Когда мы добрались до этапа тестирования я вдруг понял, что проверить-то и нечем. Ну ничего, яжразработчик, сейчас накидаю. И уже через час-два у меня был в руках готовый инструмент для тестирования задержки репликации, которым мы успешно пользовались еще какое-то время.
На заднем плане стоял мой нынешний начальник, Head of DevOps Automation Team, и ехидно потирал ручки… Он-то знал, что в команде инженеров появится новый человек :)
Каким боком это ко мне относится?
DevOps - это огромное, обширное сообщество исследователей, людей, привыкших решать проблемы не по накатанной, а постоянно ища какой-нибудь интересный инструмент, который будет делать всю работу за тебя, но который придется все время настраивать.
Конкретно в моем случае, приходится иметь дело с абсолютно разными областями IT - периодически читать конфиги приложения, которое разработчики сложили в репозиторий и попросили развернуть; смотреть ошибки, которые не были обработаны должным образом и они выбрасываются в процессе работы в логи; прикручивать мониторинг, алерты, новых пользователей туда, сюда и еще вон к той штуке, которая ну ты понял какая.
В моем случае, я оказываю поддержку своей нынешней команде тем, что добавляю ей преимущество - читать и понимать код, написанный разработчиками. Все мы люди и не всегда пишем описания задач так, как хотелось бы другим.
Вообще, мне иногда кажется, что у нас пол-команды от сырости прибилось из других отделов. Например, мой коллега перешел из отдела инфраструктурщиков - эти ребята занимаются сетями, балансерами, файрволами и поддержкой сетевой инфраструктуры в целом. От него пришло преимущество в понимании того, где мы в этом мире находимся, то бишь на какой сетке какие виртуальные машины, почему это так, а в качестве приятного бонуса объяснял нам, как правильно что-то сделать, чтобы не открыть брешь в пространственно-временном континууме нашей сети.
Я люблю своих коллег - мы все разные и каждый силен в своей части. Именно это делает нас по-настоящему сильной командой. Понимая это, мы рады любому - и QA специалисту, который сможет взять на себя работу с автотестами, например, что будет сильное его стороной, и DBA, который знает, как правильно обращаться с базами и сможет сделать деплой базы без каких-либо печальных последствий для данных. Любой, абсолютно любой специалист, при совсем небольшой подготовке, сможет стать полноценным системным инженером, кем и стал я в свое время.
И неужели DevOps настолько широк и многогранен?
В каждой компании, в каждом проекте под термином “DevOps” подразумевается что-то свое. В нашей компании мы считаем специалиста именно DevOps, если он находится ровно между людьми, которые пишут и поддерживают код, и людьми, которые осуществляют бизнес-поддержку нашего продукта. Другими словами, тот, кто обладает высокой ответственностью над боевыми средами, умеет решать проблемы, не связанные с ошибками в коде приложений (например, перегрузка баз данных, аномально высокое использование процессора, длинные задержки в репликации, падение виртуальной машины и т.п.), а также осуществляет в сумме круглосуточную поддержку проекта и продукта в целом.
Также у нас есть подразделение DevOps специалистов на следующие категории:
а) DevOps DBA Specialist - поддержка и автоматизация баз данных;
б) DevOps Security Engineer - поддержка безопасности, проведение пентестов, прохождение аудитов
в) DevOps Automation Engineer - настройка CI/CD, мониторинг, поддержка работоспособности системы
г) DevOps Infrastructure Specialist - управление корпоративными сетями, центральными узлами сетей, поддержка и расширение сетевой инфраструктуры
д) DevOps Technology Operations - установка и поддержка third-party решений
Познание дзен в околоинфраструктурном мире
Теперь, спустя более двух лет работы в команде автоматизации, я могу абсолютно объективно оценить мой путь в DevOps практически с нуля.
Не скажу, что это был самый простой путь, но точно могу сказать, что теперь я сложностей не боюсь :) Ни одна задача не может вызвать у меня ощущения чего-то невыполнимого или невероятно трудного. Разница в сильных сторонах между мной и моими коллегами позволяет мне обратиться к команде по любым вопросам, и всегда найдется человек, способный дать мне направление (и ускорение) для выполнения задачи. Да, мы бородатые (но не все), да, мы дядьки, иногда матюгаемся, но мы всегда готовы вам помочь - такова наша задача :)
И что мне с этим теперь делать?
Прочитав эту статью - не стоит воспринимать ее, как инструкцию. Прежде всего, статья направлена на то, чтобы объяснить разницу взглядов на философию DevOps с разных сторон, чтобы показать, что частичка DevOps, которая может казаться чуждой и непонятной, есть в каждом из вас, и что наши объятия всегда распростерты для всех желающих искателей приключений :)
Если вы чувствуете прилив сил и невероятное желание стать добрым дядькой (или может быть тетькой) с надеждой сделать наш айтишный мир чуточку лучше - You`re Welcome!