Содержание
- 2. Меня хорошо слышно && видно?
- 3. Карта вебинара Системы оркестрации App server vs virtual machine vs container Service discovery Стратегии деплоя Конфигурирование
- 4. Инфраструктурные паттерны микросервисной архитектуры
- 5. Как разместить несколько сервисов на одной машине? Cервер приложений jvm tomcat/jboss, python uwsgi Виртуальные машины Vagrant,
- 6. Сервер приложений Быстрый деплой Хорошая утилизация ресурсов Отсутствие изоляции по ресурсам между разными сервисами – CPU,
- 7. Виртуальная машина Technology agnostic Изоляция ресурсов между сервисами Большая утилизация ресурсов Долгий деплой
- 8. Контейнеры Technology agnostic Изоляция и ограничение сервисов друг от друга Эффективная утилизация ресурсов
- 9. Service discovery Как клиенту понять, где находится инстанс сервиса?
- 10. Client-side discovery Клиент сам ходит в реест сервисов, получает оттуда данные Сервисы сами себя регистрируют в
- 11. Eureka https://github.com/Netflix/eureka
- 12. Client-side discovery Работает с несколькими системами оркестрации одновременно: k8s, standalone-сервисы, nomad и т.д. Зависит от поддержки
- 13. Server-side discovery Оркестратор регистрирует сервис в реестре При обращении клиент использует service name или ip При
- 14. Стратегии деплоя Recreate Rolling update Blue/green Canary
- 15. Recreate Убить существующий деплой Поднять новый Даунтайм
- 16. Rolling update Снимаем трафик с пода Обновляем версию Переключаем трафик в поду Плюсы и минусы: +
- 17. Blue/green deployment Поднимаем новую версию Проверяем ее Переключаем трафик в новую версию Плюсы и минусы: +
- 18. Канареечные деплои Поднимаем новую версию одновременно со старой Переключаем на нее часть трафика Если все хорошо,
- 19. Observability
- 20. Конфигурирование приложений Конфигурация приложения – это все, что может меняться, между развертываниями приложений. Например, Идентификаторы подключения
- 21. Pull модель конфигурирования В момент старта приложение читает свой конфиг из внешнего сервиса. Конфиг может хранится
- 22. Конфигурирование приложений Конфигурация должна быть отделена от кода Кодовая база приложения может быть в любой момент
- 23. Push модель конфигурирования После деплоя оркестратор передает приложению конфиг Конфиг может передаваться через Переменные окружения (ENV)
- 24. Health check Чтобы проверять, умер под или нет заводится специальный метод (endpoint), по которому проверяется общая
- 25. Логирование Отправить логи из приложения Принять для доставки Доставить для анализа и хранения Проаналазировать Хранить
- 26. ELK ELK Elastic Search Logstash Kibana
- 27. Мониторинг и алертинг Как собирать метрики cpu/memory Продуктовые метрики Технические
- 28. Pull vs Push модель сбора метрик Push модель: приложение само ходит в сервис метрик и пушит
- 29. Prometheus Прометеус ходит по сервисам, забирает агрегированную статистику и складывает в базу.
- 30. Prometheus Прометеус может мониторить инфраструктуру с помощью экспортеров
- 31. Prometheus + grafana Grafana – это интерфейс для визуацилизации графиков, метриков, в целом инструмент построения дашбордов
- 32. Distrubuted tracing Распределенная транзакция – это путь прохождения запроса по разным сервисам. При трассировке, к каждому
- 33. Для чего используется tracing? Упрощенное взаимодействие между командами - при регрессах можно скинуть TraceID, связать систему
- 34. Основая терминология Span - запись об одной логической операции по обработке запроса (тайминги и метаданные). Каждый
- 35. Основая терминология Root Span - это спан, у которого нет ссылки на родительский спан (только Trace
- 36. Какие есть проблемы Не видны проблемы общей инфраструктуры (состояние очередей, IOPS и т.п.), "серые ошибки" в
- 37. Инструментарий distibuted-tracing 2 основных протокола: Opentracing (X-OT-* заголовки) B3 (Zipkin) (X-B3-* заголовки) Клиентские библиотеки и сервера
- 38. Elastic APM Elastic APM – средства для анализа производительности приложений с tracing-ом и метриками
- 39. Microservice chassis Microservice chassis – это паттерн, при котором есть фреймворк, помогающий встраивать сервисы в микросервисную
- 40. Service mesh Почему бы не вынести часть логики из кода приложения в отдельный «слой» взаимодействия сервисов?
- 41. Service mesh Давайте с каждым подом поставим side-прокси сервис, в котором будет вся логика по работе
- 42. Service mesh Неважно, что делают сервисы, но трафик между ними является идеальной точкой для добавления новой
- 43. Service mesh на примере istio
- 44. Балансировка запросов
- 45. Граф сервисов
- 46. Распределенная трассировка
- 47. Service mesh на примере istio
- 48. Service mesh плюсы и минусы Минусы: Увеличение latency Дополнительные ресурсы (mem, cpu) на работу прокси Сложность
- 49. Опрос https://otus.ru/polls/6408/
- 51. Скачать презентацию