Amazon Company
Ang Bottlerocket (nga pala, ang pangalang ibinigay sa maliliit na homemade black powder rocket) ay hindi ang unang OS para sa mga lalagyan, ngunit malamang na ito ay magiging laganap salamat sa default na pagsasama sa mga serbisyo ng AWS. Bagama't nakatutok ang system sa cloud ng Amazon, pinapayagan ito ng open source code na mabuo kahit saan: lokal sa isang server, sa isang Raspberry Pi, sa anumang nakikipagkumpitensyang ulap, at maging sa isang walang lalagyan na kapaligiran.
Ito ay isang ganap na karapat-dapat na kapalit para sa pamamahagi ng CoreOS na inilibing ng Red Hat.
Sa katunayan, ang Amazon Web Services division ay mayroon nang Amazon Linux, na kamakailan ay lumabas sa pangalawang bersyon nito: ito ay isang pangkalahatang layunin na pamamahagi na maaaring patakbuhin sa isang Docker container o sa Linux KVM, Microsoft Hyper-V, at VMware ESXi hypervisors. Ito ay na-optimize upang tumakbo sa AWS cloud, ngunit sa paglabas ng Bottlerocket, hinihikayat ang lahat na mag-upgrade sa isang bagong system na mas secure, moderno, at gumagamit ng mas kaunting mga mapagkukunan.
Inihayag ng AWS ang Bottlerocket
Sobrang minimalism
Inalis sa Linux ang lahat ng hindi kailangan para magpatakbo ng mga lalagyan. Ang disenyo na ito, ayon sa kumpanya, ay binabawasan ang ibabaw ng pag-atake.
Nangangahulugan ito na mas kaunting mga pakete ang naka-install sa base system, na nagpapadali sa pagpapanatili at pag-update ng OS, at binabawasan din ang posibilidad ng mga problema dahil sa mga dependency, na binabawasan ang paggamit ng mapagkukunan. Sa pangkalahatan, lahat ng bagay dito ay gumagana sa loob ng magkahiwalay na mga lalagyan, at ang pinagbabatayan na sistema ay halos walang laman.
Inalis din ng Amazon ang lahat ng mga shell at interpreter, na inaalis ang panganib na magamit ang mga ito o ang mga user ay hindi sinasadyang tumataas ang mga pribilehiyo. Para sa kapakanan ng minimalism at seguridad, ang batayang imahe ay hindi kasama ang isang command shell, isang SSH server, o binibigyang kahulugan na mga wika tulad ng Python. Ang mga tool ng administrator ay inilalagay sa isang hiwalay na lalagyan ng serbisyo, na hindi pinagana bilang default.
Ang system ay pinamamahalaan sa dalawang paraan: sa pamamagitan ng API at orkestrasyon.
Sa halip na isang manager ng package na nag-a-update ng mga indibidwal na piraso ng software, ang Bottlerocket ay nagda-download ng kumpletong imahe ng filesystem at nagre-reboot dito. Kung nabigo ang isang load, awtomatiko itong bumabalik, at ang pagkabigo sa workload ay maaaring mag-trigger ng manu-manong rollback (utos sa pamamagitan ng API).
Balangkas /etc
naka-mount kasama ang file system sa RAM /etc
hindi suportado: upang i-save ang mga setting dapat mong gamitin ang API o ilipat ang functionality sa magkahiwalay na mga lalagyan.
Scheme ng pag-update ng API
katiwasayan
Ang mga lalagyan ay nilikha sa pamamagitan ng mga karaniwang mekanismo ng Linux kernel - cgroup, namespaces at seccomp, at ginagamit bilang isang forced access control system, iyon ay, para sa karagdagang paghihiwalay
Bilang default, pinagana ang mga patakaran upang magbahagi ng mga mapagkukunan sa pagitan ng mga lalagyan at kernel. Ang mga binary ay pinoprotektahan ng mga flag upang pigilan ang mga user o program na i-execute ang mga ito. At kung ang isa ay makarating sa file system, ang Bottlerocket ay nag-aalok ng isang tool upang suriin at subaybayan ang anumang mga pagbabagong ginawa.
Ang mode na "na-verify na boot" ay ipinatupad sa pamamagitan ng function ng device-mapper-verity (
Mayroon ding isang filter sa system
Modelo ng pagpapatupad
Tinukoy ng user
Kompilasyon
katiwasayan
Failure mode
Access sa mga mapagkukunan
Gumagamit
ang gawain
oo
anuman
karapatan ng gumagamit
makagambala sa pagpapatupad
system call, kasalanan
Ang pangunahing
ang gawain
hindi
static
hindi
kernel panic
tuwid
BPF
pangyayari
oo
JIT, CO-RE
pagpapatunay, JIT
maling mensahe
limitadong mga katulong
Paano naiiba ang BPF sa regular na user o kernel level code
Sinabi ng AWS na ang Bottlerocket ay "gumagamit ng isang operating model na higit na nagpapahusay ng seguridad sa pamamagitan ng pagpigil sa mga koneksyon sa mga production server na may mga pribilehiyong pang-administratibo" at "angkop para sa malalaking distributed system kung saan ang kontrol sa bawat indibidwal na host ay limitado."
Ang isang lalagyan ng administrator ay ibinigay para sa mga administrator ng system. Ngunit hindi iniisip ng AWS na ang isang admin ay madalas na kailangang magtrabaho sa loob ng Bottlerocket: "Ang pagkilos ng pag-log in sa isang hiwalay na halimbawa ng Bottlerocket ay inilaan para sa mga madalang na operasyon: advanced na pag-debug at pag-troubleshoot,"
kalawang na wika
Ang instrumento ng OS sa tuktok ng kernel ay kadalasang nakasulat sa Rust. Ang wikang ito ay ayon sa kalikasan nito
Ang mga flag ay inilalapat bilang default kapag gumagawa --enable-default-pie
ΠΈ --enable-default-ssp
upang paganahin ang randomization ng address space ng mga executable file (
Para sa mga C/C++ na pakete, may kasamang mga karagdagang flag -Wall
, -Werror=format-security
, -Wp,-D_FORTIFY_SOURCE=2
, -Wp,-D_GLIBCXX_ASSERTIONS
ΠΈ -fstack-clash-protection
.
Bukod sa Rust at C/C++, ang ilang mga pakete ay nakasulat sa Go.
Pagsasama sa mga serbisyo ng AWS
Ang pagkakaiba sa mga katulad na operating system ng container ay na-optimize ng Amazon ang Bottlerocket upang tumakbo sa AWS at isama sa iba pang mga serbisyo ng AWS.
Ang pinakasikat na container orchestrator ay ang Kubernetes, kaya ipinakilala ng AWS ang pagsasama sa sarili nitong Enterprise Kubernetes Service (EKS). Ang mga tool sa orkestra ay nasa isang hiwalay na lalagyan ng kontrol
Magiging kawili-wiling makita kung ang Bottlerocket ay aalis, dahil sa pagkabigo ng ilang katulad na mga hakbangin sa nakaraan. Halimbawa, ang PhotonOS mula sa Vmware ay naging hindi na-claim, at binili ng RedHat ang CoreOS at
Ang pagsasama ng Bottlerocket sa mga serbisyo ng AWS ay ginagawang kakaiba ang system na ito sa sarili nitong paraan. Ito marahil ang pangunahing dahilan kung bakit maaaring mas gusto ng ilang user ang Bottlerocket kaysa sa iba pang distro gaya ng CoreOS o Alpine. Ang sistema ay unang idinisenyo upang gumana sa EKS at ECS, ngunit inuulit namin na hindi ito kinakailangan. Una, maaari ang Bottlerocket
Ang Bottlerocket source code ay na-publish sa GitHub sa ilalim ng Apache 2.0 na lisensya. Ang mga developer ay mayroon na
Sa Mga Karapatan ng Pag-advertise
VDSina Nag-aalok ang
Pinagmulan: www.habr.com