CLOUD-NATIVE ПРИЛОЖЕНИЯ

Научная статья
DOI:
https://doi.org/10.18454/IRJ.2016.47.065
Выпуск: № 5 (47), 2016
Опубликована:
2016/05/20
PDF

Будкина А.А.

ORCID: 0000-0001-5525-9544, Студент, Владимирский Государственный Университет имени Александра Григорьевича и Николая Григорьевича Столетовых (ВлГУ)

CLOUD-NATIVE ПРИЛОЖЕНИЯ

Аннотация

В последнее время облачные технологии выходят на первый план и компании, которые ими занимаются выигрывают на многих позициях. У облака есть несколько перспективных путей развития. В моей статье рассмотрено формирование нового направления облачных технологий cloud-native, рассказана архитектура и главные преимущества данных приложений, а также чем они существенно отличаются от других облачных технологий. А также я расскажу о новом образовании Cloud Foundation, которое занимается развитием этих приложений.

Ключевые слова: cloud-native, облачные технологии, контейнеризация, микросервисы.

Budkina A.A.

Student, Vladimir State University named after Alexander and Nikolay Stoletovs (VlSU)

CLOUD-NATIVE APPLICATIONS

Abstract

Nowadays, cloud technology come to the fore and companies, which are working with it, are winning in many positions. The Cloud technology has many ways of development and application. My article considers development of new direction of cloud technology – cloud-native applications. Also article describes architecture and advantages of this applications, and their main differences from other cloud technologies. Finally, I’ll tell about new foundation - Cloud Foundation, which develops cloud native applications.

Keywords: cloud-native, cloud technology, containerization, microservices.

Стабильные компании, которые долгое время доминировали и были непревзойденными лидерами, сейчас разрушаются теми самыми бизнес-компаниями, которые основаны на их же программном обеспечении. Это такие компании, как Uber, Square, Netflix, Airbnb, Tesla. Они продолжают расти на частном рынке и становятся выше их исторических родителей.

Чем выигрывают эти компании?

  • Скорость инновации
  • Всегда доступный сервис
  • Веб-масштабирование
  • Акцентирование на мобильном использовании

Cloud-native – это приложения третьей модели облака: SAAS. Они разрабатываются таким образом, чтобы использовать максимальную функциональность, сервисы облачных вычислений и виртуализацию инфраструктуры. Идея этого проекта принадлежит компании VMware – лидеру по разработке оригинальных проектов облачных технологий. Cloud-native является соединением двух проектов этой компании: проект Photon Lightware, управляющий развертыванием новых экземпляров виртуальных машин и аутентификацией пользователей и проект Photon Machine - хост, позволяющий запускать экземпляры виртуальных машин с контейнерами приложений. Чтобы лучше понять архитектуру cloud-native необходимо понять ключевые аспекты данного развития. [3]

  • Скорость

Подготовка новой среды приложения cloud-native использует сервис API гораздо быстрее, чем ручной процесс. В облачных технологиях находится множество задач управления: создание разных типов облачных узлов, связанных между собой и распределенных по разным центрам обработки данных; создание безопасных сетевых соединений; масштабирование и перенос приложений из одного ЦОД в другой для обеспечения максимального качества услуг и так далее. Для оптимизации и выполнения таких задач используется интерфейсы API. [3, 5]

  • Безопасность

Первая категория безопасности — это видимость.

Архитектура cloud-native обеспечивает инструментами, необходимыми для того, чтобы найти сбой, именно в тот момент, когда он происходит. Нам необходимо предвидеть все в системе: создать профиль нормального состояния, определить отклонения от этой нормы, обнаружить компоненты системы, которые способствуют дефектам и даже сбою. В базовой основе cloud-native приложений находятся функционально богатые метрики, мониторинг, оповещения, структуры визуализации данных и другие инструменты, которые помогают устранить вышеупомянутые проблемы.[2]

Второе - диагностика изоляции.

