Какво Π·Π½Π°Π΅ΠΌ Π·Π° микросСрвиситС

Здрасти! Аз съм Π’Π°Π΄ΠΈΠΌ Мадисон ΠΈ Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° System Platform Π½Π° Авито. НС вСднъТ Π΅ спомСнавано ΠΊΠ°ΠΊ Π² компанията ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° към микросСрвизна. Π’Ρ€Π΅ΠΌΠ΅ Π΅ Π΄Π° сподСлим ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Ρ…ΠΌΠ΅ инфраструктурата си, Π·Π° Π΄Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅ΠΌ максимална ΠΏΠΎΠ»Π·Π° ΠΎΡ‚ микросСрвиситС ΠΈ Π΄Π° Π½Π΅ Π·Π°Π³ΡƒΠ±ΠΈΠΌ посока Π² тях. Как Π½ΠΈ ΠΏΠΎΠΌΠ°Π³Π° PaaS Ρ‚ΡƒΠΊ, ΠΊΠ°ΠΊ опростихмС Π΄Π΅ΠΏΠ»ΠΎΠΉΠ²Π°Π½Π΅Ρ‚ΠΎ ΠΈ свСдохмС ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° микросСрвис Π΄ΠΎ Π΅Π΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ β€” Ρ‡Π΅Ρ‚Π΅Ρ‚Π΅ Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ. НС всичко, Π·Π° ΠΊΠΎΠ΅Ρ‚ΠΎ пиша ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ, Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ изцяло Π² Авито, част ΠΎΡ‚ Π½Π΅Π³ΠΎ Π΅ Π½Π°Ρ‡ΠΈΠ½ΡŠΡ‚, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°ΠΌΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° си.

(И Π² края Π½Π° Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° сС Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π° Ρ‚Ρ€ΠΈ Π΄Π½Π΅Π²Π΅Π½ сСминар ΠΎΡ‚ СкспСрта ΠΏΠΎ микросСрвизна Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠšΡ€ΠΈΡ Π ΠΈΡ‡Π°Ρ€Π΄ΡΡŠΠ½).

Какво Π·Π½Π°Π΅ΠΌ Π·Π° микросСрвиситС

Как стигнахмС Π΄ΠΎ микросСрвизитС

Авито Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π½Π°ΠΉ-Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ класифицирани сайтовС Π² свСта, Π² ΠΊΠΎΠΉΡ‚ΠΎ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ сС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ‚ Π½Π°Π΄ 15 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Π½ΠΎΠ²ΠΈ обяви. ΠΠ°ΡˆΠΈΡΡ‚ Π±Π΅ΠΊΠ΅Π½Π΄ ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π½Π°Π΄ 20 хиляди заявки Π² сСкунда. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΠΌΠ°ΠΌΠ΅ няколко стотин микросСрвиза.

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½Π°Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°ΠΌΠ΅ Π½Π΅ ΠΎΡ‚ Π²Ρ‡Π΅Ρ€Π°. Как Ρ‚ΠΎΡ‡Π½ΠΎ β€” Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ»Π΅Π³ΠΈ Π² Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ Ρ€Π°Π·ΠΊΠ°Π·Π°Ρ…ΠΌΠ΅ Π² Π½Π°ΡˆΠ°Ρ‚Π° сСсия Π½Π° РИВ++ 2017. На CodeFest 2017 (Π²ΠΈΠΆ. Π²ΠΈΠ΄Π΅ΠΎ), Π‘Π΅Ρ€Π³Π΅ΠΉ ΠžΡ€Π»ΠΎΠ² ΠΈ ΠœΠΈΡ…Π°ΠΈΠ» ΠŸΡ€ΠΎΠΊΠΎΠΏΡ‡ΡƒΠΊ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ обясниха Π·Π°Ρ‰ΠΎ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π½ΠΈ Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΏΡ€Π΅Ρ…ΠΎΠ΄ към микросСрвизи ΠΈ ΠΊΠ°ΠΊΠ²Π° роля ΠΈΠ³Ρ€Π°Π΅ Kubernetes Π² Ρ‚ΠΎΠ·ΠΈ процСс. А сСга ΠΏΡ€Π°Π²ΠΈΠΌ всичко възмоТно, Π·Π° Π΄Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‚Π°ΠΊΠ°Π²Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°.

ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π½Π΅ ΡΡŠΠ·Π΄Π°Π²Π°Ρ…ΠΌΠ΅ СкосистСма, която Π΄Π° Π½ΠΈ ΠΏΠΎΠΌΠ°Π³Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈ стартиранСто Π½Π° микросСрвизи. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΡΡŠΠ±ΠΈΡ€Π°Ρ…ΠΌΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ опСнсорс Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, стартирахмС Π³ΠΈ Ρƒ нас ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΠΌΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΄Π° сС запознаят с тях. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка Ρ‚Π΅ сС налагашС Π΄Π° обикалят Π½Π° дСсСтки мСста (Ρ‚Π°Π±Π»Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ услуги), слСд ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ Π² ΠΆΠ΅Π»Π°Π½ΠΈΠ΅Ρ‚ΠΎ си Π΄Π° пишС ΠΊΠΎΠ΄ ΠΏΠΎ старому, Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°. Π’ схСмитС ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ със Π·Π΅Π»Π΅Π½ цвят Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΎ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ Π½Π°Ρ‡ΠΈΠ½ сам, Π° с ΠΆΡŠΠ»Ρ‚ цвят β€” автоматизацията.

Какво Π·Π½Π°Π΅ΠΌ Π·Π° микросСрвиситС

Π‘Π΅Π³Π° Π² CLI ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° PaaS с Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° сС създава Π½ΠΎΠ² сСрвиз, Π° с ΠΎΡ‰Π΅ Π΄Π²Π΅ сС добавя Π½ΠΎΠ²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ подготвя Π·Π° Π΄Π΅ΠΏΠ»ΠΎΠΉ Π² Stage.

Какво Π·Π½Π°Π΅ΠΌ Π·Π° микросСрвиситС

Как Π΄Π° ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Π΅ΠΌ Π΅Ρ€Π°Ρ‚Π° Π½Π° β€žΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½Π°Ρ‚Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡβ€œ

ΠŸΡ€ΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, Π·Π° Π΄Π° сС постигнС консистСнтност Π² ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ бяха ΠΏΡ€ΠΈΠ½ΡƒΠ΄Π΅Π½ΠΈ Π΄Π° Π²Π½ΠΈΠΊΠ²Π°Ρ‚ ΠΊΠ°ΠΊΠ²ΠΎ сС случва ΠΏΡ€ΠΈ ΡΡŠΡΠ΅Π΄ΠΈΡ‚Π΅. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π½ΠΎΠ²Π°Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, контСкститС Π½Π° услугитС спряха Π΄Π° зависят Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³.

