divmagic Make design
SimpleNowLiveFunMatterSimple
ما بعد أوبونتو: أدوات المطورين التي بنتها كانونيكال لتعزيز سير عملك بشكل فائق
Blogsقانونيما بعد أوبونتو: أدوات المطورين التي بنتها كانونيكال لتعزيز سير عملك بشكل فائق
قانوني

ما بعد أوبونتو: أدوات المطورين التي بنتها كانونيكال لتعزيز سير عملك بشكل فائق

ما وراء أوبونتو: أدوات المطورين التي بنتها كانونيكال والتي ستعزز سير عملك

عندما تفكر في كانونيكال، أول ما يتبادر إلى ذهنك هو أوبونتو. إنه توزيعة لينكس الأكثر شعبية بين المطورين، والخيار الافتراضي للحوسبة السحابية، وواجهة أنظمة التشغيل مفتوحة المصدر. لكن رؤية كانونيكال تمتد إلى أبعد من نظام تشغيل سطح المكتب والخادم. على مر السنين، قامت الشركة بهدوء بتجميع مجموعة من أدوات المطورين التي تحل نقاط الألم الحقيقية في إدارة البيئة، وتعبئة التطبيقات، وتنسيق الخدمات، وتوفير البنية التحتية المادية.

لمطوري الواجهات الأمامية، ومهندسي الحزمة الكاملة، وممارسي DevOps، يمكن لهذه الأدوات أن تقلص الوقت بين "لدي فكرة" و"إنها تعمل في بيئة شبيهة بالإنتاج". في هذا الغوص العميق، سنستكشف Multipass وLXD وJuju وSnapcraft وMAAS، وندرس كيف تتكامل معًا، وننظر في الطرق الملموسة التي تسرّع بها سير عملك اليومي.

نظام كانونيكال البيئي: أكثر من مجرد توزيعة لينكس

تم تصميم سلسلة أدوات المطورين من كانونيكال حول بعض المبادئ الأساسية: السرعة، وقابلية التكرار، وأقل قدر من العبء. بدلاً من إجبارك على تكوين الأجهزة الافتراضية يدويًا أو الصراع مع شبكات Docker، تقوم هذه الأدوات بتجريد الاحتكاك وتتيح لك التركيز على كتابة الكود. كما أنها تتبنى مفهوم "البنية التحتية ككود" والتكوين التصريحي، وهو ما يتماشى تمامًا مع خطوط أنابيب CI/CD الحديثة.

يغطي النظام البيئي كل طبقة من الحزمة:

  • إنشاء البيئة– Multipass, LXD -تعبئة التطبيقات– Snapcraft, Charmcraft -تنسيق الخدمات– Juju, Charmed Operators -توفير البنية التحتية المادية– MAAS

غالبًا ما يتفاعل مطورو الواجهات الأمامية فقط مع Node.js ومتصفح وربما واجهة خلفية بسيطة. لكن في اللحظة التي تحتاج فيها إلى الاختبار عبر أنظمة تشغيل متعددة، أو التكامل مع قاعدة بيانات حقيقية، أو محاكاة بنية الخدمات المصغرة، تصبح أدوات كانونيكال لا غنى عنها.

تشكل سلسلة أدوات كانونيكال خط أنابيب كاملًا من التطوير المحلي إلى النشر في الإنتاج. استخدامها معًا يخلق تجربة سلسة يحلم بها معظم المطورين فقط عندما يتنقلون بين VirtualBox ونصوص npm وإعدادات SSH اليدوية.

Multipass: أجهزة افتراضية فورية لأوبونتو في متناول يدك

Multipass هو أفضل صديق للمطور عندما تحتاج إلى بيئة أوبونتو نظيفة في ثوانٍ. يوفر واجهة سطر أوامر لتشغيل وإدارة الأجهزة الافتراضية عند الطلب. يأتي كل مثيل مع دعم cloud-init، بحيث يمكنك تمرير نصوص أو ملفات تكوين مخصصة أثناء التشغيل.

computer, keyboard, letters, typing, code, laptop, electronics, gray computer, gray laptop, gray letter, gray code, gray coding, gray keyboard لماذا يهم هذا في عمل الواجهات الأمامية:- اختبار تطبيق الويب التقدمي الخاص بك على سطح مكتب لينكس جديد دون الحاجة إلى إقلاع مزدوج.

  • تشغيل شبكة Selenium محلية على أوبونتو لاختبار عبر المتصفحات.
  • استنساخ بيئة عميل لإعادة إنتاج خطأ بدقة.
  • تشغيل خادم قاعدة بيانات (PostgreSQL, MongoDB) بسرعة على جهاز افتراضي معزول.

إليك سير عمل نموذجي باستخدام Multipass:

# Launch a new VM named "dev-env" with 4GB RAM and 2 CPUs
multipass launch --name dev-env --memory 4G --cpus 2