Для того, чтобы ограничить риск, связанный с появлением сбоя, нам необходимо ограничить объем компонентов или функций, которые могут быть им затронуты. Здесь большое значение имеют микросервисы. Микросервисы это подход, при котором система или приложение делится на несколько небольших сервисов, каждый из которых работает в собственном процессе и связывается с другими посредством обмена сообщений, как правило, через HTTP. Допустим существует монолитное приложение, состоящее из сервера, базы данных и пользовательского интерфейса. Любое изменение в такой системе понесет сборку и развертывание всего монолита, и пользователям придется масштабировать всю систему целиком, даже если это требуется только для одного модуля приложения. Технология микросервисов позволяет делить систему на множество частей, причем каждая из этих частей независима от другой и может быть написана на любом языке программирования. [2,5]

Третья категория - отказоустойчивость.

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

Четвертая категория - автоматическое восстановление.

Помимо прочего, нам необходимы инструменты, которые идентифицируют сбой, восстанавливают систему от возникшего отказа и обеспечивают должным уровнем сервиса. Некоторые провалы легко идентифицировать: они представляют собой легко обнаруживаемый дефект, который происходит время от времени. И очень часто при дефекте нам достаточно перезапустить систему или выполнить задачу другим способом. Приложения cloud-native не требуют ручного вмешательства в таких ситуациях. Они могут самостоятельно обнаружить дефект и восстановить работу незаметно для пользователя. [2]

  • Масштабирование.

Недавний сдвиг развития в области контейнеризации открыл двери для новой инновации, так как компаниям уже не требуется большой стартовый капитал для развертывания своих приложений. Данный сервис требует только невысокие инвестиции и составляющее API, но дает высокую скорость начального развертывания и максимально быстро реагирует на изменения требований. Технология контейнеров является ключевой для cloud-native.[2]

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

При росте процессов возрастало количество вычислительных машин, таким образом возникла идея контроля их численности. Контейнеры предоставляют отдельное изолированное пространство для выполнения процессов и их размещения в памяти, поэтому им не требуется целый экземпляр вычислительной машины со всей системой. Множество таких контейнеров могут выполнять работы за микросекунды, когда такие же процессы вычислительная машина выполняла бы за минуту и более, включая запуск всей своей системы. Контейнеры содержат только приложения, параметры их работы и необходимую память. Если для виртуальных машин нужен гипервизор, то для контейнеров – хост-ОС или платформа контейнеризации (например, Linux, на которой работает технология контейнеризации Docker).[1]

Сам по себе, контейнер -  это определенная программа автоматизации, которая упаковывает код приложения в виртуальный ящик. Данный код, как программа, может быть запущен и на ноутбуке, и на виртуальной машине, и на сервере.  Этот способ предоставляет автоматизацию инкапсуляции приложений, его развертывания, автоматическое тестирование, масштабирование сторонних служб. Главным образом, контейнеры устраняют тот хаос, который вызывает большое количество компонентов и их зависимостей. Исключается необходимость выделения одной виртуальной машины на каждое приложение, контейнеры как бы делят ее на составляющие и для каждой части выделяют контейнер. Это позволяет оптимально распределить вычислительные ресурсы. Контейнеры после их заполнения можно легко перенести из одной хост-системы виртуализации в другую без потери данных. [7,8]

  • Совместимость с мобильными устройствами.

Мобильные приложения не могут быть спроектированы одновременно для всех различных платформ. Таким образом оно будет вызывать множество проблем: повышенное использование батареи, задержки работы, проблемы с сетью, медленный отклик - все это приведет в конечном счете к удалению приложения.  Поэтому мобильная разработка cloud-native приложений создается через API Gateway, которая передает нагрузку на сторону сервера облачного провайдера. [2]

  • Сервис самообслуживания

