Как Kubernetes ускоряет инновации

Как Kubernetes ускоряет инновации
Как Kubernetes ускоряет инновации

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

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

Вам нужно доказательство того, что компании во всех сферах деятельности принимают это? Выберите любую компанию и выполните поиск в Google: вакансии разработчика программного обеспечения. Когда я сделал это недавно, я обнаружил, что гигант потребительских товаров Proctor & Gamble имеет более 40 вакансий для разработчиков программного обеспечения. У Wal-Mart, продающего эту продукцию, более 90, а у Ford - более 60. Ни одна из этих компаний не базируется в Кремниевой долине и не считается технологическими лидерами, но в наши дни каждая компания занимается разработкой программного обеспечения.

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

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

Большинство идей терпят неудачу

Лучший способ понять, почему максимальное количество итераций программного обеспечения является движущим фактором инноваций, - это изучить рынок венчурного капитала (ВК). В конце концов, венчурные инвесторы ищут прорывные технологии, которые могут изменить отрасли, обычно за счет инноваций. CB Insights проанализировала доходность венчурного капитала и обнаружила следующее:

«Из 1 098 отслеживаемых нами технологических компаний, которые собирали посевные раунды в США в 2008-2010 годах, менее половине, 46%, удалось привлечь второй раунд финансирования. С каждым раундом все меньше компаний продвигаются к новым вливаниям капитала и (будем надеяться) более крупным результатам. Только 14% наших компаний пошли на четвертый раунд финансирования, который обычно соответствует раунду серии C."

Другими словами, большинство идей терпят неудачу.

Как венчурные капиталисты компенсируют такой устрашающий процент выигрышей? Согласно отчету Venture Beat, сделав много гораздо меньших ставок. Если окупается только 14% ваших инвестиций, лучше сделать 200 ставок, чем 10. Другими словами, чем больше итераций вы сможете сделать из системы, тем выше ваши шансы найти единственное нововведение.

Микросервисы - больше итераций

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

Kubernetes blog.png

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

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

Путь к Kubernetes

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

Но когда в конце 1990-х появились виртуальные машины (ВМ), вычислительные ресурсы, над которыми работало программное обеспечение, можно было заменить за 10-15 минут вместо трех месяцев. Контейнеры произошли от виртуальных машин с использованием другой техники разделения ресурсов, чтобы предоставить вычислительную оболочку, поверх которой программное обеспечение можно было установить за секунды, а не за минуты. Это привело к появлению более мелких логических элементов, микросервисов, которые можно было обновлять независимо друг от друга.

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

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