ОсвСн Ρ‚ΠΎΠ²Π°, Π·Π° Π΄Π° бъдС микросСрвисната Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Π°, Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС Π½Π°Π»ΠΎΠΆΠ°Ρ‚ мноТСство процСси, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:

β€’ Π»ΠΎΠ³Π²Π°Π½Π΅;
β€’ трасировка Π½Π° заявки (Jaeger);
β€’ агрСгация Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ (Sentry);
β€’ статуси, ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΎΡ‚ Kubernetes (Event Stream Processing);
β€’ race limit / circuit breaker (ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Hystrix);
β€’ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° услугитС (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Netramesh);
β€’ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ (Grafana);
β€’ ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ (TeamCity);
β€’ комуникация ΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ (Slack, ΠΈΠΌΠ΅ΠΉΠ»);
β€’ прослСдяванС Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ; (Jira)
β€’ ΡΡŠΡΡ‚Π°Π²ΡΠ½Π΅ Π½Π° докумСнтация.

Π—Π° Π΄Π° Π½Π΅ ΠΈΠ·Π³ΡƒΠ±ΠΈ систСмата цСлостта си ΠΏΡ€ΠΈ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ ΠΈ Π΄Π° останС Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Π°, Π½ΠΈΠ΅ прСосмислихмС организацията Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° микросСрвиситС Π² Авито.

Как управлявамС микросСрвиситС

ΠŸΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π΄ΠΈΠ½Π½Π° β€žΠΏΠ°Ρ€Ρ‚ΠΈΠΉΠ½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°β€œ срСд ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎ микросСрвизи Π½Π° Авито Π΅ улСснСно ΠΎΡ‚:

  • раздСлянС Π½Π° инфраструктурата Π½Π° слоСвС;
  • концСпцията Platform as a Service (PaaS);
  • ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ сС случва с микросСрвиситС.

Нивата Π½Π° абстракция Π½Π° инфраструктурата Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Ρ‚Ρ€ΠΈ слоя. НСка ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ ΠΎΡ‚ горния към долния.

A. Π“ΠΎΡ€Π΅Π½ β€” service mesh. ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ±Π²Π°Ρ…ΠΌΠ΅ Istio, Π½ΠΎ сС ΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ‚Π²ΡŠΡ€Π΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ рСсурси, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΎΠ±Π΅ΠΌΠΈ Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ скъпо. Π—Π°Ρ‚ΠΎΠ²Π° ΡΡ‚Π°Ρ€ΡˆΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ Π² архитСктурния Π΅ΠΊΠΈΠΏ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ Π›ΡƒΠΊΡŒΡΠ½Ρ‡Π΅Π½ΠΊΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈ собствСно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” Netramesh (Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎ Π² Open Source), ΠΊΠΎΠ΅Ρ‚ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² продукцията ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ консумира ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ рСсурси, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Istio (Π½ΠΎ Π½Π΅ ΠΏΡ€Π°Π²ΠΈ всичко, с ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠΎΡ…Π²Π°Π»ΠΈ Istio).
B. Π‘Ρ€Π΅Π΄Π΅Π½ β€” Kubernetes. На Π½Π΅Π³ΠΎ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°ΠΌΠ΅ ΠΈ СксплоатирамС микросСрвизитС.
C. Π”ΠΎΠ»Π΅Π½ β€” bare metal. НС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΠ±Π»Π°Ρ†ΠΈ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ изцяло Π½Π° bare metal.

Всички слоСвС сС обСдиняват Π² PaaS. А ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, ΠΎΡ‚ своя страна, сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ Ρ‚Ρ€ΠΈ части.

I. Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ, управлявани Ρ‡Ρ€Π΅Π· CLI инструмСнт. ИмСнно Ρ‚ΠΎΠΉ ΠΏΠΎΠΌΠ°Π³Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π΄Π° създадС микросСрвиз ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΈ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ усилия.

II. ΠžΠ±ΠΎΠ±Ρ‰Π°Π²Π°Ρ‰ ΠΊΠΎΠ»Π΅ΠΊΡ‚ΠΎΡ€ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° всички инструмСнти Ρ‡Ρ€Π΅Π· ΠΎΠ±Ρ‰ΠΎ Ρ‚Π°Π±Π»ΠΎ.

III. Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.. БъСдинява сС с ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ Ρ‚Ρ€ΠΈΠ³Π΅Ρ€ΠΈ Π·Π° Π·Π½Π°Ρ‡ΠΈΠΌΠΈ дСйствия. Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π°Π·ΠΈ систСма Π½ΠΈΡ‚ΠΎ Π΅Π΄Π½Π° Π·Π°Π΄Π°Ρ‡Π° Π½Π΅ остава пропусната само Π·Π°Ρ‰ΠΎΡ‚ΠΎ някой Π΅ Π·Π°Π±Ρ€Π°Π²ΠΈΠ» Π΄Π° си създадС Π·Π°Π΄Π°Ρ‡Π° Π² Jira. Π—Π° Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ инструмСнт, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ Atlas.

Какво Π·Π½Π°Π΅ΠΌ Π·Π° микросСрвиситС

РСализацията Π½Π° микросСрвизи Π² Авито ΡΡŠΡ‰ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΏΠΎ Π΅Π΄ΠΈΠ½Π½Π° схСма, ΠΊΠΎΠ΅Ρ‚ΠΎ улСснява ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π°Π΄ тях Π½Π° всяка Ρ„Π°Π·Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ пусканС.

Как Π΅ устроСн стандартният ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° микросСрвиз.

Π’ общия Π²ΠΈΠ΄ Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° Π·Π° създаванС Π½Π° микросСрвиз ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½:

CLI-push β†’ ΠΠ΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° интСграция β†’ ΠŸΠ΅Ρ‡Π΅Π½Π΅ β†’ Π”Π΅ΠΏΠ»ΠΎΠΉ β†’ Π˜Π·ΠΊΡƒΡΡ‚Π²Π΅Π½ΠΈ тСстовС β†’ ΠšΠ°Π½Π°Ρ€Π΅Π½ΠΈ тСстовС β†’ Squeeze Testing β†’ ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡ β†’ ΠžΠ±ΡΠ»ΡƒΠΆΠ²Π°Π½Π΅.