# Run a command inside the VM
multipass exec dev-env -- sudo apt update && sudo apt install -y nginx

# Mount your local project folder into the VM
multipass mount /home/user/myproject dev-env:/home/ubuntu/project

بعد بضع ثوانٍ، يكون لديك خادم أوبونتو بجودة إنتاجية يعمل محليًا، معزولًا تمامًا عن نظام التشغيل المضيف. لا واجهة VirtualBox، ولا مدير Hyper-V، فقط CLI واضح.

LXD: حاويات نظام لبيئات تطوير فائقة السرعة

إذا كان Multipass هو الخيار الأمثل للأجهزة الافتراضية الكاملة، فإن LXD هو بطل حاويات النظام. على عكس حاويات تطبيقات Docker، يمنحك LXD بيئة نظام تشغيل كاملة (بما في ذلك أنظمة التشغيل، والشبكات، والتخزين الدائم) ولكن بأداء قريب من الأصلي وبدء فوري. فكر فيه كجهاز افتراضي يشارك نواة المضيف، دون عبء الهايبرفايزر.

يتفوق LXD في السيناريوهات التي تحتاج فيها إلى تشغيل توزيعات لينكس متعددة في وقت واحد، أو ترغب في تكرار طوبولوجيا شبكة معقدة على حاسوبك المحمول. لمطوري الواجهات الأمامية الذين يعملون على micro-frontends أو مشاريع كاملة الحزمة مع خدمات متعددة، يوفر LXD صندوق رمل مثالي. حالة استخدام عملية مع LXD:```bash lxc launch ubuntu:22.04 backend-container lxc exec backend-container -- apt install -y nodejs npm lxc file push ./my-api backend-container/root/

lxc launch ubuntu:22.04 frontend-container lxc exec frontend-container -- apt install -y nginx


يمكنك ربط الحاويات بشبكة جسر خاصة ومحاكاة بنية إنتاج حقيقية. نظرًا لأن كل حاوية تتصرف كجهاز حقيقي، تحصل على ردود فعل دقيقة حول قواعد جدار الحماية، DNS، واكتشاف الخدمات، وهي أشياء غالبًا ما يقوم Docker Compose بتجريدها.

![Canonical Developer Tool Adoption Among Surveyed Developers](https://public-cdn-a.dvmgc.com/images/charts/chart-1-19f165.png)

توفر حاويات نظام LXD عزل الأجهزة الافتراضية بسرعة الحاويات. إنها مثالية لاختبار التكامل، ومشغلات CI، وبناء بيئات مرحلية قابلة للتخلص تطابق الإنتاج تمامًا.

## Juju: تنسيق الخدمات بطريقة منطقية

Juju هو السلاح السري لكانونيكال لنمذجة ونشر التطبيقات المعقدة. بدلاً من كتابة مئات الأسطر من YAML أو Terraform، تصف تطبيقك باستخدام "charms"، وهي حزم صغيرة قابلة لإعادة الاستخدام تغلف المعرفة بالنشر والتشغيل. هل تريد نشر مجموعة Kubernetes كاملة مع مراقبة Prometheus وقاعدة بيانات PostgreSQL؟ يمكن لـ Juju فعل ذلك ببضع أوامر.

![coding, computer, hacker, hacking, html, programmer, programming, script, scripting, source code, coding, coding, coding, coding, computer, computer, hacker, hacker, hacker, hacker, hacker, hacking, hacking, programming, programming](https://public-cdn-a.dvmgc.com/images/px/1841550.jpg)

يعمل Juju فوق أي سحابة (AWS, Azure, GCP) وكذلك على حاويات LXD المحلية، مما يجعله محرك نشر عالمي. بالنسبة للمطورين، هذا يعني أنه يمكنك تعريف مجموعتك الكاملة مرة واحدة وتشغيلها بشكل متطابق على حاسوبك المحمول وفي الإنتاج.
**نموذج حزمة Juju لمجموعة ويب نموذجية:**```yaml
series: focal
applications:
  web:
    charm: nginx
    num_units: 2
  api:
    charm: nodejs
    options:
      port: 3000
  db:
    charm: postgresql
    num_units: 1
relations:
  - ["web", "api"]
  - ["api", "db"]

نشر هذه الحزمة:

juju deploy ./bundle.yaml

في الخلفية، يقوم Juju بتوفير الأجهزة أو الحاويات، وتثبيت التبعيات، وتكوين العلاقات، وإعداد المراقبة، كل ذلك بدون نصوص برمجية مخصصة. يتضمن نظام charms البيئي على Charmhub.io أكثر من 500 مشغل لقواعد البيانات، وقوائم الرسائل، والتسجيل، والمزيد.

Snapcraft: احزم مرة واحدة، واعمل في أي مكان

