
بيئة تنفيذ معزولة
:Source: https://github.com/F-Secure/see :Documentation: https://see.readthedocs.io :Download: https://pypi.python.org/pypi/python-see
|travis badge| |docs badge|
.. |travis badge| image:: https://travis-ci.org/F-Secure/see.svg?branch=master :target: https://travis-ci.org/F-Secure/see :alt: Build Status .. |docs badge| image:: https://readthedocs.org/projects/see/badge/?version=latest :target: http://see.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status
بيئة التنفيذ المعزولة (SEE) هي إطار عمل لبناء أتمتة الاختبار في بيئات آمنة.
الصناديق الرملية (Sandboxes) المقدمة عبر libvirt قابلة للتخصيص مما يسمح بدرجة عالية من المرونة. يمكن استخدام أنواع مختلفة من المشرفات الافتراضية (Qemu, VirtualBox, LXC) لتشغيل بيئات الاختبار.
يمكن إضافة إضافات (Plugins) إلى بيئة الاختبار والتي توفر آلية تزامن للأحداث (Event mechanism) لتفاعلها. يمكن للمستخدمين تمكين وتكوين الإضافات من خلال ملف تكوين بصيغة JSON.
SEE مخصص لأتمتة الاختبارات ضد البرامج غير المعروفة أو الخطيرة أو غير المستقرة، وتتبع نشاطها أثناء التنفيذ.
SEE مناسبة تمامًا لبناء منصات اختبار معيارية أو إدارة كود قابل للتنفيذ بدرجة جيدة من العزل.
تسمح SEE بكتابة اختبارات في صندوق رملي (sandboxed) سواء للنمذجة السريعة أو للتشغيل في بيئة إنتاج.
SEE متاح كحزمة Python على Python Package Index (PyPI).
تقع على عاتق المستخدم مسؤولية تثبيت وإعداد المشرفات الافتراضية (hypervisors) التي ينوي التحكم بها باستخدام SEE، بالإضافة إلى التبعيات والنظم الفرعية المحتملة التي تستخدمها موفري الصور المحددين.
يرجى الرجوع إلى الوثائق لمعرفة كيفية إعداد وتكوين كل مشرف افتراضي.
SEE مبني فوق واجهات برمجة تطبيقات libvirt، لذلك يمكن التحكم بجميع المشرفات الافتراضية المدعومة من libvirt عبر SEE.
يأتي SEE مع دعم أساسي لـ QEMU و VirtualBox و LXC، ولإضافة المزيد من المشرفات الافتراضية أو تخصيص الأساسية، راجع الكود الموجود في see/context.
يستخدم SEE نظامًا من الموفّرات القابلة للتوصيل (pluggable providers) لاسترداد صور الأقراص من مصادر عشوائية وجعلها متاحة لـ SEE.
يحتوي SEE على موفّرين مدمجين لـ LibVirt storage pools <https://libvirt.org/storage.html>_ و OpenStack Glance <https://docs.openstack.org/developer/glance/>_ بالإضافة إلى تطبيق موفّر وهمي (dummy provider). لإضافة المزيد من الموفّرين، راجع الكود الموجود في see/image_providers.
SEE هو موفّر صناديق رملية يعتمد على الأحداث (event-driven) والإضافات (plugin-based) للتحكم في تدفق الاختبار بشكل متزامن وغير متزامن.
::
+----------+
| |
+-------| SEE Hook |
| | |
| +----------+
+---------+-------+ +---------+ | +----------+
| | | | | | |
User -------> | SEE Environment |-------| Sandbox |-------+-------| SEE Hook |
| | | | | | |
+-----------------+ +---------+ | +----------+
| +----------+
| | |
+-------| SEE Hook |
| |
+----------+
بيئة SEE (SEE Environment) تحتوي على جميع الموارد المطلوبة وتعمل كمعالج (handler) للمستخدم. يتحكم في الصندوق الرملي (Sandbox) بواسطة الخطافات (Hooks) التي تعمل كإضافات، وتتواصل الخطافات وتنسق فيما بينها عبر الأحداث (Events).
لكل خطاف (Hook) وصول مباشر إلى الصندوق الرملي الذي يعرض واجهة برمجة تطبيقات بسيطة للتحكم به، بالإضافة إلى واجهات برمجة تطبيقات libvirt للتحكم الدقيق.
صفحة مشروع Libvirt.
عرض تقديمي في PyCon Finland 2015.