Поиск по сайту:

Разработка и эксплуатация: в чем различаются и пересекаются роли разработчиков и операторов?


Разработка и эксплуатация — это два вида ролей, облегчающих поставку программных систем. Большинство организаций, создающих программное обеспечение в больших масштабах, нанимают людей, занимающихся обеими этими дисциплинами. Однако Dev и Ops не полностью изолированы друг от друга. Команды часто пересекаются и достигают более высокой пропускной способности.

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

Роль разработчика

Развитие — более старая и более заметная роль. Люди, работающие в этой области, пишут код, который создает работающее программное обеспечение. Обычно у вас будет такая должность, как Backend Developer, Software Engineer или Engineering Lead.

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

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

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

Роль оператора

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

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

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

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

Перекрытие DevOps

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

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

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

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

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

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

Общая цель

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

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

DevOps устанавливает общую ответственность за достижение целей уровня обслуживания. Он признает, что программный продукт лучше, чем любая из отдельных команд. Легче достичь таких целей, как время безотказной работы 99,9% и задержка менее 500 мс, когда разработчики и операторы работают слаженно, осознавая, что происходит по обе стороны баррикад.

Разработка или эксплуатация: что выбрать?

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

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

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

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

Заключение

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

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

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