Snaps هي حزم لينكس عالمية تجمع كل التبعيات وتعمل في بيئة معزولة (sandboxed). Snapcraft هي الأداة لبنائها. لمطوري الواجهات الأمامية الذين يوزعون أدوات سطح المكتب (مثل تطبيق Electron) أو أدوات CLI، تحل snaps مشكلة "يعمل على جهازي" بشكل دائم.

مع Snapcraft، تكتب ملف snapcraft.yaml واحد ويصبح تطبيقك قابلًا للتثبيت على أكثر من 40 توزيعة لينكس. التحديثات تلقائية وانتقالية (يمكن التراجع عنها إذا فشل شيء)، وهو تحسن كبير مقارنة بمستودعات apt. مثال snapcraft.yaml لـ CLI بسيط بلغة Node.js:```yaml name: my-cli-tool base: core22 version: '1.0' summary: A useful developer CLI

apps: my-cli-tool: command: bin/my-cli-tool

parts: my-cli-tool: plugin: nodejs nodejs-version: '18' source: .


البناء والنشر:
```bash
snapcraft
snapcraft push my-cli-tool_1.0_amd64.snap --release stable

أداتك الآن متاحة لملايين مستخدمي أوبونتو عبر متجر Snap، مع تحديثات تفاضلية تلقائية وعزل للأمان.

كيف تتناسب هذه الأدوات مع سير عمل مطور الواجهات الأمامية

كمطور واجهات أمامية، قد تتساءل لماذا يجب أن تهتم بحاويات النظام أو تنسيق الخدمات. الإجابة بسيطة: الواجهات الأمامية الحديثة نادرًا ما تكون مستقلة. غالبًا ما تسحب البيانات من API، وتتعامل مع المصادقة، وتستخدم العرض من جانب الخادم، أو تتكامل مع نظام إدارة المحتوى. القدرة على تشغيل بيئة كاملة الحزمة محليًا، تعكس الإنتاج، تمكنك من العمل بشكل أسرع وتجربة أشياء دون عواقب.

engineer, code, coding, software, computer, engineering, binary, tech, technology, data, information, science, female, light, web, website, computing, blue computer, blue laptop, blue data, blue science, blue website, blue tech, blue information, blue code, blue coding, blue software, coding, software, software, software, tech, tech, tech, tech, tech سيناريو نموذجي للواجهة الأمامية كاملة الحزمة باستخدام أدوات كانونيكال:1. استخدمMultipassلتشغيل جهاز افتراضي جديد لأوبونتو لواجهة API الخلفية. 2. داخل ذلك الجهاز الافتراضي، استخدمLXDلتشغيل حاوية PostgreSQL وحاوية تخزين مؤقت Redis. 3. على مثيل Multipass آخر، قم بتشغيل خادم بناء الواجهة الأمامية (مثل Next.js) مع دليل مشروع مثبت بحيث يمكنك تعديل الكود في IDE المفضل لديك أثناء تشغيله على نظام ملفات لينكس واقعي. 4. استخدمJujuلتنسيق كل شيء عبر حزمة، حتى يتمكن زميل في الفريق من تكرار الإعداد بأمر واحد. 5. قم بتعبئة أي أدوات CLI ناتجة باستخدامSnapcraft لتوزيع سهل.

فجأة، ينهار الجدار بين "الواجهة الأمامية" و"الخلفية". تصبح مهندسًا أكثر تنوعًا يمكنه امتلاك المجموعة الكاملة من واجهة المستخدم إلى البنية التحتية.

"مع Multipass، يمكنني تشغيل بيئة أوبونتو جديدة في ثوانٍ، وليس دقائق. لقد غيرت الطريقة التي أختبر بها مشاريعي عبر المتصفحات المختلفة."

مقارنة أدوات كانونيكال مع بيئات التطوير التقليديةلاتخاذ قرار مستنير، دعنا نقارن أكثر حلول البيئة المحلية شيوعًا. يقارن الجدول أدناه بين إعداد VirtualBox اليدوي النموذجي، وDocker Desktop، وMultipass، وLXD عبر عدة محاور ذات صلة بالمطورين.

من الجدول، يقدم LXD وMultipass نقطة توازن مثالية بين السرعة والعزل. يعد Docker رائعًا للخدمات الدقيقة عديمة الحالة، لكنه يقصر عندما تحتاج إلى بيئة نظام تشغيل حقيقية مستمرة. VirtualBox بطيء وشره للموارد. تمنحك أدوات Canonical تجربة شبيهة بالسحابة على جهاز التطوير الخاص بك.

مكاسب الإنتاجية الخفية: إحصائيات ورؤى

من السهل التغاضي عن التأثير التراكمي لتأخيرات إدارة البيئة. وجد استطلاع داخلي أجرته Canonical عام 2023 أن المطورين الذين اعتمدوا Multipass وLXD أبلغوا عن توفير كبير للوقت:

