ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠ°ΠΊ сСрвис: ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ систСма для микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

БСгодня Π½Π° нашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ дСсятки микросСрвисов. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ»ΠΈ. Π”Π΅Π»Π°Ρ‚ΡŒ это Π² Ρ‚Π°ΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… силами DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ. ΠœΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ систСму ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ сСрвис для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Они ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² систСму ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠΌΠΈ, ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° ΠΈΡ… основании Π΄Π°ΡˆΠ±ΠΎΡ€Π΄Ρ‹, ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΊ Π½ΠΈΠΌ Π°Π»Π΅Ρ€Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ достиТСнии ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π‘ DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ инфраструктура ΠΈ докумСнтация.

Π­Ρ‚ΠΎΡ‚ пост β€” Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° ΠΌΠΎΠ΅Π³ΠΎ выступлСния с нашСй сСкции Π½Π° РИВ++. МногиС просили нас ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ тСкстовыС вСрсии Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² ΠΎΡ‚Ρ‚ΡƒΠ΄Π°. Если Π²Ρ‹ Π±Ρ‹Π»ΠΈ Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ смотрСли Π²ΠΈΠ΄Π΅ΠΎ, Ρ‚ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ. А всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ β€” Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚. РасскаТу, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ Ρ‚Π°ΠΊΠΎΠΉ систСмС, ΠΊΠ°ΠΊ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Ρ‘ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ.

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠ°ΠΊ сСрвис: ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ систСма для микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

ΠŸΡ€ΠΎΡˆΠ»ΠΎΠ΅: схСмы ΠΈ ΠΏΠ»Π°Π½Ρ‹

Как ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ систСмС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°? Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° этот вопрос, Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ Π² 2015 Π³ΠΎΠ΄. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это выглядСло Ρ‚ΠΎΠ³Π΄Π°:

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠ°ΠΊ сСрвис: ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ систСма для микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

Π£ нас сущСствовало порядка 24 ΡƒΠ·Π»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π»ΠΈ Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. Π—Π΄Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ цСлая ΠΏΠ°Ρ‡ΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΡ€ΠΎΠ½ΠΎΠ², скриптов, Π΄Π΅ΠΌΠΎΠ½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ мониторят, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ сообщСния, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠœΡ‹ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅ΠΌ дальшС, Ρ‚Π΅ΠΌ ΠΌΠ΅Π½Π΅Π΅ такая систСма Π±ΡƒΠ΄Π΅Ρ‚ ТизнСспособна. Π Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ Π½Π΅Ρ‚ смысла: слишком громоздкая.
ΠœΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Π΅ элСмСнты ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ оставим ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ, ΠΈ Ρ‚Π΅, ΠΎΡ‚ ΠΊΠ°ΠΊΠΈΡ… откаТСмся. Π˜Ρ… оказалось 19. ΠžΡΡ‚Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³Ρ€Π°Ρ„ΠΈΡ‚Ρ‹, Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Grafana Π² качСствС Π΄Π°ΡˆΠ±ΠΎΡ€Π΄Π°. Но ΠΊΠ°ΠΊ ΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ новая систСма? Π’ΠΎΡ‚ Ρ‚Π°ΠΊ:

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠ°ΠΊ сСрвис: ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ систСма для микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

Π£ нас Π΅ΡΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ: это Π³Ρ€Π°Ρ„ΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° быстрых SSD-дисках, это ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€Ρ‹ для ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ. Π”Π°Π»Π΅Π΅ β€” Grafana для Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ΠΎΠ² ΠΈ Moira Π² качСствС Π°Π»Π΅Ρ€Ρ‚ΠΈΠ½Π³Π°. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ систСму для поиска Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚: ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ 2.0

Π’Π°ΠΊ выглядСли ΠΏΠ»Π°Π½Ρ‹ Π² 2015. Но Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π±Ρ‹Π»ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ инфраструктуру ΠΈ сам сСрвис, Π½ΠΎ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊ Π½Π΅ΠΌΡƒ. ΠœΡ‹ для сСбя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ стандарт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π·Π²Π°Π»ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ 2.0. КакиС трСбования Π±Ρ‹Π»ΠΈ ΠΊ систСмС?

  • постоянная Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ;
  • ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» хранСния ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ = 10 сСкунд;
  • структурированноС Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΈ Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ΠΎΠ²;
  • SLA > 99,99%
  • cΠ±ΠΎΡ€ ΠΈΠ²Π΅Π½Ρ‚ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΏΠΎ UDP (!).