НСка ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡ€Π΅Π· нСя Ρ‚ΠΎΡ‡Π½ΠΎ Π² Ρ‚Π°Π·ΠΈ послСдоватСлност.

CLI-push

β€’ БъздаванС Π½Π° микросСрвиз.
Π”ΡŠΠ»Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΡ…ΠΌΠ΅, Π·Π° Π΄Π° Π½Π°ΡƒΡ‡ΠΈΠΌ всСки Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄Π° ΠΏΡ€Π°Π²ΠΈ микросСрвизи. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ написахмС ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΈ инструкции Π² Confluence. Но схСмитС сС промСняха ΠΈ Π΄ΠΎΠΏΡŠΠ»Π²Π°Ρ…Π°. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ β€” ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° сС Π±ΡƒΡ‚ΠΈΠ»Ρ‡Π½ΠΎ Π³ΡŠΡ€Π»ΠΎ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° ΠΏΡŠΡ‚Ρ: Π·Π° стартиранС Π½Π° микросСрвизи сС ΠΊΠΎΠ½ΡΡƒΠΌΡ€ΠΈΡ€Π°ΡˆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²Ρ€Π΅ΠΌΠ΅, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π΅ допустимо, ΠΈ всС ΠΏΠ°ΠΊ ΠΏΡ€ΠΈ тяхното създаванС чСсто Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ…Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ проста CLI-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, която Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π° основнитС ΡΡ‚ΡŠΠΏΠΊΠΈ ΠΏΡ€ΠΈ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° микросСрвиз. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ тя замСства ΠΏΡŠΡ€Π²ΠΈΡ git push. Π•Ρ‚ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π°Π²ΠΈ тя.

β€” Бъздава услуга ΠΏΠΎ шаблон β€” ΡΡ‚ΡŠΠΏΠΊΠ° ΠΏΠΎ ΡΡ‚ΡŠΠΏΠΊΠ°, Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° "wizard". ИмамС шаблони Π·Π° основнитС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° Авито: PHP, Golang ΠΈ Python.

β€” Π‘ Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π° срСда Π·Π° Π»ΠΎΠΊΠ°Π»Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° машина β€” стартира сС Minikube, Helm-Ρ‡Π°Ρ€Ρ‚ΠΎΠ²Π΅ сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ ΠΈ стартират Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π² локалния kubernetes.

β€” Π‘Π²ΡŠΡ€Π·Π²Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. На Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π΅ ΠΌΡƒ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π·Π½Π°Π΅ IP, Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π°, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π½ΡƒΠΆΠ½Π°Ρ‚Π° ΠΌΡƒ Π‘Π” β€” Π±ΠΈΠ»ΠΎ Ρ‚ΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, Π² Stage ΠΈΠ»ΠΈ Π½Π° продукция. ОсвСн Ρ‚ΠΎΠ²Π°, Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ сС Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π° Π²Π΅Π΄Π½Π°Π³Π° Π² отказоустойчива конфигурация ΠΈ с балансировка.

β€” Π˜Π·Π²ΡŠΡ€ΡˆΠ²Π° сама live-сборка. Π”Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ» промяна Π² микросСрвиза Ρ‡Ρ€Π΅Π· своята IDE. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° Π²ΠΈΠΆΠ΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма ΠΈ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅Π·Π°Ρ€Π΅ΠΆΠ΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ (Π·Π° Golang) ΠΈ рСстартира. Π—Π° PHP просто ΠΏΡ€ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ дирСкторията Π²ΡŠΡ‚Ρ€Π΅ Π² ΠΊΡƒΠ±Π° ΠΈ Ρ‚Π°ΠΌ live-reload става "Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΎΠΌ".

β€” Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π° автотСстовС. Под Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° шаблони, Π½ΠΎ напълно подходящи Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅.

β€’ Π”Π΅ΠΏΠ»ΠΎΠΉ Π½Π° микросСрвис..

ΠŸΡ€Π΅Π΄ΠΈ, Ρ€Π°Π·Π²ΡŠΡ€Ρ‚Π°Π½Π΅Ρ‚ΠΎ Π½Π° микросСрвис бСшС ΠΌΠ°Π»ΠΊΠΎ досадно. Π—Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ бяха Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ:

I. Dockerfile.

II. ΠšΠΎΠ½Ρ„ΠΈΠ³.
III. Helm-Ρ‡Π°Ρ€Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ сам ΠΏΠΎ сСбС си Π΅ ΠΎΠ±Π΅ΠΌΠ΅Π½ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π°:

β€” самитС Ρ‡Π°Ρ€Ρ‚ΠΎΠ²Π΅;
β€” шаблони;
β€” ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ стойности, Π²Π·Π΅ΠΌΠ°Ρ‰ΠΈ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ срСди.

ΠžΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ…ΠΌΠ΅ сС ΠΎΡ‚ Π±ΠΎΠ»ΠΊΠ°Ρ‚Π° ΠΏΡ€ΠΈ прСнаписванСто Π½Π° манифСститС Π½Π° Kubernetes ΠΈ сСга Ρ‚Π΅ сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ. Но Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ, опростихмС Π΄Π΅ΠΏΠ»ΠΎΠΉ процСса Π΄ΠΎ крайност. Π‘Π΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ Dockerfile, Π° цСлият ΠΊΠΎΠ½Ρ„ΠΈΠ³ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ записва Π² Π΅Π΄ΠΈΠ½-СдинствСн ΠΊΡ€Π°Ρ‚ΡŠΠΊ Ρ„Π°ΠΉΠ» app.toml.

Какво Π·Π½Π°Π΅ΠΌ Π·Π° микросСрвиситС

Π”Π°, ΠΈ Π² самия app.toml сСга всичко ΠΎΡ‚Π½Π΅ΠΌΠ° ΠΌΠΈΠ½ΡƒΡ‚ΠΊΠ°. ЗаписвамС, къдС ΠΈ ΠΊΠΎΠ»ΠΊΠΎ копия Π½Π° услугата трябва Π΄Π° пуснСм (Π½Π° dev ΡΡŠΡ€Π²ΡŠΡ€Π°, Π² staging, Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΡŠΠ½Π°), посочвамС зависимоститС ΠΌΡƒ. ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ€Π΅Π΄Π° size = "small" Π² Π±Π»ΠΎΠΊΠ° [engine]. Π’ΠΎΠ²Π° Π΅ Π»ΠΈΠΌΠΈΡ‚ΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ бъдС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π½Π° услугата Ρ‡Ρ€Π΅Π· Kubernetes.

