Legacy-сСрвисы Π² вашСй инфраструктурС

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! МСня Π·ΠΎΠ²ΡƒΡ‚ Паша ЧСрняк, я Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² QIWI, ΠΈ сСгодня я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎΠΌ. О Legacy.

НачнСм с вопроса: Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Legacy-сСрвис? Legacy-сСрвис β€” это сСрвис, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π΅ касался ΡƒΠΆΠ΅ нСдСлю/мСсяц/Π³ΠΎΠ΄? Или это сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» написан ΠΌΠ΅Π½Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ программистом, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π²Π°ΠΌΠΈ, Π½ΠΎ Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄? А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ-Ρ‚ΠΎ Π²Ρ‹ ΠΊΡ€ΡƒΡ‡Π΅ ΠΈ ΠΎΠΏΡ‹Ρ‚Π½Π΅Π΅. Или всС-Ρ‚Π°ΠΊΠΈ, Legacy-сСрвис β€” это сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° большС Π½Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΡ‚ΠΈΡ…ΠΎΠ½ΡŒΠΊΡƒ Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅ Π΅ΠΌΡƒ Π·Π°ΠΌΠ΅Π½Ρƒ? Π’ любом случаС, ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ сСрвис Π±Π΅Π· присмотра ΠΈ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ β€” это Π±ΠΎΠΌΠ±Π° Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ дСйствия, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·ΠΎΡ€Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠΏΠΎΠ·ΠΆΠ΅.

Legacy-сСрвисы Π² вашСй инфраструктурС

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π² QIWI Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с нашими Legacy-сСрвисами, я расскаТу, ΠΊΠ°ΠΊ ΠΌΡ‹ Π½Π°Π²Π΅Π»ΠΈ порядок с сСрвисами Π² КошСлькС. Π’ΠΎΡ‚ ΡƒΠΆΠ΅ Π΄Π²Π° Π³ΠΎΠ΄Π° я ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽ Π·Π° Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ. Если Π΅ΡΡ‚ΡŒ какая-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ρ‚ΠΎ всСгда Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ звонят ΠΌΠ½Π΅. МнС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ наглости Π² 11 часов Π²Π΅Ρ‡Π΅Ρ€Π° ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π΅Ρ‰Π΅, поэтому ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΡΠ°Π΄ΠΈΡ‚ΡŒΡΡ ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π²ΠΎ всСх сСрвисах нашСго Π΄ΠΎΠΌΠ΅Π½Π°.

Но я, ΠΊΠ°ΠΊ ΠΈ любой Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, люблю ΡΠΏΠ°Ρ‚ΡŒ ΠΏΠΎ Π½ΠΎΡ‡Π°ΠΌ, поэтому пытался Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с эксплуатациСй: «РСбята, Π° ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ ΠΌΠ½Π΅ Π·Π²ΠΎΠ½ΠΈΡ‚Π΅?Β». На Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π²ΠΏΠΎΠ»Π½Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π²ΠΈΠ΄Π° «А ΠΊΠΎΠΌΡƒ Π΅Ρ‰Π΅?Β». ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ я сСрвисы Ρ‡ΠΈΠ½ΡŽ, Π° Π΅Ρ‰Π΅ рСбята банально Π½Π΅ Π·Π½Π°ΡŽΡ‚, ΠΊΠΎΠΌΡƒ Π·Π²ΠΎΠ½ΠΈΡ‚ΡŒ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· рСтроспСктив ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ бСкэнда КошСлька ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΡƒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ написан список Π½Π°ΡˆΠΈΡ… сСрвисов, микросСрвисов ΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ΠΎΠ² кошСлька, ΠΈ отвСтствСнных Π·Π° Π½ΠΈΡ…. Π’Π°Π±Π»ΠΈΡ‡ΠΊΠΈ это Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π² Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ….