Нам Π±Ρ‹Π» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ UDP, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ нас большой ΠΏΠΎΡ‚ΠΎΠΊ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ событий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. Если ΠΈΡ… всС сразу ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π³Ρ€Π°Ρ„ΠΈΡ‚, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ляТСт. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ прСфиксы ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня для всСх ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ.

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠ°ΠΊ сСрвис: ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ систСма для микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· прСфиксов носит ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ свойство. Π•ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΏΠΎ сСрвСрам, сСтям, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ, рСсурсам, прилоТСниям ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° чСткая, строгая, типизированная Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ, Π³Π΄Π΅ ΠΌΡ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ просто Π΄Ρ€ΠΎΠΏΠ°Π΅ΠΌ. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ эту систСму Π² 2015 Π³ΠΎΠ΄Ρƒ. Π§Ρ‚ΠΎ ΠΆΠ΅ Π² настоящСм?

НастоящСС: схСма взаимодСйствия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΌΡ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠΌ Π°ΠΏΠΏΠ»ΠΈΠΊΠ΅ΠΉΡˆΠ½Ρ‹: наш PHP-ΠΊΠΎΠ΄, прилоТСния ΠΈ микросСрвисы β€” словом, всС, Ρ‡Ρ‚ΠΎ ΠΏΠΈΡˆΡƒΡ‚ наши Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ. ВсС Π°ΠΏΠΏΠ»ΠΈΠΊΠ΅ΠΉΡˆΠ½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· UDP ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ Brubeck (statsd, пСрСписанный Π½Π° Π‘). Он оказался самым быстрым ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ синтСтичСских тСстов. И ΠΎΠ½ отправляСт ΡƒΠΆΠ΅ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² Graphite Ρ‡Π΅Ρ€Π΅Π· TCP.

Π£ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, ΠΊΠ°ΠΊ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ удобная ΡˆΡ‚ΡƒΠΊΠ°. НапримСр, Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ соСдинСниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с сСрвисом Π²Ρ‹ отправляСтС Π² Brubeck ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ с response time. ΠŸΡ€ΠΈΡˆΠ΅Π» ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ², Π° Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π΄Π°Π» всСго 10 ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ. Π£ вас Π΅ΡΡ‚ΡŒ количСство ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠΈΡ… людСй, максимальноС, минимальноС ΠΈ срСднСС врСмя ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°, ΠΌΠ΅Π΄ΠΈΠ°Π½Π° ΠΈ 4 пСрсСнтиля. ΠŸΠΎΡ‚ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² Graphite ΠΈ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΈΡ… всС Π²ΠΆΠΈΠ²ΡƒΡŽ.

Π’Π°ΠΊΠΆΠ΅ Ρƒ нас Π΅ΡΡ‚ΡŒ агрСгация для ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΏΠΎ ΠΆΠ΅Π»Π΅Π·Ρƒ, софту, систСмных ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΈ нашСй старой систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Munin (ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Ρƒ нас Π΄ΠΎ 2015 Π³ΠΎΠ΄Π°). ВсС это ΠΌΡ‹ собираСм Ρ‡Π΅Ρ€Π΅Π· C’ΠΈΡˆΠ½Ρ‹ΠΉ Π΄Π΅ΠΌΠΎΠ½ CollectD (Π² Π½Π΅Π³ΠΎ Π²ΡˆΠΈΡ‚Π° цСлая ΠΏΠ°Ρ‡ΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΠΎΠ½ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ всС рСсурсы хостовой систСмы, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ установлСн, просто ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΊΡƒΠ΄Π° ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅) ΠΈ пишСм Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π² Graphite. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ python ΠΈ shell скрипты, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ свои кастомныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ: CollectD Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅ с локального ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ хоста (ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π΅ΡΡ‚ΡŒ Curl) ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… Π² Graphite.

