Сервисная сетка: микросервисы входят в ERA 2.0

задняя часть Микросервисы Spring Dubbo
Сервисная сетка: микросервисы входят в ERA 2.0

Микросервисы отмарт 2014 г.Впервые предложено Мартином Фаулером вSpring Cloud,DubboС помощью различных микросервисных фреймворков он охватил всю индустрию ИТ-технологий степью прерии и стал самым массовым решением для распределенных приложений. Тем не менее, есть еще много проблем, которые не были решены фундаментально, например, высокий технический порог, недостаточная многоязычная поддержка и сильное вторжение в код. Как справиться с этими проблемами, стало первым вопросом, на который должны ответить микросервисы следующего поколения. Пока не была предложена сервисная сетка (Service Mesh), у всего был ответ.

1 Трагедия микросервисов

Еще в начале 2017 года, когда все основные микросервисные фреймворки, независимо от природы библиотеки классов,Finagle,Hystrix, или Spring Cloud и Dubbo по характеру фреймворка, по сути, являются решениями внутри приложения, и есть следующие три проблемы:

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

Источник изображения:Service Mesh: следующее поколение микросервисов

  • Недостаточная многоязычная поддержка: Для небольших команд, особенно в быстрорастущих интернет-стартапах, многоязычные технологические стеки являются нормой, а межъязыковые вызовы служб также являются нормой, но в настоящее время в открытом исходном коде нет унифицированного межъязыкового микросервиса. сообщество технологический стек.
  • Код навязчиво: основные микросервисные фреймворки (такие как Spring Cloud, Dubbo) более или менее навязчивы для бизнес-кода, а стоимость замены фреймворка высока, что приводит к низкой готовности бизнес-групп к сотрудничеству и трудностям при внедрении микросервисов.

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

2 Другой способ

Как решить три вышеупомянутые проблемы? Проще всего представить себе режим прокси, где на уровне LB (например,Nginx,Apache HTTP Server) обрабатывает все вызовы службы, а также некоторые вопросы управления службами (такие как распределенная трассировка, переход на более раннюю версию прерывателя цепи). Однако у этого решения есть два существенных недостатка: во-первых, узким местом всей системы будет централизованная архитектура, производительность и доступность самого агента, во-вторых, сложность эксплуатации и обслуживания высока, посмеялась бизнес-команда, а эксплуатация и ремонтная бригада плакала.

Это таоюань это?

Появился грид-сервис (Service Mesh)! С сентября 2016 года Linkerd впервые публично используется вместе сLinkerd,Envoy,Istio,NGINX Application Platform,ConduitПо мере того, как новые фреймворки появляются как грибы после микросервисов, сервисная сетка и ее побочная модель лидируют в индустрии ИТ-технологий в 2017 году.

3 Сервисная сетка

3,1 юаня определено

Во-первых, давайте посмотрим, как описывает это создатель сервисной сетки Уильям Морган.

A service mesh is a dedicated infrastructure layer for handling service-to-service communication. Consists of a control plane and data plane (service proxies act as "mesh"). - William Morgan, What's a Service Mesh? And Why Do I Need One?

Вышеприведенный абзац четко указывает на ответственность сервисной сетки, то есть за управление связью между сервисами, что является ядром управления сервисами. иa dedicated infrastructure layerЭти слова проводят четкую грань между сервисной сеткой и всеми предыдущими микросервисными фреймворками (фреймворками), то есть сервисная сетка существует независимо от конкретных сервисов, что принципиально решает упомянутые выше старые микросервисы.Фреймворк имеет проблемы с многоязычной поддержкой и кодом вторжение. Более того, благодаря независимости сервисной сети бизнес-командам больше не нужно беспокоиться о сложности, связанной с управлением услугами, и сервисная сеть может полностью справиться с ней.

Тогда вы можете спросить, не похоже ли это на шаблон прокси, упомянутый ранее? Отличие заключается в уникальной модели sidecar сервисной сетки. Для каждого экземпляра службы сервисная сетка развертывает побочный процесс на том же хосте параллельно один к одному, чтобы взять на себя всю внешнюю сетевую связь экземпляра службы (см. рисунок ниже). Это устраняет узкое место централизованной архитектуры в режиме прокси. В то же время, с помощью хорошей инкапсуляции фреймворка можно эффективно контролировать затраты на эксплуатацию и техническое обслуживание.

Источник изображения:What's a Service Mesh? And Why Do I Need One?

3.2 История развития

Прослеживая свое происхождение, сервисную сетку можно разделить на три этапа эволюции с нуля (см. рисунок ниже). На первом этапе каждый сервис обладает собственной магической силой и сам обрабатывает внешние коммуникации. На втором этапе все службы взаимодействуют с помощью единой библиотеки классов. На третьем этапе служба больше не заботится о деталях связи, и все они передаются побочному процессу, как и в протоколе TCP/IP. быть переданным, а уровень TCP отвечает за сохранение всего содержимого в целости.Во всем процессе прикладной уровень не должен заботиться о каких-либо деталях фактического процесса передачи.

Источник изображения:Pattern: Service Mesh

3.3 Хронология

Наконец, вернитесь и позже посмотрите на сервисную сетку молодой истории. Хотя официальное предложение Сервисской сетки в сентябре 2016 года на самом деле в 2013 году Airbnb сделала аналогичную идею -SmartStack, но SmartStack ограничен поиском сервисов и не привлек большого внимания, как Prana от Netflix и локальный прокси OSP от Vipshop. После того, как сервисная сетка была предложена в 2016 году, начали появляться фреймворки, представленные Linkerd и Envoy, которые присоединились к CNCF (Cloud Native Computing Foundation) в 2017 году, что в конечном итоге привело к рождению нового поколения выскочки Istio. В 2018 году Istio выпустит версию 1.0, что может означать, что микросервисы начинают вступать в эпоху 2.0.

Источник изображения:Service Mesh: следующее поколение микросервисов

4 Резюме

Приведенное выше это простое введение в сервисный сетку, добро пожаловать мне.доска объявленийОставьте сообщение для обмена и хорошо проведите время со всеми. В следующей статье я научу вас, как локально с нуля создать сервисную сетку на основе Istio, так что следите за обновлениями.

5 справочника