@Kubernetes Meetup #3 αž“αŸ…αž€αŸ’αž“αž»αž„ Mail.ru Group: αžαŸ’αž„αŸƒαž‘αžΈ 21 αžαŸ‚αž˜αž·αžαž»αž“αžΆ

@Kubernetes Meetup #3 αž“αŸ…αž€αŸ’αž“αž»αž„ Mail.ru Group: αžαŸ’αž„αŸƒαž‘αžΈ 21 αžαŸ‚αž˜αž·αžαž»αž“αžΆ

αž–αžΈαžαŸ‚αž€αž»αž˜αŸ’αž—αŸˆ αžŸαŸ’αžšαž‘αžΆαž‰αŸ‹ Kubernetes αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž™αžΎαž„αžαžΆαž—αžΆαž–αž’αžŸαŸ‹αž€αž›αŸ’αž”αž˜αž½αž™αž”αžΆαž“αž€αž“αŸ’αž›αž„αž•αž»αžαž‘αŸ…αž αžΎαž™αŸ” αžšαžΏαž„αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαž”αŸ†αž”αŸ‚αž€αžαŸ’αž›αž½αž“αž˜αžΆαž“αž—αžΆαž–αž—αŸ’αž›αžΊαžŸαŸ’αžœαžΆαž„αž“αŸ„αŸ‡αž‚αžΊαžαžΆ αž™αžΎαž„αž’αžΆαž…αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„ Cloud Native Computing Foundation αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™ Kubernetes αžšαž”αžŸαŸ‹αž™αžΎαž„αž€αŸ’αžšαŸ„αž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αž“αž»αž›αŸ„αž˜αžαžΆαž˜ Kubernetes αžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹ αž αžΎαž™αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž•αž„αžŠαŸ‚αžšαŸ” αž€αž»αž„αžαžΊαž“αŸαžšαž–αž–αž€ Mail.ru αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αžŸαŸ‹αžœαžΆαž“αŸƒ Kubernetes Cluster Autoscaler αŸ”

αžŠαž›αŸ‹β€‹αž–αŸαž›β€‹αž αžΎαž™β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ @Kubernetes Meetup αž›αžΎαž€β€‹αž‘αžΈβ€‹αž”αžΈβ€‹αž αžΎαž™! αžŸαž„αŸ’αžαŸαž”αŸ–

  • Gazprombank αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž”αŸ’αžšαžΎ Kubernetes αž“αŸ…αž€αŸ’αž“αž»αž„ R&D αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ OpenStack;
  • Mail.ru Cloud Solutions - αžšαž”αŸ€αž”αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž€αŸ’αž“αž»αž„ K8S αžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“ αž“αž·αž„αžšαž”αŸ€αž”αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž“αŸƒ Kubernetes Cluster Autoscaler;
  • αž“αž·αž„αž‘αžΈαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš Wunderman Thompson - αžšαž”αŸ€αž”αžŠαŸ‚αž› Kubernetes αž‡αž½αž™αž–αž½αž€αž‚αŸαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αž“αž·αž„αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž˜αžΆαž“ Dev αž…αŸ’αžšαžΎαž“αž‡αžΆαž„ Ops αž“αŸ…αž€αŸ’αž“αž»αž„ DevOps αŸ”

αž€αž·αž…αŸ’αž…αž”αŸ’αžšαž‡αž»αŸ†αž“αžΉαž„αž”αŸ’αžšαž–αŸ’αžšαžΉαžαŸ’αžαž‘αŸ…αž“αŸ…αžαŸ’αž„αŸƒαž‘αžΈ 21 αžαŸ‚αž˜αž·αžαž»αž“αžΆ (αžαŸ’αž„αŸƒαžŸαž»αž€αŸ’αžš) αžœαŸαž›αžΆαž˜αŸ‰αŸ„αž„ 18:30 αž“αžΆαž‘αžΈαž“αŸ…αž€αžΆαžšαž·αž™αžΆαž›αŸαž™αž‘αžΈαž€αŸ’αžšαž»αž„αž˜αžΌαžŸαŸ’αž‚αžΌαž“αŸƒ Mail.ru Group (Leningradsky Prospekt, 39, building 79)αŸ” αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž˜αž‘αžΆαžš αž“αž·αž„αž”αž·αž‘αž“αŸ…αžαŸ’αž„αŸƒαž‘αžΈ 20 αžαŸ‚αž˜αž·αžαž»αž“αžΆ αžœαŸαž›αžΆαž˜αŸ‰αŸ„αž„ 11:59 αž–αŸ’αžšαžΉαž€ (αž¬αž˜αž»αž“αž“αŸαŸ‡ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αž“αŸ’αž›αŸ‚αž„αž‘αŸ†αž“αŸαžšαž’αžŸαŸ‹)αŸ”