ΠΠ°Ρ‚Π°Ρ‚ΡŠΠΊ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° конфигурацията Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Helm-Ρ‡Π°Ρ€Ρ‚ΠΈ ΠΈ сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Π²Ρ€ΡŠΠ·ΠΊΠΈ с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.

β€’ Основна валидация. Π’Π°ΠΊΠΈΠ²Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡΡŠΡ‰ΠΎ са Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ.
Врябва Π΄Π° прослСдим:
β€” ΠΈΠΌΠ° Π»ΠΈ Dockerfile;
β€” ΠΈΠΌΠ° Π»ΠΈ app.toml;
β€” Π½Π°Π»ΠΈΡ‡Π½Π° Π»ΠΈ Π΅ докумСнтация;
β€” Π½Π°Ρ€Π΅Π΄Π΅Π½ΠΈ Π»ΠΈ са зависимоститС;
β€” Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π»ΠΈ са ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° Π°Π»Π΅Ρ€Ρ‚ΠΈ.
По послСдната Ρ‚ΠΎΡ‡ΠΊΠ°: ΡΠΎΠ±ΡΡ‚Π²Π΅Π½ΠΈΠΊΡŠΡ‚ Π½Π° услугата сам ΡƒΠΊΠ°Π·Π²Π°, ΠΊΠ°ΠΊΠ²ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π·Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ наблюдавани.

β€’ ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π½Π° докумСнтация.
ВсС ΠΎΡ‰Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ място. ИзглСТда ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π½ΠΎ Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° Π΅ Ρ€Π΅ΠΊΠΎΡ€Π΄Π½ΠΎ β€žΡ‡Π΅ΡΡ‚ΠΎ Π·Π°Π±Ρ€Π°Π²ΡΠ΅ΠΌΠΎβ€œ, Π° ΠΎΡ‚Ρ‚Π°ΠΌ ΠΈ уязвимо Π·Π²Π΅Π½ΠΎ Π² Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π°.
НСобходимо Π΅ Π΄Π° ΠΈΠΌΠ° докумСнтация Π·Π° всСки микросСрвис. Π’ΠΊΠ»ΡŽΡ‡Π²Π° слСднитС Π±Π»ΠΎΠΊΠΎΠ²Π΅.

I. ΠšΡ€Π°Ρ‚ΠΊΠΎ описаниС Π½Π° услугата. Π‘ΡƒΠΊΠ²Π°Π»Π½ΠΎ няколко изрСчСния Π·Π° Ρ‚ΠΎΠ²Π°, ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡ€Π°Π²ΠΈ ΠΈ Π·Π° ΠΊΠ°ΠΊΠ²ΠΎ слуТи.

II. Π’Ρ€ΡŠΠ·ΠΊΠ° към Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π° Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π°. Π’Π°ΠΆΠ½ΠΎ Π΅, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΏΡ€ΠΈ Π±ΡŠΡ€Π· ΠΏΠΎΠ³Π»Π΅Π΄ Π΄Π° сС Ρ€Π°Π·Π±Π΅Ρ€Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π»ΠΈ Redis Π·Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚ΠΎ основно Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² постоянСн Ρ€Π΅ΠΆΠΈΠΌ. Π’ Авито Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ‚ΠΎΠ²Π° Π΅ Π²Ρ€ΡŠΠ·ΠΊΠ° към Confluence.

III. Runbook. ΠšΡ€Π°Ρ‚ΠΊΠΎ Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Π·Π° стартиранС Π½Π° услугата ΠΈ особСноститС ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с нСя.

IV. FAQ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅, с ΠΊΠΎΠΈΡ‚ΠΎ Π²Π°ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ»Π΅Π³ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ‚ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с услугата.

V. ОписаниС Π½Π° endpoints Π·Π° API. Ако случайно Π½Π΅ стС посочили дСстинации, вСроятно Π²Π°ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ»Π΅Π³ΠΈ, Ρ‡ΠΈΠΈΡ‚ΠΎ микросСрвизи са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с вашия, Ρ‰Π΅ ΠΏΠ»Π°Ρ‰Π°Ρ‚ Π·Π° Ρ‚ΠΎΠ²Π°. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π·Π° Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Swagger ΠΈ Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΎ brief.

VI. Π•Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ. Или ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ към ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, функционалност ΠΈΠ»ΠΈ структурно Π·Π²Π΅Π½ΠΎ Π½Π° компанията ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ услугата. ΠŸΠΎΠΌΠ°Π³Π°Ρ‚ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π±ΡŠΡ€Π·ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π°Π»ΠΈ Π½Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚Π΅ функционалност, която Π²Π°ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ»Π΅Π³ΠΈ са прСдоставили ΠΏΡ€Π΅Π΄ΠΈ сСдмица Π·Π° ΡΡŠΡ‰ΠΈΡ бизнСс ΡŽΠ½ΠΈΡ‚.

VII. БобствСник ΠΈΠ»ΠΈ собствСници Π½Π° услугата. Π’ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° PaaS Ρ‚ΠΎΠΉ β€” ΠΈΠ»ΠΈ Ρ‚Π΅ β€” ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ, Π½ΠΎ Π·Π° сигурност изисквамС ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π΄Π° Π³ΠΈ посочи ΠΈ Ρ€ΡŠΡ‡Π½ΠΎ.

Накрая, Π΄ΠΎΠ±Ρ€Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π΅ Π΄Π° сС ΠΏΡ€Π°Π²ΠΈ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° докумСнтацията, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° Π½Π° ΠΊΠΎΠ΄Π°.

Continuous Integration

  • ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅.
  • БъздаванС Π½Π° ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π² TeamCity.
  • ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΡ€Π°Π²Π°.
  • НамиранС Π½Π° собствСницитС Π½Π° услугата. Π’ΡƒΠΊ Π΅ Ρ…ΠΈΠ±Ρ€ΠΈΠ΄Π½Π° схСма β€” Ρ€ΡŠΡ‡Π½ΠΎ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° автоматизация ΠΎΡ‚ PaaS. ΠŸΡŠΠ»Π½Π°Ρ‚Π° автоматизация Π΄Π°Π²Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° услугитС Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π΄Ρ€ΡƒΠ³ Π΅ΠΊΠΈΠΏ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΊΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ Π½Π° услугата сС Π΅ ΡƒΠ²ΠΎΠ»Π½ΠΈΠ».
  • РСгистрация Π½Π° услугата Π² Atlas (Π²ΠΆ. ΠΏΠΎ-Π³ΠΎΡ€Π΅). Π‘ всички Π½Π΅Π³ΠΎΠ²ΠΈ собствСници ΠΈ зависимости.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅ Π΄Π°Π»ΠΈ срСд тях няма ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ опасни. НапримСр, Π² Π΅Π΄Π½Π° ΠΎΡ‚ тях ΠΌΠΎΠΆΠ΅ Π΄Π° сС появи ΠΊΠΎΠΌΠ°Π½Π΄Π° alter table ΠΈΠ»ΠΈ Π½Π΅Ρ‰ΠΎ Π΄Ρ€ΡƒΠ³ΠΎ, способно Π΄Π° Π½Π°Ρ€ΡƒΡˆΠΈ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚Ρ‚Π° Π½Π° схСмата Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° услугата. Π’ΠΎΠ³Π°Π²Π° миграцията Π½Π΅ сС изпълнява, Π° сС поставя Π² Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ‚ β€” PaaS трябва Π΄Π° сигнализира Π½Π° собствСника Π½Π° услугата, ΠΊΠΎΠ³Π°Ρ‚ΠΎ станС бСзопасно Π΄Π° сС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈ.

