Как ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ FaaS Π²Π½ΡƒΡ‚Ρ€ΠΈ Kubernetes ΠΈ ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°Π»ΠΈ Π² Π’ΠΈΠ½ΡŒΠΊΠΎΡ„Ρ„-Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π΅

Как ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ FaaS Π²Π½ΡƒΡ‚Ρ€ΠΈ Kubernetes ΠΈ ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°Π»ΠΈ Π² Π’ΠΈΠ½ΡŒΠΊΠΎΡ„Ρ„-Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π΅
Начиная с ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° Ρƒ нас Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π°Ρ‡Π°Π»ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Ρ‹. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ состязаниС ΠΏΡ€ΠΎΡˆΠ»ΠΎ вСсьма ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΎ Π½Π΅ΠΌ ΠΌΡ‹ писали Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½ ΠΏΡ€ΠΎΡˆΠ΅Π» Π² Ρ„Π΅Π²Ρ€Π°Π»Π΅ 2019 ΠΈ Π±Ρ‹Π» Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌ. О цСлях провСдСния послСднСго Π½Π΅ Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ писал ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€.

Участникам поставили довольно ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ с ΠΏΠΎΠ»Π½ΠΎΠΉ свободой Π² Π²Ρ‹Π±ΠΎΡ€Π΅ стСка Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ для Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π‘Ρ‹Π»ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ дСплоя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ скоринга ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° быстром ΠΏΠΎΡ‚ΠΎΠΊΠ΅ заявок, Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΈ большиС Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π° сама систСма β€” Π»Π΅Π³ΠΊΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ.

Π—Π°Π΄Π°Ρ‡Π° Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Π° мноТСством способов, Π² Ρ‡Π΅ΠΌ ΠΌΡ‹ ΡƒΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡŒ Π½Π° дСмонстрации Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² участников. На Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π΅ Π±Ρ‹Π»ΠΎ 6 ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎ 5 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, Ρƒ всСх участников Π±Ρ‹Π»ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Π½ΠΎ наша ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° оказалась Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ конкурСнтоспособной. Π£ нас получился ΠΎΡ‡Π΅Π½ΡŒ интСрСсный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

НашС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ – ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π° основС Serverless Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Kubernetes, которая сокращаСт врСмя Π²Ρ‹Π²ΠΎΠ΄Π° Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΠΈΡ‡ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½. Она позволяСт Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ для Π½ΠΈΡ… срСдС ΠΈ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΡ€ΠΎΠ΄ Π±Π΅Π· участия ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ скоринг

Π’ Tinkoff.ru, ΠΊΠ°ΠΊ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… соврСмСнных компаниях, Π΅ΡΡ‚ΡŒ скоринг ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π‘ΠΊΠΎΡ€ΠΈΠ½Π³ β€” это систСма ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π² основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Π»ΠΎΠΆΠ΅Π½Ρ‹ статистичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ….

НапримСр, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ обращаСтся ΠΊ Π½Π°ΠΌ с ΠΏΡ€ΠΎΡΡŒΠ±ΠΎΠΉ Π²Ρ‹Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ ΠΊΡ€Π΅Π΄ΠΈΡ‚, ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρƒ нас счСт ИП. Если ΠΌΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ Π²Ρ‹Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ ΠΊΡ€Π΅Π΄ΠΈΡ‚, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ, Π° Ссли счёт ИП, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΌΠΎΡˆΠ΅Π½Π½ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Π’ основС принятия Ρ‚Π°ΠΊΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π»Π΅ΠΆΠ°Ρ‚ матСматичСскиС ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ самой заявки, Ρ‚Π°ΠΊ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ нашСго Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Помимо скоринга ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ статистичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ сСрвиса формирования ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΏΠΎ Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌ для Π½Π°ΡˆΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².

ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ‚Π°ΠΊΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ самыС Ρ€Π°Π·Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Π²Ρ…ΠΎΠ΄Π΅. А Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π° Π²Ρ…ΠΎΠ΄ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° историчСских Π΄Π°Π½Π½Ρ‹Ρ… повысит ΠΊΠΎΠ½Π²Π΅Ρ€ΡΠΈΡŽ использования сСрвиса.

