التطوير من أجل السحابة في السحابة: تطوير البيانات الضخمة باستخدام Docker في AWS

نشرت: 2022-03-11

لماذا قد تحتاجه؟

أنا مطور ، وأعمل يوميًا في بيئات التطوير المتكاملة (IDE) ، مثل Intellij IDEA أو Eclipse. هذه IDEs هي تطبيقات سطح المكتب. منذ ظهور مستندات Google ، رأيت المزيد والمزيد من الأشخاص ينقلون عملهم من إصدارات سطح المكتب من Word أو Excel إلى السحابة باستخدام معادل عبر الإنترنت لمعالج النصوص أو تطبيق جداول البيانات.

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

لسوء الحظ ، هذه المزايا السحابية ليست شائعة في عالم تطوير البرمجيات كما هو الحال بالنسبة لتطبيقات الأعمال. هناك بعض المحاولات لتوفير IDE عبر الإنترنت ، لكنها ليست قريبة من IDEs التقليدية.

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

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

مطور في السحابة

ما هي السحابة بالنسبة للمطور؟ تطوير فيه ، بالطبع!
سقسقة

في هذه المقالة ، أقدم مجموعة من البرامج النصية لبناء بيئة تطوير قائمة على السحابة لتطبيقات Scala والبيانات الضخمة ، تعمل مع Docker في Amazon AWS ، وتتألف من سطح مكتب يمكن الوصول إليه عبر الويب مع IntelliJ IDE و Spark و Hadoop و Zeppelin كخدمات ، وكذلك أدوات سطر الأوامر مثل SSH و SBT و Ammonite على شبكة الإنترنت. تتوفر المجموعة مجانًا على GitHub ، وأنا أصف هنا الإجراء الخاص باستخدامها لبناء المثيل الخاص بك. يمكنك بناء بيئتك وتخصيصها حسب احتياجاتك الخاصة. يجب ألا يستغرق الأمر أكثر من 10 دقائق لتشغيله.

ماذا يوجد في “BigDataDevKit”؟

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

بيئتي المثالية القائمة على السحابة يجب أن:

  • قم بتضمين جميع أدوات التطوير المعتادة ، وأهمها IDE الرسومي.
  • احصل على الخوادم والخدمات التي أحتاجها في متناول يدي.
  • كن سهلاً وسريعًا في الإنشاء من البداية ، وقابل للتوسيع لإضافة المزيد من الخدمات.
  • يمكن الوصول إليها بالكامل باستخدام متصفح الويب فقط.
  • اختياريًا ، اسمح بالوصول مع عملاء متخصصين (عميل VNC وعميل SSH).

من خلال الاستفادة من البنية التحتية السحابية الحديثة والبرمجيات ، وقوة المتصفحات الحديثة ، والتوافر الواسع النطاق للنطاق العريض ، و Docker الذي لا يقدر بثمن ، فقد أنشأت بيئة تطوير لـ Scala وتطوير البيانات الضخمة التي ، للأفضل ، استبدلت الكمبيوتر المحمول الخاص بي للتطوير.

حاليًا ، يمكنني العمل في أي وقت ، إما من جهاز MacBook Pro أو Surface Tablet أو حتى iPad (مع لوحة مفاتيح) ، على الرغم من أن الخيار الأخير ليس مثاليًا. كل هذه الأجهزة مجرد عملاء. سطح المكتب وجميع الخوادم في السحابة.

Docker و Amazon AWS!

تم إنشاء بيئتي الحالية باستخدام الخدمات عبر الإنترنت التالية:

  • Amazon Web Services للخوادم.
  • جيثب لتخزين الكود.
  • Dropbox لحفظ الملفات.

أستخدم أيضًا خدمتين مجانيتين ، مثل DuckDns لعناوين IP الديناميكية ودعنا نشفر للحصول على شهادة SSL مجانية.

في هذه البيئة ، لدي حاليًا:

  • سطح مكتب رسومي بفكرة Intellij ، يمكن الوصول إليه عبر متصفح الويب.
  • أدوات سطر أوامر يمكن الوصول إليها عبر الويب مثل SBT و Ammonite.
  • Hadoop لتخزين الملفات وتشغيل وظائف MapReduce.
  • Spark Job Server للوظائف المجدولة.
  • زيبلين لجهاز كمبيوتر محمول على شبكة الإنترنت.

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

استخدام بيئة تطوير قائمة على الويب مع AWS و Docker

