5 ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° здравия Ρ€Π°Π·ΡƒΠΌ Π·Π° създаванС Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ прилоТСния

β€žΠžΠ±Π»Π°Ρ‡Π½ΠΈβ€œ (cloud native) прилоТСния са създадСни спСциално Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π² ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ инфраструктури. ОбикновСно Ρ‚Π΅ сС ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ слабо ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ микросСрвизи, ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΡ‚ своя страна сС управляват ΠΎΡ‚ ΠΎΠ±Π»Π°Ρ‡Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°. Π’Π°ΠΊΠΈΠ²Π° прилоТСния ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ са Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π·Π° ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Ρ‚ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ ΠΈ сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Ρ‚ Π΄ΠΎΡ€ΠΈ ΠΏΡ€ΠΈ сСриозни ΠΎΡ‚ΠΊΠ°Π·ΠΈ Π½Π° инфраструктурно Π½ΠΈΠ²ΠΎ. ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ‚Π° страна Π½Π° ΠΌΠΎΠ½Π΅Ρ‚Π°Ρ‚Π° са Π½Π°Π±ΠΎΡ€ΠΈΡ‚Π΅ ΠΎΡ‚ ограничСния (ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΈ), ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠ±Π»Π°Ρ‡Π½Π°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π°Π»Π°Π³Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈΡ‚Π΅ прилоТСния, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ управлява Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ.

5 ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° здравия Ρ€Π°Π·ΡƒΠΌ Π·Π° създаванС Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ прилоТСния

Бъс съзнаниС Π·Π° нСобходимостта ΠΈ ваТността Π½Π° ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π° към ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ прилоТСния, ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ всС ΠΎΡ‰Π΅ Π½Π΅ знаят ΠΎΡ‚ΠΊΡŠΠ΄Π΅ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ‚. Π’ Ρ‚ΠΎΠ·ΠΈ пост Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Ρ€Π΅Π΄ΠΈΡ†Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ, чиято спазванС ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ прилоТСния Ρ‰Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π° Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ ΠΈ постиганС Π½Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ Π½Π° прилоТСнията Π΄ΠΎΡ€ΠΈ ΠΏΡ€ΠΈ сСриозни ΠΎΡ‚ΠΊΠ°Π·ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ИВ-инфраструктура. ΠšΠΎΠ½Π΅Ρ‡Π½Π°Ρ‚Π° Ρ†Π΅Π» Π½Π° ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΡ‚Π΅ Ρ‚ΡƒΠΊ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ Π΅ Π΄Π° Π½Π°ΡƒΡ‡ΠΈΠΌ ΠΊΠ°ΠΊ Π΄Π° създавамС прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС управляват Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ, ΠΊΠ°Ρ‚ΠΎ Kubernetes.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° софтуСр

Π’ свСта Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΏΠΎΠ΄ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ сС Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ доста ΠΎΠ±Ρ‰ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° сС спазват ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° софтуСр. Π’Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с всСки Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅. ВсСки ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΈΠΌΠ° свои Ρ†Π΅Π»ΠΈ, инструмСнтитС Π·Π° постиганСто Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ са шаблони ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ. Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ основни ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ Π·Π° създаванС Π½Π° качСствСн софтуСр, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Ρ‚ΠΈΡ‡Π²Π°Ρ‚ всички останали. ΠŸΡ€ΠΈΠ²Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° основни ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ:

  • KISS (Keep it simple, stupid) – Π½Π΅ услоТнявайтС;
  • DRY (Don’t repeat yourself) – Π½Π΅ сС повтаряйтС;
  • YAGNI (You aren’t gonna need it) – Π½Π΅ ΡΡŠΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π΅Ρ‰Π°, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ няматС нСпосрСдствСна Π½ΡƒΠΆΠ΄Π°;
  • SoC (Separation of concerns) – раздСляйтС отговорноститС.

