быстрый доступ
21.07.2021, 18:36
Количество просмотров 35

Kubernetes и контейнеры – двигатель приложений завтрашнего дня

Kubernetes и контейнеры – двигатель приложений завтрашнего дня
Контейнеры упрощают внедрение облачных приложений, поскольку они содержат всю информацию, необходимую для их запуска в управляемых пакетах. Как отмечает Роман Волков, глава представительства Pure Storage в России/СНГ и стран Балтии, «в сентябре 2020 года мы объявили о приобретении Portworx – ведущей платформы в отрасли сервисов данных Kubernetes. Это обошлось нам примерно в 370 млн долларов США. Поэтому можно с уверенностью сказать, что мы осознаем важность этой технологии. Давайте посмотрим, как мы пришли к этому».

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

Важность центричности данных

Данные лежат в основе будущего бизнеса. Ведущие диджитал-организации используют новый стек облачных технологий cloud native для преобразования данных в ценность и понимание. Cloud-native приложения специально разработаны для работы в облачной среде – будь то общедоступное либо приватное облако, – начиная с первого дня использования. Их можно развернуть и исправить быстрее, их легко перенести в другую среду. Cloud-native приложения обычно состоят из микросервисов (подробнее о них позже) и упакованы в контейнеры. Cтек облачных технологий «cloud native» включает новый набор приложений, которые анализируют потоковые данные в режиме реального времени, индексируют огромные объемы данных для поиска и обучают алгоритмы машинного обучения на все более внушительных наборах данных. Несомненно, что революция cloud-native технологий основана на комбинации контейнеров и Kubernetes.

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

Внедрение контейнеров говорит само за себя

Темпы внедрения этого нового «облачного» стека были ошеломляющими. По данным 451 research, 95% новых приложений разрабатываются в контейнерах. Предприятия развивают свои облачные стратегии в направлении мультиоблачности, и контейнеры также играют в этом ключевую роль. По данным Gartner, 81% предприятий уже являются мультиоблачными и работают с более чем двумя облачными провайдерами. Gartner также прогнозирует, что к 2025 году 85% всех мировых предприятий будут использовать контейнеры в производстве, что значительно больше, чем 35% в 2019 году.

Это все еще молодой рынок с огромным потенциалом роста, поэтому трудно предсказать, как он будет развиваться. Но IDC прогнозирует, что коммерческий рынок только программного обеспечения для контейнерной инфраструктуры достигнет 1,5 млрд долл. США к 2022 году, и предприятия, естественно, обращают на это внимание.

Микросервисы и контейнеры – безупречный match

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

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

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

Упаковка приложений с их зависимостями

Традиционно пакеты программного обеспечения включают весь код, необходимый для запуска приложения на определенной операционной системе, например, Windows или Linux. Однако для работы приложения нужен не только код приложения, но и другие приложения. Например, приложение для поиска цен на акции может использовать библиотеку для преобразования названий компаний в тикеры (символы, присвоенные ценным бумагам) и наоборот. Эта функциональность является общей и не добавляет ценности, но она все равно важна, чтобы пользователь мог набрать "Apple" и получить акции "AAPL". Библиотека – это пример зависимости. Без ведома ИТ-специалистов любое приложение может иметь сотни подобных зависимостей.

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

Не все контейнерные сервисы созданы одинаковыми

Что касается проблем, то первое поколение приложений cloud-native было спроектировано так, чтобы быть без статических данных. Использовались контейнеры, которые выполняли работу приложения, но не нуждались в хранении постоянных данных в связанных томах. По мере развития использования контейнеров разработчики все чаще создают приложения, сохраняющие состояние внутри контейнеров – приложения, которым необходимо хранить данные в объеме, который должен быть постоянным и сохраняемым. Именно здесь мир хранения данных становится сложным. Гибкость и открытость контейнеров оборачивается препятствиями и узкими местами на уровне хранения, а простые возможности хранения, которые мы годами считали само собой разумеющимися в традиционном стеке приложений (высокая доступность, аварийное восстановление, резервное копирование, шифрование), становятся проблемами в мире контейнеров. Хуже того, часто происходит так, что каждое приложение разрабатывает свою собственную стратегию хранения, что делает невозможным внедрение стандартов и обеспечение соответствия данных в организации.

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

Рубрика:
{}Технологии