ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Amazon
Bottlerocket (ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΠΈΠΌΠ΅ΡΠΎ, Π΄Π°Π΄Π΅Π½ΠΎ Π½Π° ΠΌΠ°Π»ΠΊΠΈ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈ ΡΠ°ΠΊΠ΅ΡΠΈ Ρ ΡΠ΅ΡΠ΅Π½ Π±Π°ΡΡΡ) Π½Π΅ Π΅ ΠΏΡΡΠ²Π°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Π½ΠΎ Π΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΡ Π΄Π° ΡΡΠ°Π½Π΅ ΡΠΈΡΠΎΠΊΠΎ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Ρ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π½Π° AWS. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π΅ ΡΠΎΠΊΡΡΠΈΡΠ°Π½Π° Π²ΡΡΡ Ρ ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° Amazon, ΠΊΠΎΠ΄ΡΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° Π½Π°Π²ΡΡΠΊΡΠ΄Π΅: Π»ΠΎΠΊΠ°Π»Π½ΠΎ Π½Π° ΡΡΡΠ²ΡΡ, Π½Π° Raspberry Pi, Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ΅Π½ ΠΎΠ±Π»Π°ΠΊ ΠΈ Π΄ΠΎΡΠΈ Π² ΡΡΠ΅Π΄Π° Π±Π΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π΄ΠΎΡΡΠΎΠ΅Π½ Π·Π°ΠΌΠ΅ΡΡΠΈΡΠ΅Π» Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° Π½Π° CoreOS, ΠΊΠΎΡΡΠΎ Red Hat ΠΏΠΎΠ³ΡΠ΅Π±Π°.
ΠΡΡΡΠ½ΠΎΡΡ ΠΎΡΠ΄Π΅Π»ΡΡ Π·Π° ΡΠ΅Π± ΡΡΠ»ΡΠ³ΠΈ Π½Π° Amazon Π²Π΅ΡΠ΅ ΠΈΠΌΠ° Amazon Linux, ΠΊΠΎΠΉΡΠΎ Π½Π°ΡΠΊΠΎΡΠΎ ΠΈΠ·Π»Π΅Π·Π΅ Π²ΡΠ² Π²ΡΠΎΡΠ°ΡΠ° ΡΠΈ Π²Π΅ΡΡΠΈΡ: ΡΠΎΠ²Π° Π΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ Ρ ΠΎΠ±ΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈΠ»ΠΈ Ρ Linux KVM, Microsoft Hyper-V ΠΈ VMware ESXi Ρ
ΠΈΠΏΠ΅ΡΠ²Π°ΠΉΠ·ΠΎΡΠΈ. ΠΠ΅ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° AWS, Π½ΠΎ Ρ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° Bottlerocket Π²ΡΠ΅ΠΊΠΈ ΡΠ΅ Π½Π°ΡΡΡΡΠ°Π²Π° Π΄Π° Π½Π°Π΄ΡΡΡΠΎΠΈ Π΄ΠΎ Π½ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ Π΅ ΠΏΠΎ-ΡΠΈΠ³ΡΡΠ½Π°, ΠΌΠΎΠ΄Π΅ΡΠ½Π° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ΅ΡΡΡΡΠΈ.
AWS ΠΎΠ±ΡΠ²ΠΈ Bottlerocket
ΠΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π΅Π½ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΡΠΌ
Linux Π΅ Π»ΠΈΡΠ΅Π½ ΠΎΡ Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. Π’ΠΎΠ·ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½, ΡΠΏΠΎΡΠ΅Π΄ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ°, Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡΡΠ° Π·Π° Π°ΡΠ°ΠΊΠ°.
Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠ° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ Π½Π° Π±Π°Π·ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π½Π°ΠΌΠ°Π»ΡΠ²Π° Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΠ° ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΠΉΠΊΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΡΡΠΈ. ΠΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π²ΡΠΈΡΠΊΠΎ ΡΡΠΊ ΡΠ°Π±ΠΎΡΠΈ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π³ΠΎΠ»Π°.
Amazon ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΈ, Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°ΠΉΠΊΠΈ ΡΠΈΡΠΊΠ° ΡΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π΄Π° Π΅ΡΠΊΠ°Π»ΠΈΡΠ°Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅. Π ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΠΌΠ° ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π±Π°Π·ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π²ΠΊΠ»ΡΡΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°, 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. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π²Π΅ΡΠ΅ ΡΠ°
ΠΡΠ½ΠΎΡΠ½ΠΎ ΠΏΡΠ°Π²Π°ΡΠ° Π½Π° ΡΠ΅ΠΊΠ»Π°ΠΌΠ°ΡΠ°
VDSina ΠΎΡΠ΅ΡΡΠΈ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com