ΠšΠ°ΠΊΡ‚ΠΎ сС Π²ΠΈΠΆΠ΄Π°, Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ Π½Π΅ Π·Π°Π΄Π°Π²Π°Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Π° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ към катСгорията Π½Π° Ρ‚Π°ΠΊΠ° Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΈΡ‚Π΅ Π·Π΄Ρ€Π°Π²Ρ€Π°Π·ΡƒΠΌΠ½ΠΈ Ρ€Π°Π·ΡΡŠΠΆΠ΄Π΅Π½ΠΈΡ, основани Π½Π° практичСския ΠΎΠΏΠΈΡ‚, ΠΊΠΎΠΈΡ‚ΠΎ сподСлят ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΈ Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Ρ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π½ΠΎ сС ΠΏΠΎΠ·ΠΎΠ²Π°Π²Π°Ρ‚.
ОсвСн Ρ‚ΠΎΠ²Π°, ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° SOLID – Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ ΠΏΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅, Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ Π ΠΎΠ±ΡŠΡ€Ρ‚ ΠœΠ°Ρ€Ρ‚ΠΈΠ½. SOLID Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈ ΠΈ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ Π·Π° интСрпрСтация Π²Π·Π°ΠΈΠΌΠΎΠ΄ΠΎΠΏΡŠΠ»Π²Π°Ρ‰ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ – Π°ΠΊΠΎ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ Π² комбинация – ΠΏΠΎΠΌΠ°Π³Π°Ρ‚ Π·Π° ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎ-качСствСни софтуСрни систСми ΠΈ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅ Π½Π° тях Π² Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π΅Π½ ΠΏΠ»Π°Π½.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΡ‚Π΅ Π½Π° SOLID ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Π½Π° сфСрата Π½Π° ООП ΠΈ сС Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π°Ρ‚ Π½Π° Π΅Π·ΠΈΠΊΠ° Π½Π° понятия ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ класовС, интСрфСйси ΠΈ наслСдяванС. AnalogΠΈΡ‡Π½ΠΎ, Π·Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈΡ‚Π΅ прилоТСния ΡΡŠΡ‰ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, само Ρ‡Π΅ основният Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ Ρ‚ΡƒΠΊ няма Π΄Π° бъдС клас, Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Π‘Π»Π΅Π΄Π²Π°ΠΉΠΊΠΈ Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ отговарят Π½Π° Ρ†Π΅Π»ΠΈΡ‚Π΅ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ ΠΊΠ°Ρ‚ΠΎ Kubernetes.

ΠžΠ±Π»Π°Ρ‡Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ: ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π° Red Hat

ДнСс Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅ относитСлно лСсно Π΄Π° бъдС ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ всяко ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Но Π·Π° Π΄Π° сС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΠΈ оркСстрират прилоТСнията Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΊΠ°Ρ‚ΠΎ Kubernetes, Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ°Ρ‚ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ усилия.
ΠžΡΠ½ΠΎΠ²Π°Ρ‚Π° Π·Π° ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΡ‚Π΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ ΠΈΠ΄Π΅ΠΈ Π΅ мСтодологията The Twelve-Factor App ΠΈ мноТСство Π΄Ρ€ΡƒΠ³ΠΈ изслСдвания ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ аспСкти Π½Π° ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡƒΠ΅Π± прилоТСния, ΠΎΡ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° изходния ΠΊΠΎΠ΄ Π΄ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅. ΠžΠΏΠΈΡΠ²Π°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ сС отнасят само Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ прилоТСния, ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° микросСрвизи ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈ Π·Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ ΠΊΠ°Ρ‚ΠΎ Kubernetes. ΠžΡΠ½ΠΎΠ²Π½ΠΈΡΡ‚ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ Π² Π½Π°ΡˆΠΈΡ‚Π΅ Ρ€Π°Π·ΡΡŠΠΆΠ΄Π΅Π½ΠΈΡ Π΅ ΠΎΠ±Ρ€Π°Π·ΡŠΡ‚ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π° ΠΏΠΎΠ΄ Ρ†Π΅Π»Π΅Π²Π°Ρ‚Π° срСда Π·Π° изпълнСниС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π·Π° оркСстрация Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. Π¦Π΅Π»Ρ‚Π° Π½Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ Π΅ Π΄Π° сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π½Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ Π·Π° оркСстрация ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Ρ‚ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ (scheduling – ΠΈΠ·Π±ΠΎΡ€ Π½Π° хост Π·Π° стартиранС Π½Π° инстанция Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°), ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΡ‚Π΅ сС ΠΈΠ·Π»Π°Π³Π°Ρ‚ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Ρ€Π΅Π΄.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° СдинствСната Π·Π°Π΄Π°Ρ‡Π° (Single Concern Principle, SCP)

