áá»áœááºá¯ááºáá¡áááºááŸá¬ Petr Zaitsev ááŒá
áºáá«áááºá áá»áœááºá¯ááºááẠCEOá áááºáá±á¬ááºáá°ááŒá
áºáááºá
- áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯áá áºáá¯á¡ááŒá ẠDatabase ááá¯á· open source ááŒá±ááŸááºážáá»ááºáá»á¬ážá០áááºááá¯á·áá±á¬ááºáá¬ááááºážá
- cloud ááœáẠáá±áá¬áá±á·á áºáá»á¬áž ááŒáá·áºáá»ááºááŒááºážá¡ááœáẠáááºááá¯á·áá±á¬ áá»ááºážáááºááŸá¯áá»á¬áž ááŸááá±ááááºážá
- Kubernetes ááẠDBaaS ááᯠáááºáá²á·ááá¯á· á¡á á¬ážááá¯ážááá¯ááºáááºá áá±á¬ááºážáá»áá°á¡áá±á«áº ááŸá®ááá¯ááŸá¯ááᯠáááºááŸá¬ážáᬠDBMS á ááá¯ážááŸááºážááŸá¯ááᯠáááºáá±á¬ááºááŸá¯áá áºáá¯á¡ááŒá Ạááááºážááááºážáá¬ážáááºá
áá±á¬ááºážáá«ážááᯠMail.ru Cloud Solutions & Tarantool á០@Databases Meetup á០á¡á á®áááºáá¶á á¬á¡áá±á«áº á¡ááŒá±áá¶á ááŒááºáááºáá¬ážáá«áááºá ááááºáá»ááºáááºáá±á¬á· ááŒáá·áºááá¯á·ááá«áááº
áá»áœááºá¯ááºááá¯á·ááẠopen source á០cloud ááŸá áááºáá±á¬ááºááŸá¯áá áºáá¯á¡ááŒá ẠDatabase ááá¯á· áááºááá¯á·áá±á¬ááºáá¬ááááºážá
áá« 90 ááŸá±á¬ááºážááá¯ááºážááááºážá open source ááŸá¬á¡áá¯ááºáá¯ááºáá²á·áááºá ááœááºáá²á·áá±á¬ á¡ááŸá áºááŸá áºáááºá áá±áá¬áá±á·á áºáá»á¬ážáá²á·ááá¯á·áá±á¬ open source ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááẠááœááºáá°áááºááá¯ááºá á¡áááºážá¡ááŒá áºáá¯ááºááᯠáá±á«ááºážáá¯ááºáá¯ááºáááºá áá¬áá±ážáááºá áááºážááᯠá á¯á ááºážááŒá®ážááŸáᬠá¡áá¯á¶ážááŒá¯ááẠááá¯á¡ááºáááºá
ááá¯á·áá±á¬áẠOpen Source ááẠááá¯ážááŸááºážááŸá¯áá»á¬ážá áœá¬ááᯠááŒááºáááºážáá²á·áááº-
- á á¯á ááºážáááºááá¯á¡ááºáá±á¬ Tar.gz ááŸáá·áº INSTALL á¡áááºážá¡ááŒá áºáá»á¬ážá
- .deb ááŸáá·áº .rpm áá²á·ááá¯á·áá±á¬ ááŸá®ááá¯ááŸá¯áá»á¬ážáá«ááŸááá±á¬ áááºáá±á·áá»áºáá»á¬ážá
- APT ááŸáá·áº YUM áá²á·ááá¯á· áááºáá±á·áá»áº ááá¯ááŸá±á¬ááºáááºážáá»á¬ážá áááºáááºááŸá¯ááŸá¬ á¡ááá¯á¡áá»á±á¬ááºááŒá áºáááºá
- ááŒááºáááŸá®ááá¯ááŸá¯áááŸááá² áááºáááºááŒááºážááŒáá·áº áááºáá±á·áá»áºáá»á¬ážááᯠáááºáá¶áááŸáá á±ááá·áº Docker ááŸáá·áº Snap áá²á·ááá¯á·áá±á¬ ááŒá±ááŸááºážáááºážáá»á¬ážá
ááááºá¡áá±ááŒáá·áºá áááºážááẠopen source áá±á¬á·ááºáá²ááᯠá¡áá¯á¶ážááŒá¯ááẠááá¯ááá¯ááœááºáá°áá¬ááŒá®áž ááá¯áá²á·ááá¯á·áá±á¬ á¡ááá®áá±ážááŸááºážáá»á¬áž áá®ááœááºáá¯ááºáá¯ááºááŒááºážááá¯á· áááºáá±á¬ááºááẠá¡áá¬ážá¡áá®ážááá¯áááºáž áá»áŸá±á¬á·áá»áá±ážáááºá
áá áºáá»áááºáááºážááŸá¬ááẠááœááºáá²á·áá±á¬ á¡ááŸá Ạ20 á á¡ááŒá±á¡áá±ááŸáá·áº ááá°áá² áá°ááá¯ááºážááẠá ááºážáá±ážááœá² áá»áœááºážáá»ááºáá° ááŒá áºáá±á¬á¡áá«á ááá¯á¡áá« developer á¡áá»á¬ážá á¯ááẠáááºážááá¯á· á¡áá¯á¶ážááŒá¯ááá·áº áááááá¬áá»á¬ážááᯠá¡áááºážá¡ááŒá áºá០ááááºáá±á¬ááºááá¯ááºáá±á¬á·áá±á
ááááºáá±á¬á· áá«á áááá¯ážáá«áá°ážá áá¬ááŒá áºááá¯á·áá²ááá¯áá±á¬á·
- áá»áœááºá¯ááºááá¯á·ááẠááá¯ááá¯ááŸá¯ááºááœá±ážáá±á¬áºáááºáž á¡áá¯á¶ážááŒá¯áááœááºáá°áá±á¬áá±á¬á·ááºáá²ááºááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááá±á¬ááºáá¬áá áºáá¯ááẠá¡áá¯á¶ážááŒá¯áá¡áááºááŒá±áá±á¬áºáááºáž áááºážááœáẠopen source á¡á áááºá¡ááá¯ááºážáá»á¬ážá áœá¬áá«áááºááŒá®áž á¡á ááŸáááºáá±á¬ááºááẠá¡áááºáááŒá±áá«á
- áá°áá»á¬áž ááẠopen source ááŸáá·áº á¡ááŒá¬áž software áá»á¬ážá developer áá»á¬áž ááŒá áºáá¬ááá¯ááºáááºá áá±á¬á·ááºáá²ááºáá»á¬ážááᯠá á®ážááœá¬ážáá±ážáá¯ááºáááºážáá»á¬ážá ááá¯ááá¯á¡áá¯á¶ážááŒá¯ááŒááŒá®áž áááºážá¡ááœáẠááá¯á¡ááºááŸá¯ ááá¯áá»á¬ážáá¬áááºá
á¡á¬ážáááºážáá»ááºááŸá¬ ááá¯ážááŸááºážááŸá¯ááá±á¬ááºáá áºááá·áºááẠcloud solutions áá»á¬ážá¡áá¯á¶ážááŒá¯ááŒááºážááŸáá·áº áááºá ááºáá±ááŒá®ážá áááºážááẠáá±á¬ááºážáá»áá°ááá±á¬á·ááºáá»ááŒááºážááᯠááŒá áºáá±á«áºá á±áááºá ááá¯ááá¯áááºááŸá¬ áá±ážááœááºážáá°áá áºáŠážááŸáá·áº áá»áááºáááºáá¬ážáááºá áá»áœááºá¯ááºááá¯á·ááẠááá¯ážááŸááºážáá±á¬ááŒá±ááŸááºážáááºážáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááŒá®áž áá¶á·ááá¯ážáá±ážáá°áá»á¬ážááẠopen source á¡á áááºá¡ááá¯ááºážáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááŒáááºá ááá¯á·áá±á¬áº á¡ááŸááºááááºááœáẠáááºážááá¯á·ááẠááŒá®ážáá¬ážáá±á¬ááááºááá¯ááºáá»á¬ážá¡áááºááŸáá áºáá¯ááá¯á· áá¶ááŸáá¯ááŒá¯áá¬ážáááºá ááá¯ááá¯áááºááŸá¬á á¡ááœááºáá¯á¶ážááŸáá·áº á¡áá»ááºááŒááºáá¯á¶ážáááºážáááºážááŸá¬ open source (áááºážááŸáá·áº ááœá²áááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá±á¬ áá±á¬á·ááºáá²ááº) ááᯠáá®ážááá·áº API ááᯠá¡áá¯á¶ážááŒá¯á cloud áá»á¬ážááœááºááŒá áºáááºá
cloud ááŸááá±áá¬áá±á·á áºáá»á¬ážááŸáá·áºáááºáááºáá¬áá±á¬á¡áá«á áá»ááºážáááºááŸá¯ááŸá áºáá¯ááŸááááºá
- áá¯á¶ááŸááºáá±áá¬á ááºáá¬ááœááºáá²á·ááá¯á· áá±áá¬áá±á·á áºá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááᯠá á¯á ááºážáá«á ááá¯ááá¯áááºááŸá¬á á á¶áááºáá±á¬ááºááŸá¯áá¯á¶ážáá»á¬ážááá¯áá°áá«- ááœááºáá»á°áá¬á ááá¯ááŸá±á¬ááºááŸá¯á áááºááŒáá·áºá áááºážááá¯á·ááœáẠLinux ááŸáá·áº áá±áá¬áá±á·á áºáá áºáá¯ááᯠááá·áºááœááºážááŒá®áž áááºážááá¯á·ááᯠconfigure áá¯ááºáá«á
- áááºáá±á¬ááºááŸá¯áá áºáá¯á¡áá±ááŒáá·áº áá±áá¬áá±á·á áºááᯠá¡áá¯á¶ážááŒá¯áá«á áááºáá±á¬ááºááŸá¯áá±ážáá°á cloud á¡ááœááºáž á¡ááá·áºáá¯ááºáá¬ážáá±á¬ áá±áá¬áá±á·á áºááᯠáá±ážáá±á¬ááºáááºá
DBaaS ááẠdeveloper áá»á¬ážá¡á¬áž databases áá»á¬ážááŸáá·áº ááá¯ááºááá¯ááºá¡áá¯ááºáá¯ááºááá¯ááºááŒá®áž áá¯ááºááá¯ážáá¯ááºá ááºáá»á¬ážááᯠáá»á±á¬á·áá»áá±ážáá±á¬ááŒá±á¬áá·áº ááá¯á¡áá«ááœáẠáá»ááºááŒááºá áœá¬ááŒá®ážááœá¬ážáá¬áá±á¬á á»á±ážááœááºáá áºáá¯ááŒá áºáááºá áááºáá±á¬ááºááŸá¯áá±ážáá°ááẠááŒáá·áºáá¬ážáá±á¬áááŸáááá¯ááºááŸá¯ááŸáá·áº ááœááºáá°áá±á¬á¡ááá¯ááºážá¡áá¬á áá±áá¬áá±á·á áºáá¬áá±ážááŸá¯á á¡áááºááááºážáááºážááŸá¯áá»á¬ážááŸáá·áº á áœááºážáá±á¬ááºáááºáá»áááºááŸáááŸá¯áá»á¬ážááᯠáá±áá»á¬á á±ááẠáá¯ááºáá±á¬ááºáááºá
open source ááá¯á¡ááŒá±áá¶á áááºáá±á¬ááºááŸá¯áá áºáá¯á¡áá±ááŒáá·áº áá±áá¬áá±á·á Ạá¡áá»áá¯ážá¡á á¬ážááŸá áºáá¯ááŸáá·áº Kubernetes áá¯á¶á á¶ááŒáá·áº á¡ááŒá¬ážááœá±ážáá»ááºá áá¬áá áºáá¯
á¡ááœáá·áºáá±áá¬áá±á·á áºáá»á¬ážá¡ááœáẠáááºáá±á¬ááºááŸá¯á¡ááŒá Ạáá±áá¬áá±á·á Ạá¡áá»áá¯ážá¡á á¬áž ááŸá áºáá»áá¯ážááŸááááºá
- ááœááºáá°á áœá¬ ááŒáá·áºáá»ááºááŒááºážááŸáá·áº á á®áá¶ááá·áºááœá²ááŸá¯á¡ááœáẠá á®áá¶ááá·áºááœá²áá±áž áá±á¬ááºáá¶ááœáẠáá¯ááºááá¯ážáá¬ážáá±á¬ á á¶ááœáá·áºá¡áááºážá¡ááŒá Ạáá¯ááºáá¯ááºáá áºáá¯á
- open source ááŸáá·áº ááœá²áááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá±á¬ á¡áá»áá¯ážáá»áá¯ážáá±á¬ á¡ááá¯áááá¯ááááºáá»á¬ážáá«ááŸááá±á¬ á¡ááá·áºááŒáá·áº á á®ážááœá¬ážááŒá áºááŒá±ááŸááºážáá»ááºá
ááœá±ážáá»ááºááŸá¯ááŸá áºáá¯á áá¯á¶ážááẠcloud áá»á¬ážááŒá¬ážááœáẠááœáŸá±á·ááŒá±á¬ááºážááá¯ááºááŒá±ááᯠáá»áŸá±á¬á·áá»ááŒá®áž áá±áá¬ááŸáá·áº á¡ááá®áá±ážááŸááºážáá»á¬ážá áááºáá±á¬ááºáááœááºáá°ááŸá¯ááᯠáá»áŸá±á¬á·áá»áá±ážáááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááá°áá®áá±á¬ cloud á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááẠá¡ááŒá±áá¶á¡á¬ážááŒáá·áº á ᶠMySQL áá áºáá¯áááºážááᯠáá¶á·ááá¯ážáá±ážáá±á¬áºáááºáž áááºážááá¯á·ááŒá¬ážááœáẠáááá¬áááºááŸá¬ážáá±á¬ ááœá¬ááŒá¬ážáá»ááºáá»á¬áž ááŸááá±áááº- áááºáááºááŸá¯á á áœááºážáá±á¬ááºáááºá á¡áááºááááºážááŒááºáž á áááºááŒáá·áºá cloud áá áºáá¯á០áá áºáá¯ááá¯á· ááœáŸá±á·ááŒá±á¬ááºážááŒááºážááẠá¡áá°ážáááŒáá·áº ááŸá¯ááºááœá±ážáá±á¬ application áá»á¬ážá¡ááœáẠá áááºáá±á«áºááŸá¯ááŒá áºááá¯ááºáááºá
áá®áá±áá¬ááŸá¬ áá±ážá áá¬ááŸááá¬áá¬á - áááºáá±á¬ááºááŸá¯áá áºáá¯á¡áá±áá²á· Database áá²á· á¡áááºááŒá±ááŒá±ááᯠáááá¯ááºáá«á·ááá¬ážá áá«áá±ááá·áº ááá¯ážááŸááºážáá²á· open source ááŒá±ááŸááºážáá»ááºá¡áá±áá²á·á
ááááºážááá¯ážááá±á¬á· áá¶ááá±á¬ááºážá áœá¬áá²á á á»á±ážááœááºááŸá¬ áá®ááá¯ááŒá±ááŸááºážáá»ááºáá»áá¯áž áááŸááá±ážáá«á ááááºážáá±á¬ááºážááŸá¬ ááá¯áá²á·ááá¯á·áá±á¬ ááŒá±ááŸááºážáá»ááºáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠááœáá·áºááŒá¯ááá·áº Kubernetes ááŸááááºá
Kubernetes ááẠcloud ááá¯á·ááá¯áẠáá±áá¬á ááºáá¬á¡ááœáẠáááºáááºááŸá¯á áá áºáá áºáá¯ááŒá áºááŒá®áž host áá áºáá¯ááœááºááá¯ááºáá² áá¬áá¬áá»á¬ážá áœá¬ááŸá á¡á á¯á¡áá±ážáá áºáá¯ááœáẠá¡ááá®áá±ážááŸááºážáá áºáá¯á¡á¬áž ááŒáá·áºáá»ááºááŒá®áž á á®áá¶ááá·áºááœá²ááœáá·áºááŒá¯áááºá
ááᯠKubernetes ááẠááá¯áá²á·ááá¯á·áá±á¬áá±á¬á·ááºáá²ááºá¡áá»áá¯ážá¡á á¬ážááœáẠáŠážáá±á¬ááºáá°ááŒá áºáááºá ááá¯ááá¯á·áá±á¬ááŒá¿áá¬áá»á¬ážá¡ááœáẠááá°áá®áá±á¬ááŒá±ááŸááºážáááºážáá»á¬ážá áœá¬ááŸááá²á·áá±á¬áºáááºáž á á¶ááŸá¯ááºážáá áºáá¯ááŒá áºáá¬áá²á·áááºá á¡á á¬ážááá¯ážááŒá±ááŸááºážáááºážáá»á¬ážááᯠá¡á¬áá¯á¶á áá¯ááºáá²á·áá°ážáá±á¬ áá¯áá¹ááá®á¡áá»á¬ážá¡ááŒá¬ážááẠKubernetes ááᯠáá¶á·ááá¯ážáááºá¡ááœáẠáááºážááá¯á·ááá¯ááºáá¯ááºáá»á¬ážááᯠááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá¡á±á¬áẠáá¯ááºáá±á¬ááºááẠá¡á¬áá¯á¶á áá¯ááºáá¬ááŒáááºá
ááá¯á·á¡ááŒáẠKubernetes ááẠáá±á¬ááºážáá»áá°á¡áá»á¬ážá¡ááŒá¬ážá áá®ážááá·áºá á¡áá»á¬ážáá°ááŸá¬ááŸáá·áº áá±á«ááºážá
ááºáá¬ážáá±á¬ cloud áá»á¬ážááœáẠáá¶á·ááá¯ážáá±ážááá·áº universal solution áá
áºáá¯ááŒá
áºááá·áº á¥ááá¬- AWSá Google Cloudá Microsoft Azureá
áá±áá¬áá±á·á áºáá»á¬ážááŸáá·áº Kubernetes á¡áá¯ááºáá¯ááºáá¯á¶
Kubernetes ááẠáá°áá áá±áá¬ááᯠáá¯ááºáá±á¬ááºááá·áº ááá¯ááºáá¶áá²á· á¡ááá®áá±ážááŸááºážáá»á¬ážá¡ááœáẠáá®ááá¯ááºážáá¯ááºáá²á·áá±á¬áºáááºáž ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯ ááá¯á·ááá¯áẠáááºá¡ááºááºáá®áá±ážááŸááºážáá»á¬ážáá²á·ááá¯á· áááºááá·áºá¡áá¬ááá¯áá»áŸ áááááºážáááºážáá«á áá±áá¬áá±á·á áºáá»á¬ážááẠspectrum áá¡ááŒá¬ážá¡áá¯á¶ážááœááºááŒá áºáááºá ááá¯ááá¯áááºááŸá¬ áááºážááá¯á·ááẠstateful applications áá»á¬ážááŒá áºáááºá Kubernetes ááẠááá¯áá²á·ááá¯á·áá±á¬ á¡ááá®áá±ážááŸááºážáá»á¬ážá¡ááœáẠáá°ááááºááœááºááŒááºážááá¯ááºáá±á
ááá¯á·áá±á¬áºáááºážá áááŒá¬áá±ážáá®á Kubernetes ááœáẠáá±áá¬áá±á·á áºáá»á¬ážááŸáá·áº á¡ááŒá¬ážááŒááºáááºá¡ááá¯áẠá¡ááá®áá±ážááŸááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºáá±ážááá·áº á¡ááºá¹áá«áááºáá»á¬áž ááŸááááº-
- StatefulSet á¡áá°á¡áááẠpods áá»á¬ážáá¡áá¯ááºáá»á¬ážááá¯áááºááá·áºááŒááºážááŸáá·áº Graceful Shutdown (á¡ááá®áá±ážááŸááºážááá¯ááŒáá¯áááºááá·áºááŸááºážááá¯ááºáá±á¬ááááºáá áºááŒááºáž) ááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážááá¯ááºáá¬ááŒá áºáááºáá»á¬ážáá¯ááºáá±á¬ááºááŒááºážá¡ááœááºá¡ááŒá±áá¶á á®ážáá®ážáá áºáá¯áá¯á¶ážááŒá áºáááºá
- Persistent Volumes áá»á¬ážááẠpodsá Kubernetes á á®áá¶ááá·áºááœá²ááŸá¯á¡áá¬ááá¹áá¯áá»á¬ážááŸáá·áº áááºá ááºáá±ááá·áº áá±áá¬á ááá¯ážááá¯ááºáá»á¬ážááŒá áºáááºá
- á¡á±á¬áºááá±áá¬áá±á¬áẠ- ááá¯ááá¯áááºááŸá¬á áá±áá¬áá±á·á áºáá»á¬ážááŸáá·áºá¡ááŒá¬ážááŒááºáááºááá¯ááºáá¬á¡áá¯á¶ážáá»ááá®áá±ážááŸááºážáá»á¬ážááá¯á á®áá¶ááá·áºááœá²áááºá¡ááœááºá¡á áááºá¡ááá¯ááºážáá»á¬ážááá¯áááºáá®ážááá¯ááºááŸá¯ááŒá áºáááºá
ááá¯á¡áá« á¡áá»á¬ážáá°ááŸá¬ cloud áá»á¬ážááœáẠááŸáááŸáá·áºááŒá®ážáá±á¬ áááºáá±á¬ááºááŸá¯á¡ááŒá Ạáá±áá¬áá±á·á áºááŒá®ážáá»á¬ážá á¥ááᬠKubernetes ááŒá áºááá·áº CockroachCloudá InfluxDBá PlanetScale ááá¯á·á áá±á¬ááºááœááºááœáẠááŸááá±áá«áááºá ááá¯ááá¯áááºááŸá¬ Kubernetes ááŸá áá±áá¬áá±á·á áºááẠáá®á¡áá¯áá®á¡á ááŒá áºááá¯ááºááá·áºá¡áá¬áá¬áá áááºááœá±á·ááœááºáá« áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ á¡áá¬áá áºáá¯ááŒá áºáááºá
Percona ááœáẠKubernetes á¡ááœáẠopen source ááŒá±ááŸááºážáá»ááºááŸá áºáá¯ááŸááááºá
- MongoDB á¡ááœáẠPercona áá¬áá¬á¡ááœáẠKubernetes á¡á±á¬áºááá±áá¬á
- XtraDB CLUSTER á¡ááœáẠKubernetes á¡á±á¬áºááá±áá¬ááẠMySQL ááŸáá·áº áááá¬áááŒá áºááŒá®áž ááŒáá·áºáá¬ážáá±á¬áááŸáááá¯ááºááŸá¯ááŸáá·áº ááá¯ááºáá»á±á¬áá®ááœá±ááŸá¯ááá¯á·ááᯠáá±ážáá±á¬ááºááá·áº áááºáá±á¬ááºááŸá¯áá áºáá¯ááŒá áºáááºá ááŒáá·áºáá¬ážáá±á¬áááŸáááá¯ááºááŸá¯áááá¯á¡ááºáá«á á¥ááá¬- dev áá±áá¬áá±á·á áºá¡ááœáẠáááºá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
Kubernetes á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááᯠá¡á¯ááºá á¯ááŸá áºá á¯ááœá²ááá¯ááºáááºá á¡áá»áá¯á·áá±á¬áá°áá»á¬ážááẠKubernetes á¡á±á¬áºááá±áá¬áá»á¬ážááᯠááá¯ááºááá¯ááºá¡áá¯á¶ážááŒá¯ááŒááẠ- áááºážááá¯á·ááẠá¡áááá¡á¬ážááŒáá·áº áááºážááá¬á¡áá¯ááºáá¯ááºáá¯á¶ááᯠáá±á¬ááºážááœááºá áœá¬áá¬ážáááºáá¬ážáá±á¬ á¡ááá·áºááŒáá·áºá¡áá¯á¶ážááŒá¯áá°áá»á¬ážááŒá áºáááºá á¡ááŒá¬ážáá°áá»á¬ážá áááºážááᯠáá±á¬ááºáá¶ááœáẠáá¯ááºáá±á¬ááºááẠ- ááá¯áá²á·ááá¯á·áá±á¬ á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááẠáááºáá±á¬ááºááŸá¯áá áºáá¯á¡áá±ááŒáá·áº Database áá²á·ááá¯á·áá±á¬ á¡áá¬áá áºáá¯áá¯ááᯠá áááºáááºá á¬ážááŒááŒá®áž Kubernetes á ááœá²ááŒá¬ážáá»ááºáá»á¬ážááᯠáá¬ážááááºáá»ááºááŒáá«á áá¯áááá¡áá¯á¶ážááŒá¯áá°á¡á¯ááºá á¯á¡ááœááºá áá»áœááºá¯ááºááá¯á·ááœáẠá¡ááŒá¬ážáá±á¬ open source ááŒá±ááŸááºážáá»áẠ- Percona DBaaS CLI Toolá áááºážááá¬ááᯠáááºáá²á áœá¬áá¬ážááááºáá² Kubernetes ááá¯á¡ááŒá±áá¶áá¬ážáá±á¬ open source DBaaS ááá¯ááá°ááá¯áá°áá»á¬ážá¡ááœáẠá ááºážáááºááŒá±ááŸááºážáá»ááºáá áºáá¯ááŒá áºáááºá
Google Kubernetes Engine ááœáẠPercona á DBaaS ááᯠáááºááá¯á·áá¯ááºáá±á¬ááºááááºáááºážá
áá»áœááºáá±á¬á·áºá¡ááŒááºá¡á Google Kubernetes Engine ááẠKubernetes áááºážááá¬á áá¯ááºáá±á¬ááºááá¯ááºáá¯á¶ážáá±á¬ á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá áºáá¯ááŒá áºáááºá áááºážááᯠááá¹áá¬á·áá±ááá»á¬ážá áœá¬ááœááºáááŸáááá¯ááºááŒá®áž ááááºáá±á¬ááºážááᯠááá¯ááºááá¯ááºá á®áá¶ááá·áºá¡á á¬áž scripts áá»á¬ážááᯠáááºáá®ážááá¯ááºá á±ááá·áº ááá¯ážááŸááºážááŒá®áž á¡áááºááŒá±áá±á¬ Command Line Tool (SDK) áá«ááŸááááºá
áá»áœááºá¯ááºááá¯á·á DBaaS á¡áá¯ááºáá¯ááºáááºá¡ááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºáá« á¡á áááºá¡ááá¯ááºážáá»á¬áž ááá¯á¡ááºáá«áááºá
- Kubectl
- Google Cloud SDK
- Percona DBaaS CLI
kubectl ááᯠinstall áá¯ááºáá«á
áá»áœááºá¯ááºááá¯á·ááẠáááºááááºáááºááŸá¯á
áá
áºá¡ááœáẠáááºáá±á·ááºá»ááᯠáááºáááºáááºá áá»áœááºá¯ááºááá¯á·ááẠUbuntu á ááá°áá¬ááᯠááŒáá·áºáá«áááºá á¡áá±ážá
áááºá¡áá»ááºáá»á¬áž
sudo apt-get update && sudo apt-get install -y apt-transport-https gnupg2
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
Google Cloud SDK ááᯠááá·áºááœááºážááŒááºážá
áá»áœááºá¯ááºááá¯á·ááẠááá¯áááºážá¡ááá¯ááºáž áá±á¬á·ááºáá²ááºáááºáá±á·ááºá»ááᯠááá·áºááœááºážáá«á á¡áá±ážá
áááºá¡áá»ááºáá»á¬áž
# Add the Cloud SDK distribution URI as a package source
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg]
http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
# Import the Google Cloud Platform public key
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
# Update the package list and install the Cloud SDK
sudo apt-get update && sudo apt-get install google-cloud-sdk
Percona DBaaS CLI ááᯠááá·áºááœááºážááŒááºážá
Percona repositories á០install áá¯ááºáá«á Percona DBaaS CLI Tool ááẠá ááºážáááºáá²áá¯ááºáá¯ááºáá áºáá¯ááŒá áºáá±áá²ááŒá áºáá±á¬ááŒá±á¬áá·áº Percona repositories ááá¯ááá·áºááœááºážáá¬ážááŒá®ážááŒá áºáá»áŸááºááẠáá®ážááŒá¬ážá á®ááœáá·áºáá¬ážááááºááŒá áºááŒá®áž áááºážááẠá ááºážáááºááá¯ááŸá±á¬ááºááŸá¯ááœááºáááºááŸááá«áááºá
ááá¯áá»á¬ážáá±á¬
áááºáááºááŸá¯ á¡ááºáááá¯áá®áááº-
- percona-release tool ááᯠá¡áá¯á¶ážááŒá¯á Percona ááá¯ááŸá±á¬ááºááŸá¯áá»á¬ážááᯠá
áá
áºááá·áºááœááºážáá«á ááááŠážá
áœá¬ áááºááẠPercona ááŸááá¬ážááẠpercona-release package ááá¯áá±á«ááºážáá¯ááºáá¯ááºááŒá®áž ááá·áºááœááºážáááºááá¯á¡ááºáááº-
wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb sudo dpkg -i percona-release_latest.generic_all.deb
- á
ááºážáááºáááááᬠááá¯ááŸá±á¬ááºááŸá¯ á¡á
áááºá¡ááá¯ááºážááᯠá¡á±á¬ááºáá«á¡ááá¯ááºáž ááœáá·áºáá«-
sudo percona-release enable tools experimental
- percona-dbaas-cli áááºáá±á·áá»áºááᯠááá·áºááœááºážáá«-
sudo apt-get update sudo apt-get install percona-dbaas-cli
á¡á áááºá¡ááá¯ááºážáá»á¬ážá áááºáááºááŸá¯ááᯠáááºááŸááºááŒááºážá
áááºáááºáá»á¬ážá¡ááŒá±á¬ááºáž áá±á¬ááºáááº
ááááŠážá áœá¬ ááá·áº Google á¡áá±á¬áá·áºááá¯á· áááºáá±á¬ááºááẠááá¯á¡ááºáá«áááºá ááá¯á·á¡ááŒááºá Google Cloud ááẠáá¯á¶ážá áœá²áá°áá áºáŠážá¡á¬áž áá®ážááŒá¬ážááœááºáááºáá±á¬ ááá±á¬áá»ááºáá»á¬ážá áœá¬ááᯠááŒá¯áá¯ááºááá¯ááºá á±áá±á¬ááŒá±á¬áá·áº áááºááẠá€ááá±á¬áá»ááºá¡ááœáẠáá¯ááºááᯠá¡áá¯á¶ážááŒá¯á á¡áá¯ááºáá¯ááºááá·áº ááá±á¬áá»ááºáá áºáá¯ááᯠáááºááŸááºááẠááá¯á¡ááºáááº-
gcloud auth login
gcloud config set project hidden-brace-236921
ááá¯á·áá±á¬ááºá áá»áœááºá¯ááºááá¯á·ááẠá¡á á¯á¡áá±ážáá áºáá¯ááᯠáááºáá®ážáááºá ááá¯ááºááŒá¡ááœááºá áá»áœááºá¯ááºááẠnode áá¯á¶ážáá¯áá¬ááŸááá±á¬ Kubernetes á¡á á¯á¡áá±ážáá áºáá¯ááᯠáááºáá®ážáá²á·ááẠ- á€áááºááŸá¬ ááŒáá·áºáá¬ážáá±á¬áááŸáááá¯ááºááŸá¯á¡ááœáẠááá¯á¡ááºáá±á¬ á¡áááá·áºáá¯á¶ážááŒá áºáááº-
gcloud container clusters create --zone us-central1-a your-cluster-name --cluster-version 1.15 --num-nodes=3
á¡á±á¬ááºáá« kubectl command ááẠáá»áœááºá¯ááºááá¯á·ááááºááŸáá¡áá¯á¶ážááŒá¯áá°ááᯠááá¯áá»ááºáá±á¬á¡ááœáá·áºá¡áá±ážáá»á¬ážáá±ážáááº-
kubectl create clusterrolebinding cluster-admin-binding-$USER
--clusterrole=cluster-admin --user=$(gcloud config get-value core/account)
ááá¯á·áá±á¬áẠáá»áœááºá¯ááºááá¯á·ááẠnamespace áá áºáá¯áááºáá®ážááŒá®áž áááºážááᯠáááºááŒáœá¡á±á¬ááºáá¯ááºáá«á Namespace ááẠá¡ááŒááºážáá»ááºážá¡á¬ážááŒáá·áºááŒá±á¬ááá»áŸáẠááá±á¬áá»ááºáá áºáᯠááá¯á·ááá¯áẠáááºáááºážáá»ááºááŸáá·áºáá°áá±á¬áºáááºáž Kubernetes á¡á á¯á¡áá±ážáá áºáá¯á¡ááœááºážááœáẠááŸááá±ááŒá®ážáá¬ážááŒá áºáááºá áááºážááẠGoogle Cloud ááá±á¬áá»ááºáá»á¬ážá០áá®ážááŒá¬ážááŒá áºáááº-
kubectl create namespace my-namespace
kubectl config set-context --current --namespace=my-namespace
á¡á á¯á¡áá±ážááᯠá áááºááŒááºážá
á€á¡ááá·áºá¡áááºážáááºááᯠáá»áœááºá¯ááºááá¯á·ááŒááºáááºážááŒá®ážáááºááŸáá·áºá áá»áœááºá¯ááºááá¯á·ááẠá€ááá¯ážááŸááºážáá±á¬ command ááŒáá·áº áá¯á¶áž-node á¡á á¯á¡áá±ážáá áºáá¯ááᯠá áááºááá¯ááºáááº-
# percona-dbaas mysql create-db example
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider: k8s
Engine: pxc
Resource Name: example
Resource Endpoint: example-proxysql.my-namespace.pxc.svc.local
Port: 3306
User: root
Pass: Nt9YZquajW7nfVXTTrP
Status: ready
á¡á á¯á¡áá±ážáá áºáá¯ááá¯á· áá»áááºáááºáááºáž
áá°áááºážá¡á¬ážááŒáá·áºá áááºážááᯠKubernetes ááœááºáᬠáááá¯ááºáááºá ááá¯ááá¯áááºááŸá¬ áááºááẠ"Create" á¡áááá·áºááᯠáá¯ááºáá±á¬ááºáá²á·áá±á¬ á€áá¬áá¬á០áááºážááᯠá¡áá¯á¶ážááŒá¯ááááá«á á¥ááá¬á¡á¬ážááŒáá·áºá áááá¯ááºážááá·áºáá áºáŠážááŸáá·áº á ááºážáááºááŸá¯áá»á¬áž ááŒá¯áá¯ááºáááºá¡ááœáẠPort Mapping ááŸáááá·áº ááááºáááºážááᯠáááºááá·áºááá¯á·ááẠááá¯á¡ááºáááº-
kubectl port-forward svc/example-proxysql 3306:3306 $
ááá¯á·áá±á¬áẠáá»áœááºá¯ááºááá¯á·ááẠáááºá MySQL client ááᯠáá»áááºáááºáá«-
mysql -h 127.0.0.1 -P 3306 -uroot -pNt9YZquajW7nfVXTTrP
á¡ááá·áºááŒáá·áº á¡á á¯á¡áá±ážá á®áá¶ááá·áºááœá²ááŸá¯ ááœáŸááºááŒá¬ážáá»ááºáá»á¬áž
á¡áá»á¬ážáá°ááŸá¬ IP ááŸá áá±áá¬áá±á·á áº
á¡á á¯á¡áá±ážáááŸáááá¯ááºááŸá¯á¡ááœáẠááá¯ááá¯áááºááŒá²áá±á¬ááŒá±ááŸááºážáá»ááºáá áºáá¯ááᯠááá¯áá»ááºáá«áá ááŒááºá IP ááááºá á¬ááᯠáááºáááá¯ááºáááºá á€ááá á¹á ááœááºá áá±áá¬áá±á·á áºááᯠáááºááá·áºáá±áá¬ááŸáááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯ááá¯ááºáááºááŒá áºáááºá áá«á áá¯á¶ááŒá¯á¶ááŸá¯áááºážáá±ááá·áº ááá¯á¡áááºááŒá±áááºáá«áááºá ááŒááºá IP á¡ááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºáá« command ááᯠá¡áá¯á¶ážááŒá¯ááẠá
# percona-dbaas mysql create-db exposed
--options="proxysql.serviceType=LoadBalancer"
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider: k8s
Engine: pxc
Resource Name: exposed
Resource Endpoint: 104.154.133.197
Port: 3306
User: root
Pass: k0QVxTr8EVfgyCLYse
Status: ready
To access database please run the following command:
mysql -h 104.154.133.197 -P 3306 -uroot -pk0QVxTr8EVfgyCLYse
á áá¬ážááŸááºááᯠá¡ááá¡áááºáž áááºááŸááºáá«á
á áá áºá á áá¬ážááŸááºááᯠáá»áááºážáá¯ááºáá±ážááá·áºá¡á á¬ážá á áá¬ážááŸááºááᯠááŒááºáá¬ážá áœá¬ áááºááŸááºááá¯ááºáá«áááºá
# percona-dbaas mysql create-db withpw --password=mypassword
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider: k8s
Engine: pxc
Resource Name: withpw
Resource Endpoint: withpw-proxysql.my-namespace.pxc.svc.local
Port: 3306
User: root
Pass: mypassword
Status: ready
áá»áœááºá¯ááºááẠáá°áá¬ážáááºááá¯ááºáá±á¬ áá±á¬áºáááºááŒáá·áº áá¬ááºááœáŸááºážáá»á¬ážá á¡ááœááºááᯠááŒááá±áá±á¬áºáááºáž JSON áá±á¬áºáááºááá¯áááºáž áá¶á·ááá¯ážáá¬ážáááºá
ááŒáá·áºáá¬ážáá±á¬áááŸáááá¯ááºááŸá¯ááᯠááááºááŒááºážá
á¡á±á¬ááºáá« command ááŒáá·áº node áá áºáá¯áááºážááá¯á¡áá¯á¶ážááŒá¯ááẠááŒáá·áºáá¬ážáá±á¬áááŸáááá¯ááºááŸá¯ááᯠááááºááá¯ááºáááº-
# percona-dbaas mysql create-db singlenode
--options="proxysql.enabled=false, allowUnsafeConfigurations=true,pxc.size=1"
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider: k8s
Engine: pxc
Resource Name: singlenode
Resource Endpoint: singlenode-pxc.my-namespace.pxc.svc.local
Port: 3306
User: root
Pass: 22VqFD96mvRnmPMGg
Status: ready
áááºážááẠMySQL ááᯠáááºááá¯ááºááá»áŸ áá»ááºááŒááºááœááºáá°á áœá¬ áá¯ááºáá±á¬ááºááá¯ááºáááºá á ááºážáááºááŒá®ážáá±á¬áẠáááºážááᯠááááºááẠááá¯á·ááá¯áẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááœáẠá¡áá¯á¶ážááŒá¯ááẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá ááºážáááºááŒááºážá¡ááœáẠááŒá±ááŸááºážáá»ááºáá áºáá¯ááŒá áºáááºá
Percona DBaaS CLI áááááá¬ááẠKubernetes ááœáẠDBaaS áá²á·ááá¯á·áá±á¬ ááŒá±ááŸááºážáá»ááºáá áºáá¯ááᯠáááŸáá á±ááẠáá°áá®áá±ážáááºá áá áºáá»áááºáááºážááŸá¬áááºá áá»áœááºá¯ááºááá¯á·ááẠáááºážááá¯ááºáá±á¬ááºááá¯ááºá áœááºážááŸáá·áº á¡áá¯á¶ážááŒá¯ááá¯ááºá áœááºážá¡áá±á«áº áááºáááºáá¯ááºáá±á¬ááºáá±áá«áááºá
áá®á¡á
á®áááºáá¶á
á¬ááᯠááááá¯á¶áž áááºááŒáá²á·áᬠááŒá
áºáá«áááºá
áá±á«ááºážá ááºáá²á· áááºáááºááŒá®áž áá±á¬ááºáááºáá¬ááœá±áááºáááá²á
áá±ááºáá® IIoT ááááºáá±á¬ááºážááŸá áá±áá¬áá±á·á áºáá»á¬ážá ááá±á¬áá»ááºáá áºáá¯á¡ááœáẠáá±áá¬áá±á·á áºáá áºáá¯ááᯠáááºááá¯ááœá±ážáá»ááºáááá²ááá¯áᬠáááºááœá±ážáá»ááºá áᬠáááá¯áá±á¬á·áá«áá°ážá
source: www.habr.com