Bake

БлСдващият Π΅Ρ‚Π°ΠΏ Π΅ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° услугитС ΠΏΡ€Π΅Π΄ΠΈ внСдряванС.

  • БглобяванС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. По класичСския Π½Π°Ρ‡ΠΈΠ½ β€” Π² Docker ΠΎΠ±Ρ€Π°Π·.
  • Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Helm Ρ‡Π°Ρ€Ρ‚ΠΎΠ²Π΅ Π·Π° самата услуга ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ с нСя рСсурси. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ кСш. Π’Π΅ сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с конфигурацията app.toml, която Π΅ Π±ΠΈΠ»Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π° Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° CLI-push.
  • БъздаванС Π½Π° Π±ΠΈΠ»Π΅Ρ‚ΠΈ Π·Π° администраторитС Π·Π° отварянС Π½Π° ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅ (ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ).
  • ИзпълнСниС Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π½ΠΈ тСстовС ΠΈ изчисляванС Π½Π° code coverage.. Ако ΠΏΠΎΠΊΡ€ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π° Π΅ ΠΏΠΎΠ΄ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎΡ‚ΠΎ ΠΏΡ€Π°Π³ΠΎΠ²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, вСроятно услугата няма Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ Π½Π° Π΄Π΅ΠΏΠ»ΠΎΠΉ. Ако Π΅ Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ‚Π° Π½Π° допустимото, услугата Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ "пСсимистичСн" ΠΊΠΎΠ΅Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚: Π² Ρ‚Π°ΠΊΡŠΠ² случай, ΠΏΡ€ΠΈ липса Π½Π° подобрСния Π½Π° показатСля с Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅, Ρ‡Π΅ няма прогрСс ΠΏΠΎ частта с тСстовСтС (ΠΈ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄ΠΎΠ±Ρ€Π΅ Π½Π΅Ρ‰ΠΎ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎ Π²ΡŠΠΏΡ€ΠΎΡΠ°).
  • ΠžΡ‚Ρ‡ΠΈΡ‚Π°Π½Π΅ Π½Π° ограничСнията ΠΏΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ CPU. Основно пишСм микросСрвиси Π½Π° Golang ΠΈ Π³ΠΈ стартирамС Π² Kubernetes. ΠžΡ‚Ρ‚ΡƒΠΊ ΠΈΠ΄Π²Π° Π΅Π΄Π½Π° особСност, ΡΠ²ΡŠΡ€Π·Π°Π½Π° с особСноститС Π½Π° Π΅Π·ΠΈΠΊΠ° Golang: ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΏΡ€ΠΈ стартиранС сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ всички ядра Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π°, Π°ΠΊΠΎ Π½Π΅ бъдС Π·Π°Π΄Π°Π΄Π΅Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° GOMAXPROCS явно ΠΈ ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π° Π΅Π΄Π½Π° машина сС стартират няколко Ρ‚Π°ΠΊΠΈΠ²Π° услуги, Ρ‚Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° сС ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€Π°Ρ‚ Π·Π° рСсурси, ΠΏΡ€Π΅Ρ‡Π΅ΠΉΠΊΠΈ си Π²Π·Π°ΠΈΠΌΠ½ΠΎ. На Π³Ρ€Π°Ρ„ΠΈΠΊΠΈΡ‚Π΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ сС промСня Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС, Π°ΠΊΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ бъдС стартирано Π±Π΅Π· конкурСнция ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΡΡŠΡ€Π΅Π²Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π° рСсурси. (Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΈΡ‚Π΅ са Π½Π°Π»ΠΈΡ‡Π½ΠΈ) Ρ‚ΡƒΠΊ).

Какво Π·Π½Π°Π΅ΠΌ Π·Π° микросСрвиситС

Π’Ρ€Π΅ΠΌΠ΅ Π·Π° изпълнСниС, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ β€” ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅. ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ: 643ms, ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ: 42ms. Π‘Π½ΠΈΠΌΠΊΠ°Ρ‚Π° Π΅ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌΠ°.

Какво Π·Π½Π°Π΅ΠΌ Π·Π° микросСрвиситС

Π’Ρ€Π΅ΠΌΠ΅ Π·Π° опСрация, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ β€” ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅. ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ: 14091 ns, ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ: 151 ns. Π‘Π½ΠΈΠΌΠΊΠ°Ρ‚Π° Π΅ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌΠ°.

На Π΅Ρ‚Π°ΠΏΠ° Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π½Π° сборката Ρ‚Π°Π·ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π·Π°Π΄Π°Π΄Π΅Π½Π° явно ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° automaxprocs Π½Π° ΠΌΠΎΠΌΡ‡Π΅Ρ‚Π°Ρ‚Π° ΠΎΡ‚ Uber.

Π”Π΅ΠΏΠ»ΠΎΠΉ

β€’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΈΡ‚Π΅. ΠŸΡ€Π΅Π΄ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ Π΄Π° доставямС сборкитС Π½Π° услугата Π² ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ срСди, Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ слСдното:
β€” API ΠΊΡ€Π°ΠΉΠ½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ.
β€” Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ Π½Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ ΠΎΡ‚ API ΠΊΡ€Π°ΠΉΠ½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ с схСмата.
β€” Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅.
β€” Π—Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠΈ ΠΏΡ€ΠΈ заявкитС към услугата (Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ‚ΠΎΠ²Π° ΠΏΡ€Π°Π²ΠΈ netramesh)
β€” Π—Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ Π½Π° собствСника ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π² ΡˆΠΈΠ½Π°Ρ‚Π° (event bus). Π’ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° прослСдяванС Π½Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° услугитС Ρ‡Ρ€Π΅Π· ΡˆΠΈΠ½Π°Ρ‚Π°. Π’ ΡˆΠΈΠ½Π°Ρ‚Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΏΠΎΠ²ΠΈΡˆΠ°Π²Π°Ρ‚ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° услугитС (ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ Π΄ΠΎΠ±Ρ€Π΅), Ρ‚Π°ΠΊΠ° ΠΈ бизнСс Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° услугитС (ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ лошо!). И Ρ‚ΠΎΡ‡Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‚Π°Π·ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚ става ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΊΠΎΠΉ пишС ΠΈ Ρ‡Π΅Ρ‚Π΅ ΡˆΠΈΠ½Π°Ρ‚Π° ΠΏΠΎΠΌΠ°Π³Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° сС раздСлят услугитС.