Π£ нас хранится мноТСство Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΈ объСм этой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ растСт. Π§Ρ‚ΠΎΠ±Ρ‹ скоринг Ρ€Π°Π±ΠΎΡ‚Π°Π», для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½ΡƒΠΆΠ½Ρ‹ Π΅Ρ‰Π΅ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° (ΠΈΠ»ΠΈ матСматичСскиС ΠΌΠΎΠ΄Π΅Π»ΠΈ), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ быстро ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΡƒ заявку ΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ‚ΡŒ, ΠΊΠΎΠΌΡƒ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΊΠ°Π·ΠΎΠΌ, Π° ΠΊΠΎΠΌΡƒ Π΅Ρ‰Π΅ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΡƒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ, ΠΎΡ†Π΅Π½ΠΈΠ² Π΅Π³ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π·Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ.

Для поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ Ρƒ нас ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ спСциализированная систСма принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ IBM WebSphere ILOG JRules BRMS, которая, Π½Π° основС Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°ΠΌΠΈ, Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ» Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ банковский ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒ.

На Ρ€Ρ‹Π½ΠΊΠ΅ сущСствуСт мноТСство Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ скоринговых ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈ самих систСм принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. ΠžΠ΄Π½Ρƒ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… систСм ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρƒ сСбя Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Но бизнСс растСт, дивСрсифицируСтся, увСличиваСтся ΠΊΠ°ΠΊ число ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², Ρ‚Π°ΠΊ ΠΈ количСство ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², Π° Π½Π°Ρ€Π°Π²Π½Π΅ с этим ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ΄Π΅ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ процСсс принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. НавСрняка Ρƒ людСй, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ систСмой, Π΅ΡΡ‚ΡŒ мноТСство ΠΈΠ΄Π΅ΠΉ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅, Π»ΡƒΡ‡ΡˆΠ΅, ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΈΠ΄Π΅ΠΈ со стороны. Π‘ Ρ†Π΅Π»ΡŒΡŽ сбора Π·Π΄Ρ€Π°Π²Ρ‹Ρ… ΠΈΠ΄Π΅ΠΉ ΠΈ Π±Ρ‹Π» ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ Новый Π₯Π°ΠΊΠ°Ρ‚ΠΎΠ½.

ΠŸΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½Π°Ρ Π·Π°Π΄Π°Ρ‡Π°

Π₯Π°ΠΊΠ°Ρ‚ΠΎΠ½ проводился 23 фСвраля. Участникам Π±Ρ‹Π»Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° боСвая Π·Π°Π΄Π°Ρ‡Π°: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ систСму принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, которая Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Π»Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ряду условий.

Нам рассказали, ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ систСма ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ слоТности Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΈ Π΅Π΅ эксплуатации, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊΠΈΠ΅ бизнСс-Ρ†Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ разрабатываСмая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°. Π£ систСмы Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ быстрый time-to-market Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠΎΠ΄ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠ² ΠΏΠΎΠΏΠ°Π΄Π°Π» Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС. А для входящСго ΠΏΠΎΡ‚ΠΎΠΊΠ° заявок врСмя принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ. Π’Π°ΠΊΠΆΠ΅ разрабатываСмая систСма Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ возмоТности cross-sell, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ приобрСсти Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π² случаС ΠΈΡ… одобрСния с нашСй стороны ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ заинтСрСсованности со стороны ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π·Π° ΠΎΠ΄Π½Ρƒ Π½ΠΎΡ‡ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ready-to-release ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½, Π΄Π° ΠΈ всю систСму Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ довольно слоТно, поэтому Π½Π°ΠΌ Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ хотя Π±Ρ‹ Π΅Ρ‘ Ρ‡Π°ΡΡ‚ΡŒ. Π‘Ρ‹Π» установлСн ряд Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ. МоТно Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ всС трСбования Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π§Ρ‚ΠΎ касаСтся Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Ρ‚ΠΎ Ρ‚ΡƒΡ‚ всСм участникам Π±Ρ‹Π»Π° прСдоставлСна полнСйшая свобода Π²Ρ‹Π±ΠΎΡ€Π°. МоТно Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ: Data streaming, machine learning, event sourcing, big data ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