Π”Π°Π»ΡŒΡˆΠ΅ всС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ собрали, отправляСм Π² Carbon-c-relay. Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Carbon Relay ΠΎΡ‚ Graphite, Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ Π½Π° C. Π­Ρ‚ΠΎ Ρ€ΠΎΡƒΡ‚Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собираСт Π² сСбС всС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ отправляСм с Π½Π°ΡˆΠΈΡ… Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… ΠΏΠΎ Π½ΠΎΠ΄Π°ΠΌ. Π’Π°ΠΊΠΆΠ΅ Π½Π° стадии ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ½ провСряСт Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ. Они, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠΉ схСмС с прСфиксами, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я ΠΏΠΎΠΊΠ°Π·Π°Π» Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΈ, Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π²Π°Π»ΠΈΠ΄Π½Ρ‹ для Π³Ρ€Π°Ρ„ΠΈΡ‚Π°. Π˜Π½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ Π΄Ρ€ΠΎΠΏΠ°ΡŽΡ‚ΡΡ.

ΠŸΠΎΡ‚ΠΎΠΌ Carbon-c-relay отправляСт ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² кластСр Graphite. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² качСствС основного Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Carbon-cache, пСрСписанныС Π½Π° Go. Go-carbon ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π΅Π³ΠΎ многопоточности Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ прСвосходит ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Carbon-cache. Он ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² сСбя ΠΈ записываСт ΠΈΡ… Π½Π° диски с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° whisper (стандартный, написан Π½Π° python). Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с Π½Π°ΡˆΠΈΡ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Graphite API. Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС, Ρ‡Π΅ΠΌ стандартный Graphite WEB. Π§Ρ‚ΠΎ происходит с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ дальшС?

Они ΠΈΠ΄ΡƒΡ‚ Π² Grafana. Π’ качСствС основного источника Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ наши кластСры Π³Ρ€Π°Ρ„ΠΈΡ‚ΠΎΠ², плюс Ρƒ нас Π΅ΡΡ‚ΡŒ Grafana ΠΊΠ°ΠΊ Π²Π΅Π±-интСрфСйс, для отобраТСния ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, построСния Π΄ΡΡˆΠ±ΠΎΡ€Π΄ΠΎΠ². На ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ свой сСрвис Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ заводят собствСнный Π΄ΡΡˆΠ±ΠΎΡ€Π΄. Π”Π°Π»Π΅Π΅ ΠΎΠ½ΠΈ строят ΠΏΠΎ Π½ΠΈΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΠΏΠΈΡˆΡƒΡ‚ со своих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Помимо Grafana Ρƒ нас Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ SLAM. Π­Ρ‚ΠΎ питонячий Π΄Π΅ΠΌΠΎΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считаСт SLA Π½Π° основании Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π³Ρ€Π°Ρ„ΠΈΡ‚Π°. Как я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», Ρƒ нас Π΅ΡΡ‚ΡŒ нСсколько дСсятков микросСрвисов, Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ свои трСбования. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SLAM ΠΌΡ‹ Ρ…ΠΎΠ΄ΠΈΠΌ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ сравниваСм Π΅Ρ‘ с Ρ‚Π΅ΠΌ Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² Graphite ΠΈ сравниваСм, насколько трСбования ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ доступности Π½Π°ΡˆΠΈΡ… сСрвисов.

