Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microservice's traps

Microservice's traps

Nikita Galkin

December 02, 2017
Tweet

More Decks by Nikita Galkin

Other Decks in Programming

Transcript

  1. Никита Галкин Верю, что: ▰ Любая проблема должна решаться на

    нужно уровне ▰ Сложности не в технологиях, сложности в людях ▰ Проблемы надо обсуждать, идеи – продавать, а решения – демонстрировать 2
  2. Сервисы VS Библиотеки 9 Библиотеки ▰ Куски кода ▰ Взаимодействие

    через языковые вызов ▰ Language specific Сервисы ▰ Исполняемый код ▰ Взаимодействие через процессные вызовы, порты, ... ▰ Language agnostic
  3. 15

  4. 20

  5. 21

  6. Технологический стэк 25 ▰ Сферы с подходами и инструментами ▻

    Architect, FE, BE, QA, DevOps, misc ▰ Подходы с описанием ▻ Микросервисы, Нагрузочное тестирование ▰ Инструменты с конкретными версиями ▻ Node.js 8.9.1, npm 5.5.1
  7. Graceful Shutdown 30 For graceful shutdown application should: 1. Log

    start of graceful shutdown. 2. Close incoming business logic flow. For example: stop accepting new tasks for processing from queue, stop handling new incoming http requests, etc. 3. Set a forced timeout for completion current tasks or save them for future processing. Recommended value for this timeout is not more then 5 second. 4. Notify consumers about shutdown. For example: send heartbeat-shutdown. 5. Correctly disconnect from all connections. For example: database, RabbitMQ, Redis, etc. 6. Log finish of graceful shutdown and stop the process.
  8. Типичная ситуация 36 Зависимостей много Всё зависит от всего Никто

    не помнит, а как архитектура должна была выглядеть
  9. 37

  10. А потом... 38 <Keitaro> [22:31] [Keitaro PING reply]: 4hrs 49mins

    24secs <Keitaro> HOW DO YOU LIKE THAT? <CaH4e3> пинг заблудился <CaH4e3> возвращение блудного пинга
  11. 42

  12. 43

  13. 44

  14. 47

  15. Типичная ситуация 53 4 команды Один язык программирования 15 микросервисов

    со старта 15 различных вариантов архитектуры кода
  16. 54

  17. Наш подход 56 Linting кода BCE pattern для организации структуры

    Docker для доставки Обсуждение процессов на ретро
  18. Наш подход 57 Linting кода BCE pattern для организации структуры

    Docker для доставки Обсуждение процессов на ретро Monolith First
  19. 61 СПАСИБО! НЕ ИСПОЛЬЗУЙТЕ МИКРОСЕВИСЫ! Вы можете найти меня на

    твиттере @galk_in Слайды доступны speakerdeck.com/galkin Или на моем сайте galk.in