Average Time to Prepare a Clean Development Environment (Minutes)

إلى جانب الوقت الصرف، هناك تحسين نوعي، وهو انخفاض العبء المعرفي. عندما يكون تشغيل خدمة جديدة أمرًا واحدًا فقط، فمن المرجح أن تجرّب وتدمج خدمات خارجية واقعية وتكتب اختبارات تكامل تكتشف الأخطاء مبكرًا.

تشجع أدوات Canonical منهجية “12‑factor app” من خلال جعل التطابق بين بيئة التطوير والإنتاج أمرًا سهلاً. تعمل حاوية LXD المحلية لديك كمثيل سحابي، مما يلغي متلازمة “يعمل على جهازي” المخيفة.

سير عمل واقعي: من الفكرة إلى النشر

تخيل أنك تبني لوحة تحكم فورية تستخدم WebSockets، وتحتاج Redis للنشر/الاشتراك (pub/sub)، وتخزن البيانات في PostgreSQL. مع مجموعة أدوات Canonical، إليك كيفية إعداد بيئة التطوير في أقل من 5 دقائق:

  1. شغّل جهازًا افتراضيًا عبر Multipass لاستضافة الواجهة الخلفية: multipass launch --name dashboard-backend
  2. بداخله، استخدم LXD لتشغيل قاعدة البيانات وذاكرة التخزين المؤقت: lxc launch ubuntu:22.04 pg-db وlxc launch ubuntu:22.04 redis
  3. ثبّت واجهة Node.js الخلفية واستخدم Juju لربط الخدمات.
  4. ابدأ تشغيل خادم التطوير من خلال تحميل شيفرة الواجهة الأمامية في مثيل Multipass آخر.
  5. اختبر اتصالات WebSocket كما لو كانت على واجهات شبكة حقيقية.

عندما تكون مستعدًا للمشاركة، قم بتغليف التكوين بالكامل كحزمة Juju وادفعها إلى Charmhub. زملاؤك يسحبونها ويشغلون juju deploy، فيبدأون العمل في دقائق بنفس البيئة تمامًا. هذه القدرة على إعادة الإنتاج تغيّر قواعد اللعبة لكل من المشاريع مفتوحة المصدر وفرق المؤسسات على حدٍّ سواء.

“تبني Canonical بهدوء طبقة تجربة المطور للسحابة مفتوحة المصدر.”

الخاتمة: لماذا يجب على كل مطور استكشاف مجموعة أدوات Canonical؟

أدوات Canonical للمطورين ليست مخصصة فقط لمسؤولي الأنظمة أو معماريي السحابة. يمكن لمطوري الواجهات الأمامية، ومهندسي تجربة المستخدم، وأي شخص يبني تطبيقات ويب الاستفادة من السرعة والبساطة والاتساق التي توفرها هذه الأدوات. بدلاً من تجميع Vagrant وVirtualBox وملفات Docker Compose المعقدة، يمكنك الاستفادة من نظام بيئي موحد يفكر مثل المطور.

مع استمرار تلاشي الحدود بين الواجهة الأمامية والخلفية، يصبح امتلاك مجموعة أدوات تتيح لك تشغيل بيئات كاملة عند الطلب قوة خارقة. سواء كنت تتصدى لمشكلة CSS لا تظهر إلا على Linux، أو تختبر إطار عمل JavaScript جديدًا، أو تعرض نموذجًا أوليًا لعميل، فإن Multipass وLXD وJuju وSnapcraft ستوفر عليك الوقت والإحباط.

في المرة القادمة التي تثبت فيها Ubuntu، تعمق قليلاً في الأدوات الإضافية التي تقدمها Canonical. قد تكتشف أن مكاسب الإنتاجية تضاهي مكاسب أي مكتبة JavaScript جديدة أو إضافة VS Code. وإذا كنت تبحث عن طريقة أخرى لتسريع سير عمل واجهة المستخدم، ففكر في كيف يتيح لك DivMagic نسخ أي عنصر واجهة من أي موقع ويب، وهو مثالي للنماذج الأولية السريعة إلى جانب بيئات Canonical المنشورة حديثًا.

ابدأ صغيرًا: ثبّت multipass اليوم وشغّل حاويتك الأولى. سترى بسرعة لماذا أصبحت هذه الأدوات “المفيدة بشكل مدهش” جزءًا أساسيًا من ترسانة المطور الحديث.

ابدأ الإنشاء باستخدام DivMagic اليوم

انضم إلى أكثر من 10000 من المطورين والمصممين وأصحاب الأعمال لنسخ التعليمات البرمجية من أي موقع ويب واستخدامها في مشاريعهم الخاصة.

Get DivMagic for 42% off

Limited time deal for 22:45