Продолжая серию статей про знания, полученные на работе, хочу рассказать про свои навыки DevOps, которые были на нуле, когда я пришла в компанию GlowByte. 

Docker

Знакомство с “Докером” отчасти произошло потому, что была хотелка его знать. Однако, как выяснилось позже, такие знания очень пригодились в настоящих сложных рабочих задачах. 

Изначально я получила задание написать Телеграм-бота для внутренних нужд. Я тогда использовала WSL, и мои разработки у меня прекрасно запускались, но при передаче кода коллегам, которые пробовали запустить в Windows без WSL, все ломалось, и приходилось долго объяснять, что надо делать и как поправить. Чтобы решить эту проблему, я научилась конфигурировать Docker-файлы, познакомилась с Docker Compose и узнала многое про работу сети и файлового обмена внутри Docker, чтобы с уверенностью использовать этот инструмент и как разработчик, и как администратор. 

Эти знания мне очень пригодились в скором времени, когда появилась новая большая задача – разработать систему мониторинга для заказчика, у которого были закрытые контуры, не работал доступ в интернет и работать сразу на серверах было крайне неудобно и сложно. Все сделала у себя на локали: разработала, протестировала и виртуализировала систему. После чего уже готовые собранные образы перенесла на серверы заказчика и без всяких проблем их запустила, не решая платформозависимые проблемы. Кстати, про построение системы мониторинга расскажу в следующих статьях. 

С того момента я использовала Docker как неотъемлемую часть при развертывании своих приложений всегда и везде. Сделать Dockerfile или docker-compose.yaml уже не составляло труда и не занимало много времени. 

Кроме того, мне понравилось, что я могу развернуть уже готовое приложение (например, PostgreSQL, Grafana, Prometheus и т. д.) в один клик из готового образа: не нужно мучиться с командами скачивания, конфигурирования, запуска, расследования инцидентов при развертывании и не нужно закладывать несколько дней на такие задачи. 

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

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

Итак, Docker стал еще одной технологией, которую удалось выучить в реальных практических задачах от zero до hero, работая с сопровождении B2B.

K8s

Далее глаз упал на Kubernetes. Здесь все произошло сразу с реального кейса: заказчики начали внедрять продукт компании Data Sapience CM Ocean, который имеет удобный механизм раскатывания новых релизов в K8s. Вендор предоставляет helm-чарты, заказчик выставляет values для конфигурации в своей среде и применяет helm-чарт. Для успешного выполнения этой задачи часто привлекают команды сопровождения, так случилось и в моей практике. На этом проекте мне удалось погрузиться в мир “воркеров” и “мастернод”, облачных IaaS, абстракций Kubernetes, команд управления kubectl и helm. Кроме того, удалось увидеть на практике CI/CD-инструмент и настройку раската пайплайнов через GitLab. 

Это были знания, которые лились быстрым потоком, и все нужно было схватывать за несколько первых месяцев. Впоследствии они осели в голове, структурировались, и я стала работать с K8s более осознанно. Как и с “Докером”, составила серию заметок и инструкций по архитектуре Kubernetes, командам управления, работе с сетью и файловым хранилищем,  организовала в базе знаний информацию о масштабировании приложений в Kubernetes. 

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

Специфические on-premise-инсталляции  

Следом в копилку положила новые технологии DevOps: с нуля научилась устанавливать комплексные большие JAVA-приложения в Weblogic и WebSphere, конфигурировать связку приложений в кластере на двух и более серверах, решать специфичные неочевидные ошибки незнакомых систем. Также выработала подход самостоятельного понимания, как работать с такими “черными ящиками”. 

В 2021 году мы преимущественно работали на проектах, у которых вендорами были HCL и SAS. Эти компании предоставляли маркетинговые комплексы для сегментации клиентов и обработки в Real-time маркетинговых событий. Помимо самого приложения, обычно заказчик имел ряд связанных интеграций, которые также должны были запускаться и выполнять какие-то процессы. 

Я занималась установкой WebSphere, Tomcat и HCL Campaign в этих системах с нуля: от скачивания приложения до конфигурирования, подключения источников данных, решения проблем падения приложений, производительности и конфигурации под высокие нагрузки. Кроме того, подключала кастомный код на Java к приложению и тестировала комплексно всю систему, затем сопровождала и поддерживала установку.

Также устанавливала новые релизы приложений HCL Interact (Real-time-системы управления событиями) так, чтобы пользователи прод-контура не замечали недоступности системы. Приходилось работать быстро, иметь проверенные на DEV-контуре шаги установки и ответы на самые частые вопросы по ошибкам после наката. 

Я занималась разворачиванием SAS MA (сегментатора для больших данных о клиентах), решением проблем накатов новых версий и миграций существующих данных в новую версию приложений. 

Казалось бы, такой софт является специфической технологией, но работа с ним дала мне опыт в развертывании под Windows и Linux, а также новые знания про архитектуру JAVA-приложений, работу RPC, кластерных серверов. 

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

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

Итак, в этой части я рассказала про опыт DevOps. Но это далеко не все, и в последующих частях я расскажу про мониторинг, базу знаний, менеджмент, аналитику и многое другое.

Комментарии (0)