Управление микросервисами набирает обороты с Istio

Опубликовано: 17 Апреля, 2023
Управление микросервисами набирает обороты с Istio

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

Что такое микросервисы

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

управление микросервисами
Викимедиа

Архитектура микросервисов использует политику «разделяй и властвуй». Он позволяет управлять каждой услугой по отдельности. Это означает, что каждая служба разрабатывается, тестируется и развертывается независимо от других служб. Это кардинально отличается от монолитной модели, где каждый релиз представляет собой мегасобытие, которое происходит только раз в несколько месяцев, и все теряют сон из-за того, что вот-вот сломается. Неизбежно что-то ломается, и все работают сверхурочно по выходным, чтобы починить развертывание.

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

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

Микросервисы также отдают большую часть контроля в руки команд DevOps. Микросервисы вынуждают команды DevOps следовать мантре Amazon: вы создаете — вы это запускаете. Но, как сказал один мудрый человек, с большой силой приходит и большая ответственность. В мире микросервисов командам DevOps нужны надежные инструменты для управления этими сложными системами. Проблемы новые, такими же должны быть и решения.

Проблемы с микросервисами

Микросервисы работают по модели сервисной сетки. Сетка сервисов — это слой, на котором все сервисы приложения взаимодействуют друг с другом. Поскольку они взаимодействуют сложным образом, возникает множество проблем с управлением микрослужбами, такими как балансировка нагрузки, устранение сбоев, обнаружение служб и мониторинг. Кроме того, существует множество процессов, необходимых для успеха микросервисов. Некоторые из них — A/B-тестирование, канареечные выпуски, контроль доступа и сквозная аутентификация.

Управление API оказалось полезным, поскольку оно управляет связью между различными API, составляющими приложение микрослужб. Однако в современном мире, ориентированном на контейнеры и облачные технологии, нам нужно нечто большее, чем просто управление API. Нам нужна выделенная платформа для управления сервисной сеткой. И это то, к чему стремится Istio.

Почему инструмент управления микросервисами с открытым исходным кодом?

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

Кроме того, бесценно наличие активного сообщества, которое постоянно развивает инструмент. В случае с Istio Google, Lyft и IBM являются первоначальными участниками, что означает, что у него есть право быть эффективным и успешным инструментом в облачном арсенале.

Наконец, сегодня открытый исходный код обеспечивает революцию контейнеров. Docker заинтересован в поддержке технологий с открытым исходным кодом, о чем свидетельствует его недавнее объявление о проекте Moby. Kubernetes, вероятно, является самым популярным проектом с открытым исходным кодом, разрабатываемым сегодня, и его целью является упростить непрерывную доставку с помощью контейнеров. Prometheus — мощный инструмент мониторинга с открытым исходным кодом. Кроме того, Cloud-Native Computing Foundation (CNCF) внедряет многие из этих инструментов, собирая набор инструментов, подходящих для современных облачных приложений.

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

Что может Истио

Будучи инструментом управления услугами, Istio перехватывает все сетевые коммуникации. Для этого к каждой службе добавляется специальный прокси-сервер. Это одна из сильных сторон Istio, поскольку ее очень легко настроить. Дополнительные прокси-серверы Istio подключаются без ручной настройки и настройки. После подключения они отслеживают и защищают систему, контролируют трафик и применяют политики.

Из чего сделан Истио

Istio состоит из четырех ключевых частей — Envoy, Mixer, Pilot и Istio-Auth. Каждый из них выполняет свою функцию, и вместе они делают Istio очень эффективным решением для управления микросервисами.

  • Envoy — это вспомогательная программа, которая извлекает информацию из служб и позволяет другим компонентам выполнять действия в отношении служб и трафика.
  • Mixer применяет политики и контроль доступа между службами на основе данных, полученных от Envoy.
  • Pilot обрабатывает трафик между службами и обеспечивает взаимодействие между пользователем и Istio.
  • Istio-Auth обеспечивает сквозное шифрование и аутентификацию пользователей.

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

Четкое представление о том, как он работает, и разделение обязанностей между каждым компонентом, делает Istio многообещающим.

Путь вперед для Istio

Для Istio все еще очень рано, сейчас версия 0.1.6. В будущем. Цель Istio — запустить и дать вам возможность запускать рабочие нагрузки в любой среде — в облаке или локально. На данный момент Istio ограничен только Kubernetes, но вскоре будет добавлена поддержка дополнительных платформ. Цель состоит в том, чтобы обеспечить легкую переносимость между средами. Это святой Грааль облачных вычислений. Сегодня поставщики облачных услуг привязывают вас к своим платформам и наборам инструментов, и когда они делают шаг, не соответствующий вашим интересам, вы в значительной степени застреваете с ними. Чтобы избежать этого, такой инструмент, как Istio, может значительно помочь вам, предоставляя вам больше контроля над тем, какую облачную платформу вы хотите использовать.

Еще одна важная особенность плана развития Istio — интеграция с другими платформами, такими как Apigee. Google, один из создателей Istio, в прошлом году приобрел Apigee, чтобы включить микросервисы в свою облачную платформу. Apigee — один из ведущих инструментов управления API. Благодаря объединению возможностей Apigee и Istio управление микросервисами станет намного проще.

Микросервисы — это путь будущего для современных облачных приложений. Тем не менее, управление микросервисами может быть кошмаром. Сложный обмен данными между службами, отсутствие аутентификации, сложные средства управления доступом и отсутствие представления о производительности — все это большие грубые проблемы, которые нам еще предстоит решить. Сделав большой шаг к решению этих проблем, Istio использует уникальный подход, специально созданный для микросервисов. Его функции для балансировки нагрузки, обнаружения сервисов, мониторинга и аутентификации делают его необходимым для современного набора облачных инструментов. Что наиболее важно, его межоблачная переносимость делает его очень желательным для любой организации, которая хочет избежать привязки к поставщику. Istio — важная часть головоломки микросервисов. Если Docker и Kubernetes упростили разработку приложений в виде набора микросервисов, то Istio упрощает управление этими сервисами.