Към ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π² Авито ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΈΡ‚Π΅ Π½Π΅ са ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ тСхният Π±Ρ€ΠΎΠΉ сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°. ΠšΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ споразумСния Π² Ρ„ΠΎΡ€ΠΌΠ°, ясна ΠΈ ΡƒΠ΄ΠΎΠ±Π½Π° Π·Π° Π΅ΠΊΠΈΠΏΠ°, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-лСсно Π΅ Π΄Π° сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΡΡŠΠ³Π»Π°ΡΡƒΠ²Π°Π½ΠΎΡΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ микросСрвизитС.

Π‘ΠΈΠ½Ρ‚Π΅Ρ‚ΠΈΡ‡Π½ΠΈ тСстовС

β€’ ВСстванС Π² Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ½Ρ‚ΡƒΡ€. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ опСнсорсния Hoverfly.io. ΠŸΡŠΡ€Π²ΠΎ, Ρ‚ΠΎΠΉ записва Ρ€Π΅Π°Π»Π½ΠΎΡ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π° услугата, слСд Ρ‚ΠΎΠ²Π° β€” ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡Π½ΠΎ Π² затворСния ΠΊΠΎΠ½Ρ‚ΡƒΡ€ β€” Π³ΠΎ Π΅ΠΉΠΌΡƒΠ»ΠΈΡ€Π°.

β€’ Натоварващо тСстванС. Π‘Ρ‚Π°Ρ€Π°Π΅ΠΌ сС всички услуги Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ΠΌ Π΄ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½Π° производитСлност. И всички вСрсии Π½Π° всяка услуга трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎΠ΄Π»Π°Π³Π°Π½ΠΈ Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Ρ‰ΠΎ тСстванС β€” ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° производитСлност Π½Π° услугата ΠΈ Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° с ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ‚Π΅ вСрсии Π½Π° ΡΡŠΡ‰Π°Ρ‚Π° услуга. Ако слСд ΡŠΠΏΠ΄Π΅ΠΉΡ‚ Π½Π° услугата Π½Π΅ΠΉΠ½Π°Ρ‚Π° производитСлност Π΅ спаднала с 50%, Ρ‚ΠΎΠ²Π° Π΅ ясният сигнал Π·Π° собствСницитС ѝ: трябва Π΄Π° сС Π·Π°Π΄ΡŠΠ»Π±ΠΎΡ‡Π°Ρ‚ Π² ΠΊΠΎΠ΄Π° ΠΈ Π΄Π° поправят ситуацията.
ΠžΡ‚ ΡΡŠΠ±Ρ€Π°Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ сС Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΠΈΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ ΠΈ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎ услугата ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈ Π½Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅.

ΠŸΡ€ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Ρ‰ΠΎ тСстванС провСрявамС Π΄Π°Π»ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° рСсурси отговаря Π½Π° Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ‚Π΅ ограничСния. И сС ΡΡŠΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡Π°Π²Π°ΠΌΠ΅ основно Π²ΡŠΡ€Ρ…Ρƒ СкстрСмумитС.

a) Π“Π»Π΅Π΄Π°ΠΌΠ΅ Π½Π° ΠΎΠ±Ρ‰ΠΎΡ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅.
β€” Ако Π΅ Ρ‚Π²ΡŠΡ€Π΄Π΅ ниско β€” вСроятно Π½Π΅Ρ‰ΠΎ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ, Π°ΠΊΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ рязко Π΅ спаднало с няколко ΠΏΡŠΡ‚ΠΈ.
β€” Ако Π΅ Ρ‚Π²ΡŠΡ€Π΄Π΅ високо β€” Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π΅ оптимизация.

b) Π“Π»Π΅Π΄Π°ΠΌΠ΅ Π½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΠΎ RPS.
Π’ΡƒΠΊ слСдим Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° ΠΈ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° вСрсия, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΎΠ±Ρ‰ΠΎΡ‚ΠΎ количСство. НапримСр, Π°ΠΊΠΎ услугата прСдоставя 100 rps β€” Π·Π½Π°Ρ‡ΠΈ Π΅ ΠΈΠ»ΠΈ Π·Π»Π΅ написана, ΠΈΠ»ΠΈ Ρ‚ΠΎΠ²Π° Π΅ спСцификата ѝ, Π½ΠΎ Π² ΠΊΠ°ΠΊΡŠΠ²Ρ‚ΠΎ ΠΈ случай, Ρ‚ΠΎΠ²Π° Π΅ ΠΏΠΎΠ²ΠΎΠ΄ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ Π½Π° услугата.
Ако пък RPS Π΅ Ρ‚Π²ΡŠΡ€Π΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‚ΠΎΠ³Π°Π²Π° вСроятно ΠΈΠΌΠ° някаква Π³Ρ€Π΅ΡˆΠΊΠ° ΠΈ някой ΠΎΡ‚ endpoint-ΠΎΠ²Π΅Ρ‚Π΅ Π΅ спрял Π΄Π° изпълнява ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ‚Π° натоварСност, Π° просто сработва някакъв return true;

Canary тСстовС

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡ€Π΅Π· синтСтичнитС тСстовС, провСрявамС Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° микросСрвиса с малък Π±Ρ€ΠΎΠΉ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. Π—Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ, с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° част ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠ°Ρ‚Π° аудитория Π½Π° услугата β€” ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ 0,1%. На Ρ‚ΠΎΠ·ΠΈ Π΅Ρ‚Π°ΠΏ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° сС Π·Π°Π²Π΅Π΄Π°Ρ‚ тСхничСскитС ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ°Ρ‚ максимално Π±ΡŠΡ€Π·ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² услугата. ΠœΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° canary тСст Π΅ 5 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ, основното β€” 2 часа. Π—Π° слоТни услуги Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π² Ρ€ΡŠΡ‡Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ.
АнализирамС:
β€” ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, спСцифични Π·Π° Π΅Π·ΠΈΠΊΠ°, Π² частност, Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈ php-fpm;
β€” Π³Ρ€Π΅ΡˆΠΊΠΈ Π² Sentry;
β€” статуси Π½Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅;
β€” Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ (response time), Ρ‚ΠΎΡ‡Π½ΠΎ ΠΈ срСдно;
β€” латСнтност;
β€” ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ ΠΈ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ;
β€” ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ.

