Микрослужбы

 

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

Сравнение монолитной архитектуры и архитектуры микрослужб

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

 

Преимущества микрослужб

  • Быстрое внедрение инноваций. Традиционные компании и стартапы могут выводить на рынок инновационные решения быстрее, чем при использовании монолитной архитектуры, когда необходимо создавать новые возможности для приложений. Заказчикам, использующим мобильные и веб-приложения, требуются новые функции. Инновационные технологии получают финансирование благодаря их популярности и внедрению в компаниях. Крупные ИТ-компании и стартапы могут получить преимущества от использования передовых технологий программирования и разработки благодаря интеграции новых микрослужб.
  • Более высокие уровни автоматизации ЦОД. Разработчики предпочитают использовать в работе определенные платформы или стандарты. В частности, им необходима поддержка определенных языков программирования и баз данных в мобильных и веб-приложениях с микрослужбами. Микрослужбы подключаются посредством процессов на базе сценариев, например API-интерфейсов, которые могут повысить уровень автоматизации ЦОД.

 

Принцип работы микрослужб

Чаще всего микрослужбы расширяют возможности, доступные на веб-сервере, выводя их за рамки функций, предоставляемых используемой по умолчанию операционной системой, сетью или платформой управления ЦОД. Некоторые микрослужбы представляют собой расширения стека веб-сервера, например платформы языков программирования и баз данных. Для разработки приложений с использованием PHP и MySQL в среде веб-сервера должна быть настроена поддержка платформы LAMP. Решения на базе микрослужб главным образом конкурируют с ориентированными на услуги архитектурами, поставляемыми Microsoft, Oracle, IBM и другими крупными ИТ-компаниями в виде дистрибутивов с закрытым исходным кодом. В настоящее время крупным компаниям необходимо одновременно поддерживать различные приложения на базе PHP, Python, Ruby-on-Rails, Java, C++, ASP.net и т. д. в производственной среде. В других ситуациях в ЦОД может использоваться несколько платформ баз данных посредством ВМ на базе многоарендного оборудования. На веб-сервере необходимо настроить поддержку пользовательских расширений для потоковой передачи мультимедийного содержимого и интеграции API-интерфейсов или добавить специализированные служебные программы для анализа. Когда все эти службы сторонних поставщиков и с открытым исходным кодом объединяются, их функциональность сопоставима с возможностями тысяч микрослужб на стандартном веб-сервере в производственной среде, которые затем умножаются на миллионы ВМ в гипермасштабе среды служб публичного облака.

 

История микрослужб

Использование термина «микрослужбы» началось преимущественно после эпохи Web 2.0, когда корпоративным ИТ-отделам потребовался новый подход к проектированию среды разработки ПО, который соответствовал бы имеющейся экосистеме и лучшим методикам. Использование микрослужб для разработки мобильных и веб-приложений усложнило поддержку корпоративных процессов для администраторов ЦОД. Вместо того чтобы просто получить все необходимое ПО и решения для ЦОД, заключив договор с Oracle, IBM или Microsoft, компаниям необходимо исследовать миллионы проектов с открытым исходным кодом, предоставляющих решения корпоративного класса для бизнес-подразделений. Для многих веб-стандартов существуют конкурирующие версии, предоставляемые разными компаниями. Многие языки программирования и базы данных предлагают одинаковые функции. У каждой группы разработчиков есть свои предпочтения в отношении средств и методов программирования. Необходимость справляться со всеми этими сложностями в эпоху облачных технологий силами централизованного корпоративного ИТ-отдела привела к тому, что многим организациям со сложной структурой по всему миру потребовалось обеспечить поддержку микрослужб для профессиональной разработки ПО.

 

Общие сведения об архитектуре микрослужб

Чтобы понять архитектуру микрослужб, можно представить уровни ПО в стеке веб-сервера. Операционной системой может быть Windows, Linux или BSD для веб-сервера. Существует ряд средств для управления ЦОД и балансировки нагрузки в сети. К ним относятся Apache, IIS, NGINX, Caddy, Tomcat и другие решения для веб-серверов. На следующем уровне размещаются средства поддержки установленных языков программирования, например PHP, ASP.net, Python, Ruby, Perl, Java и Go. За ним следует уровень платформ баз данных, таких как MySQL, MSSQL, PostgreSQL и MongoDB. Далее идет уровень служебных программ кэширования, например Varnish, Redis и сетей предоставления содержимого, а также служебных программ оптимизации. Другие уровни поддержки включают периферийные серверы, платформы без серверов, а также средства интеграции ИИ и машинного обучения. В экосистеме публичного облака размещены тысячи одновременно работающих микрослужб, которыми нужно управлять на уровне Service Mesh, чтобы обеспечить поддержку совместимости, маршрутизации и обмена данными.

 

Микрослужбы и ориентированная на услуги архитектура

Ориентированная на услуги архитектура (SOA) обычно предоставляется одним поставщиком или содержит пакет аппаратных и программных решений, который можно развернуть для четко определенной отраслевой потребности. SOA поддерживает уровни ЦОД, веб-сервера и стека посредством разных дистрибутивов или моделей продуктов. SOA предоставляется поставщиком в виде специализированных решений и продуктов с открытым исходным кодом. Способы управления сетевым оборудованием и оптоволоконными подключениями в облачных ЦОД и в частных корпоративных ЦОД различаются. Микрослужбы необходимы для внедрения инноваций в текущую модель разработки ПО. Даже самым крупным корпорациям следует внедрить микрослужбы для поддержки адаптивных групп программистов, разрабатывающих новые мобильные и веб-приложения для рынка, на котором поддержка по продуктам может охватывать тысячи брендов или сфер. Микрослужбы часто необходимы для модернизации устаревшего корпоративного ПО и создания контейнеров на его основе. 

Продукты, решения и ресурсы VMware, связанные с микрослужбами

Программно-определяемое хранилище

Программно-определяемое хранилище VMware — это упрощенная и в то же время интеллектуальная архитектура хранения для ЦОД, соответствующая потребностям бизнеса и приложений. Узнайте больше.

Определение облачных услуг

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

Виртуализация

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

Различия между ориентацией на проекты и ориентацией на услуги

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

Пакет облачных продуктов корпоративного класса

Пакет облачных продуктов корпоративного класса — это интегрированный набор продуктов для управления гибридными облаками и инициализации ресурсов в режиме самообслуживания.

Создание определения услуги и соответствующего виртуального конечного устройства

Чтобы создать определение услуги и виртуальное конечное устройство в качестве устройства для услуги в публичном облаке, необходимо использовать API-интерфейсы NSX Manager.