ИдСм Π΄Π°Π»Π΅Π΅: Π°Π»Π΅Ρ€Ρ‚ΠΈΠ½Π³. Он ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сильной систСмы β€” Moira. Она нСзависимая ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρƒ Π½Π΅Π΅ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ β€” свой собствСнный Graphite. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° рСбятами ΠΈΠ· Π‘ΠšΠ‘ Β«ΠšΠΎΠ½Ρ‚ΡƒΡ€Β», написана Π½Π° python ΠΈ Go, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ опСнсорсная. Moira ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π² сСбя вСсь Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΊ, Ρ‡Ρ‚ΠΎ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π² Π³Ρ€Π°Ρ„ΠΈΡ‚Ρ‹. Если ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Ρƒ вас ΡƒΠΌΡ€Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Ρ‚ΠΎ ваш Π°Π»Π΅Ρ€Ρ‚ΠΈΠ½Π³ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Moira ΠΌΡ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ Π² Kubernetes, Π² качСствС основной Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ кластСр Redis-сСрвСров. Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ отказоустойчивая систСма. Она сравниваСт ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ со списком Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ²: Ссли Π² Π½Π΅ΠΌ Π½Π΅Ρ‚ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ, Ρ‚ΠΎ Π΄Ρ€ΠΎΠΏΠ°Π΅Ρ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ. Π’Π°ΠΊ ΠΎΠ½Π° способна ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΡ‚ΡŒ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Ρ‹ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ.

Π•Ρ‰Π΅ ΠΌΡ‹ ΠΊ Π½Π΅ΠΉ ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‚ΠΈΠ»ΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ LDAP, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ систСмы ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ для сСбя Π½ΠΎΡ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ (ΠΈΠ»ΠΈ вновь созданным) Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°ΠΌ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Moira содСрТит Π² сСбС Graphite, ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Ρ‹ сначала Π±Π΅Ρ€Π΅Ρ‚Π΅ строчку ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π΅Π΅ Π² Grafana. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ…. А ΠΏΠΎΡ‚ΠΎΠΌ Π±Π΅Ρ€Π΅Ρ‚Π΅ эту ΠΆΠ΅ строчку ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π΅Π΅ Π² Moira. ΠžΠ±Π²Π΅ΡˆΠΈΠ²Π°Π΅Ρ‚Π΅ Π΅Π΅ Π»ΠΈΠΌΠΈΡ‚Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π°Π»Π΅Ρ€Ρ‚ΠΈΠ½Π³. Π§Ρ‚ΠΎΠ±Ρ‹ всС это Π΄Π΅Π»Π°Ρ‚ΡŒ, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ спСцифичСскиС знания. Moira ΡƒΠΌΠ΅Π΅Ρ‚ Π°Π»Π΅Ρ€Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎ смс, email, Π² Jira, Slack… Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ кастомных скриптов. Когда Ρƒ Π½Π΅Π΅ случаСтся Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€, ΠΈ ΠΎΠ½Π° подписана Π½Π° кастомный скрипт ΠΈΠ»ΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊ, ΠΎΠ½Π° Π΅Π³ΠΎ запускаСт, ΠΈ ΠΎΡ‚Π΄Π°Π΅Ρ‚ Π½Π° stdin этому Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΡƒ JSON. БоотвСтствСнно, ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π΅Π³ΠΎ Ρ€Π°ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ. Π§Ρ‚ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ с этим JSONΠΎΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ β€” Ρ€Π΅ΡˆΠ°ΠΉΡ‚Π΅ сами. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ β€” отправляйтС Π² Telegram, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ β€” ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΠΉΡ‚Π΅ таски Π² Jira, Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ.

Π£ нас для Π°Π»Π΅Ρ€Ρ‚ΠΈΠ½Π³Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΅Ρ‰Ρ‘ ΠΈ собствСнная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° β€” Imagotag. ΠœΡ‹ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ панСль, которая примСняСтся ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ для элСктронных Ρ†Π΅Π½Π½ΠΈΠΊΠΎΠ² Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°Ρ…, ΠΏΠΎΠ΄ наши Π·Π°Π΄Π°Ρ‡ΠΈ. ΠœΡ‹ Π²Ρ‹Π²Π΅Π»ΠΈ Π½Π° Π½Π΅Π΅ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ ΠΈΠ· Moira. Π’Π°ΠΌ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ΠΈ состоянии, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ. Π§Π°ΡΡ‚ΡŒ рСбят ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°Π»ΠΈΡΡŒ ΠΎΡ‚ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Π² Slack ΠΈ Π² ΠΏΠΎΡ‡Ρ‚Ρƒ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ Π²ΠΎΡ‚ этой панСльки.

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠ°ΠΊ сСрвис: ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ систСма для микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