ΠšΡ€ΠΎΠΌΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΡ‚ΠΎ Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚, Ρ‚Π°ΠΌ Π±Ρ‹Π»ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° вопросы: ΠΊΡ‚ΠΎ Π²Π»Π°Π΄Π΅Π»Π΅Ρ† сСрвиса, ΠΊΡ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π΅Π³ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅, Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ». Π›ΡŽΠ΄ΠΈ, отвСтствСнныС Π·Π° этот сСрвис β€” люди, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π² случаС Ρ‡Π΅Π³ΠΎ Π΅Π³ΠΎ ΠΏΠΎΡ‡ΠΈΠ½ΠΈΡ‚ΡŒ. Π’Π»Π°Π΄Π΅Π»Π΅Ρ† сСрвиса ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ +2 Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ…, отвСтствСнныС Ρ‚ΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Ρ€Π΅Π²ΡŒΡŽ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ этот сСрвис ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π½Π° сСбя Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

ВрСмя шло, Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, миграция Π² Kubernetes, всякиС checkstyle, spotbugs, ktlint, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ² Π² ΠΊΠΈΠ±Π°Π½Π΅, autodiscovery сСрвисов вмСсто указания Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ адрСсов ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ полСзности. И Π²Π΅Π·Π΄Π΅ наша Ρ‚Π°Π±Π»ΠΈΡ†Π° позволяла ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΡˆΠΈΡ… сСрвисов. Для нас это Π½Π΅ΠΊΠΈΠΉ чСклист, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ этот сСрвис Π²ΠΎΡ‚ это Π΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠΌΠ΅Π΅Ρ‚, Π° Π²ΠΎΡ‚ этого ΠΏΠΎΠΊΠ° Π΅Ρ‰Π΅ Π½Π΅Ρ‚ Но ΠΌΡ‹ шли дальшС, понимая, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π½Π°ΡˆΠΈΡ… сСрвисах, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ слСдим, Π³Π΄Π΅ Π»Π΅ΠΆΠ°Ρ‚ исходники сСрвиса, Π³Π΄Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ таски Π½Π° сборку Π² TeamCity, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ дСплоятся, Π³Π΄Π΅ хранятся исходники end2end тСстов, Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ с Π³Ρ€ΡƒΠΌΠΈΠ½Π³ΠΎΠ² ΠΏΡ€ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, ΠΏΡ€ΠΎ принятыС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вся эта информация Π³Π΄Π΅-Ρ‚ΠΎ Π»Π΅ΠΆΠ°Π»Π° ΠΈ Π±Ρ‹Π»Π° ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ наша Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΠ° стала ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ отправлСния Π·Π° поиском ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Но QIWI, Ρ…ΠΎΡ‚ΡŒ ΠΈ сохраняСт Π΄ΡƒΡ… стартапа, являСтся большой ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ. Нам ΡƒΠΆΠ΅ 12 Π»Π΅Ρ‚, ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ: люди уходят, люди приходят, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. И ΠΌΡ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ Π½Π° своСм Π΄ΠΎΠΌΠ΅Π½Π΅ нСсколько сСрвисов, Π΄ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ Π½Π°ΠΌ Π² наслСдство. Π§Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ просто ΠΊΠ°ΠΊ-Ρ‚ΠΎ опосрСдованно ΠΎΡ‚Π½ΠΎΡΠΈΠ»ΠΎΡΡŒ ΠΊ ΠšΠΎΡˆΠ΅Π»ΡŒΠΊΡƒ, поэтому сСрвис Ρƒ нас Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° балансС. Π Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ β€” Π·Π°Ρ‡Π΅ΠΌ? БСрвис ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΈ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΠΈΠ»ΠΈΡ‚ΡŒ.

Как Π±Ρ‹Π²Π°Π΅Ρ‚

