⌨️ Как и следовало ожидать, к 25-му открыть бета-тест мы не успеваем, но ничего страшного, дадим себе ещё немного времени. А пока почитайте небольшой пост о том, как и зачем в проект был внедрён Istio.
Как мы внедряли Istio и (почти) не сошли с ума
👾 Всем привет! Я - Матвей, CTO и DevOps-инженер в Human Help Platform. Сегодня хочу поделиться нашей историей внедрения Istio. Это не просто техническая инструкция, а скорее рассказ о том, какие проблемы мы решили, на какие грабли наступили и почему теперь считаем, что игра стоила свеч.
Проблема: хаос в микросервисах и безопасность «на честном слове»
До Istio наша жизнь с микросервисами была полна стресса. Каждый релиз был похож на русскую рулетку: мы выкатывали новую версию сервиса сразу на 100% пользователей. Если что-то шло не так, у нас не было нормальной возможности быстрого отката, что часто приводило к даунтайму. О безопасных «канареечных» развертываниях мы могли только мечтать. А с безопасностью дела обстояли ещё хуже. Весь трафик между нашими сервисами внутри кластера ходил в абсолютно открытом виде. Никакого TLS. Мы полностью полагались на сетевую изоляцию, но сама идея, что внутренние коммуникации не зашифрованы, не давала нам покоя.
Решение: Service Mesh и наш выбор в пользу Istio
Мы поняли, что нам нужен инструмент, который закроет сразу обе дыры: возьмёт на себя шифрование трафика и даст нам гибкие возможности для управления релизами. Таким инструментом стал service mesh. Выбор пал на Istio. Он показался нам самым зрелым решением. Идея была проста: переложить головную боль с сети и безопасности с плеч разработчиков на уровень самой платформы. Что мы получили на практике?
1. Безопасность по умолчанию. Это была наша первая и самая важная победа. Мы включили автоматический mTLS (mutual TLS). Istio сам внедряет sidecar-прокси в каждый под, который шифрует и расшифровывает весь трафик. Разработчики продолжают писать код, который общается по обычному HTTP, а Istio «под капотом» обеспечивает безопасность. Проблема с незашифрованным трафиком была решена раз и навсегда.
2. Фундамент для умных релизов. Гибкое управление трафиком в Istio открыло нам дорогу к безопасным развертываниям. С помощью его правил маршрутизации (VirtualService) мы получили полный контроль над тем, кто и как получает доступ к новым версиям сервисов. Это позволило нам позже внедрить такие инструменты, как Argo Rollouts, которые используют возможности Istio для автоматизации сложных «канареечных» стратегий, анализа метрик и автоматических откатов.ф
Post #16
1.41K

- 👍 4
- 🔥 3
- 👏 3