ΠΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°ΡΠ° ΠΠΌΠ°Π·ΠΎΠ½
Bottlerocket (ΠΏΠ°ΡΠ΅ΠΌ, ΠΈΠΌΠ΅ΡΠΎ Π΄Π°Π΄Π΅Π½ΠΎ Π½Π° ΠΌΠ°Π»ΠΈΡΠ΅ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈ ΡΠ°ΠΊΠ΅ΡΠΈ ΡΠΎ ΡΡΠ½ ΠΏΡΠ°Π²) Π½Π΅ Π΅ ΠΏΡΠ²ΠΈΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½ ΡΠΈΡΡΠ΅ΠΌ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ, Π½ΠΎ Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ Π΅ Π΄Π΅ΠΊΠ° ΡΠ΅ ΡΡΠ°Π½Π΅ ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΡΠΎ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ AWS. ΠΠ°ΠΊΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π΅ ΡΠΎΠΊΡΡΠΈΡΠ°Π½ Π½Π° ΠΎΠ±Π»Π°ΠΊΠΎΡ ΠΠΌΠ°Π·ΠΎΠ½, ΠΊΠΎΠ΄ΠΎΡ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ Π½Π°ΡΠ΅ΠΊΠ°Π΄Π΅: Π»ΠΎΠΊΠ°Π»Π½ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Π½Π° Raspberry Pi, Π²ΠΎ ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ΅Π½ ΠΎΠ±Π»Π°ΠΊ, ΠΏΠ° Π΄ΡΡΠΈ ΠΈ Π²ΠΎ ΡΡΠ΅Π΄ΠΈΠ½Π° Π±Π΅Π· ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ.
ΠΠ²Π° Π΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ Π΄ΠΎΡΡΠΎΡΠ½Π° Π·Π°ΠΌΠ΅Π½Π° Π·Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ°ΡΠ° CoreOS ΡΡΠΎ ΡΠ° Π·Π°ΠΊΠΎΠΏΠ° Red Hat.
ΠΡΡΡΠ½ΠΎΡΡ, ΠΎΠ΄Π΄Π΅Π»ΠΎΡ Π·Π° Π²Π΅Π±-ΡΡΠ»ΡΠ³ΠΈ Π½Π° Amazon Π²Π΅ΡΠ΅ Π³ΠΎ ΠΈΠΌΠ° Amazon Linux, ΠΊΠΎΡ Π½Π΅ΠΎΠ΄Π°ΠΌΠ½Π° ΠΈΠ·Π»Π΅Π·Π΅ Π²ΠΎ ΡΠ²ΠΎΡΠ°ΡΠ° Π²ΡΠΎΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ°: ΡΠΎΠ° Π΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ° Π·Π° ΠΎΠΏΡΡΠ° Π½Π°ΠΌΠ΅Π½Π° ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ Docker ΠΈΠ»ΠΈ ΡΠΎ Linux KVM, Microsoft Hyper-V ΠΈ VMware. ESXi Ρ
ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΈ. Π’ΠΎΡ Π±Π΅ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΠΎΠ±Π»Π°ΠΊΠΎΡ AWS, Π½ΠΎ ΡΠΎ ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Bottlerocket, ΡΠΈΡΠ΅ ΡΠ΅ ΠΎΡ
ΡΠ°Π±ΡΡΠ²Π°Π°Ρ Π΄Π° ΡΠ΅ Π½Π°Π΄ΠΎΠΏΠΎΠ»Π½Π°Ρ Π½Π° Π½ΠΎΠ² ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΡ Π΅ ΠΏΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½, ΠΌΠΎΠ΄Π΅ΡΠ΅Π½ ΠΈ ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΡΠ΅ΡΡΡΡΠΈ.
AWS Π³ΠΎ ΠΎΠ±ΡΠ°Π²ΠΈ Bottlerocket
ΠΠΊΡΡΡΠ΅ΠΌΠ΅Π½ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·Π°ΠΌ
ΠΠΈΠ½ΡΠΊΡ Π΅ Π»ΠΈΡΠ΅Π½ ΠΎΠ΄ ΡΓ¨ ΡΡΠΎ Π½Π΅ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π·Π° Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΡΠ²Π°Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅. ΠΠ²ΠΎΡ Π΄ΠΈΠ·Π°ΡΠ½, ΡΠΏΠΎΡΠ΅Π΄ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°ΡΠ°, ΡΠ° Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΠΏΠΎΠ²ΡΡΠΈΠ½Π°ΡΠ° Π½Π° Π½Π°ΠΏΠ°Π΄ΠΎΡ.
ΠΠ²Π° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΡΡΠΎ Π³ΠΎ ΠΎΠ»Π΅ΡΠ½ΡΠ²Π° ΠΎΠ΄ΡΠΆΡΠ²Π°ΡΠ΅ΡΠΎ ΠΈ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΠ‘, Π° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ° Π½Π°ΠΌΠ°Π»ΡΠ²Π° Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎΡΡΠ° Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ, Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΡΡΠΈ ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅. ΠΠΎ ΠΎΡΠ½ΠΎΠ²Π°, ΡΓ¨ ΠΎΠ²Π΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° Π²ΠΎ ΠΏΠΎΡΠ΅Π±Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ, Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ Π³ΠΎΠ».
ΠΠΌΠ°Π·ΠΎΠ½, ΠΈΡΡΠΎ ΡΠ°ΠΊΠ°, Π³ΠΈ ΠΎΡΡΡΡΠ°Π½ΠΈ ΡΠΈΡΠ΅ ΡΠΊΠΎΠ»ΠΊΠΈ ΠΈ ΠΏΡΠ΅Π²Π΅Π΄ΡΠ²Π°ΡΠΈ, Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°ΡΡΠΈ Π³ΠΎ ΡΠΈΠ·ΠΈΠΊΠΎΡ Π΄Π° Π±ΠΈΠ΄Π°Ρ ΠΈΡΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ ΡΠ»ΡΡΠ°ΡΠ½ΠΎ Π΄Π° Π³ΠΈ Π·Π³ΠΎΠ»Π΅ΠΌΠ°Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅. ΠΠ°ΡΠ°Π΄ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΠΌΠΎΡ ΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡΠ°, ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ»ΠΈΠΊΠ° Π½Π΅ Π²ΠΊΠ»ΡΡΡΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π° ΡΠΊΠΎΠ»ΠΊΠ°, SSH ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΈ ΡΠ°Π·ΠΈΡΠΈ ΠΊΠ°ΠΊΠΎ Python. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΠΊΠΈΡΠ΅ Π°Π»Π°ΡΠΊΠΈ ΡΠ΅ ΡΠΌΠ΅ΡΡΠ΅Π½ΠΈ Π²ΠΎ ΠΏΠΎΡΠ΅Π±Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ Π·Π° ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ Π΅ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½.
Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ ΡΠ΅ ΡΠΏΡΠ°Π²ΡΠ²Π° Π½Π° Π΄Π²Π° Π½Π°ΡΠΈΠ½Π°: ΠΏΡΠ΅ΠΊΡ API ΠΈ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡΠ°.
ΠΠ°ΠΌΠ΅ΡΡΠΎ ΠΌΠ΅Π½Π°ΡΠ΅Ρ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΊΠΎΡ Π°ΠΆΡΡΠΈΡΠ° ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈ ΠΏΠ°ΡΡΠΈΡΠ° ΡΠΎΡΡΠ²Π΅Ρ, Bottlerocket ΠΏΡΠ΅Π·Π΅ΠΌΠ° ΡΠ΅Π»ΠΎΡΠ½Π° ΡΠ»ΠΈΠΊΠ° ΠΎΠ΄ Π΄Π°ΡΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΡΠ΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ° Π²ΠΎ Π½Π΅Π°. ΠΠΊΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π΅ ΡΡΠΏΠ΅Π΅, ΡΠΎΡ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΡΠ΅ Π²ΡΠ°ΡΠ° Π½Π°Π·Π°Π΄, Π° Π½Π΅ΡΡΠΏΠ΅Ρ ΠΎΡ Π½Π° ΠΎΠ±Π΅ΠΌΠΎΡ Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° ΡΠ°ΡΠ½ΠΎ Π²ΡΠ°ΡΠ°ΡΠ΅ (Π½Π°ΡΠ΅Π΄Π±Π° ΠΏΡΠ΅ΠΊΡ API).
Π Π°ΠΌΠΊΠ° /etc
ΠΌΠΎΠ½ΡΠΈΡΠ°Π½ ΡΠΎ Π΄Π°ΡΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ Π²ΠΎ RAM ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° /etc
Π½Π΅ Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΎ: Π·Π° Π΄Π° Π³ΠΈ Π·Π°ΡΡΠ²Π°ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ API ΠΈΠ»ΠΈ Π΄Π° ΡΠ° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ° Π²ΠΎ ΠΏΠΎΡΠ΅Π±Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ.
Π¨Π΅ΠΌΠ° Π·Π° Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ Π½Π° API
Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ
ΠΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π½ΠΈ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΈ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° Linux - cgroups, namespaces ΠΈ seccomp ΠΈ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΊΠ°ΠΊΠΎ ΡΠΈΡΡΠ΅ΠΌ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΏΡΠΈΠ½ΡΠ΄Π΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ, ΠΎΠ΄Π½ΠΎΡΠ½ΠΎ Π·Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ°
Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ, ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈΡΠ΅ ΡΠ΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΈ Π·Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΠ²Π°ΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ ΠΏΠΎΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ ΠΈ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ. ΠΠΈΠ½Π°ΡΠΈΡΠ΅ ΡΠ΅ Π·Π°ΡΡΠΈΡΠ΅Π½ΠΈ ΡΠΎ Π·Π½Π°ΠΌΠ΅Π½ΡΠ° Π·Π° Π΄Π° ΡΠ΅ ΡΠΏΡΠ΅ΡΠ°Ρ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅ Π΄Π° Π³ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π°Ρ. Π Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΡ ΡΡΠΈΠ³Π½Π΅ Π΄ΠΎ Π΄Π°ΡΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ, Bottlerocket Π½ΡΠ΄ΠΈ Π°Π»Π°ΡΠΊΠ° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈ ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π½Π° Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ.
Π Π΅ΠΆΠΈΠΌΠΎΡ βΠΏΠΎΡΠ²ΡΠ΄Π΅Π½ΠΎ ΠΏΠΎΠ΄ΠΈΠ³Π°ΡΠ΅β ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΏΡΠ΅ΠΊΡ ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° ΡΡΠ΅Π΄-ΠΌΠ°ΠΏΠ΅Ρ-Π²Π΅ΡΠ½ΠΎΡΡ (
ΠΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΠΈΠΌΠ° ΠΈ ΡΠΈΠ»ΡΠ΅Ρ
ΠΠΎΠ΄Π΅Π» Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅
ΠΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΎ
ΠΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΠ°
Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ
Π Π΅ΠΆΠΈΠΌ Π½Π° Π½Π΅ΡΡΠΏΠ΅Ρ
ΠΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΡΠ΅ΡΡΡΡΠΈ
ΠΠΎΡΠΈΡΠ½ΠΈΠΊ
ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊ
ΠΠ°
Π±ΠΈΠ»ΠΎ
ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ ΠΏΡΠ°Π²Π°
ΠΏΡΠ΅ΠΊΠΈΠ½Π΅ΡΠ΅ Π³ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ
ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΏΠΎΠ²ΠΈΠΊ, Π΄Π΅ΡΠ΅ΠΊΡ
ΠΠ°Π΄ΡΠΎΡΠΎ
ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊ
ΠΠ΅ΠΌΠ°
ΡΡΠ°ΡΠΈΡΠ½ΠΈ
ΠΠ΅ΠΌΠ°
ΠΏΠ°Π½ΠΈΠΊΠ° Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ
ΠΏΡΡΠΌΠΎΠΉ
BPF
Π½Π°ΡΡΠ°Π½
ΠΠ°
JIT, CO-RE
Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ°, JIT
Π³ΡΠ΅ΡΠΊΠ° ΠΏΠΎΡΠ°ΠΊΠ°
ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΡΠΈ
ΠΠ°ΠΊΠΎ BPF ΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΡΠ²Π° ΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΡ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π½ΠΈΠΎΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ ΠΈΠ»ΠΈ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ
AWS ΡΠ΅ΡΠ΅ Π΄Π΅ΠΊΠ° Bottlerocket βΠ²ΡΠ°Π±ΠΎΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½ ΠΌΠΎΠ΄Π΅Π» ΠΊΠΎΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡΠ° ΡΠΎ ΡΠΏΡΠ΅ΡΡΠ²Π°ΡΠ΅ Π½Π° Π²ΡΡΠΊΠΈ ΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΈ ΡΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈβ ΠΈ Π΅ βΠΏΠΎΠ³ΠΎΠ΄Π΅Π½ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠ°Π΄Π΅ ΡΡΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π°ΡΠ° Π²ΡΠ· ΡΠ΅ΠΊΠΎΡ ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ΅Π½ Π΄ΠΎΠΌΠ°ΡΠΈΠ½ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π°β.
ΠΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ Π΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ Π·Π° ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ. ΠΠΎ, AWS Π½Π΅ ΠΌΠΈΡΠ»ΠΈ Π΄Π΅ΠΊΠ° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΡ ΡΠ΅ΡΡΠΎΠΏΠ°ΡΠΈ ΡΠ΅ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ Bottlerocket: βΠΠΊΡΠΎΡ Π½Π° Π½Π°ΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π²ΠΎ ΠΏΠΎΡΠ΅Π±Π½Π° ΠΈΠ½ΡΡΠ°Π½ΡΠ° Π½Π° Bottlerocket Π΅ Π½Π°ΠΌΠ΅Π½Π΅Ρ Π·Π° ΡΠ΅ΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ: Π½Π°ΠΏΡΠ΅Π΄Π½ΠΎ Π΄Π΅Π±Π°Π³ΠΈΡΠ°ΡΠ΅ ΠΈ ΡΠΌΠ΅Π½Π° Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈβ.
ΠΠ°Π·ΠΈΠΊ Π½Π° 'ΡΡΠ°
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΠ‘ Π½Π° Π²ΡΠ²ΠΎΡ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π΅ ΠΏΡΠ΅ΡΠ΅ΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π²ΠΎ Rust. ΠΠ²ΠΎΡ ΡΠ°Π·ΠΈΠΊ Π΅ ΠΏΠΎ ΡΠ²ΠΎΡΠ°ΡΠ° ΠΏΡΠΈΡΠΎΠ΄Π°
ΠΠ½Π°ΠΌΠΈΡΠ°ΡΠ° ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ²Π°Π°Ρ ΠΏΡΠΈ Π³ΡΠ°Π΄Π΅ΡΠ΅ --enable-default-pie
ΠΈ --enable-default-ssp
Π·Π° Π΄Π° ΡΠ΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ ΡΠ°Π½Π΄ΠΎΠΌΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° Π°Π΄ΡΠ΅ΡΠ½ΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ Π½Π° ΠΈΠ·Π²ΡΡΠ½ΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ (
ΠΠ° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ C/C++, Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π·Π½Π°ΠΌΠ΅Π½ΡΠ° -Wall
, -Werror=format-security
, -Wp,-D_FORTIFY_SOURCE=2
, -Wp,-D_GLIBCXX_ASSERTIONS
ΠΈ -fstack-clash-protection
.
ΠΠΎΠΊΡΠ°Ρ Rust ΠΈ C/C++, Π½Π΅ΠΊΠΎΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π²ΠΎ Go.
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΡΠΎ AWS ΡΡΠ»ΡΠ³ΠΈ
Π Π°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΎΠ΄ ΡΠ»ΠΈΡΠ½ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π΅ Π²ΠΎ ΡΠΎΠ° ΡΡΠΎ Amazon Π³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΡΠ΅ Bottlerocket Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π° AWS ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° ΡΠΎ Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΡΠ³ΠΈ AWS.
ΠΠ°ΡΠΏΠΎΠΏΡΠ»Π°ΡΠ½ΠΈΠΎΡ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π΅ Kubernetes, ΡΠ°ΠΊΠ° ΡΡΠΎ AWS Π²ΠΎΠ²Π΅Π΄Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΡΠΎ ΡΠΎΠΏΡΡΠ²Π΅Π½Π°ΡΠ° Enterprise Kubernetes Service (EKS). ΠΠ»Π°ΡΠΊΠΈΡΠ΅ Π·Π° ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡΠ° Π΄ΠΎΠ°ΡΠ°Π°Ρ Π²ΠΎ ΠΏΠΎΡΠ΅Π±Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ
ΠΠ΅ Π±ΠΈΠ΄Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ Π΄Π°Π»ΠΈ Bottlerocket ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅, ΡΠΎ ΠΎΠ³Π»Π΅Π΄ Π½Π° Π½Π΅ΡΡΠΏΠ΅Ρ
ΠΎΡ Π½Π° Π½Π΅ΠΊΠΎΠΈ ΡΠ»ΠΈΡΠ½ΠΈ ΠΈΠ½ΠΈΡΠΈΡΠ°ΡΠΈΠ²ΠΈ Π²ΠΎ ΠΌΠΈΠ½Π°ΡΠΎΡΠΎ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, PhotonOS ΠΎΠ΄ Vmware ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊΠΎ Π½Π΅ΠΏΠΎΠ΄ΠΈΠ³Π½Π°Ρ, Π° RedHat Π³ΠΎ ΠΊΡΠΏΠΈ CoreOS ΠΈ
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° Bottlerocket Π²ΠΎ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ AWS Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΎΠ²ΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ Π½Π° ΡΠ²ΠΎΡ Π½Π°ΡΠΈΠ½. ΠΠ²Π° Π΅ ΠΌΠΎΠΆΠ΅Π±ΠΈ Π³Π»Π°Π²Π½Π°ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° Π·ΠΎΡΡΠΎ Π½Π΅ΠΊΠΎΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ ΠΏΡΠ΅ΡΠΏΠΎΡΠΈΡΠ°Π°Ρ Bottlerocket ΠΏΡΠ΅Π΄ Π΄ΡΡΠ³ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ CoreOS ΠΈΠ»ΠΈ Alpine. Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ ΠΏΡΠ²ΠΈΡΠ½ΠΎ Π΅ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠΎ EKS ΠΈ ECS, Π½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΠΎΠ° Π½Π΅ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ. ΠΡΠ²ΠΎ, Bottlerocket ΠΌΠΎΠΆΠ΅
ΠΠ·Π²ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π½Π° Bottlerocket Π΅ ΠΎΠ±ΡΠ°Π²Π΅Π½ Π½Π° GitHub ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° Apache 2.0. ΠΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ Π²Π΅ΡΠ΅ ΠΈΠΌΠ°Π°Ρ
ΠΠ° ΠΏΡΠ°Π²Π°ΡΠ° Π½Π° ΡΠ΅ΠΊΠ»Π°ΠΌΠΈΡΠ°ΡΠ΅
ΠΠΠ‘ΠΈΠ½Π° ΠΏΠΎΠ½ΡΠ΄ΠΈ
ΠΠ·Π²ΠΎΡ: www.habr.com