Π’ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π² ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ наподобява ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° СдинствСната отговорност (Single Responsibility Principle, SRP), ΠΊΠΎΠΉΡ‚ΠΎ Π΅ част ΠΎΡ‚ Π½Π°Π±ΠΎΡ€Π° SOLID ΠΈ гласи, Ρ‡Π΅ всСки ΠΎΠ±Π΅ΠΊΡ‚ трябва Π΄Π° ΠΈΠΌΠ° Π΅Π΄Π½Π° Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚, ΠΈ Ρ‚Π°Π·ΠΈ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚ трябва Π΄Π° бъдС напълно инкапсулирана Π² класа. Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° SRP Π΅, Ρ‡Π΅ всяка Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚ Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, Π° ΠΊΠ»Π°ΡΡŠΡ‚ трябва Π΄Π° ΠΈΠΌΠ° Π΅Π΄Π½Π° СдинствСна ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π° промяна.

Π’ SCP вмСсто Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° β€žΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π½ΠΎΡΡ‚β€œ (responsibility) ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° β€žΠ·Π°Π΄Π°Ρ‡Π°β€œ (concern), Π·Π° Π΄Π° посочим ΠΏΠΎ-високо Π½ΠΈΠ²ΠΎ Π½Π° абстракция ΠΈ ΠΏΠΎ-ΡˆΠΈΡ€ΠΎΠΊΠ° Ρ†Π΅Π» Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π² сравнСниС с ООП клас. И Π°ΠΊΠΎ Ρ†Π΅Π»Ρ‚Π° Π½Π° SRP Π΅ Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ само Π΅Π΄Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π° измСнСния, Ρ‚ΠΎ Π·Π°Π΄ SCP стои ΠΆΠ΅Π»Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° сС Ρ€Π°Π·ΡˆΠΈΡ€ΡΡ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π·Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈ замяна Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅. Π‘Π»Π΅Π΄Π²Π°ΠΉΠΊΠΈ SRP ΠΈ създавайки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π΅ΡˆΠ°Π²Π° Π΅Π΄Π½Π° СдинствСна Π·Π°Π΄Π°Ρ‡Π° ΠΈ ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎΠ²Π° ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½ Π½Π°Ρ‡ΠΈΠ½, ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚Π΅ ΡˆΠ°Π½ΡΠΎΠ²Π΅Ρ‚Π΅ Π·Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠΌΠΈΠ΄ΠΆΠ° Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ контСксти Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡŠΡ‚ SCP гласи, Ρ‡Π΅ всСки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ трябва Π΄Π° Ρ€Π΅ΡˆΠ°Π²Π° Π΅Π΄Π½Π° СдинствСна Π·Π°Π΄Π°Ρ‡Π° ΠΈ Π΄Π° Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ Π΄ΠΎΠ±Ρ€Π΅. ОсвСн Ρ‚ΠΎΠ²Π°, SCP Π² свСта Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ сС постига ΠΏΠΎ-лСсно, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ SRP Π² свСта Π½Π° ООП, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π΅Π΄ΠΈΠ½ СдинствСн процСс, Π° ΠΏΡ€Π΅Π· ΠΏΠΎ-голямата част ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Ρ‚ΠΎΠ·ΠΈ процСс Ρ€Π΅ΡˆΠ°Π²Π° Π΅Π΄Π½Π° СдинствСна Π·Π°Π΄Π°Ρ‡Π°.