Но Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΡ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ сСрвис пСрСстаСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ свою Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ сломалось β€” ΠΊΠ°ΠΊ Π±Ρ‹Ρ‚ΡŒ Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации? БСрвис просто пСрСстал Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. БовсСм. А ΡƒΠ·Π½Π°Π»ΠΈ ΠΌΡ‹ ΠΎΠ± этом, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, случайно, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ»Π³ΠΎΠ΄Π°. Π’Π°ΠΊ Π±Ρ‹Π²Π°Π΅Ρ‚. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π·Π½Π°Π»ΠΈ β€” Π½Π° ΠΊΠ°ΠΊΠΈΡ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°Ρ… Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ сСрвис, Π³Π΄Π΅ Π»Π΅ΠΆΠ°Ρ‚ Π΅Π³ΠΎ исходники, ΠΈ всё. ΠœΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ git clone ΠΈ погруТаСмся Π² мысли Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ писал это нСсколько Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, Π½ΠΎ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ? Никакого ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ для нас Spring Boot, хотя ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΠΊΠΎ всСму, Ρƒ нас ΠΆΠ΅ full stack ΠΈ всС Ρ‚Π°ΠΊΠΎΠ΅. ΠœΠΎΠΆΠ΅Ρ‚, Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ Spring Framework? А Π²ΠΎΡ‚ ΠΈ Π½Π΅Ρ‚.

ΠŸΠ°Ρ€Π΅Π½ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всС это писал, Π±Ρ‹Π» суров ΠΈ писал всё Π½Π° чистой Java. ΠŸΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Ρ… инструмСнтов для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π΅Ρ‚, ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ идСя β€” Π½Π°Π΄ΠΎ Π±Ρ‹ это всС ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ. Π£ нас ΠΆΠ΅ микросСрвисы Π΅ΡΡ‚ΡŒ, Π° ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ тостСра доносится ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠ΅ «РСбята, микросСрвисы β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ!Β». Если Π²Π΄Ρ€ΡƒΠ³ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ, Π²Ρ‹ спокойно Π²ΠΎΠ·ΡŒΠΌΠ΅Ρ‚Π΅ любой язык ΠΈ всС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ.

Π¨Ρ‚ΡƒΠΊΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сСйчас Ρƒ нас Π½Π΅Ρ‚ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° этот сСрвис. КакиС Ρƒ Π½Π΅Π³ΠΎ Π±Ρ‹Π»ΠΈ бизнСс-трСбования, Ρ‡Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°Ρ‚ΡŒ этот сСрвис? А сСрвис ΠΏΠ»ΠΎΡ‚Π½ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ Π² ваши бизнСс-процСссы.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ скаТитС, насколько просто ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ сСрвис, Π½Π΅ зная Π΅Π³ΠΎ бизнСс-Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ? БСрвис нСпонятно ΠΊΠ°ΠΊ логируСтся, Π΅ΡΡ‚ΡŒ Π»ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ β€” нСизвСстно. КакиС ΠΎΠ½ΠΈ, Ссли Π΅ΡΡ‚ΡŒ β€” Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ нСизвСстно. И ΠΏΡ€ΠΈ этом Π² сСрвисС ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство классов нСпонятной бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ. Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠΊΠ° Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅ΠΌ.

Π‘ Ρ‡Π΅Π³ΠΎ ΠΆΠ΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ?

Π‘ самого Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ β€” с наличия тСстов. Π’Π°ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ написана Ρ…ΠΎΡ‚ΡŒ какая-Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ происходит. БСйчас ΠΆΠ΅ ΠΌΠΎΠ΄Π½ΠΎ TDD, Π½ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ ΠΆΠ΅ 5 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ всС Π±Ρ‹Π»ΠΎ практичСски Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ сСйчас: unit-тСстов ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅Ρ‚, Π΄Π° ΠΈ Π½Π΅ скаТут ΠΎΠ½ΠΈ Π½Π°ΠΌ Ρ€ΠΎΠ²Π½Ρ‹ΠΌ счСтом Π½ΠΈΡ‡Π΅Π³ΠΎ. Ну ΠΊΡ€ΠΎΠΌΠ΅ Ρ€Π°Π·Π²Π΅ Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΊΠ°ΠΊ подписываСтся ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ xml с ΠΊΠ°ΠΊΠΈΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ кастомным сСртификатом.