НашС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΠ²Π΅Π΄Ρ нСбольшой ΠΌΠΎΠ·Π³ΠΎΠ²ΠΎΠΉ ΡˆΡ‚ΡƒΡ€ΠΌ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ для выполнСния поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ идСально ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ FaaS Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΉΡ‚ΠΈ подходящий Serverless Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€Π°Π²ΠΈΠ» Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ систСмы принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² Π’ΠΈΠ½ΡŒΠΊΠΎΡ„Ρ„ для управлСния инфраструктурой Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Kubernetes, ΠΌΡ‹ рассмотрСли нСсколько Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π° Π΅Π³ΠΎ основС, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Π½Π΅ΠΌ я расскаТу Π΄Π°Π»Π΅Π΅.

Для поиска Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивного Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΡ‹ взглянули Π½Π° Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π³Π»Π°Π·Π°ΠΌΠΈ Π΅Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ нашСй систСмы β€” Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΡ€Π°Π²ΠΈΠ». ΠŸΡ€Π°Π²ΠΈΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ Π½Π° сСрвСр, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π² нашСм случаС, Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ±Π»Π°ΠΊΠ΅, для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π‘ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  1. Аналитик ΠΏΠΈΡˆΠ΅Ρ‚ скрипт, ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΠ»ΠΈ ML модСль, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π° ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Mongodb, Π½ΠΎ Π²Ρ‹Π±ΠΎΡ€ систСмы хранСния Π΄Π°Π½Π½Ρ‹Ρ… здСсь Π½Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»Π΅Π½.
  2. ПослС тСстирования Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» Π½Π° историчСских Π΄Π°Π½Π½Ρ‹Ρ…, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ Π·Π°Π»ΠΈΠ²Π°Π΅Ρ‚ свой ΠΊΠΎΠ΄ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΡƒ.
  3. Π‘ Ρ†Π΅Π»ΡŒΡŽ обСспСчСния вСрсионирования вСсь ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒ Π² Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.
  4. Π§Π΅Ρ€Π΅Π· Π°Π΄ΠΌΠΈΠ½ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠΎΠ΄ Π² ΠΎΠ±Π»Π°ΠΊΠ΅ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Serverless ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· спСциализированный Enrichment-сСрвис, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для обогащСния ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ запроса Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ· Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Π’Π°ΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ сСрвис Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π»Π°ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π° с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ (ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ Π±Π΅Ρ€Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»), для поддСрТания Π΅Π΄ΠΈΠ½ΠΎΠΉ структуры Π΄Π°Π½Π½Ρ‹Ρ….

Π•Ρ‰Π΅ Π΄ΠΎ Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π° ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈΡΡŒ с Serverless-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. На сСгодняшний дСнь Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ довольно ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. НаиболСС популярными Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Kubernetes Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Fission, Open FaaS ΠΈ Kubeless. Π•ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ нСплохая ΡΡ‚Π°Ρ‚ΡŒΡ с ΠΈΡ… описаниСм ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ.

ВзвСсив всС ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы ΠΌΡ‹ остановили свой Π²Ρ‹Π±ΠΎΡ€ Π½Π° Fission. Π”Π°Π½Π½Ρ‹ΠΉ Serverless-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ довольно прост Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΈ удовлСтворяСт трСбованиям поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Fission Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π²Π΅ основныС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ: function ΠΈ environment. Π€ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ (function) являСтся кусок ΠΊΠΎΠ΄Π° написанный Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· языков для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ Fission-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ (environment). Бписок Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Python, JS, Go, JVM ΠΈ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… популярных языков ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.