الآن ، لنبدأ في وصف كيفية عمل البيئة. عندما أبدأ العمل في الصباح ، فإن أول شيء هو تسجيل الدخول إلى وحدة تحكم Amazon Web Services حيث أرى جميع مثيلاتي. عادة ، لدي العديد من مثيلات التطوير التي تم تكوينها لمشاريع مختلفة ، وأحتفظ بالمثيلات غير المستخدمة في وضع إيقاف التشغيل لحفظ الفواتير. بعد كل شيء ، لا يمكنني العمل إلا في مشروع واحد في كل مرة. (حسنًا ، أحيانًا أعمل على اثنين.)

الشاشة 1

لذلك ، أختار المثال الذي أريده ، أبدأه ، أنتظر قليلاً أو أذهب لتناول فنجان من القهوة. لا يختلف الأمر كثيرًا عن تشغيل جهاز الكمبيوتر الخاص بك. عادةً ما يستغرق الأمر مجموعة من الثواني لتشغيل المثيل وتشغيله. بمجرد أن أرى الرمز الأخضر ، أفتح متصفحًا ، وأذهب إلى عنوان URL معروف جيدًا: https://msciab.duckdns.org/vnc.html . ملاحظة ، هذا هو عنوان URL الخاص بي ؛ عند إنشاء مجموعة ، ستقوم بإنشاء عنوان URL فريد خاص بك.

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

الشاشة 2

بمجرد التحميل ، سيرحب بك النظام بعميل ويب Web VNC ، NoVNC. ما عليك سوى تسجيل الدخول وسيظهر سطح المكتب. أستخدم الحد الأدنى من سطح المكتب ، عن قصد ، مجرد قائمة بها تطبيقات ، وفاخرتي الوحيدة هي سطح مكتب افتراضي (منذ أن فتحت الكثير من النوافذ عندما أطور). بالنسبة للبريد ، ما زلت أعتمد على تطبيقات أخرى ، معظمها في الوقت الحاضر على علامات تبويب المتصفح الأخرى.

في الجهاز الافتراضي ، لدي ما أحتاجه لتطوير تطبيقات البيانات الضخمة. أولا وقبل كل شيء ، هناك IDE. في البناء ، أستخدم إصدار مجتمع IntelliJ Idea. أيضا ، هناك أداة بناء SBT و Scala REPL ، Ammonite.

الشاشة 3