По ΠΊΠΎΠ΄Ρƒ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ, ΠΈ ΠΌΡ‹ ΠΏΠΎΡˆΠ»ΠΈΡ‚ΡŒ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Π΅Π³ΠΎ Ρ‚Π°ΠΌΠ½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ΅. ΠžΡ‚ΠΊΡ€Ρ‹Π»ΠΈ Π»ΠΎΠ³ΠΈ сСрвиса, нашли Π² Π½ΠΈΡ… ΠΎΡˆΠΈΠ±ΠΊΡƒ http-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, самоподписанный сСртификат, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π²ΡˆΠΈΡ‚ Π² рСсурсы прилоТСния, бСссовСстно ΠΏΡ€ΠΎΡ‚ΡƒΡ…. ΠœΡ‹ связались с нашими Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°ΠΌΠΈ, ΠΎΠ½ΠΈ попросили Π½ΠΎΠ²Ρ‹ΠΉ сСртификат, Π½Π°ΠΌ Π΅Π³ΠΎ выпустили ΠΈ сСрвис снова Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Казалось Π±Ρ‹, Ρ‡Ρ‚ΠΎ Π½Π° этом всС. Или Π½Π΅Ρ‚? ВсС-Ρ‚Π°ΠΊΠΈ сСрвис Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΎΠ½ выполняСт ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π½ΡƒΠΆΠ½Π° Π½Π°ΡˆΠ΅ΠΌΡƒ бизнСсу. Π£ нас Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΈΠ΅ стандарты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скорСС всСго Π΅ΡΡ‚ΡŒ ΠΈ Ρƒ вас. НапримСр, Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈ Π½Π° Π½ΠΎΠ΄Π΅ Π² ΠΏΠ°ΠΏΠΊΠ΅, Π° Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Ρ‚ΠΈΠΏΠ° эластика, ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π½ΠΈΡ… Π² ΠΊΠΈΠ±Π°Π½Π΅. МоТно Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΈ Π·ΠΎΠ»ΠΎΡ‚Ρ‹Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° сСрвис, количСство запросов Π½Π° сСрвис, ΠΆΠΈΠ² ΠΎΠ½ ΠΈΠ»ΠΈ Π½Π΅Ρ‚, ΠΊΠ°ΠΊ Ρƒ Π½Π΅Π³ΠΎ HealthCheck ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, эти ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ со спокойной ΡΠΎΠ²Π΅ΡΡ‚ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ вывСсти ΠΈΠ· эксплуатации ΠΈ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΡΡ‚Ρ€Π°ΡˆΠ½Ρ‹ΠΉ сон.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ добавляСм Ρ‚Π°ΠΊΠΎΠΉ старый сСрвис Π² Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΡƒ, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΠ΄Π΅ΠΌ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ· числа Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π΄ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»ΡŒΡ†Π΅Π², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ займутся сСрвисом ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄ΡƒΡ‚ Π΅Π³ΠΎ Π² порядок: Π½Π°ΠΏΠΈΡˆΡƒΡ‚ Ρ…ΠΎΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ сСрвисС, добавят ссылки Π½Π° Π΄Π°ΡˆΠ±ΠΎΡ€Π΄Ρ‹ Π² Π³Ρ€Π°Ρ„Π°Π½Π΅, Π½Π° таски сборки, ΠΏΠΎΠΉΠΌΡƒΡ‚, ΠΊΠ°ΠΊ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π΅ Ρ€ΡƒΠΊΠ°ΠΌΠΈ ΠΆΠ΅ Π½Π°ΠΊΠΈΠ΄Ρ‹Π²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ftp Ρ„Π°ΠΉΠ»ΠΈΠΊΠΈ.

