DevOps — что это и почему это так важно?
В мире появилось немало новых профессий. Так случилось благодаря тому, как сильно шагнули вперед технологии. Просто читая их названия, сложно понять, зачем они нужны. Однако, каждая из них помогает решать свой круг задач, от которых зависит немало. Одно из таких направлений — DevOps. Что же скрывается за этими буквами?
Сейчас очень многие сервисы реализованы в виде приложений. Это может быть все, что угодно, начиная от интернет-магазинов, заканчивая корпоративными приложениями для сотрудников крупных компаний. Несмотря на все их различия, их роднит и объединяет то, что все они должны работать быстро и всегда удовлетворять потенциальных пользователей.
Специалист DevOps как раз и отвечает за комплекс задач, решение которых обеспечивает качественную работу приложения. Как правило, за любым приложением стоит целая команда специалистов. Там, где используются практики DevOps, никто никогда не услышит такой избитой фразы, как «проблема на вашей стороне».
Такие команды, объединяющие разработчиков и техподдержку, не просто работают «параллельно», но и работают на конечный результат с тем, чтобы рядовые пользователи были довольны. Такой подход к работе исключает разделение ответственности и призван сплотить направления разработки и поддержки в каждом конкретном продукте. Неплохим примером такой организации работы стали Kubernetes Flant, где всегда находят решения поставленных задач.
Неужели не обойтись без DevOps?
В самом простом случае, когда за разработку приложения и его дальнейшую поддержку отвечает всего один человек, проблема отпадает сама собой. На практике же, каждый проект обслуживает целая команда инженеров. Представьте, что все они имеют свою специализацию и загружены работой. Соответственно, ни возможности, ни желания сделать чью-то работу у них, скорее всего, нет. В итоге каждый отвечает только за свой сравнительно небольшой участок работы.
На первый взгляд, такой подход всем хорош, но по факту все же заметно проигрывает подходу, где реализованы принципы DevOps. Дело в том, что даже в одной команде разработчики и поддержка, делая, казалось бы, общее дело, имеют совершенно разные цели. Даже KPI у них различные. Так, при ближайшем рассмотрении оказывается, что разработчики отвечают за скорейшую реализацию и добавление в продукт бизнес-требований заказчика. Инженеры поддержки должны обеспечить бесперебойность и стабильность работы.
Очень часто случается так, что эти два направления конфликтуют. Все очень просто — появление любых изменений в продукте ставит под угрозу стабильность работы. Если же задействовать практику DevOps, то это позволяет «сгладить острые углы» и объединить команду одной общей целью, где нет четкого разделения зон ответственности, но четко работает принцип – «все отвечают за все». Эти подходы сравнительно новы, поэтому нет даже определения DevOps.
Но те, кто уже применяет эти подходы на практике, например, Flant, считают, что понятие складывается из технологий, процессов и культуры взаимодействия внутри команды. В итоге достигается самое главное, ради чего, вообще, разрабатываются приложения и запускаются цифровые сервисы – обеспечивается непрерывная доставка ценностей до потребителя! А это уже оправдывает некоторую сложность подхода и возрастающее бремя ответственности на плечи каждого члена команды.
Как найти команду, работающую по DevOps?
На самом деле, задачка средней сложности, но нужно понимать, что искать нужно компании, предлагающие не просто решения, а настоящий системный подход. Они есть на российском рынке. Пожалуй, одним из известных имен в этой стезе стал сайт flant.ru, где можно найти качественный сервис бизнес-проектам любого масштаба.
Многие современные компании приходят к выводу о том, что есть реальный смысл отдать все задачи по разработке и поддержке своего приложения сторонней компании. Все дело в том, что команда Flant, состоящая из профессионалов и нацеленная на конечный результат, справится с работой лучше, чем команда «своего розлива».
Это достигается за счет следования таким принципам, как стандартизация, гибкость используемых технологий и применение системных решений на всех уровнях разработки продуктов и их сопровождения. Компания использует только проверенные методы, а экспериментальные пути решения задач принимаются основными только при наличии достаточных оснований.
В компании отлично понимают, что залогом развития могут быть только такие вещи, как открытость к взаимодействию, нацеленность на общий результат, нужный бизнесу и постоянное обучение и совершенствование навыков работы в разных средах. При этом арсенал решений позволяет распространить DevOps практики и на существующие проекты.