ومع ذلك ، فإن الميزات الرئيسية لهذه البيئة هي الخدمات التي يتم نشرها كحاويات في نفس الجهاز الظاهري. على وجه الخصوص ، لدي:

  • Zeppelin ، دفتر الويب لاستخدام رمز Scala أثناء التنقل وتحليل البيانات ( http://zeppelin:8080 )
  • خادم Spark Job Server ، لتنفيذ ونشر وظائف شرارة بواجهة Rest ( http://sparkjobserver:8080 ).
  • مثيل Hadoop لتخزين واسترداد البيانات من HDFS ( http://hadoop:50070 ).

لاحظ أن عناوين URL هذه ثابتة ولكن يمكن الوصول إليها من خلال البيئة الافتراضية. يمكنك رؤية واجهات الويب الخاصة بهم في لقطة الشاشة التالية.

الشاشة 4

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

أخيرًا وليس آخرًا ، لديك محطة ويب متاحة. ما عليك سوى الوصول إلى عنوان URL الخاص بك باستخدام HTTPS وسيتم الترحيب بك من خلال محطة في صفحة الويب.

الشاشة 5

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

كيفية إعداد المثيل الخاص بك

هل يعجبك هذا حتى الآن ، وتريد مثيلك؟ إنه سهل ورخيص. يمكنك الحصول عليه مقابل تكلفة الجهاز الظاهري فقط على Amazon Web Services ، بالإضافة إلى التخزين. تتطلب المجموعة في التكوين الحالي 4 جيجابايت من ذاكرة الوصول العشوائي لتشغيل جميع الخدمات. إذا كنت حريصًا على استخدام الجهاز الظاهري فقط عند الحاجة إليه ، وكنت تعمل ، على سبيل المثال ، 160 ساعة في الشهر ، فستكلف الآلة الافتراضية بالأسعار الحالية 160 × 0.052 دولارًا ، أو 8 دولارات شهريًا. يجب عليك إضافة تكلفة التخزين. أستخدم حوالي 30 غيغابايت ، ولكن يمكن الاحتفاظ بكل شيء بأقل من 10 دولارات.

ومع ذلك ، فإن هذا يشمل تكلفة حساب Dropbox (Pro) (النهائي) ، إذا كنت تريد نسخ أكثر من 2 غيغابايت من التعليمات البرمجية احتياطيًا. هذا يكلف 15 دولارًا آخر شهريًا ، لكنه يوفر أمانًا مهمًا لبياناتك. ستحتاج أيضًا إلى مستودع خاص ، إما GitHub مدفوع الأجر أو خدمة أخرى ، مثل Bitbucket ، التي تقدم مستودعات خاصة مجانية.

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

دعونا نرى كيفية القيام بالإعداد بالكامل.

المتطلبات الأساسية

قبل البدء في إنشاء جهاز افتراضي ، تحتاج إلى التسجيل في الخدمات الأربع التالية:

  • خدمات أمازون ويب.
  • DuckDNS.
  • بصندوق الإسقاط.
  • دعونا نشفر.

الوحيد الذي تحتاجه لبطاقتك الائتمانية هو Amazon Web Services. DuckDns مجاني تمامًا ، بينما يمنحك DropBox مساحة تخزين مجانية تبلغ 2 جيجا بايت ، والتي يمكن أن تكون كافية للعديد من المهام. Let's Encrypt مجاني أيضًا ، ويتم استخدامه داخليًا عند إنشاء الصورة لتوقيع شهادتك. إلى جانب ذلك ، أوصي بخدمة استضافة المستودع أيضًا ، مثل GitHub أو Bitbucket ، إذا كنت تريد تخزين الرمز الخاص بك ، ومع ذلك ، فهو غير مطلوب للإعداد.

للبدء ، انتقل إلى مستودع GitHub BigDataDevKit.

الشاشة 6

مرر الصفحة وانسخ النص الموضح في الصورة في محرر النصوص الذي تختاره:

الشاشة 7

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

معلمة PASSWORD هي كلمة مرور تختارها للوصول إلى الجهاز الظاهري عبر واجهة ويب. المعامل EMAIL هو بريدك الإلكتروني ، وسيتم استخدامه عند تسجيل شهادة SSL. سيُطلب منك تقديم بريدك الإلكتروني ، وهو المطلب الوحيد للحصول على شهادة SSL مجانية من Let's Encrypt.

للحصول على قيم TOKEN و HOST ، انتقل إلى موقع DuckDNS وقم بتسجيل الدخول. ستحتاج إلى اختيار اسم مضيف غير مستخدم.

الشاشة 8

انظر إلى الصورة لترى أين يجب عليك نسخ الرمز المميز وأين يجب عليك إضافة اسم المضيف الخاص بك. يجب النقر فوق الزر "إضافة مجال" لحجز اسم المضيف.

تكوين المثيل الخاص بك

بافتراض أن لديك جميع المعلمات وقمت بتحرير البرنامج النصي ، فأنت جاهز لبدء تشغيل المثيل الخاص بك. سجّل الدخول إلى واجهة إدارة Amazon Web Services ، وانتقل إلى لوحة مثيلات EC2 وانقر على "Launch Instance".

الشاشة 9

في الشاشة الأولى ، ستختار صورة. تم إنشاء البرنامج النصي حول Amazon Linux ، ولا توجد خيارات أخرى متاحة. حدد Amazon Linux ، الخيار الأول في قائمة QuickStart.

الشاشة 10

في الشاشة الثانية ، اختر نوع المثيل. نظرًا لحجم البرنامج قيد التشغيل ، هناك خدمات متعددة وتحتاج إلى ذاكرة 4 جيجابايت على الأقل ، لذلك أوصيك بتحديد مثيل t2.medium . يمكنك تقليصه ، باستخدام t2.small إذا قمت بإغلاق بعض الخدمات ، أو حتى الميكرو إذا كنت تريد سطح المكتب فقط.

الشاشة 11

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

الشاشة 12

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

الشاشة 13

الخطوة الخامسة هي تسمية المثيل. اختر بنفسك. تقدم الخطوة السادسة طريقة لتكوين جدار الحماية. بشكل افتراضي ، يتوفر SSH فقط ولكننا نحتاج أيضًا إلى HTTPS ، لذلك لا تنس إضافة قاعدة تفتح HTTPS أيضًا. يمكنك فتح HTTPS للعالم ، ولكن من الأفضل إذا كان ذلك يخص عنوان IP الخاص بك فقط لمنع الآخرين من الوصول إلى سطح المكتب والقشرة ، على الرغم من أن ذلك لا يزال محميًا بكلمة مرور.

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

الشاشة 14

عندما ترى في النهاية وحدة تحكم الإدارة "قيد التشغيل" مع التأكيد ، ولم تعد "قيد التهيئة" ، فأنت على استعداد للذهاب.

بافتراض صحة جميع المعلمات ، يمكنك الانتقال إلى https://YOURHOST.duckdns.org .

استبدل YOURHOST باسم المضيف الذي اخترته ، لكن لا تنس أنه موقع HTTPS ، وليس HTTP ، لذلك يتم تشفير اتصالك بالخادم ، لذا يجب عليك كتابة https// في عنوان URL. سيقدم الموقع أيضًا شهادة صالحة لـ Let's Encrypt. إذا كانت هناك مشكلات في الحصول على الشهادة ، فسيقوم البرنامج النصي للتهيئة بإنشاء شهادة موقعة ذاتيًا. ستظل قادرًا على الاتصال باتصال مشفر ، لكن المتصفح سيحذرك من أنه موقع غير معروف ، والاتصالات غير آمنة. لا ينبغي أن يحدث ، لكنك لا تعرف أبدًا.

الشاشة 15

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

بمجرد تسجيل الدخول ، يكون لديك آلة افتراضية تم تشغيلها ، والتي تتضمن أيضًا Docker وغيرها من الأشياء الجيدة ، مثل Nginx Frontend و Git و Butterfly Web Terminal. الآن ، يمكنك إكمال الإعداد من خلال إنشاء صور Docker لبيئة التطوير الخاصة بك.

بعد ذلك ، اكتب الأوامر التالية:

 git clone https://github.com/sciabarra/BigDataDevKit cd BigDataDevKit sh build.sh

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

بمجرد اكتمال البناء ، يمكنك أيضًا تثبيت Dropbox باستخدام الأمر التالي:

 /app/.dropbox-dist/dropboxd

سيعرض النظام ارتباطًا يجب النقر فوقه لتمكين Dropbox. تحتاج إلى تسجيل الدخول إلى Dropbox وبعد ذلك تكون قد انتهيت. كل ما تضعه في مجلد Dropbox تتم مزامنته تلقائيًا بين جميع مثيلات Dropbox.

بمجرد الانتهاء من ذلك ، يمكنك إعادة تشغيل الجهاز الظاهري والوصول إلى بيئتك على https://YOURHOST.dyndns.org/vnc.html URL.

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

الحفاظ على بياناتك

تتطلب المناقشة التالية بعض المعرفة حول كيفية عمل Docker و Amazon. إذا كنت لا ترغب في فهم التفاصيل ، فقط ضع في اعتبارك اتباع القاعدة البسيطة: في الجهاز الظاهري ، يوجد مجلد /app/Dropbox متاح ، وكل ما تضعه في /app/Dropbox يتم الاحتفاظ به ، وكل شيء آخر يمكن التخلص منه و يمكن أن تذهب بعيدا. لتحسين الأمان بشكل أكبر ، قم أيضًا بتخزين التعليمات البرمجية الثمينة في نظام التحكم في الإصدار.

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

ومع ذلك ، نظرًا لأنه تم تحميل المجلد /app/Dropbox باعتباره Docker Volume للحاويات ، فإنه ليس جزءًا من صور Docker. في الجهاز الظاهري ، يتم تثبيت المجلد /app في Amazon Volume الذي قمت بإنشائه ، والذي لا يتم إتلافه أيضًا حتى عند إنهاء الجهاز الظاهري صراحةً. لإزالة وحدة التخزين ، يجب عليك إزالته صراحة.

لا تخلط بين مجلدات Docker ، والتي تعد كيانًا منطقيًا لـ Docker ، مع مجلدات Amazon ، والتي تعد كيانًا ماديًا إلى حد ما. ما يحدث هو أن حجم /app/Dropbox Docker يتم وضعه داخل وحدة تخزين Amazon /app .

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

لذلك ، إذا وضعت الأشياء الخاصة بك في نظام التحكم في الإصدار ضمن مجلد Dropbox ، لفقد بياناتك ، يجب أن يحدث كل هذا:

  • أنت تنهي جهازك الظاهري صراحة.
  • تقوم صراحة بإزالة حجم البيانات من الجهاز الظاهري.
  • تقوم صراحة بإزالة البيانات من Dropbox ، بما في ذلك السجل.
  • تقوم صراحة بإزالة البيانات من نظام التحكم في الإصدار.

آمل أن تكون بياناتك آمنة بما فيه الكفاية.

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

تحسين الوصول

أولاً ، إذا كان لديك وصول مباشر إلى الإنترنت ، وليس بوساطة وكيل ، فيمكنك استخدام عملاء SSH و VNC أصليين. يعد الوصول المباشر عبر SSH أمرًا مهمًا إذا كنت بحاجة إلى نسخ الملفات من وإلى الجهاز الظاهري. ومع ذلك ، لمشاركة الملفات ، يجب أن تفكر في Dropbox كبديل أبسط.

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

خاتمة

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

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