Рубрика «linkerd»

В интернете куча статей о сервис-мешах (service mesh), и вот ещё одна. Ура! Но зачем? Затем, что я хочу изложить своё мнение, что лучше бы сервис-меши появились 10 лет назад, до появления контейнерных платформ, таких как Docker и Kubernetes. Я не утверждаю, что моя точка зрения лучше или хуже других, но поскольку сервис-меши — довольно сложные животные, множественность точек зрения поможет лучше их понять.

Я расскажу о платформе dotCloud, которая была построена на более чем сотне микросервисах и поддерживала тысячи приложений в контейнерах. Я объясню проблемы, с которыми мы столкнулись при её разработке и запуске, и как сервис-меши могли бы помочь (или не могли).
Читать полностью »

Бенчмарк потребления ЦП для Istio и Linkerd - 1

Введение

Мы в Shopify занялись развертыванием Istio в качестве service mesh. В принципе все устраивает, кроме одной вещи: это дорого.

В опубликованных бенчмарках для Istio говорится:

С Istio 1.1 прокси потребляет примерно 0,6 vCPU (виртуальных ядер) на 1000 запросов в секунду.

Для первого региона в service mesh (по 2 прокси с каждой стороны соединения) у нас будет 1200 ядер только для прокси, из расчета один миллион запросов в секунду. Согласно калькулятору стоимости от Google получается примерно $40/месяц/ядро для конфигурации n1-standard-64, то есть один этот регион будет стоить нам больше 50 тыс. долларов в месяц за 1 млн запросов в секунду.

Айвен Сим (Ivan Sim) наглядно сравнил задержки service mesh в прошлом году и обещал то же самое для памяти и процессора, но не получилось:

Судя по всему, values-istio-test.yaml серьезно увеличит запросы к процессору. Если я все правильно посчитал, нужно примерно 24 процессорных ядра для панели управления и 0,5 ЦП для каждого прокси. У меня столько нету. Я повторю тесты, когда мне выделят больше ресурсов.

Я хотел сам убедиться, насколько показатели Istio схожи с другой service mesh с открытым кодом: Linkerd.

Читать полностью »

Истории успеха Kubernetes в production. Часть 5: цифровой банк Monzo - 1

Цикл историй успеха Kubernetes продолжается рассказом о британском банке-стартапе Monzo. Эту молодую компанию относят к категории «challenger banks» (да, это уже термин из Oxford Dictionary), т.е. таких небольших банков, которые бросают вызов крупной и давно сложившейся финансовой индустрии. Это становится возможным благодаря активному и повсеместному использованию современных информационных технологий в самой своей основе, т.е. отказу от операций в традиционном формате в пользу электронных аналогов, позволяющих качественно снизить расходы (банки с таким подходом ещё называют «digital-only»). Пример Monzo, созданного всего 2 года назад, интересен тем, что в достижении великих целей ему помогают платформа Kubernetes, язык Go и другие современные Open Source-продукты, хорошо знакомые DevOps-инженерам и не только.Читать полностью »

Slow Cooker: нагрузочное тестирование сетевых сервисов - 1

Linkerd, наша сервисная сетка (service mesh) для облачных приложений, по долгу службы обязана на протяжении длительного времени справляться с большими объемами сетевого трафика. Перед выпуском очередного релиза соответствие этому требованию необходимо тщательно проверять. В этой статье мы опишем стратегии нагрузочного тестирования и использованные нами инструменты, а также рассмотрим несколько обнаруженных проблем. В итоге будет представлен slow_cooker — написанный на Go инструмент нагрузочного тестирования с открытым исходным кодом, который был создан для выполнения длительных нагрузочных тестов и выявления проблем жизненного цикла (lifecycle issue identification).

Читать полностью »