Ако някой ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅Π½ микросСрвис трябва Π΄Π° Ρ€Π΅ΡˆΠ°Π²Π° Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ няколко Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΠΎΠ΄Π½ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΈ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄ΠΈΠ½ pod (Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π·Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°) с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° шаблони sidecar ΠΈ init ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. ОсвСн Ρ‚ΠΎΠ²Π°, SCP улСснява замяната Π½Π° стар ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€ ΠΈΠ»ΠΈ Π±Ρ€ΠΎΠΊΠ΅Ρ€ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ) с Π½ΠΎΠ², ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π΅ΡˆΠ°Π²Π° ΡΡŠΡ‰Π°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π°, Π½ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½Π° функционалност ΠΈΠ»ΠΈ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π° мащабируСмост.

5 ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° здравия Ρ€Π°Π·ΡƒΠΌ Π·Π° създаванС Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ прилоТСния

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡŠΡ‚ Π·Π° удобство Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° (High Observability Principle, HOP)

ΠŸΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΊΠ°Ρ‚ΠΎ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ ΠΈ стартиранС Π½Π° прилоТСнията самитС прилоТСния сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ β€žΡ‡Π΅Ρ€Π½Π° ΠΊΡƒΡ‚ΠΈΡβ€œ. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ става Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, Ρ‚Π΅ трябва Π΄Π° прСдоставят Π½Π° срСдата Π·Π° изпълнСниС спСциални API интСрфСйси, Π·Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Ρ‚ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ Π΄Π° ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈ ΠΌΠ΅Ρ€ΠΊΠΈ ΠΏΡ€ΠΈ нСобходимост. Π‘Π΅Π· Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ възмоТно Π΄Π° сС ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° автоматизацията Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° тСхния ΠΆΠΈΠ·Π½Π΅Π½ Ρ†ΠΈΠΊΡŠΠ», ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ влоши устойчивостта ΠΈ удобството Π½Π° софтуСрната систСма.

5 ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° здравия Ρ€Π°Π·ΡƒΠΌ Π·Π° създаванС Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ прилоТСния
На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ трябва ΠΏΠΎΠ½Π΅ Π΄Π° ΠΈΠΌΠ° API Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ: тСстовС Π·Π° активност (liveness) ΠΈ тСстовС Π·Π° готовност (readiness). Ако ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΠΈΡ€Π° Π·Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅, трябва Π΄Π° прСдоставя ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ срСдства Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° своСто ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. НапримСр, рСгистриранС Π½Π° Π²Π°ΠΆΠ½ΠΈ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Ρ‡Ρ€Π΅Π· STDERR ΠΈ STDOUT Π·Π° агрСгация Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Fluentd, Logstash ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ инструмСнти. И ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° интСграция с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° трасировка ΠΈ ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΊΠ°Ρ‚ΠΎ OpenTracing, Prometheus ΠΈ Ρ‚.Π½.

ΠžΠ±Ρ‰ΠΎ Π²Π·Π΅Ρ‚ΠΎ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ всС ΠΎΡ‰Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°Ρ‚ΠΎ β€žΡ‡Π΅Ρ€Π½Π° ΠΊΡƒΡ‚ΠΈΡβ€œ, Π½ΠΎ трябва Π΄Π° бъдС снабдСно с всички API, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° изисква, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ наблюдава ΠΈ управлява ΠΏΠΎ Π½Π°ΠΉ-добрия Π½Π°Ρ‡ΠΈΠ½.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с ТизнСния Ρ†ΠΈΠΊΡŠΠ» (Life-cycle Conformance Principle, LCP)

LCP Π΅ Π°Π½Ρ‚ΠΈΡ‚Π΅Π·Π° Π½Π° HOP. Π”ΠΎΠΊΠ°Ρ‚ΠΎ HOP Ρ‚Π²ΡŠΡ€Π΄ΠΈ, Ρ‡Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ трябва Π΄Π° прСдоставя Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° API интСрфСйси Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅, LCP изисква ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅ΠΌΠ° информация ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ Π½Π΅ само трябва Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, Π½ΠΎ ΠΈ Π΄Π° сС Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°, Ρ‚.Π΅. Π΄Π° Ρ€Π΅Π°Π³ΠΈΡ€Π° Π½Π° тях. ΠžΡ‚Ρ‚ΡƒΠΊ ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°Ρ‚ΠΎ изискванС Π·Π° прСдоставянС Π½Π° Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° API интСрфСйси Π·Π° запис.

