Cloud Native
Last updated
Last updated
Cloud Native - это подход к созданию и запуску приложений, использующий преимущества облачных систем. Cloud Native разработка включает в себя концепции DevOps, continuous delivery, микросервисов и контейнеров. Компании, которые используют cloud native архитектуру, чаще создают новые идеи, понимают тенденции рынка, и быстрее реагируют на запросы своих клиентов.
Для создания и использования cloud native приложений организациям необходимо переосмысливать подход к системе разработки и внедрять основополагающие принципы cloud native.
DevOps - это концепция взаимодействия между разработчиками программного обеспечения и ИТ-отделами, с целью предоставления высококачественного продукта. DevOps создает культуру и среду, в которой создание, тестирование и выпуск программного обеспечения происходит быстрее, чаще и более последовательно.
Continuous Delivery - это процесс постоянного добавления различных изменений и обновлений в разработку продукта, в том числе с помощью автоматизации. Непрерывная поставка делает процесс выпуска ПО надежным и проверенным, а организации могут поставлять отдельные обновления, фичи или целые продукты в более короткие сроки.
Подробнее об этом процессе можно почитать в статье из блока про "DevOps for SA/Развертывание приложений":
Микросервисы - это архитектурный подход к разработке приложения как совокупности небольших сервисов; каждый сервис реализует бизнес-возможности, запускает свой собственный процесс и общается через свои API или сообщения. Каждый микросервис может быть развернут, модернизирован, масштабирован и перезапущен независимо от других сервисов в том же самом приложении, обычно как часть автоматизированной системы, позволяя частые обновления живых приложений без воздействия на клиентов.
Подробнее об этом процессе можно почитать в статье из блока про "Проектирование/Архитектура":
Контейнеризация - это программная виртуализация на уровне операционной системы, которая обеспечивает запуск приложений и требуемый ему минимум ресурсов в некоем стандартизированном пространстве (Контейнер). Используя виртуализацию на уровне операционной системы, один экземпляр ОС динамически разделяется на один или несколько изолированных контейнеров, каждый из которых имеет уникальную файловую систему с возможностью записи и квоту ресурсов. Низкие накладные расходы на создание и удаление контейнеров в сочетании с высокой плотностью упаковки в одной ВМ делают контейнеры идеальным вычислительным средством для развертывания отдельных микросервисов.
Подробнее об этом процессе можно почитать в статье из блока про "DevOps for SA/Развертывание приложений":
Масштабируемость. При использовании облачных ресурсов масштабируемость выполняется автоматически, что значительно упрощает разработку систем, которые самостоятельно адаптируются под запросы бизнеса.
Надёжность. Cloud-native-приложения будут продолжать стабильно работать при частичном или полном выходе из строя внутренних и внешних компонентов. В случае возникновения неполадок облачные сети автоматически перейдут на исправные звенья.
Ускорение. Приложения можно разделить на множество мелких частей, которые будут разрабатываться независимо друг от друга. Это способствует ускоренному выводу продукта к потребителю, так как процессы тестирования и изменения товара или услуги под пожелания клиента протекают быстрее.
Open-source. Основа многих Cloud Native — одинаковые open-source-технологии, поэтому различные облачные среды можно успешно совмещать друг с другом. В результате компоненты, приложения и ландшафты вполне реально переносить между облаками с минимальными усилиями. Так появляется возможность создавать multicloud-приложения.
Оптимизация. Гибкая архитектура приложений даёт возможность сократить потребление ресурсов, подстраивая их под непосредственные потребности в конкретный период времени.
Источники: