Microservices in a Wild

Kubernetes и все все все

Я кл**тером командую!

У нас было 2 железных сервера, 31 pod, 5 жирных виртулок в разных облаках, kubeadm и playbook для ansible, куча helm chart-ов и всего такого, всех цветов, а ещё один Ingress, один Kong, MongoDB, Postgre, MySQL и две дюжины pod-ов c Rook. Не то, чтобы это всё было нужно в девелопменте, но раз начал строить кластер, то иди в своём увлечении до конца. Единственное, что меня беспокоило — это Rook. В мире нет никого более беспомощного, безответственного и безнравственного, чем кластер с поломанным persistence. И я знал, что довольно скоро мы в это окунёмся.

Зачем все это было нужно?

  • Отказоустойчивость
  • Гибкое распределение ресурсов
  • Легкость в конфигурации
  • Быстрое обновление без простоев

Места обитания

где разворачивать свои микросервисы

Из чего мы выбирали?

  • Docker Swarm
  • Rancher
  • Kubernetes
  • Mesos

Что внутри Kubernetes?

Запуск кластера

  • запуск в полностью ручном режиме 😱
  • запуск через kubeadm 😐
  • Ansible+kubeadm 😎

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

Наблюдаем за живой природой

Что ж там внутри происходит? И кто уронил валенок на пульт?!

В код мне логи!

  • Logstash/Fluentd
  • Elasticsearch
  • Kibana

Мониторинг

Prometheus

Взаимоотношения в стае

как микросервисы общаются между собой

REST

  • адресация внутри кластера
    • service-name
    • service-name.default.svc.cluster.local
  • iptables policy FORWARD :(

REST

  • адресация внутри кластера
    • service-name
    • service-name.default.svc.cluster.local
  • iptables policy FORWARD :(

Queue & Bus

  • Resque
  • RabbitMQ
  • AMQ
  • Deepstream.io
  • тысячи их...

Seneca.js

http://senecajs.org/

Микросервисы и человек

авторизация пользователей и роутинг

Ingress

Мы любим эту макаку!

Что умеет Kong?

  • роутинг
  • аутентификация
  • авторизация
  • еще много чего

Konga

Приручаем обезьянку

npm install -g kongfig

Содержание в неволе

как мы разрабатываем микросервисы локально и выпускаем их на волю

Docker Compose vs Minikube

Jenkins

Helm

Бонус: микросервисы и хранение данных

Ceph

Свой EBS и S3

Rook

Ceph для ленивых

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

© rt3879439@habrahabr.ru

Minio

S3 для тех кто задлбался ждать когда же пофиксят Rook

Спасибо за внимание

готов ответить на ваши вопросы

Иван Мосев, software architect
<ivan.mosiev@altexsoft.com>