Π“Π»Π°Π²Π½ΠΎΠ΅ β€” сколько вся эта полСзная Π΄ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»ΡŒΡ‡Π΅ΡΠΊΠ°Ρ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π·Π°ΠΉΠΌΠ΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ? Один спринт для Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎ врСмя 20%-Π³ΠΎ Ρ‚Π΅Ρ…Π΄ΠΎΠ»Π³Π°. А сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΡƒΡˆΠ»ΠΎ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ всю Π·Π°ΠΊΠΎΡ€Π΅Π½Π΅Π»ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΠΎ ΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ с Π½Π΅ΠΊΠΎΠΉ госсистСмой, привСсти Π΅Π΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ? Π― Π·Π° это Π½Π΅ Ρ€ΡƒΡ‡Π°ΡŽΡΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚, мСсяц, Π° ΠΌΠΎΠΆΠ΅Ρ‚, ΠΈ Π΄Π²Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π­Ρ‚ΠΎ я Π³ΠΎΠ²ΠΎΡ€ΡŽ ΠΏΠΎ ΠΎΠΏΡ‹Ρ‚Ρƒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ врСмя с ΠΊΠ°ΠΊΠΈΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½ΠΎΠ²Ρ‹ΠΌ сСрвисом.

ΠŸΡ€ΠΈ этом Π²Ρ‹Ρ…Π»ΠΎΠΏΠ° бизнСс-цСнности β€” Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ. БовсСм. Π’Π·ΡΡ‚ΡŒ сСрвис Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π° это Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ β€” Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. Но послС Π½Π°ΡˆΠΈΡ… стандартных Ρ‚Π°Π½Ρ†Π΅Π² с сСрвисом ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π½Π΅ΠΌ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ. Но сСйчас ΠΎΠ½ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ нашим стандартам Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвисов.

Как ΠΈΡ‚ΠΎΠ³, Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ подвСсти ΠΊ Π½Π΅ΠΊΠΎΠΌΡƒ ΠΏΠ»Π°Π½Ρƒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с Legacy-сСрвисами.

ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ legacy с нуля β€” плохая затСя
Π‘Π΅Ρ€ΡŒΠ΅Π·Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± этом. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹, ΠΈ видятся ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΏΠ»ΡŽΡΡ‹, Π½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½ΠΈΠΊΠΎΠΌΡƒ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ вас самих.

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ
ΠžΡ‚ΠΊΠΎΠΏΠ°ΠΉΡ‚Π΅ исходныС ΠΊΠΎΠ΄Ρ‹ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, сдСлайтС справочник, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈ Π³Π΄Π΅ Π»Π΅ΠΆΠΈΡ‚ ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚ΡƒΠ΄Π° ΠΆΠ΅ Π²ΠΏΠΈΡˆΠΈΡ‚Π΅ описаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (условный readme.md), Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Π³Π΄Π΅ Π»Π΅ΠΆΠ°Ρ‚ Π»ΠΎΠ³ΠΈ ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с этим послС вас, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ спасибо скаТСт.

ΠŸΠΎΠ½ΠΈΠΌΠ°ΠΉΡ‚Π΅ Π΄ΠΎΠΌΠ΅Π½
Если Π²Π°ΠΌ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄ΠΎΠΌΠ΅Π½, ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€ΡƒΠΊΡƒ Π½Π° ΠΏΡƒΠ»ΡŒΡΠ΅. Π—Π²ΡƒΡ‡ΠΈΡ‚ банально, Π΄Π°, Π½ΠΎ Π½Π΅ всС слСдят Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сСрвисы Π±Ρ‹Π»ΠΈ Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ ΠΊΠ»ΡŽΡ‡Π΅. А вСдь Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ стандартС Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‰Π΅.

Волько зарСгистрированныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² опросС. Π’ΠΎΠΉΠ΄ΠΈΡ‚Π΅, поТалуйста.

Π§Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ со своим legacy?

  • 31.5%ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°ΡŽ с нуля, Ρ‚Π°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅12

  • 52.6%ΠŸΠΎΡ‡Ρ‚ΠΈ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ Π²Ρ‹20

  • 10.5%Π£ нас Π½Π΅Ρ‚ legacy, ΠΌΡ‹ ΠΌΠΎΠ»ΠΎΠ΄Ρ†Ρ‹4

  • 5.2%ΠΠ°ΠΏΠΈΡˆΡƒ Π² коммСнтариях2

ΠŸΡ€ΠΎΠ³ΠΎΠ»ΠΎΡΠΎΠ²Π°Π»ΠΈ 38 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π’ΠΎΠ·Π΄Π΅Ρ€ΠΆΠ°Π»ΠΈΡΡŒ 20 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

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