Так же, как мы строим микросервисы для каждой ограниченной ситуации, мы создаем команду возможностей, ответственную за обеспечение платформой, на которой мы можем развертывать и оперировать микросервисами. В IAAS мы просили API создать виртуальный сервер, сети и хранение, чтобы различными формами управления конфигурацией и автоматизацией включить наше приложение, а затем поддерживать выполнение сервисов. Код приложения заносится на форму преднастроенной платформы, затем мы строим шаблон приложения, конструкцию окружения приложения, развертываем приложение и начинаем необходимые процессы. Команда не должна думать где и как выполняется код, так как все это берет на себя платформа. То же самое касается и служб поддержки: платформы поддерживают широкий круг хранения данных, сообщения, поисковики, кэши и другие важные сервисы. Они прикрепляются к вашему приложению и составляют его полноценное окружение. [2]

Вид приложений cloud-native очень быстро завоевывает рынок. Уже в середине 2015 года такие компании, как Cisco Cloud Foundry Foundation, eBay, Google, IBM, Intel, Twitter, VMware, Weaveworks и многие другие, объявили о сотрудничестве – создании Cloud Native Computing Foundation. Данная организация будет заниматься развитием и внедрением технологии cloud-native, что потребует значительных ресурсов и команды опытных разработчиков. Создатель этого сотрудничества - Linux Foundation будет обеспечивать всем необходимым для совместной работы этих компаний и организации структуры проекта. [9,6]

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

Литература

  1. [Электронный ресурс] URL: http://www.pcweek.ru/infrastructure/article/detail.php (дата обращения 18.03.2015)
  2. Matt Stine. “Migration to Cloud-Native Application Architectures», O'Reilly,2015
  3. [Электронный ресурс] URL: http://www.vmware.com/ru/company/news/releases/VMware-Cloud-Native-Announcement (дата обращения 04.04.2015)
  4. [Электронный ресурс] URL: http://www3.alcatel-lucent.com/wps/portal/!ut/p/kcxml (дата обращения 20.03.2015)
  5. [Электронный ресурс] URL: https://habrahabr.ru/post/249183/ (дата обращения 01.04.2015)
  6. [Электронный ресурс] URL: http://ko.com.ua/google_s_partnerami_anonsiruet_cloud_native_computing_foundation_111474 (дата обращения 10.04.2015)
  7. [Электронный ресурс] URL:  http://www.computerra.ru/88841/docker-konteyneryi-kotoryie-mogut-sovershit-oblachnuyu-revolyutsiyu/ (дата обращения 30.03.2015)
  8. [Электронный ресурс] URL: http://www.pcweek.ru/infrastructure/article/detail.php?ID=173955 (дата обращения 02.04.2015)
  9. [Электронный ресурс] URL: http://www.thoughtsoncloud.com/2015/07/tech-leaders-unite-to-form-cloud-native-computing-foundation/ (дата обращения 10.04.2015)

References

  1. [Jelektronnyj resurs] URL: http://www.pcweek.ru/infrastructure/article/detail.php (data obrashhenija 18.03.2015)
  2. Matt Stine. “Migration to Cloud-Native Application Architectures», O'Reilly,2015
  3. [Jelektronnyj resurs] URL: http://www.vmware.com/ru/company/news/releases/VMware-Cloud-Native-Announcement (data obrashhenija 04.04.2015)
  4. [Jelektronnyj resurs] URL: http://www3.alcatel-lucent.com/wps/portal/!ut/p/kcxml (data obrashhenija 20.03.2015)
  5. [Jelektronnyj resurs] URL: https://habrahabr.ru/post/249183/ (data obrashhenija 01.04.2015)
  6. [Jelektronnyj resurs] URL: http://ko.com.ua/google_s_partnerami_anonsiruet_cloud_native_computing_foundation_111474 (data obrashhenija 10.04.2015)
  7. [Jelektronnyj resurs] URL:  http://www.computerra.ru/88841/docker-konteyneryi-kotoryie-mogut-sovershit-oblachnuyu-revolyutsiyu/ (data obrashhenija 30.03.2015)
  8. [Jelektronnyj resurs] URL: http://www.pcweek.ru/infrastructure/article/detail.php?ID=173955 (data obrashhenija 02.04.2015)
  9. [Jelektronnyj resurs] URL: http://www.thoughtsoncloud.com/2015/07/tech-leaders-unite-to-form-cloud-native-computing-foundation/ (data obrashhenija 10.04.2015)