Π ΠΊΠΎΠ½ΡΠ΅ ΠΌΠΈΠ½ΡΠ²ΡΠ΅Π³ΠΎ Π³ΠΎΠ΄Π° ΡΠΎΡΡΠΎΡΠ»ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΠΏΡΡΠΌΠΎΠΉ ΡΡΠΈΡ ΡΠΎΡΡΠΈΠΉΡΠΊΠΎΠ³ΠΎ PostgreSQL-ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°
ΠΡ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ ΡΡΠ΅Π½ΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠΎΠΉ Π΄ΠΈΡΠΊΡΡΡΠΈΠΈ, Π° Π½Π°
ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Kubernetes
ΠΠ‘: ΠΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠΎ VACUUM ΠΈ CHECKPOINT’Ρ. Π₯ΠΎΡΠΈΠΌ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΏΡΠΎ Kubernetes. Π― Π·Π½Π°Ρ, ΡΡΠΎ Ρ ΡΠ΅Π±Ρ ΡΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ ΠΎΠΏΡΡΠ°. Π‘ΠΌΠΎΡΡΠ΅Π» ΡΠ²ΠΎΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°ΠΆΠ΅ ΠΊΡΡΠΎΡΠΊΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΡΠΌΠ°ΡΡΠΈΠ²Π°Π»β¦ ΠΠ°Π²Π°ΠΉ ΡΡΠ°Π·Ρ Ρ ΠΌΠ΅ΡΡΠ° Π² ΠΊΠ°ΡΡΠ΅Ρ: Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Postgres ΠΈΠ»ΠΈ MySQL Π² K8s?
ΠΠ‘: ΠΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ° Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π½Π΅Ρ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ. ΠΠΎ Π²ΠΎΠΎΠ±ΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΡΠ° ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎβ¦ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅. ΠΡΠ΅ΠΌ Π²Π΅Π΄Ρ Ρ ΠΎΡΠ΅ΡΡΡ managed-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
ΠΠ‘: Π§ΡΠΎΠ±Ρ ΠΊΠ°ΠΊ
ΠΠ‘: ΠΠ°: ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΊ RDS, ΡΠΎΠ»ΡΠΊΠΎ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ.
ΠΠ‘: Β«ΠΠ΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎΒ» β ΡΡΠΎ Ρ ΠΎΡΠΎΡΠ΅Π΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Π Π±ΠΎΠ»ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ Π²ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ Π² ΡΠ°Π·Π½ΡΡ ΠΌΠ΅ΡΡΠ°Ρ . Π ΠΏΠΎΡΠ΅ΠΌΡ ΡΠΎΠ³Π΄Π°, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, Π½Π΅ Π²Π·ΡΡΡ Π³ΠΎΡΠΎΠ²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΡΡ Ρ Nutanix ΡΠ²ΠΎΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Ρ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ (VMwareβ¦) β ΡΠΎΡ ΠΆΠ΅ Β«RDS, ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ΅Π±ΡΒ».
ΠΠ‘: ΠΠΎ ΡΡΠΎ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π²Π·ΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ . Π Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΏΡΠΎ Kubernetes, ΡΠΎ Π·Π΄Π΅ΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ (ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π² K8s). ΠΠΎ ΡΡΡΠΈ ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡ Π΄Π»Ρ API ΠΊ ΠΎΠ±Π»Π°ΠΊΡβ¦
ΠΠ‘: ΠΡΡ ΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ!
ΠΠ‘: ΠΡΠΎ Π½Π΅ ΡΠ°ΠΊ Π²Π°ΠΆΠ½ΠΎ. ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎΡΡΡ Π²Π°ΠΆΠ½Π° Π½Π΅ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ ΡΡΠ½ΠΊΠ°. ΠΠ°ΠΆΠ½ΠΎ Π΄ΡΡΠ³ΠΎΠ΅β¦ Π’Ρ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π²ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡ Π΄ΠΎΠΊΠ»Π°Π΄ Β«
ΠΠ‘: ΠΠ°.
ΠΠ‘: Π― ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ Π΅Π³ΠΎ Π²ΠΎΡΠΏΡΠΈΠ½ΡΠ»ΠΈ ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ. Π§Π°ΡΡΡ Π»ΡΠ΄Π΅ΠΉ ΠΏΠΎΠ΄ΡΠΌΠ°Π»ΠΈ, ΡΡΠΎ Ρ Π³ΠΎΠ²ΠΎΡΡ: Β«Π Π΅Π±ΡΡΠ°, ΠΏΠΎΠ΅Ρ Π°Π»ΠΈ Π²ΡΠ΅ΠΌΠΈ ΠΠ Π² Kubernetes!Β», β Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΡΡΠΎ Π²ΡΡ ΠΆΡΡΠΊΠΈΠ΅ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Ρ. Π Ρ-ΡΠΎ Ρ ΠΎΡΠ΅Π» ΡΠΊΠ°Π·Π°ΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΎ Π΄ΡΡΠ³ΠΎΠΌ: Β«Π‘ΠΌΠΎΡΡΠΈΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ°ΡΡ. Π‘Π΅ΠΉΡΠ°Ρ Π΅Ρ Π°ΡΡ Π±Π°Π·Π°ΠΌΠΈ Π² Kubernetes? Production’ΠΎΠΌ? ΠΡ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π»ΡΠ±ΠΈΡΠ΅β¦ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌΠΈ Π²Π΅ΡΠ°ΠΌΠΈ. Π Π²ΠΎΡ Π΄Π»Ρ dev’Π° β ΠΌΠΎΠ³Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ. ΠΠ»Ρ dev’Π° ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ/ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉΒ».
ΠΠ‘: ΠΠΎΠ΄ dev’ΠΎΠΌ ΡΡ ΠΈΠΌΠ΅Π΅ΡΡ Π² Π²ΠΈΠ΄Ρ Π²ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ prod? Staging, QAβ¦
ΠΠ‘: ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ perf-ΡΡΠ΅Π½Π΄Ρ, ΡΠΎ ΡΠΆΠ΅, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π½Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Ρ. ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ ΠΎΡΠΎΠ±ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ, Π³Π΄Π΅ Π½Π° staging Π½ΡΠΆΠ½Π° ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΠ, ΡΠΎ ΡΠΎΠΆΠ΅, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π½Π΅Ρβ¦ ΠΡΠ»ΠΈ ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠ΅Π΅, ΡΠΎ ΠΊΠ°ΠΊΠ°Ρ Π²ΡΠ³ΠΎΠ΄Π° ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±Π°Π·Π° ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° Π² K8s?
ΠΠ‘: ΠΠΈΠΊΠ°ΠΊΠΎΠΉ. ΠΠΎ Π³Π΄Π΅ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠ°ΡΠΈΡΠ½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ? Π‘ΡΠ°ΡΠΈΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°ΡΠ΅Π»ΠΎ ΡΠΆΠ΅ Π·Π°Π²ΡΡΠ°.
ΠΠ‘: Staging ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ°ΡΠΈΡΠ½ΡΠΌ. Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡβ¦
ΠΠ‘: ΠΠ°, Ρ ΠΌΠ΅Π½Ρ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ. ΠΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π΅ΡΠ»ΠΈ Ρ ΡΠ΅Π±Ρ Π΅ΡΡΡ Π±Π°Π·Π° Π½Π° 10 Π’Π±, Π° staging β 200 ΠΠ±β¦
ΠΠ‘: Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΊΡΡΡΠΎΠΉ ΠΊΠ΅ΠΉΡ! ΠΠ° staging Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ prod’ΠΎΠ²Π°Ρ Π±Π°Π·Π°, Π² ΠΊΠΎΡΠΎΡΡΡ Π²Π½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°: Β«Π²ΡΠΊΠ°ΡΠΈΡΡ Π² productionΒ». ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ β Π΄Π΅Π»ΡΡΡ β Π΄ΠΎΠ»ΠΈΠ²Π°ΡΡΡΡ (ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎ API’ΡΠΊΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΡΡΡΡ) Π² production. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠΊΠ·ΠΎΡΠΈΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ.
ΠΠ‘: Π― Π²ΠΈΠ΄Π΅Π» ΡΡΠ°ΡΡΠ°ΠΏΡ Π² ΠΠΎΠ»ΠΈΠ½Π΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠ΄ΡΡ Π² RDS’Π΅ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π² Heroku Π΅ΡΡ β ΡΡΠΎ ΠΈΡΡΠΎΡΠΈΠΈ 2-3-Π»Π΅ΡΠ½Π΅ΠΉ Π΄Π°Π²Π½ΠΎΡΡΠΈ, β ΠΈ ΠΎΠ½ΠΈ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ Π΄Π°ΠΌΠΏ ΡΠ΅Π±Π΅ Π½Π° Π»Π°ΠΏΡΠΎΠΏ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π±Π°Π·Π° ΠΏΠΎΠΊΠ° Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ 80 ΠΠ±, Π° Π½Π° Π»Π°ΠΏΡΠΎΠΏΠ΅ Π΅ΡΡΡ ΠΌΠ΅ΡΡΠΎ. ΠΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ Π΄ΠΎΠΊΡΠΏΠ°ΡΡ Π΄ΠΈΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎ 3 Π±Π°Π·Ρ ΠΈΠΌΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π΅ΡΡΠΈ. ΠΠΎΡ ΡΠ°ΠΊ Π±ΡΠ²Π°Π΅Ρ ΡΠΎΠΆΠ΅. Π’Π°ΠΊΠΆΠ΅ Π²ΠΈΠ΄Π΅Π», ΡΡΠΎ Π½Π΅ Π±ΠΎΡΡΡΡ prod ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π² staging β ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. ΠΠΎ Π²ΠΈΠ΄Π΅Π» ΠΈ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π±ΠΎΡΡΡΡ, ΠΈ ΡΡΠΎ ΡΠ°ΡΡΠΎ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΡΠΊ. ΠΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΊ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅, Ρ ΠΎΡΠ΅ΡΡΡ ΡΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎ Kubernetes. Π― ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ Π² prod’Π΅ ΠΏΠΎΠΊΠ° Π½ΠΈ Ρ ΠΊΠΎΠ³ΠΎ?
ΠΠ‘: Π£ Π½Π°Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ Π±Π°Π·Ρ Π΅ΡΡΡ Π² prod’Π΅. Π Π΅ΡΡ ΠΏΡΠΎ ΠΎΠ±ΡΠ΅ΠΌΡ Π² Π΄Π΅ΡΡΡΠΊΠΈ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ ΠΈ Π½Π΅ΠΊΡΠΈΡΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ
Π»Π΅Π½Ρ Π±ΡΠ»ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ (Π΄Π° ΠΈ Π½Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ). Π ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΏΠΎΠ΄ Kubernetes’ΠΎΠΌ Π΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΡΠ° Π±Π°Π·Π° ΡΠ°Π±ΠΎΡΠ°Π»Π° Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ β ΡΡΠ»ΠΎΠ²Π½ΠΎ Π² VMware, ΠΏΠΎΠ²Π΅ΡΡ
Π‘Π₯Π. ΠΡ Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ»ΠΈ Π²
ΠΠ‘: ΠΠ°Π·Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, Π΄ΠΎ 100 ΠΠ±, Π½Π° Ρ ΠΎΡΠΎΡΠΈΡ Π΄ΠΈΡΠΊΠ°Ρ ΠΈ ΠΏΡΠΈ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΡΠ΅ΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΠΊΠ°ΡΠ°ΡΡ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ? Π‘ΠΊΠΎΡΠΎΡΡΡ Π² 1 ΠΠ± Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ β ΡΡΠΎ ΡΠΆΠ΅ Π½Π΅ ΡΠΊΠ·ΠΎΡΠΈΠΊΠ°.
ΠΠ‘: ΠΠ°, Π΄Π»Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
ΠΠ‘: ΠΠΊΠ΅ΠΉ, ΠΏΡΠΎ prod ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΡΠΌΠ°ΡΡ. Π Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Kubernetes Π΄Π»Ρ Π½Π΅-prod-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ β ΠΊΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ? Π― Π²ΠΈΠΆΡ, ΡΡΠΎ Π² Zalando
ΠΠ‘: Envoy Π΄Π»Ρ ΡΠ΅Π³ΠΎ? ΠΠ°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° Postgres?
ΠΠ‘: ΠΠ°. Π’ΠΎ Π΅ΡΡΡ ΠΎΠ½ΠΈ ΡΡΠΎ Π²ΠΈΠ΄ΡΡ ΠΊΠ°ΠΊ: Π΅ΡΠ»ΠΈ Π²Π·ΡΡΡ Linux-Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΠΈ ΡΠ΄ΡΠΎ, ΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ PostgreSQL β ΡΡΠΎ ΡΠ΄ΡΠΎ, Π° ΠΎΠ½ΠΈ Ρ ΠΎΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π΄ΡΡΠΆΠ΅Π»ΡΠ±Π΅Π½ ΠΊ ΠΎΠ±Π»Π°ΠΊΠ°ΠΌ ΠΈ ΠΊΡΡΡΠΈΡΡΡΡ Π² Kubernetes. ΠΠ½ΠΈ ΡΡΡΠΊΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (Π±ΡΠΊΠ°ΠΏΡ ΠΈ Ρ.ΠΏ.) ΠΈ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.
ΠΠ‘: ΠΡΠ΅Π½Ρ ΠΊΡΡΡΠΎ! ΠΠΎ ΡΡΡΠΈ ΡΡΠΎ ΡΠΎΡΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΠΉ managed Postgres.
ΠΠ‘: Π£ Linux-Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Π²Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ: ΠΊΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ, ΡΡΠΎΠ±Ρ Π²ΡΡ ΠΆΠ΅Π»Π΅Π·ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΎΡΡ. Π Ρ Π½ΠΈΡ ΠΈΠ΄Π΅Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ Π² Kubernetes Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ. Π― Π·Π½Π°Ρ, ΡΡΠΎ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ Zalando ΠΌΡ Π½Π΅Π΄Π°Π²Π½ΠΎ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ Π·Π°Π²ΡΠ·ΠΊΡ Π½Π° AWS ΠΈ ΡΡΠΎ ΡΠΆΠ΅ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ. ΠΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΆΠ΅ Π±ΡΡΡ Π·Π°Π²ΡΠ·ΠΊΠΈ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ β Π² ΡΡΠΌ ΡΠΎΠ³Π΄Π° ΡΠΌΡΡΠ»?
ΠΠ‘: ΠΠ΅ Π·Π½Π°Ρ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Zalando Π·Π°Π²ΡΠ·Π°Π»ΡΡ, Π½ΠΎ Π² Kubernetes ΡΠ΅ΠΉΡΠ°Ρ storage ΡΠ΄Π΅Π»Π°Π½ ΡΠ°ΠΊ, ΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ generic-ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠ½ΡΡΡ Π΄ΠΈΡΠΊΠΎΠ²ΡΠΉ Π±ΡΠΊΠ°ΠΏ. ΠΠ΅Π΄Π°Π²Π½ΠΎ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ β Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ
ΠΠ‘: ΠΠΎΡΡΠΎΠΌΡ ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° Π·Π°Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. ΠΡΠΌΠ°Ρ, ΡΡΠΎ Π΅ΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΡΠ°Π½Π½ΡΡ ΡΡΠ°Π΄ΠΈΡ β ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΡΡΠ°. ΠΠΎΠΏΡΠΎΡ: ΡΡΠΎ Π±Ρ ΡΡ ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π» Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ PgSQL Π² K8s? ΠΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ?
ΠΠ‘: ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Postgres Π΄Π»Ρ Π½Π°Ρ β ΡΡΠΎ 3%. Π£ Π½Π°Ρ Π΅ΡΡΡ Π΅ΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ° Π² Kubernetes, Π½Π΅ Π±ΡΠ΄Ρ Π΄Π°ΠΆΠ΅ Π²ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Elasticsearch. ΠΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² β ΠΊΡΡΠ°: ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ, Π΄ΡΡΠ³ΠΈΠ΅ β Π½Π΅Ρ. ΠΡ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅, ΡΡΠΎΠ±Ρ ΠΌΡ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π»ΠΈ Π΅Π³ΠΎ Π²ΡΠ΅ΡΡΡΠ·. Π ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ Kubernetes β Π½Π΅ Π² Β«ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅, ΡΡΠΎΠ±Ρ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ
Amazon’Π°Β»β¦ ΠΠΎ ΡΠ°ΠΊΡΡ ΠΌΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ°ΡΡΠΎΠ²ΠΎ (= ΠΏΠΎΡΡΠΈ Ρ Π²ΡΠ΅Ρ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ β
ΠΠ‘: Π Π΄Π»Ρ MySQL ΡΠΎΠΆΠ΅ Π½Π΅Ρ? Π― Π·Π½Π°Ρ, ΡΡΠΎ Perconaβ¦ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΈ MySQL, ΠΈ MongoDB, ΠΈ Postgres, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ΄ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΠΈΠ»ΠΈΡΡ: Π΄Π»Ρ Π²ΡΠ΅Ρ Π±Π°Π·, Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ².
ΠΠ‘: ΠΡ Π½Π΅ ΡΡΠΏΠ΅Π»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π΄Π»Ρ MySQL. ΠΠ»Ρ Π½Π°Ρ ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ Π½Π΅ Π³Π»Π°Π²Π½ΡΠΉ ΡΠΎΠΊΡΡ. MySQL Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² standalone. ΠΠ°ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, Π΅ΡΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΠβ¦ ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ Postrges, Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎΠΌΡ.
ΠΠ‘: ΠΠ± ΡΡΠΎΠΌ ΡΠΎΠΆΠ΅ Π±ΡΠ» Π²ΠΎΠΏΡΠΎΡ. ΠΠΎΠΎΠ±ΡΠ΅ Π±Π΅Π· ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°?
ΠΠ‘: ΠΠ°, Π² 100% Ρ Π½Π°Ρ PostgreSQL Π·Π°ΠΏΡΡΠ΅Π½ Π±Π΅Π· ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠΎΠΊΠ° ΡΡΠΎ ΡΠ°ΠΊ. ΠΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π΄Π»Ρ Prometheus, Π΄Π»Ρ Redis. Π£ Π½Π°Ρ Π΅ΡΡΡ Π² ΠΏΠ»Π°Π½Π°Ρ Π½Π°ΠΉΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π΄Π»Ρ Elasticsearch β ΠΎΠ½ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Β«Π³ΠΎΡΠΈΡΒ», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΎΡΠΈΠΌ Π΅Π³ΠΎ Π² 100% ΡΠ»ΡΡΠ°ΡΡ ΡΡΠ°Π²ΠΈΡΡ Π² Kubernetes. Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΈΠΉΡΠΈ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ MongoDB ΡΠΎΠΆΠ΅ Π²ΡΠ΅Π³Π΄Π° ΡΡΠ°Π²ΠΈΡΡ Π² Kubernetes. Π’ΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ Ρ ΠΎΡΠ΅Π»ΠΊΠΈ β Π΅ΡΡΡ ΠΎΡΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ Π² ΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎ-ΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ. Π ΠΏΡΠΎ Postgres ΠΌΡ Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΠΌΠΎΡΡΠ΅Π»ΠΈ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π·Π½Π°Π΅ΠΌ ΠΏΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², Π½ΠΎ ΠΏΠΎ ΡΠ°ΠΊΡΡ Ρ Π½Π°Ρ standalone.
ΠΠ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Kubernetes
ΠΠ‘: ΠΠ°Π²Π°ΠΉ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΊ ΡΠ΅ΠΌΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΊ ΡΠ°ΡΠΊΠ°ΡΡΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π±Π°Π·Π΅ β Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ DevOps-ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Ρ. ΠΡΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ, ΠΌΠ½ΠΎΠ³ΠΎ Π±Π°Π·, Π²ΡΡ Π²ΡΠ΅ΠΌΡ Π³Π΄Π΅-ΡΠΎ ΡΡΠΎ-ΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠ°ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ CI/CD, ΡΡΠΎΠ±Ρ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π‘Π£ΠΠ Π²ΡΡ Π±ΡΠ»ΠΎ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠ°ΠΊΠΎΠΉ Ρ ΡΠ΅Π±Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄?
ΠΠ‘: ΠΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ°. ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ΅ΡΠ²ΡΠΉ β ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ Π±Π°Π·Ρ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ°ΡΠΊΠ°ΡΠ°ΡΡ. Π’Ρ ΡΠ°ΠΌ ΡΠΏΠΎΠΌΡΠ½ΡΠ», ΡΡΠΎ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΏΠΈΡ prod-Π±Π°Π·Ρ Π±ΡΠ»Π° Π½Π° dev ΠΈ stage.
ΠΠ‘: Π Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ GDPR, Ρ Π΄ΡΠΌΠ°Ρ, ΠΎΠ½ΠΈ ΠΎΡΠ½ΠΎΡΡΡΡΡ Π²ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎβ¦ ΠΠΎΠ³Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π² ΠΠ²ΡΠΎΠΏΠ΅ ΡΠΆΠ΅ Π½Π°ΡΠ°Π»ΠΈ ΡΡΡΠ°ΡΠΎΠ²Π°ΡΡ.
ΠΠ‘: ΠΠΎ Π·Π°ΡΠ°ΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅Π»Π°Π΅Ρ Π΄Π°ΠΌΠΏ Ρ production’Π° ΠΈ Π΅Π³ΠΎ ΠΎΠ±ΡΡΡΡΠΈΡΡΠ΅Ρ. ΠΠΎΠ»ΡΡΠ°ΡΡΡΡ prod’ΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ (ΡΠ½Π°ΠΏΡΠΎΡ, Π΄Π°ΠΌΠΏ, Π±ΠΈΠ½Π°ΡΠ½Π°Ρ ΠΊΠΎΠΏΠΈΡβ¦), Π½ΠΎ ΠΎΠ½ΠΈ Π°Π½ΠΎΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈ ΡΠΊΡΠΈΠΏΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ: ΡΡΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΈΠΊΡΡΡΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π±ΠΎΠ»ΡΡΡΡ Π±Π°Π·Ρ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ°-ΡΠΎ ΠΊΠ°ΠΊΠ°Ρ: ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·? Π ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ Π½Π° Π½ΡΠΆΠ½ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ?
ΠΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ ΡΡ
Π΅ΠΌΠ΅: Π΅ΡΠ»ΠΈ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΅ΡΡΡ ΡΠΈΠΊΡΡΡΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
(ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Π±Π°Π·Ρ), ΡΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΈΡ
. ΠΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ review-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ
, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ branch, Ρ Π½Π°Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΠ»ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ββ ΠΌΡ ΡΡΠ΄Π° ΡΠ°ΡΠΊΠ°ΡΡΠ²Π°Π΅ΠΌ ΠΌΠ°Π»Π΅Π½ΡΠΊΡΡ Π±Π°Π·Ρ. ΠΠΎ Ρ
ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΠΈ
ΠΠ‘: ΠΡΠΎΡΡΡΠΌ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ?
ΠΠ‘: ΠΠ°Π½Π½ΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ ΠΏΡΡΠΌΠΎ Π² Docker-ΠΎΠ±ΡΠ°Π·Π΅. Π’.Π΅. Ρ Π½Π°Ρ Π΅ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·, ΠΏΡΡΡΡ Π½Π° 100 ΠΠ±. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ»ΠΎΡΠΌ Π² Docker ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π±ΡΡΡΡΠΎ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ ΡΡΠΎΡ ΠΎΠ±ΡΠ°Π· Π½ΡΠΆΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·. Π‘ΠΏΠΎΡΠΎΠ± ΡΡΠΏΠΎΠΉ, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ.
ΠΠ‘: ΠΠ°Π»ΡΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΡΠΈΡΡΠ΅ΡΠ΅, ΠΎΠ½ΠΎ ΠΏΡΡΠΌΠΎ Π²Π½ΡΡΡΠΈ Docker’Π° ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π΄Π°? Copy-on-write Π²Π½ΡΡΡΠΈ Docker’Π° β Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌ ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΠΎΠ΅Ρ Π°Π»ΠΈ, Π²ΡΡ Ρ ΠΎΡΠΎΡΠΎ. ΠΠ»Π°ΡΡ! Π Π²Ρ ΡΡΠΎ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²ΠΎΠ²ΡΡ?
ΠΠ‘: ΠΠ°Π²Π½ΠΎ.
ΠΠ‘: ΠΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌΠΈ Π²Π΅ΡΠ°ΠΌΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡΡ. Π’ΠΎΠ»ΡΠΊΠΎ ΠΌΡ Π½Π΅ Docker’ΠΎΠ²ΡΠΊΠΈΠΉ copy-on-write ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ, Π° ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π΅ΡΡ.
ΠΠ‘: ΠΠ½ Π½Π΅ generic. Π Docker’Π½ΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ.
ΠΠ‘: ΠΠΎ ΠΈΠ΄Π΅Π΅, Π΄Π°. ΠΠΎ Ρ Π½Π°Ρ ΡΠΎΠΆΠ΅ ΡΠ°ΠΌ Π΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ. ΠΠ΄Π΅ΡΡ ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ Postgres’Π° Π½Π° Π²ΡΡ ΡΡΠΎ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠΌΠΎΡΡΠΈΠΌ. Π’Π΅ΠΏΠ΅ΡΡ Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π» ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ Docker’Π° ΠΈ ΡΠ²ΠΈΠ΄Π΅Π», ΡΡΠΎ Ρ Π²Π°Ρ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎ Π΅ΡΠ»ΠΈ Π±Π°Π·Π° β ΠΎΠ³ΡΠΎΠΌΠ½Π°Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 1 Π’Π±, ΡΠΎ ΡΡΠΎ ΡΠΆΠ΅ Π²ΡΡ Π΄ΠΎΠ»Π³ΠΎ: ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½ΠΎΡΡΡ, ΠΈ Π·Π°ΠΏΠΈΡ ΠΈΠ²Π°ΡΡ Π²ΡΡ Π² Dockerβ¦ Π Π΅ΡΠ»ΠΈ 5 Π’Π± Π·Π°ΠΏΠΈΡ ΠΈΠ²Π°ΡΡ Π² Dockerβ¦ ΠΠ»ΠΈ Π²ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ?
ΠΠ‘: ΠΠ°ΠΊΠ°Ρ ΡΠ°Π·Π½ΠΈΡΠ°: ΡΡΠΎ ΠΆΠ΅ Π±Π»ΠΎΠ±Ρ, ΠΏΡΠΎΡΡΠΎ Π±ΠΈΡΡ ΠΈ Π±Π°ΠΉΡΡ.
ΠΠ‘: Π Π°Π·Π½ΠΈΡΠ° ΡΠ°ΠΊΠ°Ρ: Π²Ρ ΡΡΠΎ ΡΠ΅ΡΠ΅Π· dump ΠΈ restore Π΄Π΅Π»Π°Π΅ΡΠ΅?
ΠΠ‘: Π‘ΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. Π‘ΠΏΠΎΡΠΎΠ±Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π½ΡΠ΅.
ΠΠ‘: ΠΠ»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠ°ΠΊ, ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π° ΠΌΡ Π΅Π³ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΠ½ ΠΏΠΎ ΡΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΎΠΉ, Π½ΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π΅ Ρ ΠΌΠ°ΡΡΠ΅ΡΠ° Π½Π°ΠΏΡΡΠΌΡΡ, Π° ΡΠ΅ΡΠ΅Π· Π°ΡΡ ΠΈΠ². ΠΠΈΠ½Π°ΡΠ½ΡΠΉ Π°ΡΡ ΠΈΠ², ΠΊΡΠ΄Π° WAL’Ρ Π½Π°ΠΊΠ°ΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ, ΡΠ°ΠΌ ΠΆΠ΅ Π±ΡΠΊΠ°ΠΏΡ ΡΠ½ΠΈΠΌΠ°ΡΡΡΡβ¦ ΠΡΠΈ WAL’Ρ ΠΏΠΎΡΠΎΠΌ Π΄ΠΎΠ»Π΅ΡΠ°ΡΡ β Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ (Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ 1-2 ΡΠ΅ΠΊΡΠ½Π΄Ρ) β Π΄ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π°. Π‘ Π½Π΅Π³ΠΎ ΠΌΡ Π»ΡΠ±ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌ β ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Ρ Π½Π°Ρ ZFS.
ΠΠ‘: ΠΠΎ Ρ ZFS Π²Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ·Π»ΠΎΠΌ.
ΠΠ‘: ΠΠ°. ΠΠΎ Ρ ZFS Π΅ΡΡΡ Π΅ΡΡ Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΠΉ PGDATA
. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Ρ Π½Π°Ρ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π½Π΅ ΠΎΡΠΎΠ±ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ
Π·Π°Π΄Π°Ρ. Π PostgreSQL Π΅ΡΡΡ
Π’Π°ΠΊ Π²ΠΎΡ, ΠΌΡ ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ Ρ ΡΡΠΎΠΉ, Π±ΠΎΠ»Π΅Π΅ DBA’Π½ΠΎΠΉ, ΡΡΠΎΡΠΎΠ½Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΠΎ ΡΡΠΌ ΡΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»: Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΠ΄Π½Π° Π±Π°Π·Π°, Π½ΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ 50 ΡΠ°Π· ΡΡΠΎ-ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΡΡ Π»ΠΈ Π½Π΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠ‘: 50 ΡΠ°Π· ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΊΠ°Π·Π°ΡΡ 50 Spot’ΠΎΠ²ΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ².
ΠΠ‘: ΠΠ΅Ρ, Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Π²ΡΡ Π΄Π΅Π»Π°Π΅ΠΌ.
ΠΠ‘: ΠΠΎ ΠΊΠ°ΠΊ Π²Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠ΅ 50 ΡΠ°Π·, Π΅ΡΠ»ΠΈ ΡΡΠ° ΠΎΠ΄Π½Π° Π±Π°Π·Π°, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ΡΠ°Π±Π°ΠΉΡΠΎΠ²Π°Ρ. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π΅ΠΉ Π½ΡΠΆΠ½ΠΎ ΡΡΠ»ΠΎΠ²Π½ΠΎ 256 ΠΠ± RAM?
ΠΠ‘: ΠΠ°, ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ β ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. ΠΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ. ΠΠ° production-ΠΌΠ°ΡΠΈΠ½Π΅ 96 ΡΠ΄Π΅Ρ ΠΈ 600 ΠΠ±. ΠΡΠΈ ΡΡΠΎΠΌ Π΄Π»Ρ ΠΠ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ 32 ΡΠ΄ΡΠ° (Π΄Π°ΠΆΠ΅ 16 ΡΠ΄Π΅Ρ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΠ½ΠΎΠ³Π΄Π°) ΠΈ ΠΏΠ°ΠΌΡΡΠΈ 100-120 ΠΠ±.
ΠΠ‘: Π ΡΡΠ΄Π° Π²Π»Π΅Π·Π°Π΅Ρ 50 ΠΊΠΎΠΏΠΈΠΉ?
ΠΠ‘: Π’Π°ΠΊ ΠΊΠΎΠΏΠΈΡ-ΡΠΎ ΠΎΠ΄Π½Π°, Π΄Π°Π»ΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ copy-on-write (ZFS’Π½ΡΠΉ)β¦ Π Π°ΡΡΠΊΠ°ΠΆΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
Π£ Π½Π°Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±Π°Π·Π° Π½Π° 10 Π’Π±. ΠΠΈΡΠΊ Π΄Π»Ρ Π½Π΅Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ, ZFS Π΅ΡΡ ΡΠΆΠ°Π» Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠΎΡΠ΅Π½ΡΠΎΠ² Π½Π° 30-40. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ Π½Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π½Π°ΠΌ ΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΡΠΊΠ»ΠΈΠΊΠ° Π½Π΅ Π²Π°ΠΆΠ½ΠΎ: ΠΏΡΡΡΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎ 2 ΡΠ°Π· ΡΠΎΡΠΌΠΎΠ·Π½Π΅Π΅ β ΡΡΠΎ ΠΎΠΊΠ΅ΠΉ.
ΠΡ Π΄Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ, QA, DBA ΠΈ Ρ.ΠΏ. Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² 1-2 ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ. ΠΠ½Π° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠ°Π·Ρ 10 ΡΠ΄Π΅Ρ β Π΅ΠΉ Π½ΡΠΆΠ΅Π½ 1 Π±ΡΠΊΠ΅Π½Π΄ Postgres’Π°, 1 ΡΠ΄ΡΠΎ. ΠΠΈΠ³ΡΠ°ΡΠΈΡ Π·Π°ΠΏΡΡΡΠΈΡΡΡ β ΠΌΠΎΠΆΠ΅Ρ,
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ PGDATA
ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°Ρ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΠΌΡ ΠΎΠ±ΠΌΠ°Π½ΡΠ²Π°Π΅ΠΌ Postgres Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅. Π€ΠΈΡΠΊΠ° Π² ΡΠ΅ΠΌ: Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 10 Postgres’ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΠ±ΡΡΠ½ΠΎ ΠΊΠ°ΠΊΠ°Ρ? Π‘ΡΠ°Π²ΡΡ
ΠΠΎ ΠΌΡ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ: ΠΌΡ ΡΡΠ°Π²ΠΈΠΌ shared_buffers Π² 2 ΠΠ±. Ρ PostgreSQL Π΅ΡΡΡ
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±ΡΠ°ΡΡ Π²ΡΠ΅ ΠΏΠ»Π°Π½Ρ β ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π½Π° production. Π‘Π΅ΠΊΡΠ½Π΄Ρ ΡΠ°ΠΌ Π±ΡΠ΄ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ (ΡΠΎΡΠΌΠΎΠ·Π½Π΅Π΅), Π½ΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ, ΠΈ ΡΠ°ΠΌΠΈ ΠΏΠ»Π°Π½Ρ (ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΌ JOIN’Ρ ΠΈ Ρ.ΠΏ.) ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΆΠ΅, ΠΊΠ°ΠΊ Π½Π° production. Π ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
ΠΠ‘: Π’Ρ Π½Π΅ ΡΡΠΈΡΠ°Π΅ΡΡ, ΡΡΠΎ Π·Π΄Π΅ΡΡ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ? ΠΠ΅ΡΠ²Π°Ρ β ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° PostgreSQL. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ β ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠ½ΡΠΉ, ΠΎΠ½ Π½Π΅ generic. ΠΡΠΎΡΠ°Ρ β Kubernetes (ΠΈ Π²ΡΡ, ΠΊΡΠ΄Π° ΡΠ΅ΠΉΡΠ°Ρ ΠΈΠ΄ΡΡ ΠΎΠ±Π»Π°ΡΠ½ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ) ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ·Π»ΠΎΠ², ΠΈ ΡΡΠΈ ΡΠ·Π»Ρ β ΡΡΠ΅ΠΌΠ΅ΡΠ½ΡΠ΅. Π Π² ΡΠ²ΠΎΡΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ stateful, ΠΏΠ΅ΡΡΠΈΡΡΠ΅Π½ΡΠ½ΡΠΉ ΡΠ·Π΅Π». ΠΡΠΈ Π²Π΅ΡΠΈ Ρ ΠΌΠ΅Π½Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΡ.
ΠΠ‘: ΠΠ΅ΡΠ²ΠΎΠ΅ β ΡΠΎΠ³Π»Π°ΡΠ΅Π½, ΡΡΠΎ ΡΠΈΡΡΠΎ Postgres’ΠΎΠ²Π°Ρ ΠΈΡΡΠΎΡΠΈΡ. ΠΡΠΌΠ°Ρ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ direct IO ΠΈ Π±ΡΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠ» ΠΏΠΎΡΡΠΈ ΠΏΠΎΠ΄ Π²ΡΡ ΠΏΠ°ΠΌΡΡΡ, ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ β ΠΏΠ»Π°Π½Ρ Π±ΡΠ΄ΡΡ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠΎ ΠΌΡ ΠΏΠΎΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ Ρ Postgres’ΠΎΠΌ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ, ΠΏΡΠΎ Π΄ΡΡΠ³ΠΈΡ Π½Π΅ Π΄ΡΠΌΠ°Π΅ΠΌ.
ΠΡΠΎ Kubernetes. Π’Ρ ΠΆΠ΅ ΡΠ°ΠΌ Π²Π΅Π·Π΄Π΅ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡ, ΡΡΠΎ Ρ Π½Π°Ρ Π±Π°Π·Π° ΠΏΠ΅ΡΡΠΈΡΡΠ΅Π½ΡΠ½Π°Ρ. ΠΡΠ»ΠΈ ΠΈΠ½ΡΡΠ°Π½Ρ ΡΠΏΠ°Π», Π³Π»Π°Π²Π½ΠΎΠ΅ β ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΄ΠΈΡΠΊ. ΠΠΎΡ Ρ Π½Π°Ρ ΡΠΎΠΆΠ΅ Π²ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π² Kubernetes, Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ Postgres β ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ (Ρ ΠΎΡΡ ΠΈ ΠΎΠ½ ΡΠ°ΠΌ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ Π±ΡΠ΄Π΅Ρ). ΠΠΎΡΡΠΎΠΌΡ Π²ΡΡ ΡΠ°ΠΊ: ΠΈΠ½ΡΡΠ°Π½Ρ ΡΠΏΠ°Π», Π½ΠΎ ΠΌΡ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈ Π΅Π³ΠΎ PV ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ (Π½ΠΎΠ²ΠΎΠΌΡ) ΠΈΠ½ΡΡΠ°Π½ΡΡ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Π±Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ.
ΠΠ‘: Π‘ ΠΌΠΎΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΠΌ pod’Ρ Π² Kubernetes. K8s β ΡΠ»Π°ΡΡΠΈΡΠ½ΡΠΉ: ΡΠ·Π»Ρ Π·Π°ΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ°ΠΌΠΈ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ°Π΄Π°ΡΠ° β ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ pod ΠΈ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ X ΡΠ΅ΡΡΡΡΠΎΠ², Π° Π΄Π°Π»ΡΡΠ΅ K8s ΡΠ°ΠΌ ΡΠ°Π·Π±Π΅ΡΡΡΡΡ. ΠΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡ Π² Kubernetes ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°: Π²
ΠΡΠΎΠΉΠ΄Π΅Ρ ΠΏΠΎΠ»Π³ΠΎΠ΄Π°-Π³ΠΎΠ΄ β ΠΎΠ½ΠΎ ΡΡΠ°Π½Π΅Ρ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌ, ΠΈΠ»ΠΈ Ρ ΠΎΡΡ Π±Ρ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠ²Π»Π΅Π½ΠΎ ΡΠ°ΠΊΠΎΠ²ΡΠΌ. Π’ΠΎΠ³Π΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ½Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ resize’Π° ΡΠΆΠ΅ ΡΠ΅ΡΠ°Π΅Ρ Π²Π°ΡΡ Π·Π°Π΄Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π±Π°Π·Π°. ΠΠ°, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎΠΉ, Π½ΠΎ ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌΒ», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΌΠ΅ΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ copy-on-write Π½Π° ΡΡΠΎΠ²Π½Π΅ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ‘: Π’ΡΡ ΠΆΠ΅ Π½Π°Π΄ΠΎ Π΅ΡΡ, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ Π΄Π²ΠΈΠΆΠΊΠΈ (Amazon, Googleβ¦) ΡΡΠΏΠ΅Π»ΠΈ Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΡ Π²Π΅ΡΡΠΈΡ β ΡΡΠΎ Π²Π΅Π΄Ρ ΡΠΎΠΆΠ΅ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ.
ΠΠ‘: ΠΠΎΠΊΠ° ΠΌΡ ΠΈΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ²ΠΎΡ.
ΠΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ΄ Kubernetes
ΠΠ‘: Π‘ΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ Π»ΠΈ ΡΡ Ρ ΡΠ°ΠΊΠΎΠΉ Ρ ΠΎΡΠ΅Π»ΠΊΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΏΠΎΠ΄Π½ΡΡΡ Π²ΡΠ΅ pod’Ρ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π§ΡΠΎΠ±Ρ ΠΏΠΎ-Π±ΡΡΡΡΠΎΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ proof of concept, ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Kubernetes, Π½Π΅ Π²ΡΠ΄Π΅Π»ΡΡ ΠΏΠΎΠ΄ ΡΡΠΎ ΠΊΡΡΡ ΠΌΠ°ΡΠΈΠ½. ΠΡΡΡ Minikube, Π΄Π°?
ΠΠ‘: ΠΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎΡ ΠΊΠ΅ΠΉΡ β Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·Π»Π΅ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ β ΠΏΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΏΡΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½Π°. ΠΡΡΡ
ΠΠ‘: Π― ΡΠ°Π½ΡΡΠ΅ Π΄ΡΠΌΠ°Π», ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠΏΡΡΠΊΠ° Π·Π°Π²Π΅ΡΠ½ΡΡΡ Π²ΡΠ΅ pod’Ρ Π² ΠΎΠ΄ΠΈΠ½ Docker-ΠΎΠ±ΡΠ°Π·. ΠΠΎ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΎ Π΄ΡΡΠ³ΠΎΠΌ. ΠΡΡ ΡΠ°Π²Π½ΠΎ ΡΠ°ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ pod’Ρ β ΠΏΡΠΎΡΡΠΎ Π² Docker’Π΅.
ΠΠ‘: ΠΠ°. Π ΡΠ°ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°Π±Π°Π²Π½Π°Ρ ΠΈΠΌΠΈΡΠ°ΡΠΈΡ ΡΠ΄Π΅Π»Π°Π½Π°, Π½ΠΎ ΡΠΌΡΡΠ» ΡΠ°ΠΊΠΎΠΉβ¦ Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠΈΠ»ΠΈΡΠ° Π΄Π»Ρ Π΄Π΅ΠΏΠ»ΠΎΡ β werf up
: Β«ΠΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΌΠ½Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ KubernetesΒ». Π Π΄Π°Π»Π΅Π΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ°ΠΌ ΡΡΠ»ΠΎΠ²Π½ΡΠΉ werf follow
. Π’ΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ°Π²ΠΈΡΡ Π² IDE, Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π·Π°ΠΏΡΡΠ΅Π½ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΈΠ΄ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΠΎΠ±ΡΠ°Π·Ρ, ΠΏΠ΅ΡΠ΅Π΄Π΅ΠΏΠ»ΠΎΠΈΠ²Π°Π΅Ρ ΠΈΡ
Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ K8s. Π’Π°ΠΊ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
Π‘Π½Π°ΠΏΡΠΎΡΡ ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ Π² ΡΠ΅Π°Π»ΠΈΡΡ K8s
ΠΠ‘: ΠΡΠ»ΠΈ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ copy-on-write. Π― Π·Π°ΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ Ρ ΠΎΠ±Π»Π°ΠΊΠΎΠ² ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΡΠ½Π°ΠΏΡΠΎΡΡ. ΠΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² GCP: Ρ ΡΠ΅Π±Ρ Π½Π° Π²ΠΎΡΡΠΎΡΠ½ΠΎΠΌ ΠΏΠΎΠ±Π΅ΡΠ΅ΠΆΡΠ΅ Π‘Π¨Π Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΅ΡΠ°Π±Π°ΠΉΡΠ½ΡΠΉ ΠΈΠ½ΡΡΠ°Π½Ρ. ΠΠ΅Π»Π°Π΅ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ½Π°ΠΏΡΠΎΡΡ. ΠΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΡΡ ΠΈΠ· ΡΠ½Π°ΠΏΡΠΎΡΠ° ΠΊΠΎΠΏΠΈΡ Π΄ΠΈΡΠΊΠ° Π½Π° Π·Π°ΠΏΠ°Π΄Π½ΠΎΠΌ ΠΏΠΎΠ±Π΅ΡΠ΅ΠΆΡΠ΅ β ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ ΡΠΆΠ΅ Π²ΡΡ Π³ΠΎΡΠΎΠ²ΠΎ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ, ΡΠΎΠ»ΡΠΊΠΎ ΠΊΡΡ Π½Π°Π΄ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎ ΡΡΠΈ ΠΊΠ»ΠΎΠ½Ρ (ΡΠ½Π°ΠΏΡΠΎΡΡ) β Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°’provision’ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΎΠΌ. ΠΡΠΎ ΠΊΡΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² ΡΠΎΠ·Π΄Π°ΡΡ.
Π Π²ΠΎΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ², ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΠ½Π°ΠΏΡΠΎΡΡ, ΠΏΡΠΎ ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡ Π² Docker’Π΅ ΠΈΠ»ΠΈ Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Ρ Π² ZFS, btrfs ΠΈ Π΄Π°ΠΆΠ΅ LVMβ¦ β ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π· Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Π½Π΅ Π΄Π΅Π»Π°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎ Π½ΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. Π ΠΎΠ±Π»Π°ΠΊΠ΅ ΡΡ Π΅ΡΡ ΠΏΠ»Π°ΡΠΈΡΡ Π·Π° Π½ΠΈΡ
ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π±ΡΠ΄Π΅ΡΡ ΠΈ ΠΆΠ΄Π°ΡΡ ΡΠΆΠ΅ Π½Π΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ, Π° ΠΌΠΈΠ½ΡΡΡ (Π° Π² ΡΠ»ΡΡΠ°Π΅
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π° ΡΠ΅ΠΊΡΠ½Π΄Ρ-Π΄Π²Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅, ΠΏΠΎΠ³ΠΎΠ½ΡΡΡ ΡΠ΅ΡΡ ΠΈ Π²ΡΠ±ΡΠΎΡΠΈΡΡ. ΠΡΠΈ ΡΠ½Π°ΠΏΡΠΎΡΡ ΡΠ΅ΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΈ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ, Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ β Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ².
ΠΠ‘: ΠΠ΅ ΡΠΎΠ³Π»Π°ΡΡΡΡ. Π‘Π΄Π΅Π»Π°ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠΌΠΎΠ² β ΡΡΠΎ Π·Π°Π΄Π°ΡΠ° ΠΎΠ±Π»Π°ΠΊΠ°. Π― Π½Π΅ ΡΠΌΠΎΡΡΠ΅Π» ΠΈΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, Π½ΠΎ Π·Π½Π°Ρ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ ΠΌΡ Π½Π° ΠΆΠ΅Π»Π΅Π·Π΅. Π£ Π½Π°Ρ Π΅ΡΡΡ Ceph, Π² Π½ΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π»ΡΠ±ΠΎΠΌΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠΎΠΌΡ (
ΠΠ‘: ΠΠΎ Ρ Π½ΠΈΡ Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΡΠΉΠ΄ΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ, Π΄Π΅ΡΡΡΠΊΠΈ ΡΠ΅ΠΊΡΠ½Π΄, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π½ΡΡΡ ΠΈΠ½ΡΡΠ°Π½Ρ, ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΡΡΠ΄Π° Docker ΠΈ Ρ.Π΄.
ΠΠ‘: ΠΠΎΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π»ΡΠΉ ΠΈΠ½ΡΡΠ°Π½Ρ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡ? Π£ Π½Π°Ρ ΠΆΠ΅ Π΅ΡΡΡ ΠΈΠ½ΡΡΠ°Π½Ρ Π½Π° 32 ΡΠ΄ΡΠ°, Π½Π° 16β¦ ΠΈ Π² Π½Π΅Π³ΠΎ ΡΠΊΠΎΠ»ΡΠΊΠΎ-ΡΠΎ Π²Π»Π΅Π·Π°Π΅Ρ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΡΡΠ΅. ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΡΡΠΉ Π·Π°ΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ, ΡΠΆΠ΅ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅ΡΡΡ ΠΈΠ½ΡΡΠ°Π½Ρ, Π° ΠΏΠΎΡΠΎΠΌ ΠΎΠ½ ΡΠ΄Π°Π»ΠΈΡΡΡ.
ΠΠ‘: ΠΠ°, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π² Kubernetes ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π΄ΡΡΠ³Π°Ρ ΠΈΡΡΠΎΡΠΈΡ. Π£ Π½Π°Ρ ΠΠ Π½Π΅ Π² K8s, ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΡΠ°Π½Ρ. ΠΠ°ΡΠΎ Π½Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΅ΡΠ°Π±Π°ΠΉΡΠ½ΠΎΠΉ Π±Π°Π·Ρ ΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡΡ ΡΠ΅ΠΊΡΠ½Π΄.
ΠΠ‘: ΠΡΠΎ ΠΊΡΡΡΠΎ. ΠΠΎ ΠΌΠΎΠΉ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡΠ» Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ generic-ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΠ°, ΠΎΠ½ΠΎ ΠΊΠ»Π°ΡΡΠ½ΠΎΠ΅, Π½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Postgres ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·Π»Π΅.
ΠΠ‘: ΠΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Postgres: ΡΡΠΎ ΠΏΠ»Π°Π½Ρ, ΠΊΠ°ΠΊ Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π», Π±ΡΠ΄ΡΡ ΡΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½ΡΠΌ. ΠΠΎ Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΌΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΏΠ»Π°Π½ΠΎΠ², Π° Π½Π°ΠΌ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½Ρ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ Π‘Π£ΠΠ.
ΠΠ‘: ΠΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π½Π° LVM-ΡΠ½Π°ΠΏΡΠΎΡΠ°Ρ . ΠΡΠΎ ΠΊΠ»Π°ΡΡΠΈΠΊΠ°. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΡΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ. ΠΡΠΎΡΡΠΎ stateful-ΡΠ·Π»Ρ β ΡΡΠΎ Π±ΠΎΠ»Ρ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΡ Π½ΡΠΆΠ½ΠΎ Π½Π΅ ΡΠΎΠ½ΡΡΡ, Π²ΡΠ΅Π³Π΄Π° ΠΎ Π½ΠΈΡ ΠΏΠΎΠΌΠ½ΠΈΡΡβ¦
ΠΠ‘: ΠΠ΅ Π²ΠΈΠ΄ΠΈΡΡ Π»ΠΈ ΡΡ Π·Π΄Π΅ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π³ΠΈΠ±ΡΠΈΠ΄Π°? ΠΠΎΠΏΡΡΡΠΈΠΌ, stateful β ΡΡΠΎ pod ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ, ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π»ΡΠ΄Π΅ΠΉ (ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ²). Π’ΠΎΠΌ Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΠ½, Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠ»ΠΎΠ½Ρ β Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅. ΠΡΠ»ΠΈ pod ΡΠΏΠ°Π», Π΄ΠΈΡΠΊ ΠΎΡΡΠ°Π»ΡΡ β ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅ΡΡΡ pod, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ ΠΊΠ»ΠΎΠ½Π°Ρ ΡΡΠΈΡΠ°Π΅Ρ, Π²ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅Ρ ΠΈ ΡΠΊΠ°ΠΆΠ΅Ρ: Β«ΠΠΎΡ Π²Π°ΡΠΈ ΠΊΠ»ΠΎΠ½Ρ Π½Π° ΡΡΠΈΡ ΠΏΠΎΡΡΠ°Ρ Π·Π°ΠΏΡΡΠ΅Π½Ρ, ΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ Ρ Π½ΠΈΠΌΠΈ Π΄Π°Π»ΡΡΠ΅Β».
ΠΠ‘: Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ Kubernetes ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ pod, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Postgres’ΠΎΠ².
ΠΠ‘: ΠΠ°. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡΡ Π»ΠΈΠΌΠΈΡ: Π΄ΠΎΠΏΡΡΡΠΈΠΌ, ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ Π½ΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 10 ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ 20 β Π·Π°ΠΏΡΡΡΠΈΠΌ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΠΊΠΎΠΉ pod. ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ, ΠΏΠΎΠ»ΡΡΠΈΠ² Π²ΡΠΎΡΠΎΠΉ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΎΠΌ, Π½Π° Π½ΡΠΌ Π±ΡΠ΄ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ 10 Β«ΡΠΎΠ½ΠΊΠΈΡ Β» ΠΊΠ»ΠΎΠ½ΠΎΠ². ΠΠ΅ Π²ΠΈΠ΄ΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ?
ΠΠ‘: ΠΠ°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ΄Π° Π²ΠΎΠΏΡΠΎΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. Π’Π°ΠΊΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ, ΡΡΠΎ Ρ ΡΡΠΎΠ³ΠΎ pod’Π° Π²ΡΡΠΎΠΊΠΈΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ (capabilities), ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉβ¦ ΠΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ: Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ Π² ΡΡΠ΅Π΄Π½Π΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π΅ Π² Kubernetes ΠΏΠΎΡΠΈΠ½ΡΡ storage, Π² ΠΎΠ±Π»Π°ΠΊΠ°Ρ ΠΏΠΎΡΠΈΠ½ΡΡ Π²ΡΡ ΠΈΡΡΠΎΡΠΈΡ Ρ ΡΠΎΠΌΠ°ΠΌΠΈ Ββ Π²ΡΡ Π±ΡΠ΄Π΅Ρ Β«ΠΏΡΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΒ». ΠΡΠ΄Π΅Ρ resize, ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅β¦ ΠΡΡΡ ΡΠΎΠΌ β ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ: Β«Π‘ΠΎΠ·Π΄Π°ΠΉ Π½ΠΎΠ²ΡΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ³ΠΎΒ», β ΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ»ΡΠΎΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΡΠΎ Π½Π°Π΄ΠΎ.
ΠΠ‘: ΠΠ΅ Π²Π΅ΡΡ Π² ΠΏΠΎΠ»ΡΠΎΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ΅ΡΠ°Π±Π°ΠΉΡ. ΠΠ° Ceph ΡΡ Π΄Π΅Π»Π°Π΅ΡΡ ΡΠ°ΠΌ, Π° Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΏΡΠΎ ΠΎΠ±Π»Π°ΠΊΠ°. ΠΠΎΠΉΠ΄ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠΎ, Π½Π° EC2 ΡΠ΄Π΅Π»Π°ΠΉ ΠΊΠ»ΠΎΠ½ ΡΠΎΠΌΠ° EBS ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ΅ΡΠ°Π±Π°ΠΉΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈ, ΠΊΠ°ΠΊΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ. ΠΡΠΎ Π½Π΅ Π·Π°ΠΉΠΌΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄. ΠΠ½Π΅ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π΄ΠΎΠΉΠ΄ΡΡ Π΄ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. ΠΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΎ ΡΠ΅ΠΌ ΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡΡ, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»Ρ ΡΠ΅Π±Π΅ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠΈΡΡΡΡ.
ΠΠ‘: ΠΠΊ, Π½ΠΎ Ρ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ Π² ΡΡΠ΅Π΄Π½Π΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π΅, Π½Π΅ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΎΡΠ½ΠΎΠΉ. Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π»Π΅Ρ.
ΠΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π΄Π»Ρ PostgreSQL ΠΎΡ Zalando
Π ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΡΡΠΎΠΉ Π²ΡΡΡΠ΅ΡΠΈ ΠΊ Π½Π΅ΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΡΡ ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΠ»ΡΠΊΠΈΠ½, Π±ΡΠ²ΡΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Zalando, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΊΠ°Π·Π°Π» ΠΏΡΠΎ ΠΈΡΡΠΎΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° PostgreSQL:
ΠΠ΄ΠΎΡΠΎΠ²ΠΎ, ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΡΠ° ΡΠ΅ΠΌΠ° Π·Π°ΡΡΠΎΠ½ΡΡΠ°: ΠΈ Postgres, ΠΈ Kubernetes. ΠΠΎΠ³Π΄Π° ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π»ΠΈ Π΅Ρ Π΄Π΅Π»Π°ΡΡ Π² Zalando Π² 2017-ΠΌ Π³ΠΎΠ΄Ρ, ΡΡΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠ΅ Ρ ΠΎΡΠ΅Π»ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ, Π½ΠΎ Π½ΠΈΠΊΡΠΎ Π½Π΅ Π΄Π΅Π»Π°Π». Π£ Π²ΡΠ΅Ρ ΡΠΆΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ»ΡΡ Kubernetes, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΡΠΏΡΠ°ΡΠΈΠ²Π°Π»ΠΈ, ΠΊΠ°ΠΊ Π±ΡΡΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΡΠΎ Π΄Π°ΠΆΠ΅ ΡΠ°ΠΊΠΈΠ΅ Π»ΡΠ΄ΠΈ, ΠΊΠ°ΠΊ
Kelsey Hightower , ΠΏΡΠΎΠΏΠΎΠ²Π΅Π΄ΠΎΠ²Π°Π²ΡΠΈΠ΅ K8s, Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:Β«ΠΠ΄ΠΈΡΠ΅ Π² managed-ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΡ , Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ ΠΠ Π² Kubernetes. ΠΠ½Π°ΡΠ΅ Π²Π°Ρ K8s ΡΠ΅ΡΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π΅Π»Π°ΡΡ Π°ΠΏΠ³ΡΠ΅ΠΉΠ΄, ΠΏΠΎΡΡΡΠΈΡ Π²ΡΠ΅ ΡΠ·Π»Ρ, ΠΈ Π²Π°ΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠ»Π΅ΡΡΡ Π΄Π°Π»Π΅ΠΊΠΎ-Π΄Π°Π»Π΅ΠΊΠΎΒ».
ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ, Π²ΠΎΠΏΡΠ΅ΠΊΠΈ ΡΡΠΎΠΌΡ ΡΠΎΠ²Π΅ΡΡ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΠ Postgres Π² Kubernetes. Π Ρ Π½Π°Ρ Π±ΡΠ»ΠΎ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ β
Patroni . ΠΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ failover Π΄Π»Ρ PostgreSQL, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠΉ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Ρ.Π΅. ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ etcd, consul ΠΈΠ»ΠΈ ZooKeeper Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅. Π’Π°ΠΊΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΄Π°Π²Π°ΡΡ Π²ΡΠ΅ΠΌ, ΠΊΡΠΎ ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅ΠΉΡΠ°Ρ Π»ΠΈΠ΄Π΅Ρ, ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ β Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Ρ Π½Π°Ρ Π²ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅, β ΡΡΠΎΠ±Ρ Π½Π΅ Π±ΡΠ»ΠΎ split brain’Π°. ΠΠ»ΡΡ, Ρ Π½Π°Ρ Π±ΡΠ»Docker-ΠΎΠ±ΡΠ°Π· Π΄Π»Ρ Π½Π΅Π³ΠΎ.ΠΠΎΠΎΠ±ΡΠ΅, ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² auto failover Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΈΠ· Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΆΠ΅Π»Π΅Π·Π½ΠΎΠ³ΠΎ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° Π² ΠΎΠ±Π»Π°ΠΊΠΎ. ΠΠ±Π»Π°ΠΊΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ PaaS (Platform-as-a-Service). ΠΠ½ΠΎ Open Source’Π½ΠΎΠ΅, Π½ΠΎ ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π½ΡΡΡ, Π½Π°Π΄ΠΎ Π±ΡΠ»ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΡΡΡΠ΄ΠΈΡΡΡΡ. ΠΠ°Π·ΡΠ²Π°Π»ΠΎΡΡ
STUPS .ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Kubernetes’Π° Π½Π΅ Π±ΡΠ»ΠΎ. Π’ΠΎΡΠ½Π΅Π΅, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π»ΠΎΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, K8s ΡΠΆΠ΅ Π±ΡΠ», Π½ΠΎ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΡΠΌ, ΡΡΠΎ Π΄Π»Ρ production Π½Π΅ Π³ΠΎΠ΄ΠΈΠ»ΡΡ. ΠΡΠΎ Π±ΡΠ», ΠΏΠΎ-ΠΌΠΎΠ΅ΠΌΡ, 2015 ΠΈΠ»ΠΈ 2016 Π³ΠΎΠ΄. Π 2017-ΠΌΡ Π³ΠΎΠ΄Ρ Kubernetes ΡΡΠ°Π» Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Π·ΡΠ΅Π»ΡΠΌ β ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΡΡΠ΄Π°.
Π Ρ Π½Π°Ρ ΡΠΆΠ΅ Π±ΡΠ» Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΡΠ»Π° PaaS, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π° Docker. ΠΠΎΡΠ΅ΠΌΡ Π±Ρ Π½Π΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ K8s? ΠΠΎΡΠ΅ΠΌΡ Π±Ρ Π½Π΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ? ΠΡΡΠ°Ρ ΠΠ°Π±ΠΈΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΡΠ΅Π» ΠΊ Π½Π°ΠΌ ΠΈΠ· ΠΠ²ΠΈΡΠΎ, Π½Π°ΡΠ°Π» ΡΡΠΎ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²Π΅ β Β«ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΒ», β ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Β«Π²Π·Π»Π΅ΡΠ΅Π»Β».
ΠΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Ρ Ρ ΠΎΡΠ΅Π» ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎ AWS. ΠΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΌ Π±ΡΠ» ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠ΄, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ AWSβ¦
ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ Π² Kubernetes, Π½Π°Π΄ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ K8s β ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ work in progress. ΠΠ½ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ, ΡΠ»ΡΡΡΠ°Π΅ΡΡΡ ΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Π΄Π°ΠΆΠ΅ Π»ΠΎΠΌΠ°Π΅ΡΡΡ. ΠΡΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π° Π²ΡΠ΅ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² Kubernetes, Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π³ΠΎ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΡΡΡ Π² Π½Π΅Π³ΠΎ ΠΈ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π΄Π΅ΡΠ°Π»ΡΡ β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π²Π°ΠΌ Π±Ρ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ. ΠΡΠΎ, Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Ρ Π»ΡΠ±ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΡΠ²ΠΎΠΈ ΠΠβ¦
ΠΡΠ°ΠΊ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, Ρ Π½Π°Ρ Π±ΡΠ» Postgres, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π» Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΡΠΎΠΌΠΎΠΌ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β EBS, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π² AWS). ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ ΡΠΎΡΠ»Π°, Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΡΠ΄Π΅Π»Π°ΡΡ resize: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ EBS β 100 Π’Π±, Π±Π°Π·Π° Π΄ΠΎΡΠΎΡΠ»Π° Π΄ΠΎ Π½Π΅Π³ΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ Ρ ΠΎΡΠΈΠΌ ΡΠ΄Π΅Π»Π°ΡΡ EBS Π² 200 Π’Π±. ΠΠ°ΠΊ? ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ dump/restore Π½Π° Π½ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΠ°Π½Ρ, Π½ΠΎ ΡΡΠΎ Π΄ΠΎΠ»Π³ΠΎ ΠΈ Ρ ΠΏΡΠΎΡΡΠΎΠ΅ΠΌ.
ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ ΡΠ°ΠΊΠΎΠΉ resize, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΡΠ°Π·Π΄Π΅Π» EBS’Π° ΠΈ ΠΏΠΎΡΠΎΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. Π ΠΌΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ, Π½ΠΎ Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ Ρ Kubernetes’Π° Π½Π΅ Π±ΡΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ API Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ resize’Π°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π½Π° AWS, Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΊΠΎΠ΄ Π΄Π»Ρ Π΅Π³ΠΎ API.
ΠΠΈΠΊΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ. Π ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ Π½Π΅Ρ Π·Π°Π²ΡΠ·ΠΊΠΈ, ΡΡΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° AWS, Π° Π½Π° Π²ΡΡΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ. Π ΠΎΠ±ΡΠ΅ΠΌ, ΡΡΠΎ Open Source-ΠΏΡΠΎΠ΅ΠΊΡ: Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Ρ ΠΎΡΠ΅Ρ ΡΡΠΊΠΎΡΠΈΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ API β ΠΌΠΈΠ»ΠΎΡΡΠΈ ΠΏΡΠΎΡΠΈΠΌ. ΠΡΡΡ
GitHub , pull-Π·Π°ΠΏΡΠΎΡΡ β ΠΊΠΎΠΌΠ°Π½Π΄Π° Zalando ΡΡΠ°ΡΠ°Π΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ Π½Π° Π½ΠΈΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ³Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ. ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°Ρ, ΠΏΡΠΎΠ΅ΠΊΡΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π» Π² Google Summer of Code ΠΈ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΡ ΠΎΠΆΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²Π°Ρ . Zalando Π½Π°Π΄ Π½ΠΈΠΌ ΠΎΡΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
P.S. ΠΠΎΠ½ΡΡ!
ΠΡΠ»ΠΈ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΡΠ΅ΠΌΠ° PostgreSQL ΠΈ Kubernetes, ΡΠΎ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π° ΠΏΡΠΎΡΠ»ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ ΡΠΎΡΡΠΎΡΠ»ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Postgres-Π²ΡΠΎΡΠ½ΠΈΠΊ, Π³Π΄Π΅ Ρ ΠΠΈΠΊΠΎΠ»Π°Π΅ΠΌ ΠΎΠ±ΡΠ°Π»ΡΡ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΡΠΊΡΡΠΊΠΈΠ½ ΠΈΠ· Zalando. ΠΠΈΠ΄Π΅ΠΎ Ρ Π½Π΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ
P.P.S.
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅:
- Β«
ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Kubernetes (ΠΎΠ±Π·ΠΎΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π°) Β»; - Β«
ΠΠΈΠ³ΡΠ°ΡΠΈΡ Cassandra Π² Kubernetes: ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Β»; - Β«
ΠΠ΅ΡΠΏΡΠΎΡΡΠΎΠΉΠ½Π°Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ MongoDB Π² Kubernetes Β»; - Β«
ΠΠ΅ΡΠΏΡΠΎΡΡΠΎΠΉΠ½Π°Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ RabbitMQ Π² Kubernetes Β».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com