Π’Π°ΠΊΠΆΠ΅ Fission способСн Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹Π΅ Π½Π° нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Π°Ρ€Ρ…ΠΈΠ². Π Π°Π±ΠΎΡ‚Π° Fission Π² кластСрС Kubernetes обСспСчиваСтся спСциализированными ΠΏΠΎΠ΄Π°ΠΌΠΈ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя сам Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ. Для осущСствлСния взаимодСйствия с ΠΏΠΎΠ΄Π°ΠΌΠΈ кластСра, Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ свой Ρ€ΠΎΡƒΡ‚, ΠΈ Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ GET ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠ»ΠΈ request body Π² случаС POST запроса.

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

Π’ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Π½Π°ΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ отсутствуСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π΅Π»ΠΈΠ·Π° ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠΎΠ΄ Π»Π΅Π³ΠΊΠΎ разворачиваСтся ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π’Π°ΠΊ ΠΆΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ инфраструктурой Π² Kubernetes позволяСт Π½Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ». А использованиС Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ… избавляСт ΠΎΡ‚ нСобходимости сопоставлСния real-time Π΄Π°Π½Π½Ρ‹Ρ… с историчСскими, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°.

Π§Ρ‚ΠΎ Ρƒ нас ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½ ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ с ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ (Π² Π½Π°ΡˆΠΈΡ… фантазиях), Π½Π°ΠΌ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ всС наши мысли Π² строчки ΠΊΠΎΠ΄Π°.

Π—Π°Π»ΠΎΠ³ успСха Π½Π° любом Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π΅ это ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ составлСнный ΠΏΠ»Π°Π½. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈΡΡŒ ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° нашСй систСмы ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

АрхитСктура нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ:

Как ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ FaaS Π²Π½ΡƒΡ‚Ρ€ΠΈ Kubernetes ΠΈ ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°Π»ΠΈ Π² Π’ΠΈΠ½ΡŒΠΊΠΎΡ„Ρ„-Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π΅
На Π΄Π°Π½Π½ΠΎΠΉ схСмС ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π΄Π²Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π°, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ (основной ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ нашСй систСмы) ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ построСн Ρ‚Π°ΠΊ. Аналитик Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ-ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ обогащСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для своСй ΠΌΠΎΠ΄Π΅Π»ΠΈ, сохраняСт свой ΠΊΠΎΠ΄ Π² Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ администратора Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ свою модСль Π² ΠΎΠ±Π»Π°ΠΊΠ΅. Рассмотрим ΠΊΠ°ΠΊ развСрнутая функция Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ входящим заявкам ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²:

  1. ΠšΠ»ΠΈΠ΅Π½Ρ‚ заполняя Ρ„ΠΎΡ€ΠΌΡƒ Π½Π° сайтС, отправляСт свой запрос Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€. На Π²Ρ…ΠΎΠ΄ систСмы ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ заявка, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΈ записываСтся Π² Π‘Π” Π² своСм ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
  2. Π”Π°Π»Π΅Π΅ сырой запрос отправляСтся Π½Π° ΠΎΠ±ΠΎΠ³Π°Ρ‰Π΅Π½ΠΈΠ΅, Ссли Π² этом Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ запрос ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… сСрвисов Ρ‚Π°ΠΊ ΠΈ ΠΈΠ· Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΠΎΠ³Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ запрос Ρ‚Π°ΠΊΠΆΠ΅ сохраняСтся Π² Π‘Π”.
  3. ЗапускаСтся функция Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°, которая Π½Π° Π²Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΠΎΠ³Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ запрос ΠΈ ΠΎΡ‚Π΄Π°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ записываСтся Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

Π’ качСствС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π² нашСй систСмС ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ MongoDB Π² Π²ΠΈΠ΄Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½ΠΎΡ€ΠΈΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ JSON Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ сСрвисы обогащСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ исходный запрос, Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ всС Π΄Π°Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· REST-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹.

Π˜Ρ‚Π°ΠΊ, Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Ρƒ нас Π² распоряТСнии Π±Ρ‹Π»ΠΈ сутки. ΠœΡ‹ довольно ΡƒΠ΄Π°Ρ‡Π½ΠΎ распрСдСлили Ρ€ΠΎΠ»ΠΈ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‡Π»Π΅Π½ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠΌΠ΅Π» свою Π·ΠΎΠ½Ρƒ отвСтствСнности Π² нашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅:

  1. Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ ΠΌΠΎΠ³ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ· систСмы контроля вСрсионирования написанных скриптов, Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ обогащСния Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ скрипты ΠΏΡ€Π°Π²ΠΈΠ» ΠΎΠ½Π»Π°ΠΉΠ½.
  2. БэкСнд-Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π² сСбя REST API для Ρ„Ρ€ΠΎΠ½Ρ‚Π° ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с VCS.
  3. Настройка инфраструктуры Π² Google Cloud ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сСрвиса обогащСния исходных Π΄Π°Π½Π½Ρ‹Ρ….
  4. ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ прилоТСния Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ с Serverless-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ дСплоя ΠΏΡ€Π°Π²ΠΈΠ».
  5. Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ» для тСстирования работоспособности всСй систСмы ΠΈ агрСгация Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ ΠΏΠΎ входящим заявкам (принятым Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌ) для Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ дСмонстрации.

НачнСм ΠΏΠΎ порядку.

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ Ρƒ нас Π±Ρ‹Π» написан Π½Π° Angular 7 с использованиСм банковского UI Kit. Π€ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ выглядСл ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Как ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ FaaS Π²Π½ΡƒΡ‚Ρ€ΠΈ Kubernetes ΠΈ ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°Π»ΠΈ Π² Π’ΠΈΠ½ΡŒΠΊΠΎΡ„Ρ„-Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π΅
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±Ρ‹Π»ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΏΠΎΡΡ‚Π°Ρ€Π°Π»ΠΈΡΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π». Для дСплоя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Kubernetes кластСр Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ событиС (сСрвис, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π² ΠΎΠ±Π»Π°ΠΊΠ΅) ΠΈ ΠΊΠΎΠ΄ ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΡƒ принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. По ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ ΠΏΡ€Π°Π²ΠΈΠ»Π° для Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ сСрвиса ΠΌΡ‹ писали Π»ΠΎΠ³ этого события. Π’ Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ всСх событий.

Π’Π΅ΡΡŒ ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ хранился Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅. Для вСрсионирования ΠΊΠΎΠ΄Π° всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΊΠ°Ρ… рСпозитория. Π’ Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ прСдусмотрСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ внСсСния ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² написанныС скрипты, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ написанный ΠΊΠΎΠ΄, Π½ΠΎ ΠΈ внСсти Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€Π°Π²ΠΊΠΈ.

Как ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ FaaS Π²Π½ΡƒΡ‚Ρ€ΠΈ Kubernetes ΠΈ ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°Π»ΠΈ Π² Π’ΠΈΠ½ΡŒΠΊΠΎΡ„Ρ„-Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π΅
Помимо Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΡ€Π°Π²ΠΈΠ» ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ поэтапного обогащСния исходных Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Enrichment-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Π°ΠΊΠΆΠ΅ прСдставлял собой скрипты, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ сторонниС сСрвисы ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ расчСты. Для дСмонстрации нашСго Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΡ‹ рассчитывали Π·Π½Π°ΠΊ Π·ΠΎΠ΄ΠΈΠ°ΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΎΡΡ‚Π°Π²ΠΈΠ²ΡˆΠ΅Π³ΠΎ заявку, ΠΈ опрСдСляли Π΅Π³ΠΎ мобильного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сторонний REST сСрвис.

БэкСнд ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π±Ρ‹Π» написан Π½Π° Java ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ Spring Boot ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Для хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ ΠΌΡ‹ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Postgres, Π½ΠΎ, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π°, Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΠΌ H2, Π² цСлях экономии Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. На бэкС Π±Ρ‹Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° интСграция с Bitbucket, для вСрсионирования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ обогащСния запросов ΠΈ скриптов ΠΏΡ€Π°Π²ΠΈΠ». Для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Git рСпозиториями использовалась Π±ΠΈΠ±Π»ΠΈΡ‚Π΅ΠΊΠ° JGit, которая являСтся своСго Ρ€ΠΎΠ΄Π° ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΎΠΉ Π½Π°Π΄ CLI ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ git инструкции, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс. Π’Π°ΠΊ Ρƒ нас Π±Ρ‹Π»ΠΎ Π΄Π²Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… рСпозитория, для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ обогащСния ΠΈ ΠΏΡ€Π°Π²ΠΈΠ», Π° всС скрипты Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΏΠΎ дирСкториям. Π§Π΅Ρ€Π΅Π· UI ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ скрипта ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ рСпозитория. ΠŸΡ€ΠΈ внСсСния ΠΏΡ€Π°Π²ΠΎΠΊ Π² ΠΊΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· Π°Π΄ΠΌΠΈΠ½ΠΊΡƒ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… рСпозиториях создавались ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ нашСй ΠΈΠ΄Π΅ΠΈ Π½Π°ΠΌ Π±Ρ‹Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° подходящая инфраструктура. ΠœΡ‹ приняли Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ наш Kubernetes кластСр Π² ΠΎΠ±Π»Π°ΠΊΠ΅. Наш Π²Ρ‹Π±ΠΎΡ€ остановился Π½Π° Google Cloud Platform. Serverless-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Fission Π±Ρ‹Π» установлСн Π² кластСрС Kubernetes, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ Π² Gcloud. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ сСрвис обогащСния исходных Π΄Π°Π½Π½Ρ‹Ρ… Π±Ρ‹Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΌ Π² Pod Π²Π½ΡƒΡ‚Ρ€ΠΈ кластСра k8s. Но послС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ дСмонстрации нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² сСрСдинС Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π°, Π½Π°ΠΌ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Enrichment сСрвис Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ±ΠΎΠ³Π°Ρ‰Π°Ρ‚ΡŒ сырыС Π΄Π°Π½Π½Ρ‹Ρ… входящих заявок. И Π½Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΎΡΡ‚Π°Π²Π°Π»ΠΎΡΡŒ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сСрвис обогащСния Ρ‚Π°ΠΊΠΆΠ΅ Serverless.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Fission ΠΌΡ‹ использовали Fission CLI, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Ρ… Kubernetes CLI. Π”Π΅ΠΏΠ»ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² k8s кластСр довольно прост, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ лишь Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ€ΠΎΡƒΡ‚ ΠΈ ingress для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ входящСго Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ доступ Π²Π½Π΅ кластСра. Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 10 сСкунд.

Π€ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΠΎΠ΄Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΡ‚ΠΎΠ³ΠΎΠ²

Для дСмонстрации Ρ€Π°Π±ΠΎΡ‚Ρ‹ нашСй систСмы ΠΌΡ‹ размСстили Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΡŒ заявку Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Π±Π°Π½ΠΊΠ°. Для запроса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ ввСсти свои ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»Ρ‹, Π΄Π°Ρ‚Ρƒ роТдСния ΠΈ Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°.

Π”Π°Π½Π½Ρ‹Π΅ с клиСнтской Ρ„ΠΎΡ€ΠΌΡ‹ ΡƒΡ…ΠΎΠ΄ΠΈΠ»ΠΈ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ отправлял заявки Π½Π° всС доступныС ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΠΎΠ³Π°Ρ‚ΠΈΠ² Π΄Π°Π½Π½Ρ‹Π΅ согласно Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ условиям, ΠΈ сохранив ΠΈΡ… Π² ΠΎΠ±Ρ‰Π΅Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. ВсСго Ρƒ нас Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎ Ρ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ входящим заявкам ΠΈ 4 сСрвиса обогащСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ПослС отправлСния заявки ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π» нашС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

