Инфраструктура для CNA: главное — гибкость!

Какое свойство современных приложений является критически важным? Конечно, его гибкость. Методология RUP (Rational Unified Process), предложенная еще в 2003 году, значительно ускорила процесс разработки благодаря своему итеративному подходу. Современные agile-практики, которые, между прочим, использовали 90% немецких компаний (по данным компании VersionOne), позволили сократить время итераций за счет спринтов и быстрого фидбека. Тем не менее гибкая разработка требует гибких ИТ-операций, которые невозможно представить без динамических инфраструктур. Именно динамическая инфраструктура дает возможность быстро предоставлять ПО пользователю и оперативно выводить инновации на рынок. В первую очередь, речь идет о приложениях CNA (Сloud Native Apps) — программах, создаваемых и используемых в облаках.

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

Микросервисная архитектура CNA-приложений

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

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

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

Service mesh

Для отслеживания поведения CNA-приложений с микросервисной архитектурой необходим высокий уровень автоматизации и эффективное управление взаимодействием микросервисов. С этим хорошо справляется service mesh (в дословном переводе — «сервисная сетка»), выделенный слой инфраструктуры, который отвечает за бесперебойную связь между максимально возможным количеством связанных сервисов. Он обеспечивает анализ, безопасность, мониторинг и обработку ошибок без необходимости использования шлюзов API или ESB. Иными словами, service mesh берет на себя управление трафиком и контроль доступа к микросервисам. Он поддерживает сетевые функции, такие как отказоустойчивость и обнаружение сервисов, и не зависит от языка, на котором написано приложение.

Без контейнеров никуда

Микросервисы меняются и приумножаются очень быстро, и контейнерная технология оказалась эффективным средством для их упаковки и развертывания. Всего несколько лет назад разработчики массово использовали виртуальные машины (ВМ) для перемещения приложения из одной среды в другую. Однако с появлением Docker широкое распространение получили контейнеры, так как им требуется меньшее количество ресурсов. Формат Docker теперь стал де-факто стандартом контейнеров Linux на рынке. В настоящее время с его помощью можно покрыть практически любые потребности бизнеса — будь то модернизация приложений или внедрение инноваций. В ключе DevOps портативность контейнеров играет особую роль, благодаря чему ускоряется разработка CNA и, как следствие, повышается конкурентноспособность компании-разработчика. Хотя контейниризация стала частью рабочей повседневности, для более продуктивной поддержки микросервисных архитектур требуется введение дополнительного уровня — для резервного копирования, оркестровки и управления. А для этого как раз используется Kubernetes — система с открытым исходным кодом, которая автоматизирует развертывание, масштабирование и управление контейнизированными приложениями, а также поддерживает ряд инструментов для контейнеризации, включая Docker. Kubernetes предоставляет своего рода универсальный инфраструктурный API, который позволяет ИТ-специалистам относительно легко устанавливать и использовать контейнеры в корпоративной среде — опять же в интересах эффективной и быстрой разработки облачных приложений.

Заключение

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

По материалам статьи App-Entwicklung in der Cloud

Помогите нам стать лучше!

Пожалуйста, оцените этот материал, нажав на звёздочки ниже.

Средний рейтинг 5 / 5. Количество оценок: 2

Оценок пока нет. Поставьте оценку первым.

Exit mobile version