"Kubernetes αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ– αžαžΎαž˜αžΆαž“ Devs αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž“αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ DevOps?"

Grigory Nikonov, Wunderman Thompson, αž“αžΆαž™αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„

αž™αžΎαž„αž˜αž·αž“αž˜αžΆαž“αž…αž„αŸ’αž€αŸ„αž˜αž“αŸƒ 500 nodes αž‘αŸαŸ” αž™αžΎαž„αž˜αž·αž“αž˜αžΆαž“ DevOps αžαžΉαž„αžšαžΉαž„αž‘αŸαŸ” αž™αžΎαž„αž˜αž·αž“αž˜αžΆαž“αž€αŸ’αžšαž»αž˜αž•αž›αž·αžαž•αž›αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž‘αŸαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αž˜αžΆαž“αž‚αž˜αŸ’αžšαŸ„αž„αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž‡αžΆαž…αŸ’αžšαžΎαž“ αž“αž·αž„αž…αž˜αŸ’αž›αžΎαž™αž…αŸ†αž–αŸ„αŸ‡αžŸαŸ†αžŽαž½αžšαžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αžšαž€αžƒαžΎαž‰ αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αž’αž—αž·αžœαžŒαŸ’αž αž“αž·αž„αž‚αžΆαŸ†αž‘αŸ’αžšαž‚αž˜αŸ’αžšαŸ„αž„αž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ” αžŠαŸ†αž”αžΌαž„αž‘αžΎαž™ αž™αžΎαž„αž‡αžΆαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž αžΎαž™αž˜αžΆαž“αž‘αž˜αŸ’αž›αžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž§αž”αž€αžšαžŽαŸαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ αžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαŸ” αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž–αž½αž€αž‚αŸαž“αžΉαž„αž‡αž½αž™αž’αŸ’αž“αž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž•αž„αžŠαŸ‚αžšαŸ”