Squeeze Testing

Π’Π΅ΡΡ‚ΡŠΡ‚ Ρ‡Ρ€Π΅Π· изстискванС ΡΡŠΡ‰ΠΎ сС Π½Π°Ρ€ΠΈΡ‡Π° тСстиранС Ρ‡Ρ€Π΅Π· «изплъзванС». ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡΡ‚Π° Π΅ въвСдСна Π² Netflix. ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° ΠΌΡƒ идСя Π΅, Ρ‡Π΅ ΠΏΡŠΡ€Π²ΠΎ запълвамС Π΅Π΄ΠΈΠ½ инстанс с Ρ€Π΅Π°Π»Π΅Π½ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π΄ΠΎ ΠΎΡ‚ΠΊΠ°Π· ΠΈ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ опрСдСлямС нСговия ΠΏΡ€Π΅Π΄Π΅Π». Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° добавямС ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ инстанс ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°ΠΌΠ΅ Ρ‚Π°Π·ΠΈ Π΄Π²ΠΎΠΉΠΊΠ° β€” ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π΄ΠΎ максимума; Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ какъв Π΅ тСхният Ρ‚Π°Π²Π°Π½ ΠΈ Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° с ΠΏΡŠΡ€Π²ΠΈΡ «сквиз». И Ρ‚Π°ΠΊΠ° добавямС ΠΏΠΎ Π΅Π΄ΠΈΠ½ инстанс Π² ΡΡ‚ΡŠΠΏΠΊΠ° ΠΈ изчислявамС закономСрността Π² ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅.
Π”Π°Π½Π½ΠΈΡ‚Π΅ ΠΎΡ‚ тСстовСтС Ρ‡Ρ€Π΅Π· «изстискванС» ΡΡŠΡ‰ΠΎ сС Π½Π°Ρ‚Ρ€ΡƒΠΏΠ²Π°Ρ‚ Π² ΠΎΠ±Ρ‰Π° Π±Π°Π·Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΈΠ»ΠΈ обогатявамС Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ изкуствСни натоварвания, ΠΈΠ»ΠΈ изцяло замСнямС «синтСтиката» с тях.

ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡ

β€’ ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€Π°Π½Π΅. ΠšΠΎΠ³Π°Ρ‚ΠΎ пускамС услугата Π² продукция, слСдим ΠΊΠ°ΠΊ сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°. По наш ΠΎΠΏΠΈΡ‚ Π½Π°Π±Π»ΡŽΠ΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ само Π½Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° CPU Π½Π΅ Π΅ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ. Автоматичното ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ с Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈΠ½Π³ Π½Π° RPS Π² чист Π²ΠΈΠ΄ Ρ€Π°Π±ΠΎΡ‚ΠΈ, Π½ΠΎ само Π·Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ услуги, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ½Π»Π°ΠΉΠ½ стрийминг. Π’Π°ΠΊΠ° Ρ‡Π΅ ΠΏΡŠΡ€Π²ΠΎ сС фокусирамС Π²ΡŠΡ€Ρ…Ρƒ спСцифичнитС Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ.

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΏΡ€ΠΈ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅:
β€” ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° CPU ΠΈ RAM,
β€” Π±Ρ€ΠΎΠΉ заявки Π² ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π°,
β€” Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€,
β€” ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΡΡŠΠ±Ρ€Π°Π½ΠΈΡ‚Π΅ историчСски Π΄Π°Π½Π½ΠΈ.

ΠŸΡ€ΠΈ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ Π½Π° услугата ΡΡŠΡ‰ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° слСдим зависимоститС ΠΉ, Π·Π° Π΄Π° Π½Π΅ сС ΠΎΠΊΠ°ΠΆΠ΅, Ρ‡Π΅ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΏΡŠΡ€Π²Π°Ρ‚Π° услуга Π² Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π°, Π° Ρ‚Π΅Π·ΠΈ, към ΠΊΠΎΠΈΡ‚ΠΎ тя сС ΠΎΠ±Ρ€ΡŠΡ‰Π°, сС сриват ΠΏΠΎΠ΄ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅. Π—Π° Π΄Π° установим ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π·Π° цСлия ΠΏΡƒΠ» ΠΎΡ‚ услуги, Π³Π»Π΅Π΄Π°ΠΌΠ΅ историчСскитС Π΄Π°Π½Π½ΠΈ Π½Π° Β«Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΊΠ°Ρ‚Π°Β» зависима услуга (ΠΏΠΎ комбинацията ΠΎΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ CPU ΠΈ RAM Π·Π°Π΅Π΄Π½ΠΎ със спСцифични ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ) ΠΈ Π³ΠΈ ΡΡŠΠΏΠΎΡΡ‚Π°Π²ΡΠΌΠ΅ с историчСскитС Π΄Π°Π½Π½ΠΈ Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‰Π°Ρ‚Π° услуга ΠΈ Ρ‚Π°ΠΊΠ° Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ ΠΏΠΎ цялата Β«Π²Π΅Ρ€ΠΈΠ³Π° ΠΎΡ‚ зависимости», ΠΎΡ‚Π³ΠΎΡ€Π΅ Π½Π°Π΄ΠΎΠ»Ρƒ.

ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ микроуслугата бъдС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ‚Ρ€ΠΈΠ³Π΅Ρ€ΠΈ към нСя.

Π•Ρ‚ΠΎ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈ ситуации, Π² ΠΊΠΎΠΈΡ‚ΠΎ Ρ‚Ρ€ΠΈΠ³Π΅Ρ€ΠΈΡ‚Π΅ сработват.
β€” ΠžΡ‚ΠΊΡ€ΠΈΡ‚ΠΈ са ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ опасни ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ.
β€” Бяха ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ обновлСния Π·Π° сигурност.
β€” Π‘Π°ΠΌΠ°Ρ‚Π° услуга ΠΎΡ‚Π΄Π°Π²Π½Π° Π½Π΅ Π΅ обновявана.
β€” НатоварванСто Π½Π° услугата Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ ΠΈΠ»ΠΈ някои ΠΎΡ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΈ ΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΈΠ·Π»ΠΈΠ·Π°Ρ‚ извън Π½ΠΎΡ€ΠΌΠ°Ρ‚Π°.
β€” Услугата Π²Π΅Ρ‡Π΅ Π½Π΅ отговаря Π½Π° Π½ΠΎΠ²ΠΈΡ‚Π΅ изисквания Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.