5 ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° здравия Ρ€Π°Π·ΡƒΠΌ Π·Π° създаванС Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ прилоТСния
ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈΡ‚Π΅ ΠΈΠΌΠ°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠΌΠ°Π³Π°Ρ‚ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ТизнСния Ρ†ΠΈΠΊΡŠΠ» Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Но Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠΈ ΠΎΡ‚ тях Π΄Π° сС Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ ΠΈ ΠΊΠ°ΠΊ Π΄Π° сС Ρ€Π΅Π°Π³ΠΈΡ€Π°, трябва Π΄Π° бъдС Π²Π·Π΅Ρ‚ΠΎ ΠΎΡ‚ самото ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π΅, Ρ‡Π΅ някои ΡΡŠΠ±ΠΈΡ‚ΠΈΡ са ΠΏΠΎ-Π²Π°ΠΆΠ½ΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ. НапримСр, Π°ΠΊΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π΅ понася Π΄ΠΎΠ±Ρ€Π΅ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ прСкратяванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π°, Ρ‚ΠΎ Π΅ задълТСно Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ signal: terminate (SIGTERM) ΠΈ ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ сС ΠΌΠΎΠΆΠ΅ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ Π΄Π° ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π° собствСната си ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π° прСкратяванС, Π·Π° Π΄Π° успСС ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ signal: kill (SIGKILL), ΠΊΠΎΠΉΡ‚ΠΎ слСдва слСд SIGTERM.

ОсвСн Ρ‚ΠΎΠ²Π°, Π·Π° ТизнСния Ρ†ΠΈΠΊΡŠΠ» Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π²Π°ΠΆΠ½ΠΈ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΊΠ°Ρ‚ΠΎ PostStart ΠΈ PreStop. НапримСр, слСд стартиранСто ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° изисква ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° 'разгряванС', ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° отговаря Π½Π° заявки. Или ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ трябва ΠΏΠΎ някакъв спСциалСн Π½Π°Ρ‡ΠΈΠ½ Π΄Π° освобоТдава рСсурси ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€ΠΈΠ²Π°Π½Π΅Ρ‚ΠΎ си.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° нСизмСнност Π½Π° контСйнСрния ΠΎΠ±Ρ€Π°Π· (Image Immutability Principle, IIP)

ΠžΠ±Ρ‰ΠΎΠΏΡ€ΠΈΠ΅Ρ‚ΠΎ Π΅, Ρ‡Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈΡ‚Π΅ прилоТСния трябва Π΄Π° остават Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΈ слСд ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ, Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ сС стартират Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ срСди. ΠžΡ‚Ρ‚ΡƒΠΊ ΠΏΡ€ΠΎΠΈΠ·Ρ‚ΠΈΡ‡Π° нСобходимостта Π΄Π° сС СкстСрнализира ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изпълнСниС (с Π΄Ρ€ΡƒΠ³ΠΈ Π΄ΡƒΠΌΠΈ, Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ външни срСдства Π·Π° Ρ‚ΠΎΠ²Π°), ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π΄Π° сС Ρ€Π°Π·Ρ‡ΠΈΡ‚Π° Π½Π° външни ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, настроСни Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° срСда Π½Π° изпълнСниС, вмСсто Π΄Π° сС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚ ΠΈΠ»ΠΈ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Π·Π° всяка срСда. Π‘Π»Π΅Π΄ всяка промяна Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ контСйнСрният ΠΎΠ±Ρ€Π°Π· трябва Π΄Π° бъдС ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½ ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΈ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½ във всичкитС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ срСди. ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, ΠΏΡ€ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ИВ систСми сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, извСстСн ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° нСизмСнност Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ ΠΈ инфраструктурата.

Π¦Π΅Π»Ρ‚Π° Π½Π° IIP Π΅ Π΄Π° ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΈ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ срСди Π½Π° изпълнСниС ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° навсякъдС Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ ΠΎΠ±Ρ€Π°Π·, Π·Π°Π΅Π΄Π½ΠΎ с подходяща конфигурация Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π°Ρ‚Π° срСда. Π‘ΠΏΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ позволява Π΄Π° сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ Π²Π°ΠΆΠ½ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° автоматизацията Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈΡ‚Π΅ систСми, ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚ (roll-back) ΠΈ Π½Π°ΠΊΠ°Ρ‚ (roll-forward) Π½Π° обновлСнията Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

5 ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° здравия Ρ€Π°Π·ΡƒΠΌ Π·Π° създаванС Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ прилоТСния

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° Сднократност Π½Π° процСситС (Process Disposability Principle, PDP)

Π•Π΄Π½ΠΎ ΠΎΡ‚ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡ‚Π΅ характСристики Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π΅ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° СфСмСрност: инстанция Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΌΠΎΠΆΠ΅ лСсно Π΄Π° бъдС създадСна ΠΈ лСсно Π΄Π° бъдС ΡƒΠ½ΠΈΡ‰ΠΎΠΆΠ΅Π½Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΏΠΎ всяко Π²Ρ€Π΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅ лСсно Π΄Π° бъдС Π·Π°ΠΌΠ΅Π½Π΅Π½Π° с Π΄Ρ€ΡƒΠ³Π° инстанция. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° Ρ‚Π°ΠΊΠ°Π²Π° замяна ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠ±Ρ€ΠΎΠΉΠ½ΠΈ: ΠΏΡ€ΠΎΠ²Π°Π» Π½Π° тСста Π·Π° надСТдност, скалиранС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ хост, ΠΈΠ·Ρ‡Π΅Ρ€ΠΏΠ²Π°Π½Π΅ Π½Π° рСсурситС Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ситуации.

5 ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° здравия Ρ€Π°Π·ΡƒΠΌ Π·Π° създаванС Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ прилоТСния
Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈΡ‚Π΅ прилоТСния трябва Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ си Ρ‡Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ външни срСдства ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ схСми с излишък. ОсвСн Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ трябва Π΄Π° сС стартира Π±ΡŠΡ€Π·ΠΎ ΠΈ Π΄Π° Π·Π°Π²ΡŠΡ€ΡˆΠ²Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° си Π±ΡŠΡ€Π·ΠΎ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π΄Π° бъдС Π³ΠΎΡ‚ΠΎΠ²ΠΎ Π·Π° Π²Π½Π΅Π·Π°ΠΏΠ΅Π½ Ρ„Π°Ρ‚Π°Π»Π΅Π½ ΠΎΡ‚ΠΊΠ°Π· Π½Π° ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅Ρ‚ΠΎ.

Π•Π΄Π½Π° ΠΎΡ‚ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈΡ‚Π΅, която ΠΏΠΎΠΌΠ°Π³Π° Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, Π΅ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. ΠžΠ±Π»Π°Ρ‡Π½ΠΈΡ‚Π΅ срСди ΠΌΠΎΠ³Π°Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π΄Π° ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚ хост Π·Π° стартиранС Π½Π° СкзСмпляр Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-малък Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ Ρ‰Π΅ сС стартира – Ρ‚ΠΎΠΉ просто Ρ‰Π΅ бъдС ΠΊΠΎΠΏΠΈΡ€Π°Π½ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ Π² цСлСвия хост ΠΏΡ€Π΅Π· ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° самообСзпСчСност (Self-containment Principle, S-CP)