αž‘αžΈαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš Wunderman Thompson αž‚αžΊαž‡αžΆαž’αŸ’αž“αž€αžαŸ’αžšαž½αžŸαžαŸ’αžšαžΆαž™αž•αŸ’αž›αžΌαžœαž˜αž½αž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž‘αŸαžŸαžšαž»αžŸαŸ’αžŸαŸŠαžΈ αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡αž€αŸ†αž–αž»αž„αž’αž—αž·αžœαžŒαŸ’αžαž‘αžΆαŸ†αž„αž‘αŸ†αž–αŸαžšαž…αž»αŸ‡αž…αžαžŸαžΆαž˜αž‰αŸ’αž‰ αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž…αŸ‚αž€αž…αžΆαž™αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αŸ” Kubernetes αž‡αž½αž™αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„αž‡αž½αž™αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž’αžαž·αžαž·αž‡αž“αž’αŸ’αžœαžΎαž‡αžΆαž˜αŸ’αž…αžΆαžŸαŸ‹αž•αŸ’αž‘αŸ‡ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž…αŸ‚αž€αž…αžΆαž™αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ† αž“αž·αž„αž’αžΆαžαž»αž•αŸ’αžŸαŸ†αžαžΆαž„αž€αŸ’αž“αž»αž„ αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž˜αžΈαž€αŸ’αžšαžΌαžŸαŸαžœαžΆαž‚αžΊαž‡αžΆαž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αž’αž˜αŸ’αž˜αž‡αžΆαžαž·αž…αŸ†αž–αŸ„αŸ‡αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžš αž“αž·αž„αžšαž€αŸ’αžŸαžΆαž”αžΆαž“αž“αžΌαžœαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ…αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž”αŸ‚αž”αž“αŸαŸ‡αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž”αž‰αŸ’αž αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αŸ†αžŽαŸ‚ αž“αž·αž„ αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™αŸ” αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž™αžΎαž„αž‡αžΆαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž˜αž½αž™ αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αŸ’αžšαž»αž˜αž•αž›αž·αžαž•αž›αžŠαŸ‚αž›αžαž·αžαžαŸ†αž”αŸ’αžšαžΉαž„αž”αŸ’αžšαŸ‚αž„αž‘αŸ αž“αž·αž„αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžšαž”αžŸαŸ‹αž™αžΎαž„αž˜αž·αž“αžαŸ‚αž„αžαŸ‚αžšαž€αŸ’αžŸαžΆαž”αžšαž·αž”αž‘αžŠαŸ‚αž›αž”αžΆαž“αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž“αŸƒαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž“αŸ„αŸ‡αž‘αŸ αž€αŸ†αžŽαžαŸ‹αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αžœαžΆαž‘αŸ…αž›αžΎαž€αžΆαžšαž•αž›αž·αžαž‘αžΎαž„αžœαž·αž‰αž“αŸƒαž”αžšαž·αžŸαŸ’αžαžΆαž“αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαŸ” αž‘αŸ…αž€αžΆαž“αŸ‹αž€αŸ’αžšαž»αž˜αž‡αžΆαž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆ αž αžΎαž™αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ…αž‚αž˜αŸ’αžšαŸ„αž„αžœαž·αž‰αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž–αŸαž›αžαŸ’αž›αŸ‡αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž†αŸ’αž›αžΎαž™αžαž”αž‘αŸ…αž“αžΉαž„αž”αž‰αŸ’αž αžΆαž”αŸ’αžšαžˆαž˜αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„ DevOps αžšαž”αžŸαŸ‹αž™αžΎαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž”αž„αŸ’αž€αžΎαžαŸ”

αž’αŸ’αž“αž€αž“αžΉαž„αžšαŸ€αž“αž–αžΈαž˜αžΌαž›αž αŸαžαž»αžŠαŸ‚αž› DevOps αž˜αžΆαž“αž…αŸ’αžšαžΎαž“αž‡αžΆαž„ Dev αž‡αžΆαž„ Ops αž“αž·αž„αžšαž”αŸ€αž”αžŠαŸ‚αž›αž—αžΆαž–αžαŸ’αž‡αž·αž›αž’αžΆαž…αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž–αŸαž›αžœαŸαž›αžΆ αž“αž·αž„αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αž›αžΎαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ/αž‡αŸ†αž“αž½αž™ αž€αŸαžŠαžΌαž…αž‡αžΆαŸ–

  • αžšαž”αŸ€αž”αžŠαŸ‚αž› Kubernetes αž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžœαž·αž’αžΈαžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž‚αž˜αŸ’αžšαŸ„αž„αŸ”
  • αžαžΎαžœαžŠαŸ’αžαž‡αžΈαžœαž·αžαž“αŸƒαž€αžΌαžŠαžšαž”αžŸαŸ‹αž™αžΎαž„αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž˜αŸ’αžŠαŸαž…αŸ”
  • αžαžΎαž§αž”αž€αžšαžŽαŸαž’αŸ’αžœαžΈαžαŸ’αž›αŸ‡αžŠαŸ‚αž›αž™αžΎαž„αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™αžŠαŸ‚αž›αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž›αžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž˜αžΈαž€αŸ’αžšαžΌαŸ”
  • αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽαžŠαŸ‚αž›αž›αŸ‚αž„αž”αŸ’αžšαžΎαŸ”
  • αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž‘αŸ…αž€αŸ’αžšαž»αž˜αžŠαŸ„αž™αžšαžΈαž€αžšαžΆαž™αŸ”

"αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž‡αžΆαž˜αž½αž™ Kubernetes Cluster AutoscalerαŸ– αž—αžΆαž–αžαž»αžŸαž”αŸ’αž›αŸ‚αž€αž‚αŸ’αž“αžΆαž“αŸƒ Autoscaler αž“αž·αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž Mail.ru Cloud Solutions"

Alexander Chadin, Mail.ru Cloud Solutions, αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ PaaS

αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž·αž—αž–αž›αŸ„αž€αž“αžΆαž–αŸαž›αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž“αŸαŸ‡ αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαŸ†αž–αžΉαž„αžαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžαŸ‚αž„αžαŸ‚αž˜αžΆαž“αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž αž“αž·αž„αžαŸ‚αž„αžαŸ‚αž˜αžΆαž“ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™αž’αžΆαž…αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž›αŸ†αž αžΌαžšαž…αžšαžΆαž…αžšαžŽαŸαž”αžΆαž“ αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžœαžΆαž˜αžΆαž“αž‘αŸ†αž αŸ†αž’αŸ†αž”αŸ‰αž»αžŽαŸ’αžŽαžΆαž€αŸαžŠαŸ„αž™αŸ” Kubernetes αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸαž”αŸ’αžšαžŽαž·αžαž˜αž½αž™ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αžŠαŸ„αž™αžαŸ’αž›αž½αž“αžœαžΆαž‘αŸ…αžαžΆαž˜αž€αžΆαžšαž•αŸ’αž‘αž»αž€ - Kubernetes Cluster Autoscaler αŸ”

αž‡αžΆαž‘αžΌαž‘αŸ…αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αž˜αžΆαž“αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž–αžΈαžšαž”αŸ’αžšαž—αŸαž‘αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αž€αŸ†αž–αž»αž„αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αŸ– αž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“ αž¬αž’αž“αž’αžΆαž“αž…αŸ’αžšαžΎαž“αž‘αŸ€αžαŸ” αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž”αž‰αŸ’αžˆαžš αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαž“αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαž…αž˜αŸ’αž›αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αž“αžΆαŸ†αž„αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αŸ” αž αžΎαž™αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž•αŸ’αžŠαŸαž€αž€αžΆαž“αŸ‹αžαŸ‚αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰ - αž™αžΎαž„αž”αž„αŸ’αž€αžΎαž“αž…αŸ†αž“αž½αž“αžαŸ’αž“αžΆαŸ†αž„αŸ”

αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž‘αžΈ 2 αž™αžΎαž„αž“αžΉαž„αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αž“αŸƒαž–αžΆαž€αŸ’αž™αžŸαž»αŸ† - αžŠαŸ‚αž›αž“αžΉαž„αž’αžΆαž“αžΆαž”αžΆαž“αž“αžΌαžœαž—αžΆαž–αž’αžΆαž…αžšαž€αž”αžΆαž“αžαŸ’αž–αžŸαŸ‹αžšαž”αžŸαŸ‹αžœαžΆαŸ” αž™αžΎαž„αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž•αŸ’αžŠαŸαž€αžŠαŸ„αž™αž”αŸ’αžšαžΎ Cluster Autoscaler αŸ” αžœαžΆαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž’αžΆαž…αž€αžΎαž“αž‘αžΎαž„αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸαžαŸ‚αž˜αž‘αžΆαŸ†αž„αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž…αŸ†αž“αž½αž“αžαŸ’αž“αžΆαŸ†αž„αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž”αž“αŸ’αž‘αž»αž€αž•αž„αžŠαŸ‚αžšαŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž‘αžΎαž„αžŠαž›αŸ‹αž€αŸ†αž–αžΌαž› Autoscaler αžαŸ’αž›αž½αž“αžœαžΆαž“αžΉαž„αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž…αŸ†αž“αž½αž“αžαŸ’αž“αžΆαŸ†αž„αž‘αŸ…αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžš αž αžΎαž™αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΆαžšαž‘αžΌαž‘αžΆαžαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αž’αžΆαž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž·αž…αŸ’αž…αž”αŸ’αžšαž‡αž»αŸ† αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž’αŸ†αž–αžΈαž—αžΆαž–αžαž»αžŸαž”αŸ’αž›αŸ‚αž€αž‚αŸ’αž“αžΆαž“αŸƒ Kubernetes Cluster Autoscaler αž€αŸαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž›αŸ†αž”αžΆαž€αžŠαŸ‚αž›αž™αžΎαž„αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž Cluster Autoscaler αžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαŸ‚αž›αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ Mail.ru Cloud Containers αŸ” αž’αŸ’αž“αž€β€‹αž“αžΉαž„β€‹αžšαŸ€αž“:

  • αžαžΎαž§αž”αž€αžšαžŽαŸαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αž’αŸ’αžœαžΈαžαŸ’αž›αŸ‡ αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ;
  • αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αž‚αž½αžšαž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαžœαžΆαžŸαŸ‹αžŸαŸ’αž‘αž„αŸ‹;
  • αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž”αŸ‚αž„αž…αŸ‚αž€αžαŸ’αž“αžΆαŸ†αž„αžαžΆαž˜αžαŸ†αž”αž“αŸ‹αžŠαŸ‚αž›αž’αžΆαž…αžšαž€αž”αžΆαž“αžŠαŸ„αž™αž”αŸ’αžšαžΎ Node Groups;
  • αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes Cluster Autoscaler αž“αŸ…αž€αŸ’αž“αž»αž„ MCS αŸ”

"R&D αž“αŸ… Gazprombank: αžšαž”αŸ€αž”αžŠαŸ‚αž› K8S αž‡αž½αž™αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ OpenStack"

Maxim Kletskin, Gazprombank, αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž•αž›αž·αžαž•αž›

αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž·αž—αž–αž›αŸ„αž€αžŠαŸ‚αž›αž“αž·αž“αŸ’αž“αžΆαž€αžΆαžšαž‚αžΊαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž–αŸαž›αžœαŸαž›αžΆαž‘αŸ…αž‘αžΈαž•αŸ’αžŸαžΆαžšαž‚αžΊαžŸαŸ†αžαžΆαž“αŸ‹αž‡αžΆαž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸαžŠαžΎαž˜αŸ’αž”αžΈαžŸαžΆαž€αž›αŸ’αž”αž„αžŸαž˜αŸ’αž˜αžαž·αž€αž˜αŸ’αž˜ αž“αž·αž„αžŸαŸ’αžœαŸ‚αž„αžšαž€αž‘αžΈαž•αŸ’αžŸαžΆαžšαžαŸ’αž˜αžΈαž“αŸ…αž–αŸαž›αž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžŠαŸ†αž”αžΌαž„αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” αž›αŸ’αž”αžΏαž“αž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αž‡αžΆαž–αž·αžŸαŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αžΆαž‚αžΆαžš αž αžΎαž™αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžαŸ’αž˜αžΈαŸ—αž‡αž½αž™αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž‡αžΆαž–αž·αžŸαŸαžŸ αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž€αž»αž„αžαžΊαž“αŸαžš αž“αž·αž„ Kubernetes αŸ”