Част ΠΎΡ‚ Ρ‚Ρ€ΠΈΠ³Π΅Ρ€ΠΈΡ‚Π΅ отговаря Π·Π° стабилността Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π°, Π° част β€” ΠΊΠ°Ρ‚ΠΎ функция Π·Π° обслуТванС Π½Π° систСмата β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, някаква услуга ΠΎΡ‚Π΄Π°Π²Π½Π° Π½Π΅ Π΅ Π΄Π΅ΠΏΠ»ΠΎΠΈΡ€Π°Π½Π° ΠΈ основният ΠΉ ΠΎΠ±Ρ€Π°Π· Π΅ спряло Π΄Π° ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π° сигурност.

Π’Π°Π±Π»ΠΎ

Ако искамС Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ, Ρ‚Π°Π±Π»ΠΎΡ‚ΠΎ Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ ΠΏΠ°Π½Π΅Π» Π½Π° всичкитС Π½ΠΈ PaaS.

  • Π•Π΄ΠΈΠ½ΠΈΡ‡Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° информация Π·Π° услугата с Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΠΎΠΊΡ€ΠΈΡ‚ΠΈΠ΅ Π½Π° тСстовС, количСство ΠΎΠ±Ρ€Π°Π·ΠΈ, Π±Ρ€ΠΎΠΉ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΡŠΠ½ копия, вСрсии ΠΈ Ρ‚.Π½.
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ услуги ΠΈ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ (ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΈΡ‚Π΅ Π·Π° принадлСТност към бизнСс Π΅Π΄ΠΈΠ½ΠΈΡ†ΠΈ, ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΈ функционалности ΠΈ Ρ‚.Π½.)
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Π·Π° интСграция с инфраструктурни инструмСнти Π·Π° трасировка, Π»ΠΎΠ³ΠΈΡ€Π°Π½Π΅, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³.
  • Π•Π΄ΠΈΠ½Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° докумСнтация Π·Π° услугитС.
  • Π•Π΄ΠΈΠ½ΠΈΡ‡Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° всички ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΏΠΎ услугитС.

Какво Π·Π½Π°Π΅ΠΌ Π·Π° микросСрвиситС
Какво Π·Π½Π°Π΅ΠΌ Π·Π° микросСрвиситС
Какво Π·Π½Π°Π΅ΠΌ Π·Π° микросСрвиситС
Какво Π·Π½Π°Π΅ΠΌ Π·Π° микросСрвиситС

Π˜Ρ‚ΠΎΠ³ΠΎ

ΠŸΡ€Π΅Π΄ΠΈ внСдряванС Π½Π° PaaS новият Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ моТСшС Π΄Π° посвСти няколко сСдмици Π½Π° спСчСлванСто Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ инструмСнти Π·Π° стартиранС Π½Π° микросСрвиса Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΡŠΠ½: Kubernetes, Helm, β€” Π² Π½Π°ΡˆΠΈΡ‚Π΅ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ особСности TeamCity, настройка Π½Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ кСшовС Π² отказоустойчив Π²ΠΈΠ΄ ΠΈ Ρ‚.Π½. Π‘Π΅Π³Π° Ρ‚ΠΎΠ²Π° ΠΎΡ‚Π½Π΅ΠΌΠ° само няколко часа β€” Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρˆ quickstart ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡˆ самата услуга.

ΠŸΡ€Π°Π²ΠΈΡ… Π΄ΠΎΠΊΠ»Π°Π΄ ΠΏΠΎ Ρ‚Π°Π·ΠΈ Ρ‚Π΅ΠΌΠ° Π·Π° HighLoad++ 2018, ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΈΠ΄ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΈ прСзСнтацията.

Бонус Ρ‚Ρ€Π°ΠΊ Π·Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚ΠΎΡ…Π° Π΄ΠΎ края

Π’ Avito ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎ Ρ‚Ρ€ΠΈΠ΄Π½Π΅Π²Π½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΎΡ‚ ΠšΡ€ΠΈΡ Π ΠΈΡ‡Π°Ρ€Π΄ΡΡŠΠ½, СкспСрт ΠΏΠΎ микросСрвисна Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. ИскамС Π΄Π° ΠΏΠΎΠ΄Π°Ρ€ΠΈΠΌ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° участиС Π½Π° някого ΠΎΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ пост. Π’ΡƒΠΊ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π°.

ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‰Π΅ сС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ ΠΎΡ‚ 5 Π΄ΠΎ 7 август Π² Москва. Π’ΠΎΠ²Π° са Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ Π΄Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ напълно Π·Π°Π΅Ρ‚ΠΈ. ΠžΠ±ΡΠ΄ΡŠΡ‚ ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π² нашия офис, Π° избраният участник Π·Π°ΠΏΠ»Π°Ρ‰Π° сам ΠΏΡŠΡ‚ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ ΠΈ настаняванСто.

ЗаявлСния Π·Π° участиС ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΠΎΠ΄Π°Π²Π°Ρ‚ Π² Ρ‚Π°Π·ΠΈ Π³ΡƒΠ³Π» Ρ„ΠΎΡ€ΠΌΠ°. ΠžΡ‚ вас сС иска ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠ° Π·Π°Ρ‰ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Π²ΠΈΠ΅ трябва Π΄Π° посСтитС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ информация ΠΊΠ°ΠΊ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅ΠΌ с вас. ΠžΡ‚Π³ΠΎΠ²Π°Ρ€ΡΠΉΡ‚Π΅ Π½Π° английски, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΡƒΡ‡Π°ΡΡ‚Π½ΠΈΠΊΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ участва Π² ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠšΡ€ΠΈΡ Ρ‰Π΅ ΠΈΠ·Π±ΠΈΡ€Π° сам.
Π˜ΠΌΠ΅Ρ‚ΠΎ Π½Π° участника Π² ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‰Π΅ бъдС обявСно с актуализация Π½Π° Ρ‚ΠΎΠ·ΠΈ пост ΠΈ Π² социалнитС ΠΌΡ€Π΅ΠΆΠΈ Π½Π° Avito Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ (AvitoTech Π² Facebook, Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅, Twitter) Π½Π΅ ΠΏΠΎ-късно ΠΎΡ‚ 19 юли.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster