Lecture 02 · E2C Continuum and Cloud Computing
المحاضرة 02 · E2C Continuum والحوسبة السحابية
Private cloud platforms: OpenStack and OpenNebula
منصات السحابة الخاصة: OpenStack وOpenNebula
P2 SHOULDP2 مهمTwo open-source platforms that turn servers you own into a cloud. One key idea, two origin stories, and a service map that is begging to be a matching question.
منصتان مفتوحتا المصدر تحوّلان الخوادم التي تملكها إلى سحابة. فكرة أساسية واحدة، وقصتا نشأة، وخريطة خدمات تصلح تماماً لسؤال توصيل.
What a private IaaS platform adds
ماذا تضيف منصة IaaS خاصة
Slide 57: there are many products for building your own self-hosted cloud, ranging from IaaS to SaaS, some open source and some licensed for fees. Slide 58: private IaaS platforms provide components to set up infrastructure services: compute, networking and storage. The two open-source examples are OpenStack and OpenNebula.
الشريحة 57: توجد منتجات كثيرة لبناء سحابتك المستضافة ذاتياً (self-hosted)، من IaaS إلى SaaS، بعضها مفتوح المصدر وبعضها مرخّص برسوم. الشريحة 58: منصات private IaaS توفّر مكوّنات لإعداد خدمات البنية التحتية: الحوسبة والشبكات والتخزين. والمثالان مفتوحا المصدر هما OpenStack وOpenNebula.
The key idea: a hypervisor alone gives you VMs, but an administrator still creates each one by hand. A private IaaS platform adds the NIST cloud characteristics on top: on-demand self-service (API and dashboard), resource pooling with multi-tenancy and quotas, and measured service. The hardware still belongs to one organization, so it is still CapEx.
الفكرة الأساسية: الـ hypervisor وحده يعطيك أجهزة افتراضية، لكن المسؤول ما زال ينشئ كل جهاز يدوياً. منصة private IaaS تضيف فوقه خصائص السحابة حسب NIST: الخدمة الذاتية عند الطلب (on-demand self-service) عبر API ولوحة تحكم، وتجميع الموارد (resource pooling) مع تعدد المستأجرين والحصص، والخدمة المُقاسة (measured service). العتاد ما زال ملكاً لمؤسسة واحدة، فهو ما زال CapEx.
| Questionالسؤال | Plain hypervisorhypervisor مجرد | Private IaaS platformمنصة IaaS خاصة | Public IaaSIaaS عامة |
|---|---|---|---|
| Who owns the hardwareمن يملك العتاد | Youأنت | Youأنت | The providerالمزوّد |
| Self-service API for usersAPI خدمة ذاتية للمستخدمين | No, an admin clicksلا، المسؤول ينقر بنفسه | Yesنعم | Yesنعم |
| Multi-tenancy with quotasتعدد المستأجرين مع حصص (quotas) | Noلا | Yes, per projectنعم، لكل مشروع | Yes, per accountنعم، لكل حساب |
| Billingالفوترة | Bought up frontشراء مقدّم | Bought up front, metered internallyشراء مقدّم، مع قياس داخلي | Pay per useالدفع حسب الاستخدام |
| Exampleمثال | KVM or ESXi aloneKVM أو ESXi وحده | OpenStack, OpenNebula | AWS EC2 |
يضع الجدول المنصة الخاصة بين الطرفين: العتاد ملكك كما في الـ hypervisor المجرد، لكنك تحصل على API للخدمة الذاتية وتعدد المستأجرين والقياس كما في السحابة العامة. الفرق الوحيد مع AWS EC2 هو من يملك العتاد ومن يدفع مقدماً.
OpenStack
Slide 59. OpenStack began in 2010 as a joint project of Rackspace (which contributed its storage code, Swift) and NASA (which contributed its compute controller, Nova). Since 2012 it is managed by the OpenStack Foundation, renamed the Open Infrastructure Foundation (OpenInfra) in 2020, part of the Linux Foundation since 2025. License Apache 2.0, a new release every 6 months. It can be deployed as IaaS in both public and private setups.
الشريحة 59. بدأ OpenStack عام 2010 مشروعاً مشتركاً بين Rackspace (التي قدّمت كود التخزين، أي Swift) وNASA (التي قدّمت متحكم الحوسبة، أي Nova). منذ 2012 تديره OpenStack Foundation، التي صار اسمها Open Infrastructure Foundation (OpenInfra) عام 2020، وأصبحت جزءاً من Linux Foundation منذ 2025. الترخيص Apache 2.0، وإصدار جديد كل 6 أشهر. ويمكن نشره كـ IaaS في بيئات عامة وخاصة.
The service map (matching question material)
خريطة الخدمات (مادة أسئلة التوصيل)
OpenStack is a set of independent services, each owning one kind of resource. Memorise them through their AWS twins.
OpenStack مجموعة من الخدمات المستقلة، كل خدمة تملك نوعاً واحداً من الموارد. احفظها عبر نظيراتها في AWS.
How the services talk. Between services: REST APIs, every call carrying a token issued and checked by Keystone. Inside one service: worker processes coordinate through an AMQP message broker (for example RabbitMQ). State: each service keeps it in a SQL database. Horizon has no special powers; it is just another REST client, like the CLI.
كيف تتواصل الخدمات. بين الخدمات: عبر REST APIs، وكل استدعاء يحمل token يصدره ويتحقق منه Keystone. داخل الخدمة الواحدة: تتنسّق العمليات عبر وسيط رسائل AMQP (مثل RabbitMQ). الحالة: كل خدمة تحفظها في قاعدة بيانات SQL. وHorizon ليس له صلاحيات خاصة، فهو مجرد عميل REST آخر مثل الـ CLI.
openstack server create --image ubuntu-24.04 --boot-from-volume 20 \
--flavor m1.small --network private demo-vm
1. Keystone authenticate, get a token + service catalog
2. Nova receives the create request (checks token)
3. Placement which hosts have free vCPU and RAM for m1.small?
4. Glance look up the ubuntu-24.04 image
5. Neutron allocate a port + IP on network "private"
6. Cinder create a 20 GB boot volume from the image
7. KVM host libvirt boots the guest
six services cooperate through their APIs for one VM
Without --boot-from-volume, Nova boots from an ephemeral disk and never calls Cinder. Swift is not in the boot path; the app inside the VM may use it later.
بدون --boot-from-volume يقلع Nova من قرص مؤقت (ephemeral) ولا يستدعي Cinder أبداً. وSwift ليس في مسار الإقلاع، وقد يستخدمه التطبيق داخل الجهاز لاحقاً.
OpenNebula
Slide 61. Started in 2005 as a research project by Ignacio M. Llorente and Rubén S. Montero at Complutense University of Madrid, goal: manage virtual machines on distributed infrastructure. First public release 2008 (so it is older than OpenStack). In 2010 the founders created C12G Labs, later renamed OpenNebula Systems, for professional enterprise services. License Apache 2.0.
الشريحة 61. بدأ عام 2005 مشروعاً بحثياً على يد Ignacio M. Llorente وRubén S. Montero في جامعة Complutense في مدريد، وهدفه إدارة الأجهزة الافتراضية على بنية موزعة. أول إصدار عام كان 2008 (فهو أقدم من OpenStack). وفي 2010 أسس مؤسسوه C12G Labs، التي صار اسمها لاحقاً OpenNebula Systems، لتقديم خدمات احترافية للشركات. الترخيص Apache 2.0.
Architecture: centralized. One front-end holds the whole control plane: the oned daemon, the scheduler and an XML-RPC API, with the Sunstone web GUI and the CLI on top. It manages clusters of hypervisor hosts through pluggable storage drivers (NFS, Ceph, local LVM) and network drivers (Linux bridge, 802.1Q VLAN, VXLAN, Open vSwitch). Hypervisors today: KVM for VMs and LXC for system containers.
البنية مركزية. واجهة أمامية (front-end) واحدة تحمل كل مستوى التحكم: الخدمة oned والمُجدوِل وواجهة XML-RPC API، وفوقها واجهة الويب Sunstone والـ CLI. وهي تدير عناقيد من مضيفات الـ hypervisor عبر مشغّلات تخزين (NFS، Ceph، local LVM) ومشغّلات شبكة (Linux bridge، 802.1Q VLAN، VXLAN، Open vSwitch). الـ hypervisors اليوم: KVM للأجهزة الافتراضية وLXC لحاويات النظام.
| Aspectالجانب | OpenStack | OpenNebula |
|---|---|---|
| Originالنشأة | Rackspace + NASARackspace + NASA | Complutense University of Madridجامعة كومبلوتنسي في مدريد (Complutense University of Madrid) |
| Started / first releaseالبداية / أول إصدار | 2010 / 2010 | 2005 / 2008 |
| Stewardالجهة الراعية | Foundation (2012), OpenInfra, Linux FoundationFoundation (2012)، ثم OpenInfra، ثم Linux Foundation | OpenNebula Systems (C12G Labs, 2010) |
| Architectureالبنية | Many REST services + AMQP + SQLخدمات REST كثيرة + AMQP + SQL | Single front-end + driversfront-end واحدة + drivers |
| Main APIالـ API الرئيسية | REST | XML-RPC |
| GUIالواجهة الرسومية | Horizon | Sunstone |
| Licenseالترخيص | Apache 2.0 | Apache 2.0 |
مقارنة سريعة: OpenStack من Rackspace وNASA عام 2010، خدمات REST كثيرة مع AMQP وSQL، وواجهته Horizon. أما OpenNebula فمن جامعة Complutense، بدأ 2005 وأول إصدار 2008، واجهة أمامية واحدة مع مشغّلات، وAPI من نوع XML-RPC، وواجهته Sunstone. كلاهما بترخيص Apache 2.0.
"Nova computes, Swift objects, Cinder blocks, Neutron networks, Keystone keys, Glance images, Horizon shows." And Placement is the odd one out with no AWS twin.
"Nova computes, Swift objects, Cinder blocks, Neutron networks, Keystone keys, Glance images, Horizon shows." أي: Nova للحوسبة، وSwift للكائنات، وCinder للكتل، وNeutron للشبكات، وKeystone للمفاتيح والهوية، وGlance للصور، وHorizon للعرض. وPlacement هو الاستثناء الذي لا نظير له في AWS.
Swift vs Cinder. Swift = object storage over HTTP (like S3), never mounted as a disk. Cinder = block volumes that attach to one VM like a hard drive (like EBS). "A database needs a persistent disk that survives VM deletion" is Cinder.
Swift مقابل Cinder. Swift = تخزين كائني (object) عبر HTTP (مثل S3)، ولا يُركَّب كقرص أبداً. Cinder = وحدات تخزين كتلية (block) تُربط بجهاز افتراضي واحد كقرص صلب (مثل EBS). عبارة "قاعدة بيانات تحتاج قرصاً دائماً يبقى بعد حذف الجهاز" جوابها Cinder.
Slides 60 and 62 say "Public (Cont.)" in their titles, but they show OpenStack's map and OpenNebula's stack, which belong to the private platforms section. Do not let the slide title convince you OpenNebula is a public cloud.
عنوانا الشريحتين 60 و62 يقولان "Public (Cont.)"، لكنهما تعرضان خريطة OpenStack ومكدّس OpenNebula، وهما ضمن قسم المنصات الخاصة. لا تدع عنوان الشريحة يقنعك بأن OpenNebula سحابة عامة.
Rackspace does not own OpenStack. Slide 59's heading "Rackspace OpenStack" reads that way, but Rackspace was only a co-founder; a neutral foundation stewards it.
Rackspace لا تملك OpenStack. عنوان الشريحة 59 "Rackspace OpenStack" يوحي بذلك، لكن Rackspace كانت شريكاً مؤسساً فقط، وتديره مؤسسة محايدة.
Check yourself
اختبر نفسك
A database VM needs a persistent disk that attaches like a hard drive and survives VM deletion. Which OpenStack service provides it?
جهاز افتراضي لقاعدة بيانات يحتاج قرصاً دائماً يُربط كقرص صلب ويبقى بعد حذف الجهاز. أي خدمة في OpenStack توفّره؟
B. Cinder provides persistent block volumes, the EBS equivalent. Swift is object storage over HTTP (S3), not a mountable disk. Glance stores boot images. Nova runs the instances themselves.
الجواب B. يوفّر Cinder وحدات تخزين كتلية دائمة، وهو مكافئ EBS. Swift تخزين كائني عبر HTTP (S3) وليس قرصاً يُركَّب. Glance يخزن صور الإقلاع. وNova يشغّل الأجهزة نفسها.
Match the OpenStack service to its AWS equivalent. Which pairing is WRONG?
طابق خدمة OpenStack بمكافئها في AWS. أي زوج خاطئ؟
D. Swift is object storage, so its twin is S3. EBS (block storage) is Cinder's twin. A, B and C are all correct pairings: compute, identity and networking.
الجواب D. Swift تخزين كائني، فنظيره S3. أما EBS (التخزين الكتلي) فنظيره Cinder. الأزواج A وB وC كلها صحيحة: الحوسبة والهوية والشبكات.
Which statement about the origins of the two platforms is correct?
أي عبارة عن نشأة المنصتين صحيحة؟
A. OpenNebula: research project 2005, first release 2008, C12G Labs (2010) became OpenNebula Systems. OpenStack: 2010, Rackspace (Swift) plus NASA (Nova), foundation from 2012. C mixes up the 2012 OpenStack Foundation with the Linux Foundation, which OpenInfra only joined in 2025. D falls for the "Public (Cont.)" slide title.
الجواب A. OpenNebula: مشروع بحثي 2005، وأول إصدار 2008، وC12G Labs (2010) صارت OpenNebula Systems. OpenStack: 2010، من Rackspace (Swift) وNASA (Nova)، ومؤسسة منذ 2012. الخيار C يخلط بين OpenStack Foundation عام 2012 وLinux Foundation التي لم تنضم إليها OpenInfra إلا في 2025. والخيار D يقع في فخ عنوان الشريحة "Public (Cont.)".
How do OpenStack services communicate with each other?
كيف تتواصل خدمات OpenStack فيما بينها؟
C. Services expose REST APIs and call each other only through them, with Keystone authenticating every call. An AMQP broker such as RabbitMQ coordinates processes inside a service, and each service keeps its own SQL state. A describes OpenNebula. D is wrong because Horizon is just another REST client.
الجواب C. كل خدمة تعرض REST API ولا تستدعي غيرها إلا عبرها، وKeystone يتحقق من كل استدعاء. ووسيط AMQP مثل RabbitMQ ينسّق العمليات داخل الخدمة، ولكل خدمة حالتها في SQL. الخيار A يصف OpenNebula. والخيار D خاطئ لأن Horizon مجرد عميل REST آخر.