УправлениеИТ в бизнесе

Учимся на хайпе. Разбираем DevOps

Александр Квасов | 23.10.2020

Учимся на хайпе. Разбираем DevOps

Как подружить разработчиков и администраторов. Советы ИТ-директора.

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

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

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

Нельзя прекращать учиться

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

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

Разберемся в DevOps подробнее

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

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

Необходимо понимание принципов программирования и знание современных языков программирования. Это неотъемлемая часть для разработчиков. Для администраторов достаточно общих принципов и знание о наличии и предназначении языков программирования, входящих в стек компании.

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

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

И разработчикам, и администраторам необходимо изучить методы и инструменты непрерывного развертывания и тестирования программного обеспечения, а также принципы управления инфраструктурой через инструменты конфигурирования, поскольку микросервисная архитектура предполагает большое число взаимодействующих компонентов, и ручное управление здесь уже не подходит. Этот принцип называют Infrastructure as Code. Разработчикам необходимо понимание принципов, для администраторов – инструментов. Именно здесь и возникают такие термины, как «контейнеризация», «кластеризация», «оркестровка» и «хореография».

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

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

***

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

Разработка ПО

Темы: Бизнес в цифре

Журнал: Журнал IT-Manager [№ 10/2020], Подписка на журналы

Об авторах

Александр Квасов

Александр Квасов

Президент Нижегородского клуба ИТ-директоров


Поделиться:

ВКонтакт Facebook Google Plus Одноклассники Twitter Livejournal Liveinternet Mail.Ru

Также по теме

Другие материалы рубрики

Мысли вслух

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

Компании сообщают

Мероприятия

Юникон & гейм экспо минск / unicon & game expo minsk
Минск, пр. Победителей, 20/2 (футбольный манеж)
14.05.2021 — 16.05.2021
12:00
SAS Global Forum 2021
ОНЛАЙН
18.05.2021 — 20.05.2021