Maxim Kletskin αž‚αžΊαž‡αžΆαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž•αž›αž·αžαž•αž›αž“αŸ… Gazprombank αž αžΎαž™αž€αŸ†αž–αž»αž„αž”αž„αŸ’αž€αžΎαžαž”αŸ’αžšαž’αž”αŸ‹αžαŸ’αžŸαžΆαž…αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αž›αž·αžαž•αž›αžŸαžΆαž€αž›αŸ’αž”αž„αŸ” R&D αž“αŸƒ Gazprombank αž’αŸ’αžœαžΎαž€αžΆαžšαžŸαž·αž€αŸ’αžŸαžΆαž•αŸ’αžŸαŸαž„αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž–αž€αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αžŠαŸ‚αž›αž‡αžΆ OpenStack αŸ” Kubernetes αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž‘αžΈαž“αŸαŸ‡αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž–αžΈαžšαŸ– 1) Kubernetes αž“αŸ…αž›αžΎ Bare Metal αž‡αžΆαžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž“αŸƒ OpenStack cloud αž“αž·αž„ 2) K8S αž‡αžΆαž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™ OpenShift αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸ αž™αžΎαž„αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž€αžšαžŽαžΈαžŠαŸ†αž”αžΌαž„ αž“αž·αž„αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› Gazprombank αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ Kubernetes αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ OpenStack αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ OpenStack αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αžαžΆαžœαžΆαž‡αžΆαž’αžΆαžαžΌαž˜αž·αž… αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΆαžšαž”αŸ’αžšαžΎ Kubernetes αž‡αžΆαžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžšαž”αžŸαŸ‹ OpenStack αž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ αž“αž·αž„αž‘αžΌαž‡αžΈαžαž›αžŽαžΆαžŸαŸ‹αŸ” αž“αŸαŸ‡αž€αŸαž“αžΉαž„αž’αŸ’αžœαžΎαž’αŸ„αž™αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž“αžΆαŸ†αž„αž‘αŸ…αž…αž„αŸ’αž€αŸ„αž˜ OpenStack αž“αž·αž„αž”αž„αŸ’αž€αžΎαž“αž—αžΆαž–αž‡αžΏαž‡αžΆαž€αŸ‹αž“αŸƒ Control Plane αŸ” αž αžΎαž™αžŠαžΌαž…αž‡αžΆ icing αž“αŸ…αž›αžΎαž“αŸ† αžœαžΆαž“αžΉαž„αž‡αž½αž™αžŸαž˜αŸ’αžšαž½αž›αžŠαž›αŸ‹αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž› telemetry αž–αžΈαž…αž„αŸ’αž€αŸ„αž˜αŸ”

αž’αŸ’αž“αž€β€‹αž“αžΉαž„β€‹αžšαŸ€αž“:

  • αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž’αž“αžΆαž‚αžΆαžš R&DαŸ– αž™αžΎαž„αžŸαžΆαž€αž›αŸ’αž”αž„ αž“αž·αž„αž–αž·αžŸαŸ„αž’αž“αŸαŸ”
  • αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž•αŸ’αž‘αž»αž€ OpenStack;
  • αžšαž”αŸ€αž”β€‹αž“αž·αž„β€‹αž˜αžΌαž›β€‹αž αŸαžαž»β€‹αžŠαŸ‚αž›β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αŸ’αžšαžΎ OpenStack αž€αŸ’αž“αž»αž„ K8SαŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαžŸαž˜αŸ’αžαŸ‚αž„ αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžαžΌαžšαž‘αŸ…αž‡αžΆαž‘αž˜αŸ’αžšαž„αŸ‹ @Ku αž™αŸ‰αžΆαž„αžšαž›αžΌαž“αžŸαŸ’αžšαžΆαž”αŸ€αžšnetes After-Party αž αžΎαž™αž™αžΎαž„αž€αŸαž”αžΆαž“αžšαŸ€αž”αž…αŸ†αžŸαŸαž…αž€αŸ’αžαžΈαž”αŸ’αžšαž€αžΆαžŸαž›αŸ’αž’αŸ—αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž•αž„αžŠαŸ‚αžšαŸ” αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΆαž€αžŠαžαžΆαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αž™αžΎαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž–αžΈαžšαž”αžΈαžαŸ’αž„αŸƒαŸ”

αž’αŸ†αž–αžΈαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžαŸ’αž˜αžΈαŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸŠαŸαžšαžΈ @Kubernetes Meetup αž“αž·αž„αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž–αž–αž€ Mail.ru αž™αžΎαž„αž”αŸ’αžšαž€αžΆαžŸαž—αŸ’αž›αžΆαž˜αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ‰αž»αžŸαŸ’αžαž·αŸ Telegram αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ– t.me/k8s_mail

αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž“αž·αž™αžΆαž™αž“αŸ… @Kubernetes Meetup αž”αž“αŸ’αž‘αžΆαž”αŸ‹? αž’αŸ’αž“αž€αž’αžΆαž…αžŠαžΆαž€αŸ‹αžŸαŸ†αžŽαžΎαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ– mcs.mail.ru/speak

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