أعلنت أمازون عن الإصدار النهائي لـ Bottlerocket ، وهو توزيع متخصص لتشغيل وإدارة الحاويات بكفاءة.
لا يعتبر Bottlerocket (بالمناسبة ، هذا ما يسمونه صواريخ البارود السوداء الصغيرة محلية الصنع) هو أول نظام تشغيل للحاويات ، ولكن من المحتمل أن ينتشر على نطاق واسع بفضل التكامل الافتراضي مع خدمات AWS. على الرغم من أن النظام يركز على سحابة Amazon ، إلا أن المصدر المفتوح يسمح لك ببنائه في أي مكان: محليًا على خادم ، على Raspberry Pi ، في أي سحابة منافسة ، وحتى في بيئة بدون حاويات.
إنه بديل جيد تمامًا لتوزيع CoreOS الذي دفنه Red Hat.
بشكل عام ، تمتلك Amazon Web Services بالفعل Amazon Linux ، والذي ظهر مؤخرًا في نسخته الثانية: إنه توزيع للأغراض العامة يمكن تشغيله في حاوية Docker أو مع Linux KVM hypervisors و Microsoft Hyper-V و VMware ESXi. لقد تم تحسينه للعمل على سحابة AWS ، ولكن مع Bottlerocket ، يتم تشجيع الجميع على الترقية إلى نظام جديد أكثر أمانًا وحداثة ويستخدم موارد أقل.
تعلن AWS عن Bottlerocket في مارس 2020... أدركت على الفور أن هذا لم يكن أول "Linux للحاويات" ، مستشهدة بـ CoreOS و Rancher OS و Project Atomic كمصادر للإلهام. كتب المطورون أن نظام التشغيل هو "نتيجة الدروس التي تعلمناها على المدى الطويل من خدمات الإنتاج على نطاق أمازون ، والخبرة التي اكتسبناها على مدى السنوات الست الماضية حول كيفية تشغيل الحاويات."
بساطتها الشديدة
تم تجريد Linux من كل ما هو غير ضروري لتشغيل الحاويات. هذا التصميم ، وفقًا للشركة ، يقلل من سطح الهجوم.
هذا يعني أنه يتم تثبيت عدد أقل من الحزم على النظام الأساسي ، مما يجعل من السهل الحفاظ على نظام التشغيل وتحديثه ، ويقلل أيضًا من احتمالية حدوث مشكلات بسبب التبعيات ، ويقلل من استخدام الموارد. في الأساس ، يعمل كل شيء هنا داخل حاويات منفصلة ، والنظام الأساسي مكشوف عمليًا.
قامت أمازون أيضًا بإزالة جميع القذائف والمترجمين الفوريين ، مما أدى إلى القضاء على مخاطر استخدام المستخدمين لها أو تصعيد الامتيازات عن طريق الخطأ. تفتقر الصورة الأساسية إلى غلاف أوامر وخادم SSH ولغات مفسرة مثل Python من أجل الحد الأدنى والأمان. تم نقل أدوات المسؤول إلى حاوية خدمة منفصلة ، والتي يتم تعطيلها افتراضيًا.
يتم توفير إدارة النظام بطريقتين: عبر API والتزامن.
بدلاً من مدير الحزم الذي يقوم بتحديث الأجزاء الفردية من البرامج ، يقوم Bottlerocket بتنزيل صورة كاملة لنظام الملفات وإعادة تحميلها فيه. إذا فشل التنزيل ، فسيتم إرجاعه تلقائيًا ، ويمكن أن يؤدي فشل حمل العمل إلى التراجع اليدوي (الأمر عبر واجهة برمجة التطبيقات).
يقوم TUF (The Update Framework) بتنزيل التحديثات المستندة إلى الصور لأقسام بديلة أو "غير مثبتة". يتم تخصيص قسمين من القرص للنظام ، أحدهما يحتوي على النظام النشط ، ويتم نسخ التحديث إلى الثاني. في هذه الحالة ، يتم تثبيت قسم الجذر في وضع القراءة فقط ،
/etcويتم تثبيت القسم بنظام الملفات في ذاكرة الوصول العشوائي tmpfsويستعيد حالته الأصلية بعد إعادة التشغيل. التعديل المباشر لملفات التكوين غير /etcمدعوم: لحفظ الإعدادات ، يجب عليك استخدام واجهة برمجة التطبيقات أو نقل الوظيفة إلى حاويات منفصلة.
مخطط تحديث API
سلامة
يتم إنشاء الحاويات بواسطة آليات Linux kernel القياسية - cgroups ومساحات الأسماء و seccomp ، ويتم استخدام SELinux في وضع "فرض" كنظام للتحكم في الوصول الإجباري ، أي لعزل إضافي .
بشكل افتراضي ، يتم تمكين النُهج لمشاركة الموارد بين الحاويات و kernel. الثنائيات محمية بعلامات لمنع المستخدمين أو البرامج من تنفيذها. وإذا كان أي شخص قد وصل إلى نظام الملفات ، فإن Bottlerocket تقدم أداة لفحص وتتبع أي تغييرات تم إجراؤها.
يتم تنفيذ وضع "التحقق من التمهيد" من خلال وظيفة device-mapper-verity ( dm-verity) ، والذي يتحقق من سلامة قسم الجذر في وقت التمهيد. يصف AWS dm-verity بأنه "ميزة في Linux kernel توفر فحصًا للتكامل لمنع البرامج الضارة من العمل في نظام التشغيل ، مثل الكتابة فوق برنامج النظام الأساسي".
يحتوي النظام أيضًا على eBPF (BPF الممتد ، الذي طوره Alexey Starovoitov ) ، والذي يسمح باستبدال وحدات kernel ببرامج BPF أكثر أمانًا لعمليات النظام منخفضة المستوى.
| نموذج التنفيذ | تعريف المستخدم | التحويل البرمجي | سلامة | وضع الفشل | الوصول إلى الموارد | |
| المستعمل | مهمة | نعم | أي | حقوق المستخدم | يقطع التنفيذ | استدعاء النظام ، خطأ |
| النواة | مهمة | لا | ثابتة | لا | جوهر الذعر | مباشرة |
| BPF | حدث | نعم | JIT ، CO-RE | التحقق ، JIT | رسالة خطأ | مساعدون محدودون |
باختلاف BPF عن الكود العادي على مستوى المستخدم أو مستوى النواة ،
ذكر مصدر AWS أن Bottlerocket "تتبنى نموذج تشغيل يزيد من تعزيز الأمان عن طريق منع امتيازات المسؤول من الاتصال بخوادم الإنتاج" و "مناسبة للأنظمة الموزعة الكبيرة حيث التحكم محدود. فوق كل مضيف فردي ".
بالنسبة لمسؤولي النظام ، يتم توفير حاوية المسؤول. لكن AWS لا تعتقد أن المسؤولين غالبًا ما يتعين عليهم العمل داخل Bottlerocket: "إن عملية تسجيل الدخول إلى مثيل Bottlerocket منفصل مخصصة للعمليات غير المتكررة: التصحيح المتقدم واستكشاف الأخطاء وإصلاحها" ، يكتب المطورون.
لغة الصدأ
غالبًا ما تتم كتابة أدوات نظام التشغيل أعلى النواة بلغة Rust. هذه اللغة بطبيعتها تقلل من فرص الوصول غير الآمن للذاكرة وتزيل أيضًا ظروف السباق بين الخيوط .
إذا تم تطبيق أعلام بناء الافتراضية
--enable-default-pieو --enable-default-sspإلى تمكين العشوائية من مساحة العنوان من الملفات القابلة للتنفيذ ( موقف مستقل عن تنفيذ ، PIE) وحماية ضد فيضان المكدس.
للحزم إلى 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) الخاص بها. تأتي أدوات التنظيم في حاوية منفصلة للتحكم في مأخذ الزجاج ، يتم تمكينها افتراضيًا وتتم إدارتها من خلال API و AWS SSM Agent.
سيكون من المثير للاهتمام معرفة ما إذا كانت شركة Bottlerocket ستنطلق في ضوء فشل بعض هذه المبادرات في الماضي. على سبيل المثال ، توقف برنامج PhotonOS من Vmware عن العمل ، واشترت RedHat CoreOS وأغلقت مشروعًا كان يعتبر رائدًا في هذا المجال.
يجعل دمج Bottlerocket في خدمات AWS هذا النظام فريدًا بطريقته الخاصة. ربما يكون هذا هو السبب الرئيسي الذي يجعل بعض المستخدمين يفضلون Bottlerocket على التوزيعات الأخرى مثل CoreOS أو Alpine. تم تصميم النظام في الأصل للعمل مع EKS و ECS ، ولكن مرة أخرى ، هذا ليس ضروريًا. أولاً ، يمكن بناء Bottlerocket بشكل مستقل واستخدامه ، على سبيل المثال ، كحل مستضاف. ثانيًا ، سيظل لدى مستخدمي EKS و ECS خيار نظام التشغيل.
يتم نشر شفرة مصدر Bottlerocket على GitHub بموجب ترخيص Apache 2.0. يستجيب المطورون بالفعل لتقارير الأخطاء وطلبات الميزات .
إعلان
تقدم VDSina VDS مع الدفع اليومي . من الممكن تثبيت أي نظام تشغيل ، بما في ذلك من صورتك الخاصة. كل خادم متصل بقناة إنترنت 500 ميغابت ومحمي من هجمات DDoS مجانًا!