Ну ΠΈ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ β€” прогрСссивная компания, Ρ‚ΠΎ Π·Π°ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ»ΠΈ Π² этой систСмС Π΅Ρ‰Π΅ ΠΈ Kubernetes. Π’ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π² систСму с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Heapster, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ установили Π² кластСр, ΠΎΠ½ собираСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ отправляСт ΠΈΡ… Π² Graphite. Π’ ΠΈΡ‚ΠΎΠ³Π΅ схСма выглядит Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠ°ΠΊ сСрвис: ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ систСма для микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°

Π’ΠΎΡ‚ список ссылок Π½Π° Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ использовали для этой Π·Π°Π΄Π°Ρ‡ΠΈ. ВсС ΠΎΠ½ΠΈ β€” опСнсорсныС.

Graphite:

Carbon-c-relay:

github.com/grobian/carbon-c-relay

Brubeck:

github.com/github/brubeck

Collectd:

collectd.org

Moira:

github.com/moira-alert

Grafana:

grafana.com

Heapster:

github.com/kubernetes/heapster

Бтатистика

И Π²ΠΎΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ†ΠΈΡ„Ρ€ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ систСма Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρƒ нас.

Aggregator (brubeck)

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ: ~ 300 000 / sec
Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π² Graphite: 30 sec
ИспользованиС рСсурсов сСрвСра: ~ 6% CPU (Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… сСрвСрах); ~ 1Gb RAM; ~ 3 Mbps LAN

Graphite (go-carbon)

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ: ~ 1 600 000 / min
Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» обновлСния ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ: 30 sec
Π‘Ρ…Π΅ΠΌΠ° хранСния ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ: 30sec 35d, 5min 90d, 10min 365d (Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ происходит с сСрвисом Π½Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ этапС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ)
ИспользованиС рСсурсов сСрвСра: ~ 10% CPU; ~ 20Gb RAM; ~ 30 Mbps LAN

Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ

ΠœΡ‹ Π² Avito ΠΎΡ‡Π΅Π½ΡŒ Ρ†Π΅Π½ΠΈΠΌ Π² нашСм сСрвисС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ. ΠŸΠΎΡ‡Π΅ΠΌΡƒ, ΠΎΠ½ собствСнно получился Ρ‚Π°ΠΊΠΈΠΌ? Π’ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π΅Π³ΠΎ составныС части взаимозамСняСмы: ΠΊΠ°ΠΊ сами ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ‚Π°ΠΊ ΠΈ ΠΈΡ… вСрсии. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ… β€” ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡ‚ΡŒ. Π’Π°ΠΊ ΠΊΠ°ΠΊ вСсь ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ построСн Π½Π° опСнсорсС, Π²Ρ‹ сами ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, нСдоступныС ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ достаточно распространСнныС стСки, Π² основном, Go ΠΈ Python, поэтому это дСлаСтся достаточно просто.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ возникшСй ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠ° Π² Graphite β€” это Ρ„Π°ΠΉΠ». Π£ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅. Имя Ρ„Π°ΠΉΠ»Π° = имя ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. И Π΅ΡΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ Π½Π΅Π³ΠΎ. Названия Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Linux ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ 255 символами. А Ρƒ нас Π΅ΡΡ‚ΡŒ (Π² качСствС β€œΠ²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… заказчиков”) рСбята ΠΈΠ· ΠΎΡ‚Π΄Π΅Π»Π° Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Они Π½Π°ΠΌ говорят: β€œΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ наши SQL-запросы. А ΠΎΠ½ΠΈ β€” Π½Π΅ 255 символов, Π° 8 ΠœΠ‘ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ. ΠœΡ‹ ΠΈΡ… Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π² Grafana, Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ этому запросу, Π° Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚ΠΎΠΏ Ρ‚Π°ΠΊΠΈΡ… запросов. Π‘ΡƒΠ΄Π΅Ρ‚ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Ссли ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. А совсСм ΠΊΡ€ΡƒΡ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°ΠΏΠΈΡ…Π½ΡƒΡ‚ΡŒ ΠΈΡ… Π² алСртинг”.

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠ°ΠΊ сСрвис: ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ систСма для микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ SQL-запроса взят Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° с сайта postgrespro.ru

