Статьи

Руководство для начинающих по вызову

Эта статья была спонсирована PagerDuty . Спасибо за поддержку спонсоров, которые делают возможным использование SitePoint.

Слово DevOps — это портманто из двух слов: разработка и эксплуатация, и это относительно новый термин, используемый в администрировании гибкой системы.

В прошлом разработчики создавали продукты, услуги и инфраструктуру, а затем ответственность за их обслуживание переходила на системных администраторов.

Вместо этого DevOps делает упор на коммуникацию и сотрудничество между разработчиками и операторами ИТ-систем и лучше интегрирует людей в рабочий процесс программного обеспечения — от разработки до производства — поддерживая более тесную связь с гибкими ценностями и принципами.

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

Сохраняя здравомыслие, находясь по вызову

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

Быть по вызову может быть пугающим для нового члена команды. Решение проблем и решение проблем легко в течение дня, когда у вас есть кофеин в крови, музыка на стереосистеме и члены команды, к которым вы можете обратиться.

Но все немного по-другому, когда вы просыпаетесь в 2 часа ночи по SMS и вам нужно быстро принять меры, чтобы решить проблему, которая может стоить вашей компании много денег каждую секунду.

Ниже приведены некоторые советы, которые я собрал за годы работы с SitePoint и другими организациями.

Кто на точке?

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

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

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

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

Также важно развивать культуру сотрудничества для DevOps. Если кто-то берет контроль над исправлением, но находится вне его глубины и чувствует себя под давлением, важно, чтобы они знали, что могут попросить помощи у других, не будучи обученными из-за медлительности с исправлением.

Всегда будь готов

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

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

Это может показаться очевидным, но убедитесь, что ваша машина справится с задачами, которые вы будете перед ней ставить. Есть ли у вас учетные данные и сертификаты, которые вам нужны? Есть ли у него соединение Bluetooth для включения модема? Если ваш телефон по вызову не тот, который вы обычно используете, убедитесь, что он обновлен, и регулярно проверяйте его.

Приспособьте свое окружение

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

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

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

Другой совет: выберите темный фон для обоев рабочего стола и не включайте яркость — или используйте приложение, такое как Redshift, — чтобы избежать ослепления при входе в систему для решения проблемы.

Профилактика лучше, чем лечение

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

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

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

Улучшение вашей инфраструктуры — и проверка ее вне реальной проблемы — означает, что вы можете быть уверены в своих системах и знать, что делать, если что-то идет не так.

Знать инфраструктуру

Знание зависимостей вашей организации и их взаимосвязи может помочь вам быстро понять причину проблемы. Много раз я могу решать проблемы быстрее, потому что я знаю, как устроена система, и поэтому я знаю, что проверить в первую очередь. Конечно, самые сложные проблемы — это те, которые вы не ожидаете.

В связи с этим: убедитесь, что ваша документация обновлена ​​и охватывает все основы. Плохая документация может мешать, а не помогать.

Правильные инструменты

Конечно, оставаться в здравом уме во время разговора проще, когда у вас есть инструменты, которые мешают вам сосредоточиться на важных вещах.

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

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

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

PagerDuty имеет более 100 интеграций с такими сервисами, как AppDynamics, Crashlytics, New Relic и Sensu. Но если используемой вами службы нет в списке, PagerDuty API может работать с любой системой, которая может выполнить HTTP-вызов API или отправить электронное письмо.

Когда дело доходит до упрощения вызова, у PagerDuty есть множество вариантов планирования с расписаниями «следуй за солнцем» для глобальных команд, что означает, что каждый член команды в данном месте может работать в рабочее время (никогда не просыпайтесь в 2 часа ночи! ). Существуют также варианты для вторичных списков вызовов по вызову для автоматического эскалации инцидента, если первый человек не отвечает (это происходит!).

Служба также умеет избегать предупреждений «плачущего волка», отправляя одно предупреждение для каждого инцидента в службе, за которую вы несете ответственность, и только тогда, когда этот инцидент требует срочных действий. Если несколько служб генерируют оповещения одновременно,
PagerDuty объединит предупреждения и уведомит вас один раз (вы все равно сможете увидеть каждое из них по отдельности).

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

Вывод

Быть по вызову может быть пугающим опытом для нового члена команды DevOps. Но при правильном подходе, культуре сотрудничества, знании инфраструктуры и правильных инструментах вы можете управлять пробуждением в 2 часа ночи, и вы сможете решать проблемы, не теряя слишком много сна или здравомыслия.

Как вам удается быть на связи? Есть ли у вас какие-либо советы? Вы пробовали PagerDuty? Дайте нам знать в комментариях ниже.