Итоги года. Или как я столкнулся с DevOps.

Хочу где-то зафиксировать то, что я сделал за этот год. В первую очередь, чтобы мне самому стало понятно. Иногда ловлю себя на том, что живу с ощущением того, что делаю мало или недостаточно. Будто не замечаю свои достижения. Обесцениваю себя, потому что всё время гонюсь за новыми целями. Думаю, что такая заметка поможет мне это исправить

Я являюсь backend разработчиком на языке Go. Этот год я встретил ещё новичком. Закрывал задачи, учился писать чистый код, разбирался в проекте, погружаясь всё дальше с каждым днём. Мои старания заметили и предложили поучаствовать в небольшом стартапе внутри нашей компании. В нём мне дали полную свободу действий: я мог решать архитектурные и инфраструктурные задачи.

Поскольку проект был на стадии MVP, естественно, DevOps практик там ещё не было. Все релизы до меня делали вручную. И только когда я столкнулся с отсутствием DevOps, я понял зачем всё это было нужно. В тот момент я понял, что все эти скрипты автоматизаций, CI/CD, инфраструктура как код ‒ такие, казалось бы, далекие для меня раньше ‒ вдруг стали жизненно необходимы.

Я, проникнувшись философией DevOps (А это именно философия, которая учит мастерству деплоя на сервер. Без ручных ошибок и времени простоя в работе) начал изучать все эти техники великой автоматизации.

Поступил на курс на Практикуме. Начал изучать темы и сразу же применять их на реальной системе.

Сделал Docker Compose файлы, переписал Dockerfile’ы. Теперь не нужно руками запускать контейнеры каждый раз. Затем выучил CI/CD, научил GitLab собирать все артефакты и запускать их на целевых серверах. Деплоить стало очень просто! Больше никаких ошибок, связанных с человеческим фактором. Пока строил инфру, пришлось покопаться в Линуксе, куда ж без него. Ходил в те времена по SSH на сервер чаще, чем выходил на улицу.

Ещё я прикоснулся к Kubernetes. Да, в моём небольшом стартапе он не пригодился: на данный момент такие сложности там ни к чему. Но на другом проекте я, являясь рядовым Go-разработчиком, смог лучше понимать среду, в которой мои код работает. Ведь на этом проекте использовали именно Кубер.

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

В этом году я иначе взглянул на процесс разработки, перестал быть рядовым инженером, увеличил свою зону ответственности.