áŁááá áłáááľ á á¨áŤá°áŞáá áá áá°áááá ᨠDUMP IT áŽááá¨ááľ (https://dump-ekb.ru/) áá áá á áĽá á Backend and Devops áááá˝ ááľáĽ á¨á°ááŤá¨áá áĽá á¨ááá IT áŽááá¨ááśá˝ áľáŠá¨áľ áá°áŁá¸á á¨ááᥠáááá¸áá ááááŤá˝á áĽáááááá˘
Nikolay Sverchkov ᨠEvil Martians áľá Serverless
áááááá áá áá á?
á á á ááá ááŁá¤á 8 áááá˝ áá áŠáľáĄ- BackendᣠFrontendᣠMobileᣠTesting and QAᣠDevopsᣠDesignᣠScience and Managementá˘
á áááŤá˝á áá áľáá á áłáŤážá˝ á áłáááľ áĽá á áľá°áłá°á)) á ~ 350 á°áá˝ áĽáŤááłááłá¸áᢠBackend áĽá Frontend áĽá áŤááą á áá°ááᢠá¨á´áŽááľ ááá áľáášáŁ áá áá áá áá˘
áŞáááśášá á á´áŽááľ áĽá á°áá áááá˝ ááľáĽ á áłááĽáŠ áĽá á¨á°áááŞááš áá áľáá˝ á°áááááŠá˘ áľáá°ááąáľ ááá° ááłáŽá˝ áááŤáľ áĽá áĽááá á áááá˝ á ááŁá¤á áá ááááá áĽáááááá˘
ᨠSKB-KonturᣠDataArtᣠEvil MartiansᣠEkaterinburg Web Studio FlagᣠMiro (RealTimeBoard) á°ááŤáŽá˝ á Devops áĽá Backend áááá˝ á°áááŠá˘ á á˛á á/á˛á˛ á¨á°á¸áá áááśá˝áŁ á¨áá¨á á áááááśá˝ áá ááľáŤáľáŁ áááŁáľáŁ á áááá á áᣠáááśá˝ áĽá á¨PostgreSQL in Go áá á áĽáŽ ááľáŤáľ á á°áἠá¨á°á¸áá áá áá˘
á á°á¨ááŞá á á áŞáś ᣠá˛áááŽá ᣠYandex ᣠááľáłáá ᣠáááá ᣠá á áŁááľ áŁáá áŞáááśá˝ áá አᣠáá á á áŤá áĽááąá ááá¨áłá°á áá á ááááá (á¨áŞáááśáš á¨áŞá˛áŽ áá¨áťáá˝ áĽá áľáááśá˝ áĽáľáŤáá á áááá ᣠá 2 áłáááłáľ ááľáĽ áááá á áá ááĽá°áá ᢠá dump-ekb.ru áá).
Devops ááá
á áŁá á¨ááŤáľá°ááá áá ááá á áľááš á áłáŤá˝ ááľáĽ 50 áŤá á ááááŤáá˝ ááľáĽ ááŤá áá áᢠá°áá˝ á áá°ááááŤá ááľáĽ áĽááłá ááá áá á :) áááłáἠá¨áťááŠáľá áŞáááśá˝ áĽáááŤá˝ááá.
ááłáŁááľ á¨ááááá ááľá˛á
ááá á¨ááá¨á á áŽááąá ááľáĽ áľááá á˘ááľá˛á ááá á áááľáá áá (SKB-Kontur) ááᣠááᢠá áŁá áľáá áĽá á¨á°áŤá ááľá˛á á áá¸á (~ 800 á´áŁ áááĽáŁ ~ 1.3 ááłáŁááľ áĽáá°áá ááłá°áá á¨áááľ ááľáĽ á ááľááŁáľ)ᢠáááá á¨áŽááąá á áááááśá˝ Elasticsearch áá á ááᣠ2 ááááá˝á (á¨7 áĽá 9 á ááááŽá˝á) áŤáá ááᣠáĽá á áŁá á áľááá á¨ááá á¨á°ááł áŽááąá áአá¨Elasticsearch áááá˛áľ á áá (á áĽáááą áááľáá áŤáą)á˘
áááľáá áľá elasticsearch áĽá áá˝ áĽá áľáááŤáľá¨áľáá¸á á˝ááŽá˝ ááłáĄá á áŤáááá˘
áĽá á:
- ááá áááἠááľáłááťáá˝ á á ááľ áŚáł áá áá¸á, ááĽááą ááá ááłá¨áť
- áááἠááľáłááťáá˝á áá ááľ á ááľ áá¨áá¸áľ áĽá á ááá á áá°áá°á
- á¨áááἠááľáłááťáá˝ áá áááľáŤáľ á¨áá°á ááĽááľ
- á áŞá á¨ááἠáĽááł á¨áłáĽá ááľáĽ
á˝ááŽá˝áĄ-
- áááĽááľ á°áá á¨ááľ áá (ááŽááąá ááá á áŤá፠áá á¨ááŤáá°á)
- ᨠElasticsearch Curator áá á¨ááľáŤáľ áŁá áŞáŤáľ (á áŠáŹá°á ááľáĽ á¨áá°á á áľáŤáá˝ á á¨ááá á¨áá°á áááľ á¨á°áá á¨)
- á áĽáŽ á¨á°á°áŤ áááľ á¨áá (áá°áá¨áŁ á áŁá áľáá áááἠááá áĽáá° áááľ ááá á°á°áŞáá˝ á¨á°ááŤá¨ á°á¨á áŤáá¸á ááááľ áááááľ)
áľá Open Distro for Elasticsearch á áááłá áááááá˝ áĽáť áá አ:) á°ááłáłá á¨áááł ááłá áĽá፠á°ááľáˇáá˘
ááłáŁááľ á¨á¨áľ áá á¨áááŁá?á ááááťá¸á 12*8 Tb SATA + 2*2 Tb SSD áŤáá¸á á ááááŽá˝á áŤáá ááᢠá SATA áá áááá áá¨ááťáŁ á¤áľá¤áľá˛ ááá
áá¸á፠(áá
áá¨ááť) áĽáťá˘
7+9 á ááááŽá˝áŁ (7 + 9) * 12 * 8 = 1536 á´áŁ
á¨áŚáłá á¨á°áá°á ááá á áá áŁá á፠áá áá, áá°á°áááááľ á¨á°áá¨, ááá°.
áááá á¨áŽááąáᣠá¤ááŁáŁ ááá° á¨áŞáááľ ááľá¨á፠á áááááśá˝á á¨áᎠá¨90 á¨áá°ááą áááἠááľáłááťáá˝ áá° Elasticsearch áááŤáá˘
á á áááá á áᣠáá á¨áĽáľááľ áŁá áŞáá˝
ááĽá á áŠáľáá á°ááŞá ᨠDataArt áľá Serverless áŤáá¨á á ááᣠááá˘
áŠáľáá á á á ááá á¨á áááá-á áᣠá ááŤá¨áĽ áá áŤáá áááľ áá áĽáá°áá áĽá áŁá áŞáŤáą áá áĽáá°áá á°áááŻáá˘
á áááá á áᣠá¨áááľ á áŤááľ ááá˘áá˝ áá á¨á° áááąá á ááá ááአá¨ááááŠá áľ ááᢠááłá - AWS Lambda ServerlessᣠKubeless.io (á áŠá áááľáľ ááľáĽ á áááá á¨ááá)ᣠGoogle Cloud Functionsá˘
ááłáŁá á áááá á áᣠáá°áá áŞáŤ á ááá á áአá¤áá á ááľáá á áŠá áá° á áááá á áᣠá áááááľ á á áŤá˘ á¨ááá á°ááŁá ááᢠá áŁá áĽáŠ á¨áááᎠá áááááľáŁ AWS Lambda á°áá áĽá ááĽá áŤáá¸áá áááá á¨ááŽááŤá ááááá˝á áá°áááᢠá¨áá á¨á° áááľ á ááłáŽá˝á á¨ááá¨áŁá¨áĽ áĽá á¨áá°ááŤáľ áá á á°áá á á áŤá˘áá˝ áá áᎠáááá ᣠá ááľá°á áá°áá áŞáŤáá˝á áá°áá áĽáá˛á á áŁá ááŤá˝ áááá (AWS Lambda - $ 0.2 / 1 áááŽá ááá áĽáŤááá˝)á˘
á¨áĽáá°áá á áááľ áľáááľ ááľáááľ á áŁá áĽáŠ áá - á¨á°áá á á áŤá˘á áá áá áĽáŤáąá ááá¨áŁá¨áŁá ᣠKubeless áááá˝á á Kubernetes áááľá°á ááľáĽ á áŤáľ-á°á áááááá˘
ááłáśá˝ á á-
- áľááá á áááŹá˝áá˝á áááááľ á¨á áá á áľá¸á᪠áĽá¨áá ááĽáˇá
- á áááŹá˝áá˝á á áááá áá á˝áá á á (á¨áááἠááľáłááťáá˝á áĽáť áá ááłá¨áť áŤáá ᣠáá á á°ááá°á áľááľ ááá፠á áá°áá)
- ááá áľáŞáľ á¨áá
áĽáááąá ááááá á¨áĽááľ á ááłáľ á ááľ áľá Serverless á°ááᣠáá áĽááá á áá á ááłáľ áĽáá´áľ á áľááá áá áá áĽááłááĽá ááá˝ á ááá ááŠáᢠá¨áŠáľáá ááᣠá áá áááᤠáłá¨ áĽá á¨áááŁá ááá á¨ááŽáá áľá¨áá˝áŽá (Evil Martians) ááᣠá¨á°ááá á áá á°á áá¨á¨á˘ áá° ááŁá¤á á¨ááľáŠáľ á á¨ááą á ááá á¨á :)
CI ááľáá˝ áá áááľ á¨áŤáľáá CI ááľá áľáąá˛áŽ ááťá á áá áá?
á¨á¨áŤá°áŞáá áá á¨áŁáá˛áŤ áľá áľáąá˛áŽ ááá á¨áááľ ááŤáá áŤá˛áŽáá áľááŤáłá¸á áľá CI/CD á°áááŠá˘
á¨áĽáą áľáąá˛áŽ á¨"áááá CI/CD" (á á¤áľá¤áľá¤á˝ á áŠá áá° á°áá¨á áááĄáŁ git pull áŤáľááᣠá áá 100 áá ááľáááľ) áá° áááŞááľ áĽá áŽáľá ááá¨áłá°á áĽá áááŞááľ á¨á°áŁá áááśá˝á ááá¨ááá á¨ááŤáľá˝á á áŤáľ á¨á°áťá ááłáŞáŤ ááˇáᢠ.
áááŞááľ ááá á áá°áŤá? á ááŁáŞááľ á á á°ááááááľ á ááá¨á á áĽá ááá ááľ á áŁá á¨áŁáľ áá áá˘
"áŁáá˛áŤ" á ááŤáŹá (PHP áááá) ááľáĽ ááááá. á˛á á/á˛á˛ á áááá á˛ááᥠááŤáá áĽá áŁáá°á¨áŚáš á´ááľáŽá áĽá á˘ááŽá á¨á°áŁááľá á¨ááŤáŹáá á áĽáŽ á¨á°á°áŠ áá´áá˝á á°á á áááᢠáá¤áą á PHP ááľáĽ áŤá á áááá áá (áĽáŁáá áŤáľá°áá) á¨áááĄáľá á¨áἠááá á áĽáŤááá˝á á¨ááŤáľáŹáľáŁ á¨ááľ áááŁá áĽá á¨ááá ááááŁáľáŁ áá°ááŤáŠ á ááááŽá˝ áá°ááŤáľ áĽá á Slack áŞáááľ ááľá¨á áá˝ááá˘
á¨ááŤá á°ááŤá/á á¨ááá´ áá°ááŤáľá ááá¨ááá áĽá á dev-stage-prod á áŤáŁá˘áá˝ ááľáĽ áἠá¨áá ááźáľ áĽáá˛ááŤá¸á áááľá¨á áá° áśá¨á áá¨áŠá˘ áĽá ááš á ááľ á áááľ ááá ááá°ááᣠá áŤáŁá˘á á á ááľááľ á¨áá°áĽá°áĽ áĽá áĽáá¨á á¨áá˝ á¨áá°ááŤáľ áĽáľáá˝ á°á¨áá¨áá áĽá áśá¨á á áľááá á áĽáŽ áááľáŤáľ á¨ááá á áľáááááľ áłáááá˘
á¨á áááá áááá áĽá áá˝á á 99% áĽáá´áľ áĽáá°áááľá
á á´áŽááľ ááá á¨áá¨á¨áťá ááᣠᨠViktor Eremchenko, Lead devops Engineer á Miro.com (á¨ááľáá áŞááłáááŚááľ) áá á.
RealTimeBoardᣠá¨áᎠáĄáľá áá áááľáŁ á á ááľ áá á á¨á፠áá°áá áŞáŤ áá á¨á°áá°á¨á° ááᢠáŤááĽá¨ááľ áá áá°áĽá°áĽ, ááá¨á áĽá áá°ááŤáľ á¨áŁáľ áľáŤ áá. á áá áááł, áá° áá áĽááłáááá ἠ(á¨áŁáľ áááᲠáá) áĽáá°áá á áááľ á¨áŽáą áľáŞáľ áááááľ á áľááá áá.
áá áá áááľá¨á á¨ááŤáľá˝á áľáááľ áááááŁáľ á áááľá áľ ááááľ áá áᎠá á ááá áá ááĽáŤáľá ᣠáĽá á áá á¨áá ááłáŞáŤáá˝á (á áľáá˛áŤá ááá¨á ᣠááłáá ᣠááá°) áĽá á¨áĄáľáášá ááá á á ááŤáŤáľáľ ááááľ á ááá (á áá áĽááą á áá¸á) áŤáąá á¨áťá Devops áĄáľá + áĽá á¨á°ááŤáŠ ᨠScrum áĄáľáá˝ á¨á°ááŤáŠ ááááŤáá˝ ááá˘áá˝)á˘
ááááą á áľá¸á᪠áĽá áĽážá áá á°áá, áĽáá áŞááśá áĽá፠áŤáá ááá á¨á°á¨áḠá áá áĽá áĽáŠá á°áľá á áŤááá.
ááĽáŤááá˝ áá˝áá á á¸áááá
á¨áá ááá
2 áŞáááśá˝á áá¨áłá°á á˝áŤáá - á¨ááŽáá áľá¨áá˝áŽá (áá ááá˛áľ) ᣠáĽáá˛áá áľá á áááá á áᣠᣠáĽá ᨠGrigory Koshelev (áŽááąá áŠáŁááŤ) áľá á´áááľáŞá˘
ááá˝ á°áá˝ á áááá á ááŁ
áŠáľáá á˛ááŞá á°áá¨á á ááŁá áá áĽáá°áá á¨á°ááᨠááŽáá á áááá á áᣠá áá áá ááá á áááŹá˝áá˝á á áłááˇá áĽá á AWS Lambda ááľáĽ á¨áá°áá áŞáŤáá˝ áá áĽá ááĽááľ áá á°á˝áá áľáááŤáłáľáŠ ááááŽá˝ á°áááŻáá˘
á ááľ á áľá°áłá˝ ááááᥠáá á°áá á¨áá¨ááá áľ á¤ááááľ 128 áᣠáá á°á¨ áľááľáł áĽá 100 ms CPU ááᣠááá 0,000000208 áśáá ááᢠá á°á¨ááŞá á áá 1 áááŽá áĽáá°áá áŤá áĽáŤááá˝ áá áá¸áá˘
á ááłááľ á¨ááŽáá á°ááŁáŤáľ áĽááá áá ᨠ100 ms áá°áĽ á áááá (ááá áá°áá áŞáŤ á áŠá˘ áá á¨á°ááá) áľááá á Go ááľáĽ áĽáá°áá ááá áĽáŠ áá áŁáá˝á á°áĽáˇáá˘
áŽáľáśá áááŠááľ - á´áááľáŞ áĽáá°áá áĽáŠ áŤáľáááľ!
áľá á´áááľáŞ á¨ Grigory Koshelev (áŽááąá áŠáŁááŤ) ᨠBackend ááá á¨á áἠáá áááŁá˘ á´áááľáŞ áááľ áááἠááľáłááťáá˝áŁ áááŞáŤáá˝áŁ á¨áá°áá áŞáŤ áąáŤáá˝ áááľ ááá˘
ááá ááá áŽááąá á Github áá á¨á°áá á á¨áŤáľ-á˝áá ááłáŞáŤáá˝á áá ááá. ááłáŞáŤ á¨áŞáááą - áááŠááľ,
á¨áááľáá áá ááᣠá á´áŽááľ ááá ááľáĽ á Elasticsearch ááľáĽ áááἠááľáłááťáá˝á áá¨áá¸áľ áĽá áááá á á°ááŤááˇá ᣠáá á ááá á¨áĽá áşáá˝ á¨ááá አááłáŞáŤáá˝ áĽá á áááŹá˝áá˝ á¨áááἠááľáłááťáá˝á á¨ááľá¨áľ á°ááŁá á á áĽá áĽáá° áŽáľáśá áááŠááľ áŤá ááłáŞáŤáá˝ áĽááąá áááłá á˘
áá¨áłá á áĽááá˝ áááľ á¨áłáá ááááľá á°á¨áľáá - ᨠRabbitMQ áĽáľá¨ Apache Kafka, áá ááá ááá á áŁá ááá á áá°áá)) áá° áá¨áłá Zookeeper, áŤáłááľáŤ áĽá ááŤáááľ áá¨áá áá á¨áŁá¸á. á áá ááᣠáá áŤááá áá¨á áá á áá á áááá˝á (á¨áĽá ááá፠á áá°áá)ᣠááááľ áŤááľáŁ á áŽááá¨ááľ áľá ᨠáá˝ áá áľáááśá˝ áĽá áŞá˛áŽáá˝ áá á á áá˝ááá˘
á¨ááá˝ ááŁá¤áá˝ áá áĽáá´áľ áááťá¸áŤá?
á ááľáŽ áĽá á á´ááľ áá°ááľá áá á¨ááá áŽááá¨ááśá˝ áá áááłá°á á áá˝áá, á áĄáŤá áĽá á 404fest á áłá፠ááľáĽ áŤá ááá˝ ááľá°áśá˝ áá áááłá°á áĽá˝ááá.
DAMP á 8 áááá˝ á°ááá, áá ááĄáŤá áŽááá¨ááľ áááἠáá. á áŁá áľáá á¨áłáááľ áĽá á áľá°áłá°á áááá˝, áá á°áá áŤáá°ááá° áá. á¨á¨áŤá°áŞáá áá áłáłááá˝ á áŁá á¨á°ááአáá¸á - á¨á°áá á Yandex ᣠKontur ᣠTinkoff áľáá á¨áááľ áááá˝ á áᾠᣠáĽá áá á áŞáááśáš áá á¨áŤáąá ááááľ áá°áá á˘
ááá áľáŠá¨áľ á¨ááľáĽ ááĽáĽ áĽá áŠáŁááŤáá˝ á á ááľ áá á ááŁá¤á áá 3-4 áľáá˝ áááŤáá˝ á áá¸á (áá á áŽááąá, á˘áŞá ááá˛áľ, á˛áááŽá áá á). áĽáááš áľááá°á á áľáŤááá˝ áá áŠáŁ ááá áá áŞáááśáš á¨ááá˝ áá áĽáŠá áá¸áᣠáĽááá á¨ááľáłáá፠áááŁáá˝ á áá°ááá˘
áááľ ááá á ááááľ? á áĄáŤá ááľáĽ ááá á á á
áŤá˘áŤá á¨ááአá¨áá áĽáľá á áááľ áĽá á ááá° ááłáŠ áá ááááľ á áááľ - á á, á áĽáááĽ. áľá á¨á
á áá áĽáŤá°áĽá á¨áá áŤáááľá á ááłáľ á¨áŞáááśá˝á áĽá á¨áŞá˛áŽ áááŁáá˝á áĽááá¨áľ áá áá˘
á áááá˝ ááľáĽ áŤá áŽááá¨ááśá˝ ááá á áááł á¨áŞáááśá˝ á áá á¨á°áááŞá áá áááááľ ááá áá ᣠááĽáá°áá
ááááą áááááľ á áááŤážá˝ áŤááą áá¸á á˘
á Dump áĽá Ekaterinburg áĽááá°áááá! )
ááá: hab.com