ΠΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠ΅ΡΡ ΠΠ°ΠΉΡΠ΅Π², Π°Π· ΡΡΠΌ Π³Π»Π°Π²Π΅Π½ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡ, ΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»
- ΠΊΠ°ΠΊ ΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ ΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π΄ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°;
- ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π·Π° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ°;
- ΠΊΠ°ΠΊ Kubernetes ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈ DBaaS, Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°ΠΉΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΉΠΊΠΈ ΠΏΡΠΎΡΡΠΎΡΠ°ΡΠ° Π½Π° Π‘Π£ΠΠ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°.
Π‘ΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΈΠ·Π³ΠΎΡΠ²Π΅Π½Π° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄ Π½Π° @Databases Meetup ΠΎΡ Mail.ru Cloud Solutions & Tarantool. ΠΠΊΠΎ Π½Π΅ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΠ΅ΡΠ΅ΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³Π»Π΅Π΄Π°ΡΠ΅:
ΠΠ°ΠΊ ΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ ΠΎΡ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π΄ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π° Π² ΠΎΠ±Π»Π°ΠΊΠ°
Π Π°Π±ΠΎΡΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΎΡ ΠΊΡΠ°Ρ Π½Π° 90-ΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ. ΠΡΠ΅Π΄ΠΈ Π΄Π²Π°Π΄Π΅ΡΠ΅Ρ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΊΠ°ΡΠΎ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π½Π΅ Π±Π΅ΡΠ΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π»Π΅ΡΠ½ΠΎ. ΠΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄, Π΄Π° Π³ΠΎ Π·Π°ΠΊΡΡΠΏΠΈΡΠ΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΡΠ΅ ΠΈ Π΅Π΄Π²Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΏΡΠ΅ΠΌΠΈΠ½Π° ΠΏΡΠ΅Π· ΡΠ΅ΡΠΈΡ ΠΎΡ ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½ΠΈΡ:
- Tar.gz ΠΈ INSTALL ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ;
- ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΊΠ°ΡΠΎ .deb ΠΈ .rpm, ΠΊΡΠ΄Π΅ΡΠΎ ΡΡΡΠ±Π²Π° ΡΠ°ΠΌΠΎ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠΈ;
- ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΊΠ°ΡΠΎ APT ΠΈ YUM, Ρ ΠΊΠΎΠΈΡΠΎ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡΠ° Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½Π°;
- ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠΎ Docker ΠΈ Snap, ΠΊΠΎΠΈΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΡΠ΅Π· ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π±Π΅Π· Π²ΡΠ½ΡΠ½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΡΡΠ°Π²Π° ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΎΡΡΡΠ΅Ρ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Ρ Π±Π°ΡΠΈΠ΅ΡΠΈΡΠ΅ Π·Π° Π½Π°Π²Π»ΠΈΠ·Π°Π½Π΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΡΡΠ° ΠΏΡΠ΅Π΄ΠΈ 20 Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠ΅ΠΊΠΈ Π±Π΅ΡΠ΅ Π΅ΠΊΡΠΏΠ΅ΡΡ ΠΏΠΎ Π°ΡΠ΅ΠΌΠ±Π»ΠΈΡΠ°Π½Π΅, ΡΠ΅Π³Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ ΠΎΡ ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ°.
ΠΡΡΡΠ½ΠΎΡΡ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π»ΠΎΡΠΎ, Π·Π°ΡΠΎΡΠΎ:
- ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ΅Π½, Π½ΠΎ ΠΏΠΎ-Π»Π΅ΡΠ΅Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΡΠΎΡΡΡΠ΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅Π΄ΠΈΠ½ Π±ΡΠ°ΡΠ·ΡΡ Π΅ ΡΠ΄ΠΎΠ±Π΅Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅, Π½ΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΈ Π΅ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΠΎΡ Π½ΡΠ»Π°ΡΠ°.
- ΠΠΎΠ²Π΅ΡΠ΅ Ρ ΠΎΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ°Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° ΡΠΎΡΡΡΠ΅Ρ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΈ Π΄ΡΡΠ³ ΡΠΎΡΡΡΠ΅Ρ, ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠΎΡΡΡΠ΅Ρ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ Π±ΠΈΠ·Π½Π΅ΡΠ° ΠΈ Π½ΡΠΆΠ΄Π°ΡΠ° ΠΎΡ Π½Π΅Π³ΠΎ Π΅ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ°.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠΊΡΡ Π΅, ΡΠ΅ ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΡΠΏΠΊΠ° Π² ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π΅ ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π° ΡΠΎΠ²Π° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ vendor lock-in, ΡΠΎΠ΅ΡΡ ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½Π΅ Ρ Π΅Π΄ΠΈΠ½ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ. ΠΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΡΠΎΡΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π½ΠΎ Π²ΡΡΡΠ½ΠΎΡΡ ΡΠ΅ ΡΠ° ΠΏΡΠΈΠΊΠΎΠ²Π°Π½ΠΈ ΠΊΡΠΌ Π΅Π΄ΠΈΠ½ ΠΎΡ Π³ΠΎΠ»Π΅ΠΌΠΈΡΠ΅ ΠΎΠ±Π»Π°ΡΠΈ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π½Π°ΠΉ-Π»Π΅ΡΠ½ΠΈΡΡ ΠΈ Π±ΡΡΠ· Π½Π°ΡΠΈΠ½ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ (ΠΈ ΡΠΎΡΡΡΠ΅Ρ, ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π½Π΅Π³ΠΎ) Π΅ Π² ΠΎΠ±Π»Π°ΡΠΈΡΠ΅, ΠΊΠ°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠ°ΡΠ΅Π½ΡΠΎΠ²Π°Π½ API.
ΠΠΎΠ³Π°ΡΠΎ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ°, ΠΈΠΌΠ° Π΄Π²Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°:
- Π‘Π³Π»ΠΎΠ±Π΅ΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΠΊΡΠΎ Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡΠ΅Π½ΡΡΡ Π·Π° Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ΅ΡΡ, Π²Π·Π΅ΠΌΠ΅ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ Π³ΡΠ°Π΄ΠΈΠ²Π½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ: ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Ρ.Π½., ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ Linux ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π²ΡΡΡ Ρ ΡΡΡ ΠΈ Π³ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΉΡΠ΅.
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°, ΠΊΡΠ΄Π΅ΡΠΎ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π³ΠΎΡΠΎΠ²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ°.
DBaaS Π΅ Π±ΡΡΠ·ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ ΡΠ΅ ΠΏΠ°Π·Π°Ρ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π·Π°ΡΠΎΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Ρ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ° ΡΡΡΠΈΠ½Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ°. ΠΠΎΡΡΠ°Π²ΡΠΈΠΊΡΡ ΡΠ΅ Π°Π½Π³Π°ΠΆΠΈΡΠ° Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ ΠΈ Π»Π΅ΡΠ½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅, ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
ΠΠ²Π° ΡΠΈΠΏΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΈ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Kubernetes
ΠΠΌΠ° Π΄Π²Π° ΡΠΈΠΏΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π° Π·Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ:
- Π‘ΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ ΠΏΡΠΎΠ΄ΡΠΊΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ°Π½ Π² Π±Π΅ΠΊΠ΅Π½Π΄ Π·Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π·Π° Π»Π΅ΡΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
- Π Π°Π·ΡΠΈΡΠ΅Π½ΠΎ ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ, ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄.
Π Π΄Π²Π΅ΡΠ΅ ΠΎΠΏΡΠΈΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±Π»Π°ΡΠΈ ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Ρ ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ ΠΎΠ±Π»Π°ΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡ MySQL, ΠΈΠΌΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΠ°Π·Π»ΠΈΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ : Π² ΡΠ°Π±ΠΎΡΠ°ΡΠ°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈ Ρ.Π½. ΠΠΈΠ³ΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΎΡ Π΅Π΄ΠΈΠ½ ΠΎΠ±Π»Π°ΠΊ ΠΊΡΠΌ Π΄ΡΡΠ³ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅Π»ΡΡΠ²ΠΎ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π·Π° ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π ΡΡΠΊ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° Π²ΡΠΏΡΠΎΡΡΡ β Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΡΠΎ Π½Π° Database ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°, Π½ΠΎ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄?
ΠΠΎΡΠ°ΡΠ° Π½ΠΎΠ²ΠΈΠ½Π° Π΅, ΡΠ΅ Π·Π° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ Π½ΡΠΌΠ° ΡΠ°ΠΊΠΈΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ°Π·Π°ΡΠ°. ΠΠΎΠ±ΡΠ°ΡΠ° Π½ΠΎΠ²ΠΈΠ½Π° Π΅, ΡΠ΅ ΠΈΠΌΠ° Kubernetes, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π²Π½Π΅Π΄ΡΡΠ²Π°ΡΠ΅ ΡΠ°ΠΊΠΈΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ.
Kubernetes Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΎΠ±Π»Π°ΠΊΠ° ΠΈΠ»ΠΈ ΡΠ΅Π½ΡΡΡΠ° Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ²ΡΡΠΈ Π² ΠΊΠ»ΡΡΡΠ΅Ρ, Π° Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ Ρ ΠΎΡΡ.
Π‘Π΅Π³Π° Kubernetes Π΅ Π»ΠΈΠ΄Π΅Ρ Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡΠ° Π½Π° ΡΠ°ΠΊΡΠ² ΡΠΎΡΡΡΠ΅Ρ. ΠΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π½ΠΎ ΡΠΎΠ²Π° ΡΡΠ°Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡ. ΠΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°Ρ Π° Π²ΡΡΡ Ρ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ΅Π³Π° ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°Ρ Π²ΡΡΡ Ρ Π°Π΄Π°ΠΏΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Kubernetes.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Kubernetes Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π² ΡΠ°ΡΡΠ½ΠΈ, ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΠΈ Ρ
ΠΈΠ±ΡΠΈΠ΄Π½ΠΈ ΠΎΠ±Π»Π°ΡΠΈ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: AWS, Google Cloud, Microsoft Azure,
ΠΠ°ΠΊ Kubernetes ΡΠ°Π±ΠΎΡΠΈ Ρ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ
Kubernetes ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±Π΅Π· ΡΡΡΡΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ Π½Π΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π½ΠΈΡΠΎ, ΠΊΠ°ΡΠΎ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ ΠΈΠ»ΠΈ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΠ° Π² Π΄ΡΡΠ³ΠΈΡ ΠΊΡΠ°ΠΉ Π½Π° ΡΠΏΠ΅ΠΊΡΡΡΠ°, Ρ.Π΅. ΡΠ΅ ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅. Π Kubernetes ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π½Π΅ Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° ΡΠ°ΠΊΠΈΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΌΠ° ΠΎΠ±Π°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π°ΡΠΊΠΎΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡ Π° Π² Kubernetes, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅:
- ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° StatefulSet Π΅ ΡΡΠ»Π° ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ Π·Π° ΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° pods ΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Graceful Shutdown (ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ).
- ΠΠΎΡΡΠΎΡΠ½Π½ΠΈΡΠ΅ ΡΠΎΠΌΠΎΠ²Π΅ ΡΠ° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΏΠΎΠ΄ΠΎΠ²Π΅, ΠΎΠ±Π΅ΠΊΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Kubernetes.
- Operator Framework β ΡΠΎΠ΅ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅, ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·Π»ΠΈ.
ΠΠ΅ΡΠ΅ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΎΠ±Π»Π°ΡΠΈ ΠΈΠΌΠ° Π³ΠΎΠ»Π΅ΠΌΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°, ΡΠΈΠΉΡΠΎ Π±Π΅ΠΊΠ΅Π½Π΄ Π΅ Kubernetes, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: CockroachCloud, InfluxDB, PlanetScale. Π’ΠΎΠ΅ΡΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π½Π° Kubernetes Π΅ Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ½ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΈ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°.
Percona ΠΈΠΌΠ° Π΄Π²Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π·Π° Kubernetes:
- ΠΠΏΠ΅ΡΠ°ΡΠΎΡ Kubernetes Π·Π° ΡΡΡΠ²ΡΡ Percona Π·Π° MongoDB.
- Kubernetes Operator for XtraDB CLUSTER Π΅ ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΡΡΠΎ Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ MySQL ΠΈ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ. ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅Π½ Π²ΡΠ·Π΅Π», Π°ΠΊΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ.
ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Kubernetes ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° Π΄Π²Π΅ Π³ΡΡΠΏΠΈ. ΠΡΠΊΠΎΠΈ Ρ ΠΎΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈΡΠ΅ Kubernetes Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ - ΡΠΎΠ²Π° ΡΠ° ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ Π½Π°ΠΏΡΠ΅Π΄Π½Π°Π»ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Ρ Π΄ΠΎΠ±ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ°. ΠΡΡΠ³ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° - ΡΠ°ΠΊΠΈΠ²Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ ΠΎΡ Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°, ΡΠ΅ Π½Π΅ ΠΈΡΠΊΠ°Ρ Π΄Π° ΡΠ΅ ΡΠΎΠ²ΡΡ Π² Π½ΡΠ°Π½ΡΠΈΡΠ΅ Π½Π° Kubernetes. ΠΠ° Π²ΡΠΎΡΠ°ΡΠ° Π³ΡΡΠΏΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΡΡΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ - Percona DBaaS CLI Tool. Π’ΠΎΠ²Π° Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Ρ DBaaS Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Kubernetes, Π±Π΅Π· Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ°.
ΠΠ°ΠΊ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ DBaaS Π½Π° Percona Π½Π° Google Kubernetes Engine
Google Kubernetes Engine ΡΠΏΠΎΡΠ΅Π΄ ΠΌΠ΅Π½ Π΅ Π΅Π΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Kubernetes. ΠΡΠ΅Π΄Π»Π°Π³Π° ΡΠ΅ Π² ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ ΠΏΠΎ ΡΠ²Π΅ΡΠ° ΠΈ ΠΈΠΌΠ° ΠΏΡΠΎΡΡ ΠΈ ΡΠ΄ΠΎΠ±Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄ (SDK), ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ ΡΡΡΠ½ΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°.
ΠΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π°ΡΠΈΡΡ DBaaS, ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ:
- Kubectl.
- Google Cloud SDK.
- Percona DBaaS CLI.
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ kubectl
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Π·Π° Π²Π°ΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π° 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. Percona DBaaS CLI Tool Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π΅Π½ ΠΏΡΠΎΠ΄ΡΠΊΡ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΎ, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ Percona Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°.
ΠΡΠ΅
ΠΠ»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅:
- ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΡΠ° Π½Π° Percona Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π·Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ Π½Π° percona. ΠΡΡΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ Π·Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° percona ΠΎΡ Percona:
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
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΊΠ»ΡΡΡΠ΅Ρ. ΠΠ° Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡΡΠ° ΡΡΠ·Π΄Π°Π΄ΠΎΡ ΠΊΠ»ΡΡΡΠ΅Ρ Π½Π° Kubernetes ΡΠ°ΠΌΠΎ ΠΎΡ ΡΡΠΈ Π²ΡΠ·Π΅Π»Π° - ΡΠΎΠ²Π° Π΅ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π·Π° Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ:
gcloud container clusters create --zone us-central1-a your-cluster-name --cluster-version 1.15 --num-nodes=3
Π‘Π»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° kubectl Π΄Π°Π²Π° ΠΆΠ΅Π»Π°Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π½Π° ΡΠ΅ΠΊΡΡΠΈΡ Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»:
kubectl create clusterrolebinding cluster-admin-binding-$USER
--clusterrole=cluster-admin --user=$(gcloud config get-value core/account)
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° ΠΈ Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠΌ Π°ΠΊΡΠΈΠ²Π½ΠΎ. ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° Π΅, Π³ΡΡΠ±ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΡΠΎ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ»ΠΈ ΡΡΠ΅Π΄Π°, Π½ΠΎ Π²Π΅ΡΠ΅ Π²ΡΡΡΠ΅ Π² ΠΊΠ»ΡΡΡΠ΅Ρ Π½Π° Kubernetes. Π’ΠΎΠΉ Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π½Π° Google Cloud:
kubectl create namespace my-namespace
kubectl config set-context --current --namespace=my-namespace
Π‘ΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ°
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· ΡΠ΅Π·ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΡΠΏΠΊΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΊΠ»ΡΡΡΠ΅Ρ Ρ ΡΡΠΈ Π²ΡΠ·Π΅Π»Π° Ρ ΡΠ°Π·ΠΈ ΠΏΡΠΎΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°:
# 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. Π’ΠΎΠ΅ΡΡ, ΡΠΎΠΉ Π½Π΅ Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΎΡ ΡΠΎΠ·ΠΈ ΡΡΡΠ²ΡΡ, ΠΎΡ ΠΊΠΎΠΉΡΠΎ ΡΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βΠ‘ΡΠ·Π΄Π°Π²Π°Π½Π΅β. ΠΠ° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΡΠ΅ΡΡΠΎΠ²Π΅ Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅ΠΏΡΠ°ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ° ΡΡΠ΅Π· Port Mapping:
kubectl port-forward svc/example-proxysql 3306:3306 $
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ²ΡΡΠ·Π²Π°ΠΌΠ΅ Π²Π°ΡΠΈΡ MySQL ΠΊΠ»ΠΈΠ΅Π½Ρ:
mysql -h 127.0.0.1 -P 3306 -uroot -pNt9YZquajW7nfVXTTrP
Π Π°Π·ΡΠΈΡΠ΅Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠΈ
ΠΠ°Π·Π° Π΄Π°Π½Π½ΠΈ Π½Π° ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ IP
ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ ΠΏΠΎ-ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π²ΡΠ½ΡΠ΅Π½ IP Π°Π΄ΡΠ΅Ρ. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΎΡΠ²ΡΡΠΊΡΠ΄Π΅. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠΈΠ³ΡΡΠ½ΠΎ, Π½ΠΎ ΡΠ΅ΡΡΠΎ ΠΏΠΎ-ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΠ° Π²ΡΠ½ΡΠ΅Π½ IP ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°:
# 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 ΡΡΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°.
ΠΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ
Π‘ΡΡ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ Π²ΠΈΡΠΎΠΊΠ°ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ, Π·Π° Π΄Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅Π½ Π²ΡΠ·Π΅Π»:
# 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 Π²ΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° DBaaS ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Kubernetes. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌ Π²ΡΡΡ Ρ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π΅ΠΌΠΎΡΡ.
Π’ΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π·Π° ΠΏΡΡΠ²ΠΈ ΠΏΡΡ Π½Π°
ΠΠ°ΠΊΠ²ΠΎ ΠΎΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠ°:
ΠΠ°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΠΌΠΎΠ΄Π΅ΡΠ½Π° IIoT ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°. ΠΠ°ΠΊ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡ, Π·Π° Π΄Π° Π½Π΅ ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄Π° ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com