Как ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ FaaS Π²Π½ΡƒΡ‚Ρ€ΠΈ Kubernetes ΠΈ ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°Π»ΠΈ Π² Π’ΠΈΠ½ΡŒΠΊΠΎΡ„Ρ„-Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π΅
ΠšΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΎΡ‚ΠΊΠ°Π·Π° ΠΈΠ»ΠΈ одобрСния Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π» список Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², запросы Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ отправляли ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. Π’Π°ΠΊ ΠΌΡ‹ продСмонстрировали Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ cross-sale Π² нашСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.

ВсСго Π±Ρ‹Π»ΠΎ доступно 3 Π²Ρ‹Π΄ΡƒΠΌΠ°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π±Π°Π½ΠΊΠ°:

  • ΠšΡ€Π΅Π΄ΠΈΡ‚.
  • Π˜Π³Ρ€ΡƒΡˆΠΊΠ°
  • Π˜ΠΏΠΎΡ‚Π΅ΠΊΠ°.

На ΠΊΠ°ΠΆΠ΄ΡƒΡŽ услугу Π² Ρ…ΠΎΠ΄Π΅ дСмонстрации ΠΌΡ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ скрипты обогащСния.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π±Ρ‹Π» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ свой Π½Π°Π±ΠΎΡ€ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊ, для одобрСния ΠΈΠΏΠΎΡ‚Π΅ΠΊΠΈ ΠΌΡ‹ вычисляли Π·Π½Π°ΠΊ Π·ΠΎΠ΄ΠΈΠ°ΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ связывали это с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ Π»ΡƒΠ½Π½ΠΎΠ³ΠΎ калСндаря. Для одобрСния ΠΈΠ³Ρ€ΡƒΡˆΠΊΠΈ ΠΌΡ‹ провСряли, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ достиг ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠ»Π΅Ρ‚ΠΈΡ, Π° для Π²Ρ‹Π΄Π°Ρ‡ΠΈ ΠΊΡ€Π΅Π΄ΠΈΡ‚Π° ΠΌΡ‹ отправляли запрос Π²ΠΎ внСшний ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ сСрвис опрСдСлСния сотового ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΈ ΠΏΠΎ Π½Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π»ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

ΠœΡ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ интСрСсной ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ³ Π·Π°ΠΉΡ‚ΠΈ Π½Π° Π½Π°ΡˆΡƒ Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π΅ΠΌΡƒ Π½Π°ΡˆΠΈΡ… Π²Ρ‹Π΄ΡƒΠΌΠ°Π½Π½Ρ‹Ρ… услуг. А Π² самом ΠΊΠΎΠ½Ρ†Π΅ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΌΡ‹ продСмонстрировали Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΡƒ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΠ²ΡˆΠΈΡ… заявок, Π³Π΄Π΅ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, сколько людСй воспользовались нашим сСрвисом, количСство ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠΉ, ΠΎΡ‚ΠΊΠ°Π·ΠΎΠ².

Для сбора Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΌΡ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ BI инструмСнт с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Metabase ΠΈ ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‚ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ. Metabase позволяСт ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ экраны с Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠΉ ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΌ нас Π΄Π°Π½Π½Ρ‹ΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ лишь ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π‘Π”, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Π² нашСм случаС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ использовали MongoDB), ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ нас поля.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρƒ нас получился Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΈ Π½Π° дСмонстрации ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ собствСнноручно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½Π°Ρ дСмонстрация ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ Π½Π°ΠΌ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚ΡŒ, нСсмотря Π½Π° ΡΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΡŽ Π² Π»ΠΈΡ†Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄. Π£Π²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ.

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