ΠœΡ‹ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ сСрвСр Redis ΠΈ нашими Collectd-ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ходят Π² Postgres ΠΈ Π±Π΅Ρ€ΡƒΡ‚ ΠΎΡ‚Ρ‚ΡƒΠ΄Π° всС Π΄Π°Π½Π½Ρ‹Π΅, отправляСм ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² Graphite. Но замСняСм имя ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π½Π° Ρ…ΡΡˆΠΈ. Π­Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ…ΡΡˆ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ отправляСм Π² Redis Π² качСствС ΠΊΠ»ΡŽΡ‡Π°, ΠΈ вСсь SQL-запрос Π² качСствС значСния. Нам ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Grafana ΡƒΠΌΠ΅Π»Π° Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Redis ΠΈ Π±Ρ€Π°Ρ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. ΠœΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Graphite API, Ρ‚.ΠΊ. это основной интСрфСйс взаимодСйствия всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° с Π³Ρ€Π°Ρ„ΠΈΡ‚ΠΎΠΌ, ΠΈ вписываСм Ρ‚ΡƒΠ΄Π° Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая называСтся aliasByHash() β€” ΠΎΡ‚ Grafana ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ имя ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΅Π³ΠΎ Π² запросС ΠΊ Redis ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡, Π² ΠΎΡ‚Π²Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ являСтся наш β€œSQL запрос”. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ Π²Ρ‹Π²Π΅Π»ΠΈ Π² Grafana ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ SQL-запроса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ ΠΈΠ΄Π΅Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚Π°ΠΌ Π±Ρ‹Π»ΠΎ Π½ΠΈΠΊΠ°ΠΊ нСльзя, вмСстС со статистикой ΠΏΠΎ Π½Π΅ΠΌΡƒ (calls, rows, total_time, …).

Π˜Ρ‚ΠΎΠ³ΠΈ

Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ. Наш сСрвис ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° доступСн 24 Π½Π° 7 ΠΈΠ· любого аппликСйшна ΠΈ любого ΠΊΠΎΠ΄Π°. Если Ρƒ вас Π΅ΡΡ‚ΡŒ доступ ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² сСрвис Π΄Π°Π½Π½Ρ‹Π΅. Π―Π·Ρ‹ΠΊ Π½Π΅Π²Π°ΠΆΠ΅Π½, Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ Π²Π°ΠΆΠ½Ρ‹. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ сокСт, Π·Π°ΠΊΠΈΠ½ΡƒΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ сокСт.

ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ. ВсС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ отказоустойчивы ΠΈ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ с нашими Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°ΠΌΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Низкий ΠΏΠΎΡ€ΠΎΠ³ вхоТдСния. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ этой систСмой, Π²Π°ΠΌ Π½Π΅ Π½Π°Π΄ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ языки программирования ΠΈ запросы Π² Grafana. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, вписываСтС Π² Π½Π΅Π³ΠΎ сокСт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² Graphite, Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ Π΅Π³ΠΎ, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ Grafana, создаСтС Ρ‚Π°ΠΌ Π΄ΡΡˆΠ±ΠΎΡ€Π΄Ρ‹ ΠΈ смотритС Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Π°ΡˆΠΈΡ… ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, получая увСдомлСния Ρ‡Π΅Ρ€Π΅Π· Moira.

Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ВсС это ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ самим, Π±Π΅Π· ΠΏΠΎΠΌΠΎΡ‰ΠΈ DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ². И это ΠΎΠ²Π΅Ρ€Ρ„ΠΈΡ‡Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ прямо сСйчас, Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ β€” Π½ΠΈ для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΈ для ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

К Ρ‡Π΅ΠΌΡƒ ΠΌΡ‹ стрСмимся?

