Мы спросили инженеров «Фланта» и экспертов из индустрии, как, по их мнению, будут развиваться Kubernetes, DevOps, Ops и Cloud Native-экосистема в ближайшее десятилетие. Наша задача была спрогнозировать будущее на основе тенденций в настоящем, а не просто «заглянуть в хрустальный шар» и пофантазировать. В результате родилась эта статья. Присоединяйтесь к нам в комментариях — давайте вместе подумаем, как будут выглядеть важные в нашей работе инструменты через 5–10 лет.
Мы задали ребятам из «Фланта», «Экспресс-42», AXENIX, Yandex Cloud и Ænix четыре блока вопросов.
Будет ли еще популярен Kubernetes через 5–10 лет? Какие технологии могут прийти ему на смену? Какие вызовы ему придется решать?
Будет ли ещё DevOps? Как изменится его понимание? Как изменится культурный аспект, стоящий за DevOps-практиками? Как могут измениться сами практики?
Какие интересные, необычные Ops'ы могут появиться? Какие задачи они будут решать?
Что станет с Cloud Native-экосистемой и программами внутри нее? Какие проблемы она должна будет научиться решать? Какие новые программы могут появиться в ней? Что станет с облаками? Как они изменятся? Придет ли какая-то другая технология на смену облакам, и если да, то какой примерно она будет?
Олег Сапрыкин
Технический директор по инфраструктуре, тимлид DevOps-команды, «Флант». Telegram для связи.
Kubernetes в текущем виде избыточен, поскольку им пытаются решать все проблемы современного ИТ. Поэтому кажется логичным, что появится ещё один уровень абстракции, благодаря которому обычным пользователям станет проще применять технологию.
DevOps изменяется уже сейчас, постепенно трансформируясь в консалтинг, поскольку разработчики уже научились на базовом уровне работать с технологиями. Это как раньше никто не умел работать с компьютерами и был выделенный оператор ЭВМ, а потом все начали сидеть за ноутбуками. Делать что-то руками в век ИИ будет немодно и дорого, поэтому, думаю, останется слой Ops (что-то дешёвое и сердитое) и явно выделится слой L3 поддержки/консалтинга для решения глобальных, зачастую архитектурных вопросов.
Ops, скорее всего, будет чем-то вроде интерфейса и валидатора для работы с ИИ. Для этого всё ещё нужно понимать ту область знаний, по которой ведутся запросы, чтобы отсеивать откровенный мусор. Но уже можно не держать уйму деталей в голове, осваивая вместо этого смежные профессии и должности.
Облаков не существует, это всё обман, чтобы «набрать классы», — когда-нибудь бизнес это наконец поймёт. По-настоящему катастрофоустойчивая инфраструктура подразумевает использование честно геораспределённого железа с хорошей сетевой связностью. Облака должны сделать огромный шаг, чтобы такие предложения появились. В противном случае гетерогенные программные решения сделают это за них и похоронят саму суть облака.
Виталий Хабаров
TechLead, «Экспресс-42». Telegram для связи.
Kubernetes решил проблему индустрии — создал понятный и удобный способ упаковки, запуска и оркестрации приложений. Достойных альтернативных решений пока нет. Возможно, они через 5–10 лет появятся и будут решать ту же задачу, что и Kubernetes, но быстрее, эффективнее и проще.
Сейчас Kubernetes становится более сложным, более настраиваемым. Под каждую отдельную задачу есть свой набор плагинов — через них и будет развиваться Kubernetes. И в дальнейшем конкуренция будет между разными дистрибутивами и платформами на его основе.
Больше внимания будут уделять безопасности кластеров и приложений, которые работают внутри. Разовьются инструменты управления инфраструктурой и сторонними сервисами через Kubernetes, такие как Crossplane.
Вероятно, сюда придут инструменты ML и AI, которые помогут лучше прогнозировать нагрузку, быстрее обнаруживать аномалии и помогать в эксплуатации и использовании кластеров.
DevOps в индустрии устоялся как набор практик и инструментов, связанных с поставкой продуктов, хоть я и не разделяю такое мнение. И в таком значении DevOps никуда не денется: будут нужны специалисты, которые поддерживают платформы, инструменты для разработчиков и процессы поставки.
DevOps в более широком смысле — как методология, направленная на сокращение Time to Market, повышение ценности и качества продукта, убирание лишних барьеров между командами, — скорее всего, трансформируется во что-то новое, например BizDevOps (от произношения слова business). Команды будут более нацеленными на продуктовую ценность и более автономными, и им потребуются дополнительные инструменты, предоставляемые BizDevOps-инженерами.
Вполне возможно, им придётся поддерживать инфраструктуру из множества ML-моделей. Самое смелое предположение — цепочка моделей и агентов, которая из короткого описания пожеланий PO сформирует бизнес-требования, код и тесты. В ответственности команды разработки останется fine-tuning входных данных и артефактов, а BizDevOps-инженеры будут отвечать за работоспособность, настройку и дообучение моделей.
Ops, помимо описанных выше BizDevOps, сильно прокачаются в ML — появятся MLOps. Инфраструктуры, построенные на машинном обучении, будут усложняться. Также будут адаптироваться практики управления ML-инфраструктурой.
То, что мне интереснее всего и чего я больше всего жду, — это повсеместное появление инженеров, которые будут эксплуатировать квантовые компьютеры.
В облаках для приложений вместо виртуальных машин всё чаще будут использовать Kubernetes. На виртуалках останутся инфраструктурные сервисы, но часть из них будет заменена на Managed-решения. Больше будут распространяться AI- и ML-решения по работе с текстом, видео, аудио и графикой, по аналитике данных. Облака будут предоставлять более полные решения проблем своих клиентов.
С другой стороны, подступают опасения за сохранность своих данных и регуляции. Облакам нужно будет удовлетворять этим требованиям и/или учиться работать в гибридном режиме со внутренними облаками клиентов.
Прямых альтернатив облакам я не вижу, но возможно появление надстроек над ними — платформ, которые упрощают работу с облаками: условный Heroku поверх AWS, если сами AWS не сделают такой интерфейс.
Антон Черноусов
Developer Advocate, Yandex Cloud. Telegram-канал.
Kubernetes никуда не денется, поскольку не исчезнет и задача, которую он пытается решать. Присмотримся к инструментам, способным заменить его, и мы сразу поймём: через 5 лет многие крупные компании продолжат пользоваться Kubernetes. Другое дело, появится ли у него достойный конкурент, и вот на горизонте в 10 лет в это уже хочется верить.
DevOps как понятие может раствориться среди новых, более хайповых слов, но само направление деятельности никуда не денется, хотя отдельные и даже многие его практики и подходы могут и должны будут измениться.
Ops, если верить тенденциям, скоро будут работать над эксплуатацией «умных домов» — кажется, индустрия медленно, но уверенно идет к этому. Вопросы безопасности и приватности вынудят бизнес создать целое направление на стыке обслуживания полуавтономных систем, которые имеют доступ к облачным ресурсам или расширяют свои возможности за счёт облачных сервисов. Это будет новое и массовое явление.
Владимир Гурьянов
Solution Architect, команда Deckhouse Observability, «Флант». Telegram для связи.
Kubernetes однозначно будет популярен. Он уже доказал свою востребованность и полезность и сейчас фактически перешёл во «взрослую лигу». Думаю, его ждёт судьба, аналогичная виртуализации или Docker. Он будет проникать во всё большее число компаний и из разряда «О, у вас Кубы! Круто!» перейдёт в разряд «У вас не Кубы. Хм, а почему? Что пошло не так?»
Пока я не вижу технологий, которые пришли бы на замену Kubernetes, — кажется, он сам будет эволюционировать.
Среди вызовов, которые придётся решать Kubernetes, я бы выделил сложность. Сейчас он очень сложен с точки зрения эксплуатации и разработки.
DevOps, если мы верно понимаем значение этого слова, продолжит существовать. В моём понимании это методология, которая требует от инженеров T-shaped-компетенций: они должны не только знать на «5» свою предметную область (Dev, Ops, QA), но и понимать смежные области. Я очень надеюсь, что в итоге мы придём к этому и наконец перестанем называть инженеров эксплуатации, которые разбираются в разработке, DevOps-инженерами.
Компании поймут, что существуют не DevOps-инженеры, а одноименная методология. Например, есть SRE-инженеры, и это хороший пример воплощения DevOps-методологии.
Ops, думаю, будет связан с ML/AI — сейчас всё более явно прослеживается тренд на это. Искусственный интеллект проникнет в разные сферы жизни, и надо будет его обслуживать, уметь им правильно пользоваться и внедрять в процессы компании. Это, вероятно, породит ряд новых позиций. Не факт, что это будут именно Ops, но появятся инженеры, которые будут составлять промпты, валидировать код, разрабатываемый AI, и давать нейросети обратную связь. Это необходимо будет делать, потому что ответы AI могут быть не совсем корректными или оптимальными.
Cloud Native-экосистема, кажется, будет развиваться, будут возникать новые решения. Возможно, даже появится магазин вроде App Store, где можно будет найти решение под свои нужды, а владельцы магазина возьмут на себя ответственность за проверку качества решения.
Что касается проблем, уже сейчас можно точно сказать, что, во-первых, есть проблемы с геораспределёнными системами: есть определённые решения и подходы, но общей системы нет, хотя потребность в ней есть. Во-вторых, в связи с развитием AI потребуется обработка огромного объёма данных — вот ещё один вызов, который придётся решать в ближайшие годы.
Если говорить про потенциальные новые программы, думаю, большинство нововведений опять-таки будет как-то связано с AI. Сейчас позволить себе собственный AI могут только избранные компании — это дорого, долго и сложно. Кажется, в ближайшие годы мы увидим много ПО нового класса, которое позволит быстро разворачивать свой AI, и, что самое главное, его обучение и эксплуатация не будут стоить космических денег.
Теперь про облака. Думается, на смену им придёт Kubernetes. Но это не значит, что облака исчезнут — будет то же самое, что было с арендой физических серверов, когда появились облака: спрос останется, хоть и сократится.
При этом сейчас для запуска Kubernetes нужно много прослоек: виртуальная машина / железный сервер, операционная система, система контейнеризации. Предполагаю, что в будущем Kubernetes существенно упростится и будет выглядеть как специализированная ОС, примерно как VMware сделала с виртуальными машинами.
Я ожидаю, что идея Managed Kubernetes будет развиваться дальше и можно будет в любом DC получить набор ресурсов в кластере Kubernetes и запускать в них контейнеры. По сути, получатся коммунальные кластеры.
Павел Селиванов
Архитектор, Yandex Cloud. Почта: poselivanov@yandex-team.ru.
Kubernetes через 5–10 лет, думаю, всё ещё будет популярен, но мы уже не будем посвящать ему конференции и много о нём говорить — к тому времени всё, что можно сказать, уже будет сказано.
Возможно, конечные инженеры перестанут погружаться в Kubernetes. Он будет работать под капотом инфраструктуры, а над ним уже будут более простые или узкоспециализированные интерфейсы.
Kubernetes, на мой взгляд, — это удобная система прежде всего для построения платформы. Поэтому велика вероятность, что глубокая компетенция по нему будет только у облачных провайдеров или инженеров частных облаков.
DevOps, вероятно, превратится в какой-нибудь ML-DevOps-Sec, если учитывать текущие концепции облаков и проникновение AI во все сферы. Это будет система, которая использует искусственный интеллект для работы с инфраструктурой. Соответственно, DevOps-специалисты должны будут разбираться в этой системе и создавать свои решения, обучая ML-модели на каких-то данных.
Ops’ы в условиях AI-систем должны будут управлять этими системами. Они, скорее всего, уже не будут вручную вмешиваться в работу инфраструктуры, а будут контролировать, как это делает AI.
С другой стороны, вполне возможно, что Ops’ы вообще станут не нужны, ведь в таких условиях как будто не останется ничего, с чем не смогут справиться сами разработчики. Разве что понадобится иметь в команде одного облачного DevOps’а, который 80% времени будет писать код, как и другие разработчики, а в оставшееся время будет натравливать AI на деплои своих приложений.
Облака, если говорить про западные, вероятно, будут завязаны на AI. Можно будет запустить сервис, который сам напишет деплои для приложения, подготовит базы данных, развернёт всё это в облаке, настроит алертинг, мониторинг, логирование и т. д. Полагаю, российские облака пойдут тем же путём, но у нас в этом плане пока меньше ресурсов и опыта.
Появится много различных сервисов. Хороший пример в этом плане — Amazon: у них так много облачных сервисов, что даже интересно, что они изобретут дальше. Думаю, в российских облаках тоже будут появляться сервисы на все случаи жизни.
То, чего я сам очень жду, — развитие региональности наших облаков. Кажется, сейчас буквально у пары облаков, помимо зон доступности, есть ещё и регионы. За 5–10 лет наши облака должны обрасти регионами, и тогда в рамках одного облака можно будет создавать мультирегиональные инфраструктуры, чтобы не плодить облака и делать всё в рамках одного интерфейса.
Тимур Батыршин
Руководитель направления DevOps, AXENIX. Telegram-канал.
Kubernetes, думаю, никуда не денется: это платформа для выполнения операторов, и он продолжит развиваться в эту же сторону. Однако появится много его сборок, которые будут различаться функциональностью и сложностью.
DevOps в его изначальном понимании не существует уже сейчас: он распался на инфраструктурную разработку, архитектурные практики и управление SDLC. DevOps как HR-термин в будущем разделится на Cloud, Kubernetes, SRE и, может быть, что-то ещё. Будет расти специализация: скажем, если ты всю жизнь писал сложные пайплайны, это не означает, что ты сможешь хорошо поддерживать продакшн-нагрузки (и наоборот), — уже сейчас разделение идёт, например, на DevOps+SRE.
Ops, даже если это будет MLOps или DataOps, — это инфраструктурный инженер, пусть и со специализацией в определённых технологиях. Мне кажется, выделять отдельные разновидности по специализации бессмысленно, как и выделять, например, какого-нибудь ObservabilityOps.
У облаков появится много уникальных специализированных сервисов, через которые они будут конкурировать друг с другом. Примеры: AWS Athena, AWS Sagemaker, Google BigQuery, Google Firebase, Yandex DataLens, Yandex DB.
Поскольку Kubernetes изначально был создан, чтобы отнять долю рынка у облачных провайдеров, думаю, возникнет много новых cloud-agnostic-надстроек над Kubernetes.
Максим Набоких
Platform Lead, «Флант». Профили на GitHub и LinkedIn.
Kubernetes через 5–10 лет, думаю, станет чем-то настолько обыденным, что будет даже неинтересно. Его разработка станет ещё медленнее, TOC’ов и SIG’ов станет ещё больше.
Мотивация работать с Kubernetes напрямую останется только у техногигантов вроде Google или Amazon, чтобы выжать очередные 0,5% экономии CPU и сэкономить на этом миллионы долларов. Ну и, может быть, его будут использовать студенты для дипломных работ и гики для развлечения. Все остальные будут избегать прямой работы с Kubernetes и получать его в составе другого продукта или сервиса. Копаться «под капотом» не будет смысла, если и без этого можно будет быстро и удобно поднять стабильно работающий кластер.
Kubernetes сейчас идёт широким фронтом по двум направлениям:
А что, если добавить в Kubernetes API объекты для создания других кластеров (Cluster API), управления ресурсами облаков (Crossplane), ещё для чего-то?
А что, если вместо контейнеров оркестрировать виртуальными машинами (KubeVirt)? Или, может быть, запускать там сразу WebAssembly-программы?
Благодаря такой гибкости у инженеров есть возможность экспериментировать, и это здорово. Новые невероятные идеи появляются каждый год, но не все из них этот год переживают. Кто знает, может быть, именно ваш проект станет чем-то новым, что решит проблему будущего?
Про DevOps скажу так. Благодаря Kubernetes мы всё больше абстрагируем серверы, железо и сеть за удобным декларативным API. Если раньше Dev и Ops были взаимоисключающим набором навыков — одни писали код, а другие настраивали Linux, — то в будущем всё будет работать по одним и тем же принципам. Только для Ops мы будем использовать API Kubernetes, а для прикладных приложений — популярные веб-фреймворки.
Георг Гаал
Co-founder, Ænix. Telegram для связи.
Kubernetes, по сути, стал новым Linux, этакой операционной системой для распределённых приложений, поэтому он останется популярен.
Вопрос о том, какие технологии могут прийти ему на смену, кажется странным: никто ведь не говорит, что, например, Linux ушёл. Речь скорее о том, что набор технологий с каждым годом увеличивается. Увеличивается сложность задач, с которыми приходится сталкиваться инженерам. Появляются какие-то новые ниши. Никто 10 лет назад и не думал про машинное обучение, а сегодня оно развивается в полный рост. Точно так же поверх Kubernetes появится много новых технологий и решений, но сам он никуда не уйдёт.
Kubernetes научил разработчиков и инженеров эксплуатации говорить на одном языке, но если для инженеров этот язык родной, то для разработчиков он всё ещё инородный: они хотят говорить проще, более ясными терминами. Kubernetes даёт беспрецедентную свободу и ненужный выбор. Уже к нынешней версии Kubernetes стало ясно, что многие его базовые абстракции лишены определённого набора возможностей или ограничены по функционалу. Например, со StatefulSet крайне неудобно работать, а сценариев развёртывания Deployment всего два — recreate и rolling. А если нужно что-то сложнее? И тут помогает расширяемость Kubernetes: никто не мешает придумывать новые типы объектов и программировать их поведение. Поэтому вокруг Kubernetes и строят dev-платформы: они скрывают его избыточную сложность и отсутствие явных гайдлайнов, расширяют базовые примитивы и тем самым позволяют разработчикам фокусироваться на задачах бизнеса. Такие решения постепенно появляются, но излишняя сложность остаётся главным вызовом для Kubernetes, так что ему придётся эволюционировать и дальше.
DevOps будет существовать, пока существует разработка. Он будет расширяться на другие области знания. Уже сейчас DevOps мутировал в DevSecOps. Будут интегрировать в работу практики управления стоимостью (FinOps), машинное обучение (MLOps), искусственный интеллект (AIOps). Главное — не возвращаться обратно в эпоху ClickOps и ExcelOps :)
В DevOps-практики будет вовлекаться больше людей. С увеличением объёмов автоматизации возрастут и требования к её качеству: если руками что-то сделаешь не так, скорее всего, другой человек сможет сделать эту работу заново, а вот когда используется автоматизация, последствия недоработок могут быть катастрофическими. Возможно, будет сдвиг в сторону NoOps — меньше написанного руками кода и больше сборки приложений и бизнес-процессов из готовых блоков. Уже давно существуют как бесплатные (n8n, Camunda), так и коммерческие (Workato) платформы, которые предоставляют подобный функционал, — и это всё ещё растущий рынок!
Про Ops фантазировать сложно, но думаю, как завещали фантасты прошлого века, должны появиться автопилотируемые транспортные средства, будем осваивать космос. Ещё я очень надеюсь, что мы сможем улучшить медицинские технологии — сделать диагностику дешёвой, точной и массовой. Всё это потребует новых видов аппаратуры, новых подходов к разработке и поддержке этих продуктов.
Я чётко вижу, что сфера DevOps становится фрагментированной. Например, если идёшь к врачу, то не ожидаешь, что он будет и урологом, и нейрохирургом, и ветеринаром. Так же и в ИТ — каждый день отпочковываются новые специализации.
Cloud Native-экосистема продолжит существовать, так как обеспечивает современный подход к разработке и эксплуатации программных продуктов. Я думаю, что экосистема будет расширяться, в ней будут появляться новые продукты, а уже существующие будут становиться всё более зрелыми.
Облака, как и Kubernetes, сейчас стали слишком сложными: в веб-панели любого облака глаза разбегаются от обилия возможностей и сервисов. Даже если сможешь определить, какой сервис тебе нужен, то внутри каждого сервиса очень много настроек, которые порой конфликтуют друг с другом. С одной стороны, это даёт широкие возможности для решения задач, а с другой — создаёт очень высокую когнитивную нагрузку и делает более вероятными ошибки и неоптимальные конфигурации. Поэтому есть огромная потребность в решениях, которые могли бы упростить работу с облаком. Это могут быть как внутренние платформы, которые разрабатывают во многих крупных организациях, так и платформы вроде Heroku, которые очень любят многие разработчики.
Что в итоге
Из ответов наших респондентов можно сделать несколько выводов.
На Kubernetes, DevOps, Ops и Cloud Native-экосистему ожидаемо повлияет распространение искусственного интеллекта и машинного обучения.
AI- и ML-решения в Kubernetes помогут эксплуатировать кластеры, прогнозировать нагрузку и обнаруживать аномалии.
DevOps- и Ops-специалисты должны будут разбираться в AI- и ML-системах: составлять промпты, валидировать код, который создаёт AI, обучать ML-модели для решения задач и в целом грамотно настраивать автоматизацию.
AI- и ML-инструменты в облаках будут автоматизировать процессы, покрывать более широкий спектр задач клиентов и станут частью новых сервисов. Появится новый класс ПО, который позволит быстро и недорого разворачивать собственный AI.
Бизнес перестанет использовать «чистый» Kubernetes и перейдёт на платформы на его основе, которые расширяют базовый функционал Kubernetes и нивелируют его сложность. Необходимость детально разбираться в Kubernetes отпадёт.
В DevOps, с одной стороны, есть тенденция к расширению на другие области знания (DevSecOps), а с другой — к разделению на специализации и увеличению их количества.
Новые задачи (беспилотные автомобили, освоение космоса, умные дома, AI-медицина) породят множество Ops-специализаций.
Облачная инфраструктура должна будет стать более геораспределённой и простой в управлении. В облаках появятся многочисленные сервисы, за счёт которых они будут конкурировать.
А что думаете вы? Поделитесь в комментариях своим мнением о том, как в ближайшее десятилетие будут развиваться Kubernetes, DevOps, Ops и Cloud Native-экосистема.
P. S.
Читайте также в нашем блоге:
vaniacer
В своей поделке kube-dialog переименовал команды cordon и uncordon в condom и uncondome соответственно, получилось забавно)