Комплексная техподдержка сервисов клиента по SLA: наш опыт
Если сайт или приложение «падает», не справляется с растущей нагрузкой, важно проверить и настроить инфраструктуру продукта. Для этого мы используем методологию разработки Development Operations (DevOps). Рассказываем, как мы начинали с временного подключения DevOps-инженеров к проектам клиентов, а в итоге пришли к комплексной технической поддержке 24 на 7.
Что такое devops engineering
DevOps-инженеры управляют набором необходимых практик для быстрого выпуска и обновлений ИТ-систем. Их работа покрывает все этапы жизненного цикла программного продукта: от создания до эксплуатации. Кроме того, совместное использование DevOps-практик и Agile-подхода позволяет наладить взаимодействие между командами, вне зависимости от выбранной модели разработки.
«Магия» DevOps необходима в том случае, если у ИТ-системы есть проблемы со стабильностью, масштабированием, работой под нагрузкой или с выкладкой на продакшн, а также, например, если выпуск продукта занимает слишком много времени. Внедрение практики DevOps позволяет автоматизировать процессы разработки, ускорить выход системы на рынок, получить быструю обратную связь от пользователей.
Таким образом, DevOps-инженеры настраивают инфраструктуру, мониторинг и процессы непрерывной интеграции CI/CD с учетом требований доступности и нагрузки.
С чего все начиналось
Мы занимались технической поддержкой задолго до того, как выделили ее в самостоятельную услугу. Например, несколько лет назад один из заказчиков обратился к нам для создания системы доставки посылок из интернет-магазинов через постаматы. Проанализировав ситуацию, мы выявили несколько проблем: у проекта отсутствовал менеджмент инфраструктуры, не были настроены циклы разработки и поставки ПО, а также имелись трудности с производительностью.
Мы подключили к решению поставленной задачи нашу команду, в которую вошли разработчики, DevOps и QA-специалисты. Они настроили все необходимые окружения и контуры (dev, test, qaa, prod), автоматизировали сборки и деплой большого количества сервисов, использовали контейнерную виртуализацию в продуктивном окружении. В результате нам удалось:
-
значительно сократить срок выкатки нового функционала;
-
достичь уровня доступности сервиса порядка 99,8%;
-
упростить и автоматизировать процедуру доставки обновлений на продакшн.
От применения практик DevOps к круглосуточной техподдержке
Как при разработке «с нуля», так и при усилении внутренней команды мы стремимся помочь с эксплуатацией и обеспечить бесперебойную работу системы заказчика. А если проблемы все же возникают, то подключаемся, чтобы оперативно их устранить.
Представим себе ситуацию: у клиента (например, у банка или интернет-магазина) есть информационная система, у которой в какой-то момент происходит технический сбой. Это может быть отказ серверов или увеличение нагрузки на них и, как следствие, нестабильная работа или недоступность продукта. Такие проблемы можно решить на уровне инфраструктуры. В этом случае мы готовы предоставить услугу технической поддержки информационной системы в формате 24 на 7.
Кому необходима техническая поддержка
Перечислим основные причины для того, чтобы обратиться за техподдержкой:
-
если необходима стабильная работа системы без сбоев в инфраструктуре;
-
если качество ПО является критичным для бизнеса;
-
если клиенту нужно ускорить time-to-market при выпуске новых фич.
Что входит в пакеты техподдержки
Если продукт давно вышел в продакшн, но имеет какие-либо из перечисленных выше проблем, мы готовы предложить как полный цикл работ, так и следующие услуги по отдельности.
Аудит
Если заказчику нужно настроить уже действующую систему с готовым окружением production, мы начинаем работу с аудита инфраструктуры и архитектуры. При этом изучаем, как выстроены процессы CI/CD, регламенты, документация, компоненты (СУБД, балансировщики, приложения и др.), а также составляем диаграммы текущей структуры для дальнейшей работы.
В результате аудита мы формируем документ, который содержит в себе все рекомендации по устранению выявленных недочетов и по необходимым доработкам.
Проектирование
Мы проектируем инфраструктуру «с нуля» в тех случаях, если система еще не была запущена или по результатам аудита она требует значительных доработок. Мы учитываем пожелания заказчика, планы развития бизнеса, потребности в отказоустойчивости и высокой доступности продукта. Если над проектом работают и другие команды, мы договариваемся о разделении зон ответственности, определяем ключевые метрики и компоненты систем.
Реализация
Далее мы работаем над организацией инфраструктуры, мониторинга и процессов CI/CD по методу Infrastructure as Code с учетом требований доступности и нагрузки. После формируем долгосрочную команду с участием DevOps-инженеров, операторов, разработчиков, QA и менеджера проекта.
Поддержка SLA
Для предотвращения инцидентов — проблем и сбоев в работе продукта — мы настраиваем непрерывный мониторинг, отслеживаем состояние системы. Это помогает вовремя заметить, например, что заканчивается место на диске или оперативная память, существенно растет нагрузка на процессор.
При необходимости мы подключаемся, анализируем ситуацию, восстанавливаем работоспособность системы. Мы обеспечиваем мониторинг, сопровождение и поддержку по SLA либо 5 дней в неделю по 8 часов, либо круглосуточно и без выходных. Проводим комплекс регламентных работ: обновление системы, отдельных компонентов, пакетов, резервное копирование базы данных, смену паролей.
Также мы формируем периодические отчеты по работам (задачи и инциденты за определенный период, их статус, время решения), отчеты по доступности компонентов. Выстраиваем взаимодействие с разработкой по нефункциональным требованиям отказоустойчивости и доступности.
Если команда продолжает выпускать новые фичи для ИТ-системы, которая уже вышла в продакшн, то поддерживаем необходимую инфраструктуру для окружений — Production, Stage, Dev и тестовых.
Наши услуги
Для удобства сотрудничества мы сформировали три комплексных пакета услуг по техподдержке продакшн и разработки.
-
Пакет «Базовый» — это техническая поддержка 5 дней в неделю по 8 часов. Включает в себя мониторинг и решение инцидентов в рамках рабочего дня, а также регламенты, проверку резервного копирования, смену паролей, обновления.
Для кого:
Этот вариант подойдет, например, для небольшого интернет-магазина, который работает только в одном городе.
-
«Оптимальный» пакет включает в себя все функции «Базового», а также настройку и поддержку отказоустойчивости.
Для кого:
Такой формат подходит владельцам больших корпоративных систем, например, для электронного документооборота.
-
«Максимальный» пакет обслуживания предназначен для крупных компаний и тех, кому репутационно важно не допускать «падений» своих ИТ-сервисов. В него входит настройка и поддержка отказоустойчивости, круглосуточное дежурство наших специалистов и уровень доступности в процентах.
Для кого:
В числе потенциальных клиентов могут быть интернет-магазины всероссийского уровня или системы дистанционного банковского обслуживания (ДБО).
Каждый пакет услуг включает в себя определенное количество дополнительных часов работы DevOps-инженеров. Их можно использовать в течение месяца для решения задач, не входящих в абонентскую плату.
Состав нашей команды зависит от потребностей заказчика. Как правило, это DevOps-инженеры, операторы, менеджеры проекта, разработчики и QA-специалисты.
Операторы поддержки следят за алертами и графиками и при появлении проблем или сбоев подключают дежурного инженера. Если в результате инцидента мы выявляем недочеты в ПО, то сообщаем об этом разработчикам системы для устранения.
Из практики
К нам за экспертизой обратилась крупная российская сеть супермаркетов. Из-за массового перехода покупателей в формат онлайн-шопинга во время пандемии клиент столкнулся со значительным ростом трафика. Мы должны были выяснить, способен ли сайт выдержать двух- и трехкратную нагрузку, а также повысить отказоустойчивость системы.
Работа началась с аудита инфраструктуры веб-сайта. Наша команда DevOps-специалистов в максимально сжатые сроки проанализировала ситуацию и разработала перечень рекомендаций, чтобы устранить выявленные проблемы.
Мы спроектировали и реализовали отказоустойчивую инфраструктуру, развели компоненты продукта на разные сервера, внедрили процесс CI/СD и настроили мониторинг.
Всё это также позволило сделать среду разработки более удобной и сократить time-to-market. Например, нагрузка по количеству запросов в пике достигает 600 в секунду, что не является предельным значением. Мы продолжаем работать с компанией и планируем обеспечивать круглосуточную техподдержку сайта.
Как понять, что нужна наша помощь
Техническая поддержка продакшена и девелопмента особенно необходима, когда перед владельцем продукта стоят следующие задачи:
-
нужно обеспечить 99,9% времени доступности сервиса;
-
ускорить долгий time-to-market;
-
избавиться от проблем со стабильностью, масштабированием и работой под нагрузкой;
-
нужен дополнительный ресурс для техподдержки системы.
Выводы
Мы рассказали о нашем опыте, как от стандартной услуги подключения к проектам DevOps-инженеров мы перешли к полноценной круглосуточной техподдержке. Приглашаем узнать подробности!