Рубрики
Uncategorized

Что такое сервисная сетка? -Чат в области прорыва между менеджером учетной записи и инженером -решениями!

❓ «О ком этот новый ребенок в городе говорят, люди, обслуживание?» — Джон спросил в очень конфискации … Теги с DevOps, Kubernetes, программирование, производительность.

❓ «О ком этот новый ребенок в городе говорят, люди, обслуживание?» — Джон спросил в очень запутанном состоянии.

🤔 «Что с сервисной сеткой? Ты выглядишь, тревожный человек, что случилось? » — VJ спросил.

John is an "Account Manager" and VJ is a "Solutions Engineer"!

Джон : Вещи быстро меняются, сначала это были эти Простые приложения И я говорил им использовать ряд виртуальных машин. Теперь становится трудно, когда инженеры говорят в обзоре клиентских архитектурных звонков! »

VJ : ОК 😄

Джон : Что это было, это серьезный человек?

VJ : ОК, я объясню, что такое сервисная сетка- Но мне нужно начать со времени этих Простые приложения ; Как вы упомянули.

Джон : Давай, я слушаю!

VJ : Хорошо, я что -нибудь нарисую для тебя!

источник

Monolithic: 

- The software built using a monolithic approach is self-contained; 
  its components are interconnected and interdependent. 

- If developers want to make any changes or updates to a monolithic 
  system, they need to build and deploy the entire stack at once. 

- It's the same thing with scalability: the entire system, not just 
  the modules in it, is scaled together. 

- With the monolithic architecture, it can be difficult to adopt a 
  new technology stack, and in case you want to use a new platform or 
  framework, you'll have to rewrite the entire solution.
Microservices:

- The microservice software architecture allows a system to be divided 
  into a number of smaller, individual, and independent services. 

- Each service is flexible, robust, composable, and complete. 
  They run as autonomous processes and communicate with one another 
  through APIs. 

- Each microservice can be implemented in a different programming 
  language on a different platform. Almost any infrastructure can 
  run in a container which holds services encapsulated for operation. 

- Since these containers can be operated in parallel, the existing 
  infrastructure is easier to maintain.

VJ : Хотя, когда у вас есть независимые услуги или подразделения, есть несколько вещей, о которых вам нужно позаботиться.

Проблемы с архитектурой микросервисов:

……
Service discovery
Load balancing
Fault tolerance
Distributed tracing
Telmetrics
Security (mTLS, policies, patches)
Independently releasable
Service contracts
……

Джон : Да, я знаю. ОК, не все это 😄 Но я знаю, и не являются контейнерными реализациями, такими как Kubernetes решать их?

VJ : О, это впечатляющий человек 😉

Да, это правильно. Kubernetes — очень способная платформа, которая была хорошо доказана в развертывании производства контейнерных приложений. Он обеспечивает богатый сетевой слой, который объединяет обнаружение обслуживания, балансировку нагрузки, проверку здоровья и контроль доступа для поддержки сложных распределенных приложений.

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

Джон : Хорошо, это имеет смысл. Итак, если я запускаю простое приложение или даже сложное приложение, Kubernetes более чем достаточно, чтобы справиться с вещами.

VJ : Частично да! Таким образом, только когда приложения становятся более сложными индивидуально, оно накладывает общее бремя для разработчика и операционной команды приложений, чтобы приспособить его!

[ Безопасность, мониторинг и управление трафиком]

Your code should just focus on business logic, and not the infrastructure part!
Let discuss a few of the challenges:

Обнаружение услуг:

Скажите, теперь вы перенесли свой монолитный в микросервисы. Каждый микросервис будет работать на другой виртуальной машине (VM) с собственным приложением и названным с IP -адресом и номером порта.

Как вы думаете, как обнаружение сервиса произойдет? Вы не можете жестко кодировать значения, как в облачной среде, которая не является постоянным состоянием. Простая машинная перезапуск или сбой виртуальной машины может сделать это не таким оптимальным решением.

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

В следующем примере скажем, если Управление водителем Сервис хочет поговорить с Управление пассажирами Сервис. Он отправит запрос «поиск» в «Реестр услуг».

Problems:
1. Service registry (Server): is a standalone application now, 
and needs your attention to manage it- potentially across availability zones (AZs).

2. Single point of failure. 

3. You will have to add libraries to all the services and write code for them.

Canary/Rolling Deploys:

Rolling deploys:

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

В нужное время вы хотите переключить трафик с v1.0 на V.1.1. Если есть проблема после того, как V1.1 станет вживую, трафик может быть направлен обратно в v1.0. Все время, когда вы следите за тем, чтобы услуги были в ростах и за кулисами, вы делаете обновление.

Canary deploys:

Он работает на очень похожих принципах и идет, скажем, мы обновили функцию и хотим проверить ее только на 5% клиентов.

Джейсон Сковронски объясняет:

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

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

Security:
  • Как вы гарантируете, что услуги говорят о Https ? Как вы убедитесь, что сертификаты ротация: обновление/замена через 30 дней позаботится.

  • Сетевые политики/белый список

  • Прозрачное исправление

VJ:

Таким образом, чтобы перефразировать его, каждая задача, описанная выше, накладывает бремя для разработчика приложений и команды по операциям, чтобы приспособить его!

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

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

Джон : Это имеет смысл! Итак, могу ли я назвать сервисную сетку как:

Сделайте это для меня и уменьшите накладные расходы на разработчики моих приложений?

VJ : Ты быстрый человек! 🚀

Короче говоря, ответ — да.

На высоком уровне сервисная сетка обеспечивает связь между контейнерными инфраструктурами приложений. Он предоставляет такие функции, как Маршрутизация трафика, баланс нагрузки, обнаружение услуг, шифрование, аутентификация и авторизация Анкет

Брайан «Redbeard» Харрингтон, руководитель основного продукта в Red Hat, описывает сетку Service как шар из нескольких более известных технологий:

  • Сервисная сетка — это набор программных компонентов, которые действуют как «клей» для набора независимых приложений. Цель сетки — гарантировать безопасную связь между каждым приложением и иметь возможность перенаправить трафик в случае сбоев.

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

источник

VJ : Допустим, изначально у нас были услуги (обслуживание A и услуга B) напрямую разговаривали друг с другом. Теперь программа под названием Коляска устанавливается с каждой службой, и они расположены там, где находятся службы- могут быть контейнером или виртуальной машиной.

Служба А теперь поговорит с коляской и будет выступать в качестве прокси или скрытого фактора для обслуживания А. Сейчас обязанность коляска — поговорить с колясками других служб.

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

Следовательно, управляющая башня и внедрение коляска заботятся обо всех этих тяжелых подъемах и разгружает все бремя от вашего «кода приложения»- и это логика, стоящая за Сервисная сетка Анкет

Давайте посмотрим на какую -то реальную реализацию сервисной сетки. Доступные проекты на рынке:

Istio, Linkerd и Consul

Вот как настоящая очень близкая архитектура Istio — выглядит как.

Джон : До сих пор это было хорошо, хотя эта архитектура! 😕

VJ : (Прерывание)

NA, не путайте- логика такая же.

Посланник : это проект, который на самом деле Коляска мы говорили о.

Плоскость управления : только что разделен на 3 разных услугах:

Istio-Manager ||  Mixer || Istio-Auth

Вы можете прочитать о полной архитектуре и о том, что каждый из компонентов делает Здесь !

Istio's main features are:

-- Automatic load balancing for HTTP, gRPC, and TCP traffic.

-- Fine-grained control of traffic behavior with rich routing rules.

-- Traffic encryption, service-to-service authentication and strong 
identity assertions.

-- Fleet-wide policy enforcement.

-- In-depth telemetry and reporting.

Джон : Однако это было много информации, я рад, что у меня что -то здесь есть 😄.

В двух словах снова:

» Ваш код должен просто сосредоточиться на бизнес -логике, а не на части инфраструктуры! »

» В конце концов, организации, управляющие крупномасштабными, сложными приложениями, могут достичь переломного момента, где улучшение обслуживания приложений за счет обслуживания становится слишком сложным для масштабирования, и именно там, где сетка обслуживания может вам помочь! »

VJ : Правильно, ты получил это, чувак!

Теперь выпейте свой кофе и позвольте мне уйти- у меня есть звонок для обзора архитектуры с одним из наших потенциальных клиентов. 😉

Джон : Хорошо, поговорите со своими нетехнологичными людьми, как это, и они будут любить вас!

VJ : 😊 Я посмотрю. Хотя теперь ты выглядишь счастливым! 😄

ПРИМЕЧАНИЕ: это было только для рассказа, и представление этого в форме, которую легче понять. Это никоим образом не является полной реализацией или охватывает, как использовать сервисную сетку.

Я буду продолжать делиться пониманием поэтапно.

📓 Вы также можете прочитать это в моем личном блоге: https://sachcode.com/tech/tea-ime-chat-service-mesh

[ Больше тем]- https://sachcode.com/

Ссылки и мотивация:

https://istio.io/docs/concepts/what-is-istio/

https://istio.io/docs/ops/deployment/architecture/

Оригинал: «https://dev.to/jhasach/what-is-a-service-mesh-the-breakout-area-chat-between-an-account-manager-and-a-solutions-engineer-5afd»