يمتلك خبير تكنولوجيا المعلومات والمدير الفني لمجلة Ars Technica Jason Marlin أكثر من عشرين عامًا من الخبرة في دعم البنية التحتية للمعلومات - وفي رأيه ، لقد تغير الكثير في هذا المجال

لعبة الحفرة ، التي عملت كباب BBS. في هذه الصورة ، يهاجم لي هتشينسون هؤلاء الرجال. أو هم هم.
في الثمانينيات من القرن الماضي ، نشأت شخصًا حقيقيًا - ليس بالمعنى الحقيقي للكلمة ، ولكن بمعنى أنني كنت دائماً أحمل معي عددًا من الكيلوغرام من مجلة
Computer Shopper بخمسة كيلوغرامات (نعم ، كانت هذه المنشورات كبيرة جدًا). حصلت على مدمن مخدرات على أنظمة لوحة الإعلانات في سن العاشرة. ليس من المستغرب أنه في النهاية تحولت إلى المدير الفني للموقع ، الذي يغطي قضايا العلوم والتكنولوجيا.
يمكنني رسم أوجه تشابه واضحة بين عمل دعم BBS الخاص بي (أي عمل sysop) وإدارة البنية الأساسية الحديثة للويب. دعونا نحتفل بهذه التشابه تكريما للذكرى العشرين لموقع Ars. لن يكون هذا المقال تاريخًا شاملاً لمواقع الويب ، وسأصف هنا تجربتي الخاصة في إدارة المواقع ، وكيف تطورت على مدار العشرين عامًا الماضية - وكذلك كيف تغيرت الأدوات والتفكير.
تحميل "*" ، 8 ، 1
تم الحصول على تجربتي الأولى ك sysop على Commodore 128 (بالطبع ، في وضع 64 بت) ، حيث كان يعمل برنامج Greg Pfountz's Color 64. لقد أرسلت Greg الشيك (تم توقيعه من قِبل والدتي) وحصلت على قرص مرن 5.25 "مع تعليمات مخيط باليد مطبوعة على طابعة مصفوفة ، ثم بدأت.
بدا Color 64 مذهلاً بفضل ASCII ، الذي تم رسمه وفقًا لمعيار ANSI ، على عكس معظم برامج BBS الأخرى التي أنتجت نصًا عاديًا عديم اللون. جعل اللون 64 من الممكن إنشاء تجربة مستخدم. لم أعد أذكر أسماء BBS الخاصة بي ، لكنني أضمن أن السمة الرئيسية كانت مرتبطة بالتنين و / أو الكونغ فو. أشعر بالخجل بعض الشيء للاعتراف بأن لقبي كان DragonMaster ، لكنني أكدت فقط الصور النمطية المرتبطة بالمهووسين.
لسوء الحظ ، كانت البنية الأساسية للشبكة الخاصة بي تتكون من خط هاتف واحد ، مما يعني أنني اضطررت إلى قطع اتصال جميع أجهزة الاتصال (أي هاتف للاتصال الهاتفي) والعمل بين 23 و 5 ساعات. وهذا يعني أيضا القليل من التفاعل BBS. من خلال سطر واحد ومحرك Commodore 1571 ، لا يمكن للمستخدمين الدردشة مع بعضهم البعض أو تنزيل أكثر من لعبة واحدة في كل مرة.
العميد البحري 1670 لا يزال يجعل القلب ينبض بشكل أسرعفي أحلامي ، في المستقبل القريب ، قمت بتشغيل BBS الحقيقي ، وهو شيء مثل Las Vegas Fear & Loathing الشهير في ذلك الوقت ، والذي زرته كثيرًا. في أحلامي ، كان هناك 10 خطوط هاتفية بحيث يمكن للمستخدمين التواصل مع بعضهم البعض في الوقت الحقيقي ، والاتصال بـ 1200 مودم - لا ، ولا حتى 2400 باود! وعلى القرص الصلب الأسطوري مع حجم يصل إلى 10 ميغابايت من نظام
Lt. كان كيرنال يحتفظ بمخزونات لا تنتهي من الألعاب.
للأسف ، كل هذا كان يتعذر عليّ الوصول إليه ، لكنني كنت مصابًا بوضوح بمرض جديد شجع رغبة غير عادية في إنشاء شخص لأماكن رقمية يمكن للمستخدمين من خلالها التجمع
التسعينات
واصلت العبث مع برنامج BBS ، بما في ذلك سلف HTML مثير جدًا للاهتمام مثل
Excalibur BBS . ألق نظرة على
نتائج بحث الصور من Google لترى كيف كان هذا البرنامج متقدمًا على وقته.
$: cd ~ / public_html
قابلت لغة HTML لأول مرة في الكلية في منتصف التسعينيات ؛ ثم قمت بأداء واجبي وقمت بتحميله إلى دليل المنزل العام ، ويمكن للمعلمين مراجعته في أوقات فراغهم باستخدام متصفحات Netscape أو Mosaic. كان الدافع الممتاز في ذلك الوقت 10 نقاط إضافية "لاستخدام التكنولوجيا".
اباتشي + بيرل + XML + استضافة مشتركة
كان قسم الأخبار لشركة الاتصالات السلكية واللاسلكية أحد أول "التطبيقات" الحقيقية التي قمت بإنشائها كمطور ويب. كل هذا كان يعمل على حزمة واسعة الانتشار: أباتشي كخادم HTTP ، بيرل كلغة خادم وقاعدة بيانات كملف نصي. في ذلك الوقت ، لم أكن على دراية بقواعد البيانات الحقيقية ، لكنني كنت أعرف كيفية كتابة XML وتحليله. كل هذا تم استضافته على منصة تعاونية جيدة بشكل مثير للدهشة والتي يمكنني من خلالها كتابة جميع قواعد الخادم إلى ملف htaccess. سرعان ما علمت أن هذا الملف أعطى يدي عديمي الخبرة الكثير من القوة!
أدى الاستضافة التعاونية إلى حل مشاكلي ، لكن في ذلك الوقت كان المطورون يعتمدون على المشرفين في كل ما يتعلق بإصدارات البرامج والإضافات. كان عليك أيضًا أن تقلق بشأن ما يفعله جيرانك بالموارد المشتركة ، بما في ذلك جميع أنواع الأشياء غير السارة. قد يؤدي اختراق جهاز واحد إلى تهديد مئات المواقع.
IIS و ملحقات FrontPage و Access
نتيجة لذلك ، اكتسبت الوكالة التي عملت فيها عددًا كافيًا من العملاء لتحمل تكاليف خوادمها. بالنسبة إلى غضبي ، اتضح أنه جهاز يعمل بنظام تشغيل Windows (خدمات معلومات الإنترنت). كانت هذه المنطقة غير مألوفة بالنسبة لي تمامًا ، ولكن بعد إطلاق IDE للصفحة الأولى ، دهشت من مدى بساطة شركة Microsoft للمهام التي عادة ما تكون صعبة لتخزين المدخلات التي تم التحقق منها في قاعدة البيانات. (لا ، بجدية ، فقط رائع). كنتيجة لذلك ، بحثت عن IDE للجرافيك المثالي ، بما في ذلك فوضى قصيرة ومحبطة مع Macromedia Dreamweaver. سرعان ما علمت أن الأدوات التي تنشئ رمزًا تلقائيًا عادةً ما تنتج كمية هائلة من المعكرونة ، والتي فقط تلك الأدوات نفسها يمكن أن تنحل.
تبدو إدارة IIS ضمن نظام التشغيل Windows NT 3.5 أيضًا مهمة خطيرة وسهلة لشخص ذي خبرة في Unix. وفي الوقت نفسه ، كان هناك شعور بالقيود المشددة - أين كانت ملفات .conf التي كان من الممكن فيها القيام بضبط دقيق (وفوضى هائلة)؟
أصبح هذا التجميع نظامي الأساسي لفترة من الوقت ، لقد قمنا بإنشاء عدة CMS بناءً على طلب عملائنا ، دون أي تفكير في الحفاظ على قاعدة الشفرة العامة أو الدعم طويل الأجل أو التحكم في الإصدار. يا له من رعب.
بداية 2000s بدءاً من ColdFusion
أتفهم الآن رعب الموقف ، لكنني أحببت حقًا بيئة Allaire
ColdFusion ، واستخدمتها لمدة أربع سنوات على الأقل لإنشاء تطبيقات كبيرة وشبكات مشتركة. عملت على أساس CFML (لغة ترميز ColdFusion). بدا الأمر وكأنه HTML ، لكنه قدم استعلامات تافهة لقواعد البيانات وتكاملها مع التقنيات الخارجية مثل Java Servlets أو CORBA. كان لدى ColdFusion العديد من المعارضين ، لكنني لم أكن مؤيدًا لتكنولوجيا معينة ، واخترت فقط ما سمح لي بإكمال المهمة بسرعة أكبر.
تظهر أطر الويب
حاجز الدخول المنخفض للغاية من ColdFusion قد أكسبها سمعة اللغة الغبية التي استقطبت مبرمجين ذوي جودة منخفضة إلى هذا المجال - يشبه إلى حد كبير PHP. لا أستطيع أن أجادل مع هذا ، لكن المفارقة هي أن أول تعارف لي مع إطار ويب جيد وقع في شكل
Fusebox . لقد بدأت بمحاولة لتنظيم تطبيق ما باستخدام اصطلاحات نظام تسمية الملفات ودليلها البسيطة. بدا الأمر واضحًا ، ولكن ، مثل معظم مطوري الويب في ذلك الوقت ، انجذبت نحو نهج دائم التطور في تخطيط التطبيق ، وكافحت مع أشياء انفصلت عن بعضها البعض ، مثل استعلامات قاعدة البيانات ومكونات الإخراج. لقد لعبت مع
Struts ، ولكن نظرًا لأنه كان من المستحيل استخدام Java في العمل الرئيسي ، ما زلت لم أفهمه. لكن فتح Fusebox عيني لمنصات مع نموذج
MVC (تحكم عرض النموذج) الذي يتجاوز حدود لغات معينة. وكان ذلك قبل سنوات عديدة من ظهور هذا العرض الهدم الذي
استمر لمدة 15 دقيقة لروبي أون ريلز من
إخراج ديفيد هاينماير هانسون .
اليوم لن أفكر أبدًا في إنشاء تطبيق كبير دون اختيار إطار عمل ، واليوم لدينا العديد من الخيارات المثيرة للاهتمام. ل PHP ، أنا أحب
Laravel أكثر.
نعم ، فجر السقف.
استضافة المواقع على شبكة الإنترنت
حصلت على أول تجربة لي مع موقع ويب ذي عدد زيارات كبير في عام 2002. ومع زيادة عدد الزيارات ، ازدادت المسؤولية ، وكذلك عدد المكالمات في منتصف الليل التي تتطلب إعادة تشغيل الخادم. وأخيراً ، قررت معرفة كل شيء عن موازنة التحميل والتخزين المؤقت واستضافة نظام المجموعة. كان هذا كشفًا آخر ، لأنه فتح إمكانيات التوسع غير المحدود تقريبًا.
إذا تم إيقاف تشغيل جهاز واحد ، فلدينا سيارات أمان لضمان نجاح كل شيء. كان لدينا تحليلات ومقاييس الكتلة مفصلة. كانت الحياة جميلة ، مثل حلمي.
صعود الأجهزة الافتراضية: AWS ، متشرد
ظهر AWS (خدمات الويب من Amazon) ، على ما يبدو ، من العدم ، وقدم للمطورين ما نحتاجه بالضبط. كما أزالوا الوسطاء من الاستضافة التقليدية. لم يكن علينا أن نسأل ما التقنيات المسموح لنا باستخدامها ؛ فجأة كان كل شيء ممكن. هل ترغب في محاولة تقديم طلب على Django أو NodeJS؟ لا مشكلة إطلاق اثنين من الأجهزة الافتراضية وتذهب. يمكن القيام بكل ذلك باستخدام AWS: جدران الحماية الافتراضية ، وموازنات التحميل ، والمجموعات الخاصة لقواعد البيانات ، CDN (شبكة تسليم المحتوى) للموارد الثابتة ، وكل شيء تقريبًا يمكن أن تفكر فيه. أصبح مركز بيانات للتصنيع الذاتي - وكان كل من نعمة ونعمة. عند إضافة كل خدمة جديدة ، كان من الضروري تتبعها ، وحتى يعرف شخص ما كيفية رفعها بعد توقف كل شيء (وفشل كل شيء). حرصًا كبيرًا على المطور ، كان من السهل جدًا العض أكثر مما يستطيع مضغه.
ما جعل AWS ممكنًا في السحابة ، أصبح
Vagrant ممكنًا على آلة الإنتاج. لقد منحنا Vagrant وصولاً سهلاً وقابلًا للبرمجة إلى مختلف مزودي VM. يمكنني اختبار أنواع جديدة من Linux وجميع أنواع حزم البرامج في بيئة كان من السهل جدًا إعادة إنشائها في السحابة عندما يتعلق الأمر بالنشر. إذا حدث خطأ أثناء التثبيت ، فإن أبسط أوامر التدمير المتشرد تسمح لك بالبدء من جديد من نفس الصورة. جعل هذا التطوير أكثر متعة من تشغيل الخوادم على نظام التشغيل المنزلي ، أو باستخدام VMWare أو VirtualBox مباشرة.
2010s - من مشرفي المواقع إلى DevOps
دعنا نتباطأ قليلاً ونتحدث عن كيف كرهت دائمًا مصطلح مشرف الموقع.
الرجل: ماذا تفعل في الحياة؟
أنا: أقوم بإنشاء تطبيقات ويب رائعة باستخدام لغات برمجة مختلفة ، وأنا أعمل مع البنية التحتية ...
الرجل: آه ، لذلك أنت WEBMASTER!
أريد إزالة هذه الكلمة المثيرة للاشمئزاز من الاستخدام.
بالإضافة إلى ربط هذه الكلمة بمكعب لعبة من 20 جانبًا ، فهي لا تصف على الإطلاق الدور الذي يلعبه الكثير منا في البرمجة وإدارة البنية التحتية. لذلك ، أنا حقًا أحب هذا التحول ، الذي استمر طوال العقد الماضي ، إلى مصطلحات أكثر احتراماً مثل
DevOps . يستخدم مهندسو DevOps البرمجة لإنشاء البنية التحتية في العالم الحقيقي وإدارتها وتوثيقها.
الشيف + ansible
عندما بدأت العمل في Ars Technica ، أردنا أن نكون قادرين على إضافة أو إزالة خوادم الويب وخوادم قواعد البيانات بسهولة في بيئة افتراضية. بعد استكشاف العديد من الأساليب ، استقرنا على برنامج
Chef ، والذي يعمل على تبسيط إدارة البنية التحتية من خلال التسلسل الهرمي للتماثلات ، المرتبط بشكل أساسي بالمطبخ (سكين ، كتاب وصفات ، وصفات ، إلخ). بعد دراسة كيفية ظهور خصائص المتغيرات أو "السمات" ، كما يطلق عليها هنا ، من الأدوار والنزول إلى عقد منفصلة ، يصبح من السهل للغاية إدارة برنامج الخادم والإصدارات من نظام أساسي واحد. سمح لنا Chef بالتوقف عن القيام بالإدارة المصغرة للخوادم الفردية في التجمعات وجعل مهمة الترقية الجماعية أسهل.
اليوم ، أنا شخصياً أفضل العمل مع
Ansible ، وهو نظام قائم على بيثون تم تطويره بواسطة Redhat - إنه أسهل في العمل وهو أقل هشاشةً قليلاً عند العمل في المنظمات الصغيرة. بخلاف برنامج Chef ، حيث يلزم وجود خادم مركزي ، يستخدم Ansible SSH من الجهاز المضيف (في حالتنا ، من أجهزة الكمبيوتر المحمولة التي نعمل على تطويرها) ، ولكن للشركات الكبرى لا يزال لديها خادم ، Tower. يتيح لك Ansible أيضًا كتابة معظم التكوين إلى YAML ، مما يحسن من قابليته للقراءة إلى حد كبير.
منذ عدة سنوات استضفنا مجموعة
ServerCentral Turing . إنها تساعدنا على اختيار التوازن الصحيح بين ما نمتاز به (كتابة التعليمات البرمجية وإعداد VM) وما لا يمكننا التحكم فيه تمامًا - فهذه هي مولدات الديزل الآمنة أو الشبكات الزائدة عن الحاجة أو نسخ البيانات في الوقت الفعلي إلى مركز بيانات مصمم لتجاوز الفشل.
2019 وما بعده
سأظل دائمًا حنينًا لتلك الأيام الهادئة من إدخال أوامر للمودم يدويًا في مكان ما في الأفق الذي تجذبنا إليه الوعود التي أصدرها The
Lawnmower Man أو Hal 9000. لكن اللحظة الحالية تحتوي أيضًا على فرص هائلة للمرحلة التالية من تطور البنية التحتية. هناك العديد من الأدوات الواعدة التي نخطط
لتطبيقها ، مثل
Docker Swarm أو
Kubernetes . إنه لأمر مدهش أن ندرك إلى أي مدى ذهبنا ، وكيف يمكن مقارنة مطور اليوم الأكثر إنتاجية بتلك الأيام القديمة المليئة بالصرير الغامض لـ BBS. أتوقع أن نلاحظ تجريدًا متزايدًا دائمًا من التكنولوجيا المعقدة متعددة الطبقات المطلوبة لوجود الويب الحديث.
نتمنى لكم التوفيق في العشرين سنة القادمة!