ВсС пСрСчислСнноС Π½ΠΈΠΆΠ΅ β€” это Π½Π΅ просто абстрактныС мысли, Π° Ρ‚ΠΎ, ΠΊ Ρ‡Π΅ΠΌΡƒ сдСланы хотя Π±Ρ‹ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ шаги.

  1. Π”Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ. Π₯ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΏΠΈΠ»ΠΈΡ‚ΡŒ Ρƒ сСбя сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² наши Graphite-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ. Π£ΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΌΡ‹ ΡƒΠΌΠ΅Π΅ΠΌ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.
  2. ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅. Π£ нас ΠΌΠ½ΠΎΠ³ΠΎ сСрвисов, со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ½ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ люди, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎ вСсти Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ β€” Π½Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сСйчас Π² наши микросСрвисы Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅. Π’Π°ΠΌ прописано, ΠΊΡ‚ΠΎ Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π», языки, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ взаимодСйствуСт, трСбования ΠΏΠΎ SLA, ΠΊΡƒΠ΄Π° ΠΈ ΠΊΠΎΠΌΡƒ Π²Ρ‹ΡΡ‹Π»Π°Ρ‚ΡŒ Π½ΠΎΡ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠ΅ сСрвиса всС Π΄Π°Π½Π½Ρ‹Π΅ сущности ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π΄Π²Π΅ ссылки β€” ΠΎΠ΄Π½Π° Π½Π° Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹, другая β€” Π½Π° Π΄ΡΡˆΠ±ΠΎΡ€Π΄Ρ‹ Π² Grafana.
  3. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π΄ΠΎΠΌ. ΠœΡ‹ считаСм, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ систСмой Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ всС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ. Π’ этом случаС Π²Ρ‹ всСгда ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Π³Π΄Π΅ ваш Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, Ρ‡Ρ‚ΠΎ с Π½ΠΈΠΌ происходит, Π³Π΄Π΅ ΠΎΠ½ ΠΏΠ°Π΄Π°Π΅Ρ‚, Π³Π΄Π΅ Ρƒ Π½Π΅Π³ΠΎ слабыС мСста. Если, допустим, ΠΏΡ€ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅Ρ‡Ρ‚ΠΎ ΠΈ Π·Π°Π²Π°Π»ΠΈΡ‚ ваш сСрвис, Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎΠ± этом Π½Π΅ Π²ΠΎ врСмя Π·Π²ΠΎΠ½ΠΊΠ° ΠΎΡ‚ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°, Π° ΠΎΡ‚ Π°Π»Π΅Ρ€Ρ‚Π°, ΠΈ сразу смоТСтС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ свСТиС Π»ΠΎΠ³ΠΈ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ.
  4. Высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ постоянно растСт, ΠΈ сСгодня Π² Π½Ρ‘ΠΌ обрабатываСтся ΠΎΠΊΠΎΠ»ΠΎ 2 000 000 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ. Π“ΠΎΠ΄ Π½Π°Π·Π°Π΄ этот ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ составлял 500 000. А рост продолТаСтся, ΠΈ это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя Graphite (whisper) Π½Π°Ρ‡Π½Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ сильно Π½Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π΄ΠΈΡΠΊΠΎΠ²ΡƒΡŽ подсистСму. Как я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», эта систСма ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° довольно ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π° Π·Π° счёт взаимозамСняСмости ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠšΡ‚ΠΎ-Ρ‚ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ Graphite обслуТиваСт ΠΈ постоянно Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ свою инфраструктуру, Π½ΠΎ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠΎΠΉΡ‚ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡƒΡ‚Π΅ΠΌ: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ClickHouse Π² качСствС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π°ΡˆΠΈΡ… ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ. Π­Ρ‚ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ практичСски Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, ΠΈ совсСм скоро я расскаТу ΠΏΠΎΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅, ΠΊΠ°ΠΊ это Π±Ρ‹Π»ΠΎ сдСлано: ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ‹Π»ΠΈ трудности ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Π½Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ» процСсс ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ, ΠΎΠΏΠΈΡˆΡƒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Π² качСствС обвязки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΈΡ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π—Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ свои вопросы ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅, ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ здСсь ΠΈΠ»ΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… постах. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρƒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ построСния ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Clickhouse Π² сходной ситуации β€” Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ΠΈΠΌ Π² коммСнтариях.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com