Π‘ΠΏΠΎΡ€Π΅Π΄ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ трябва Π΄Π° бъдС ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½, ΠΏΡ€Π΅Π΄Π²ΠΈΠΆΠ΄Π°ΠΉΠΊΠΈ, Ρ‡Π΅ Π² систСмата ΠΈΠΌΠ° само чиста ядрото Π½Π° Linux, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ трябва Π΄Π° сС ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Π² самия ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Π’Π°ΠΌ трябва Π΄Π° сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ ΠΈ Π½Π΅Ρ‰Π° ΠΊΠ°Ρ‚ΠΎ срСда Π½Π° изпълнСниС Π·Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° прилоТСния (Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ зависимости, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

5 ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° здравия Ρ€Π°Π·ΡƒΠΌ Π·Π° създаванС Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ прилоТСния

Π˜Π·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ‚Π° сС правят само Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π°Ρ€ΠΈΡ€Π°Ρ‚ ΠΎΡ‚ срСда Π½Π° срСда ΠΈ трябва Π΄Π° сС прСдоставят Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° изпълнСниС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡Ρ€Π΅Π· Kubernetes ConfigMap.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° няколко ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π·Π° Π‘Π£Π‘Π” Π² ΡΡŠΡΡ‚Π°Π²Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎ ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΏΠΎΡ€Π΅Π΄ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° S-CP, Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Π½Π΅ трябва Π΄Π° сС ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚ Π² Π΅Π΄ΠΈΠ½, Π° трябва Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ Π·Π° Π‘Π£Π‘Π” Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° всичко Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ Π½Π° ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ – всичко Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π°, ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ Π½Π° ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‰Π΅ зависи ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π·Π° Π‘Π£Π‘Π” ΠΈ Ρ‰Π΅ сС ΡΠ²ΡŠΡ€Π·Π²Π° с Π½Π΅Π³ΠΎ ΠΏΡ€ΠΈ нСобходимост.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° изпълнСниС (Runtime Confinement Principle, RCP)

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡŠΡ‚ S-CP опрСдСля ΠΊΠ°ΠΊ трябва Π΄Π° бъдС ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° бинарният Ρ„Π°ΠΉΠ» Π½Π° ΠΎΠ±Ρ€Π°Π·Π°. Но ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ Π½Π΅ Π΅ просто "Ρ‡Π΅Ρ€Π½Π° кутия", която ΠΈΠΌΠ° само Π΅Π΄Π½Π° характСристика – Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° Ρ„Π°ΠΉΠ»Π°. По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ ΠΏΡ€ΠΈΠ΄ΠΎΠ±ΠΈΠ²Π° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ измСрСния: ΠΎΠ±Π΅ΠΌ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°Ρ‚Π° ΠΏΠ°ΠΌΠ΅Ρ‚, Π²Ρ€Π΅ΠΌΠ΅ Π½Π° процСсора ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ систСмни рСсурси.

5 ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° здравия Ρ€Π°Π·ΡƒΠΌ Π·Π° създаванС Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ прилоТСния
И Ρ‚ΡƒΠΊ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡŠΡ‚ RCP Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½, съгласно ΠΊΠΎΠΉΡ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ трябва Π΄Π° дСкомпрСсира изискванията си Π·Π° систСмни рСсурси ΠΈ Π΄Π° Π³ΠΈ ΠΏΡ€Π΅Π΄Π°Π΄Π΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. Имайки рСсурсни ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π½Π° всСки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ (ΠΊΠΎΠ»ΠΊΠΎ рСсурси ЦП, ΠΏΠ°ΠΌΠ΅Ρ‚, ΠΌΡ€Π΅ΠΆΠ° ΠΈ дискова систСма ΠΌΡƒ трябват), ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΌΠΎΠΆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΎ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅, Π΄Π° управлява ИВ-рСсурситС ΠΈ Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° SLA Π½ΠΈΠ²Π° Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅.

ОсвСн задоволяванС Π½Π° изискванията Π·Π° рСсурси Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π½Π΅ надвишава Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ‚Π΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ Ρ€Π°ΠΌΠΊΠΈ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай, ΠΏΡ€ΠΈ нСдостиг Π½Π° рСсурси, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° с ΠΏΠΎ-голяма вСроятност Ρ‰Π΅ Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈ Π² списъка Π½Π° прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚Π΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΈ.

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π΅, ΠΏΡ€Π΅Π΄ΠΈ всичко ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Π½Π°Ρ‡ΠΈΠ½Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°.
По-Π³ΠΎΡ€Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π°Ρ…ΠΌΠ΅ Ρ€Π΅Π΄ΠΈΡ†Π° ΠΎΠ±Ρ‰ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ мСтодологичния Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° качСствСни ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ прилоТСния Π·Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ срСди.

Π‘Π»Π΅Π΄Π²Π° Π΄Π° ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈΠΌ, Ρ‡Π΅ освСн Ρ‚Π΅Π·ΠΈ ΠΎΠ±Ρ‰ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ, Ρ‰Π΅ Π²ΠΈ трябват ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π½Π°ΠΏΡ€Π΅Π΄Π½Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. ОсвСн Ρ‚ΠΎΠ²Π°, ΠΈΠΌΠ°ΠΌΠ΅ няколко ΠΊΡ€Π°Ρ‚ΠΊΠΈ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ ΠΏΠΎ-ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ ΠΈ трябва Π΄Π° сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ (ΠΈΠ»ΠΈ Π½Π΅) Π² зависимост ΠΎΡ‚ ситуацията:

  • ΠžΠΏΠΈΡ‚Π°ΠΉΡ‚Π΅ сС Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅: ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°ΠΉΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π½Π΅ инсталирайтС Π½Π΅Π½ΡƒΠΆΠ½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ – ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-малък Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ сС ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π° ΠΈ ΠΊΠΎΠΏΠΈΡ€Π° Π² цСлСвия хост ΠΏΠΎ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°.
  • ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ сС към ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ User-ID: Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° sudo ΠΈΠ»ΠΈ спСциални userid Π·Π° стартиранС Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ.
  • ΠœΠ°Ρ€ΠΊΠΈΡ€Π°ΠΉΡ‚Π΅ Π²Π°ΠΆΠ½ΠΈΡ‚Π΅ ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅: Π½ΠΎΠΌΠ΅Ρ€Π°Ρ‚Π° Π½Π° ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изпълнСниС, Π½ΠΎ Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° Π³ΠΈ посочитС с ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° EXPOSE – Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Ρ…ΠΎΡ€Π° ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Ρ‰Π΅ бъдС ΠΏΠΎ-лСсно Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π²Π°ΡˆΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π·ΠΈ.
  • Π‘ΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΉΡ‚Π΅ постоянни Π΄Π°Π½Π½ΠΈ Π½Π° Ρ‚ΠΎΠΌΠΎΠ²Π΅: Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° останат слСд ΡƒΠ½ΠΈΡ‰ΠΎΠΆΠ°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ записвани Π½Π° Ρ‚ΠΎΠΌΠΎΠ²Π΅.
  • ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Ρ‚Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ Π½Π° ΠΎΠ±Ρ€Π°Π·Π°: Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‚Π°Π³ΠΎΠ²Π΅Ρ‚Π΅ ΠΈ Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈΡ‚Π΅ улСсняват ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅ – Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Ρ‰Π΅ Π²ΠΈ Π±ΡŠΠ΄Π°Ρ‚ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΈ.
  • Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€Π°ΠΉΡ‚Π΅ хоста ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅: Π·Π° някои ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ прилоТСния Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ синхронизиранСто Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° с хоста ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ, ΠΊΠ°Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΈΠ»ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π°.
  • Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ сподСлямС шаблони ΠΈ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π·Π° ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΈΠ·Π±Ρ€ΠΎΠ΅Π½ΠΈΡ‚Π΅ ΠΏΠΎ-Π³ΠΎΡ€Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ:
    www.slideshare.net/luebken/container-patterns
    docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices
    docs.projectatomic.io/container-best-practices
    docs.openshift.com/enterprise/3.0/creating_images/guidelines.html
    www.usenix.org/system/files/conference/hotcloud16/hotcloud16_burns.pdf
    leanpub.com/k8spatterns
    12factor.net

Π£Π΅Π±ΠΈΠ½Π°Ρ€ Π·Π° Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° OpenShift Container Platform – 4
11 юни в 11.00

Какво Ρ‰Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅:

  • Immutable Red Hat Enterprise Linux CoreOS
  • OpenShift service mesh
  • Operator framework
  • Knative framework

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster