شما چندتایی کتاب درباره موضوعات مختلف لینوکسی نوشتهاید. اولش چطوری لینوکس را کشف کردید؟ چه چیزی باعث میشود این قدر به آن علاقه داشته باشید؟
فکر کنم اولین باری که با لینوکس برخورد داشتم، اواسط دهه نود و پس از انتشار دبیان بود. پیشتر با OS400، VAX/VMS و SunOS کار کرده بودم، اما همیشه در محیطهای اشتراکی بوده. فکر نمیکنم یکباره متوجه شده باشم که چقدر کل این ماجرای «متنباز» قدرتمند بود. وقتی لینوکس را کشف کردم، ناگهان یک رایانه رومیزی داشتم که همان ابزارها و خدماتی رویش اجرا میشدند که قدرت اینترنت از آنها بود. کاملا ذهن را منقلب میکرد. مهمتر اینکه رایگان بود. لازم نبود سختافزار و سیستمعامل گرانقیمت بخرم تا این کارهای جالب را انجام دهم. بعد دریافتم که نه تنها رایگان است، بلکه به سورس کد هم دسترسی دارم. اگر چیزی خراب میشد یا اگر چیزی اضافه بر امکانات میخواستم، واقعا میتوانستم خرابی را درست کنم (یا حداقل تلاشم را بکنم) یا با کسی صحبت کنم که میتواند درستش کند. آن احساس مالکیت به همراه انجمنهای اولیه که حول و حوش متنباز تشکیل میشدند، من را به شوق آورد. از همان زمان عاشق متنباز شدهام.
مطالعه کدهای دیگران میتواند الهامبخش شما در ساخت برنامههای کاربردی جذاب باشد.
در مشخصات شما نوشته «کار واقعی شما» این است که نائبرییس خدمات داکر هستید. آیا بقیه کارهایتان در متنباز را سرگرمی به حساب میآورید؟
در واقع آن یک شوخی است که به دوستم مربوط میشود. من هم مثل بیشتر گیکها معمولا پشت رایانه هستم و دارم با یک مشکل سر و کله میزنم یا چیزی مینویسم. دوستم به شوخی میگوید من دو کار دارم: کار «واقعی»ام و کار متنبازم. خوشبختانه در چند سال گذشته، در مکانهایی مانند پاپتلبز (Puppet Labs) و داکر، موفق شدهام علاقهمندیم را با کار حقوقبگیریام یکی کنم.
در دنیای استارتاپ یک فرض وجود دارد، اینکه یک برنامهنویس خوب، کسی است که یک پروفایل گیتهاب دارد و به متنباز کمک میکند.
بیشتر کسانی که در زمینه متنباز کار میکنند، درباره کارشان همین را میگویند، مرز مشخصکننده میان سرگرمی و کار حرفهای در دنیای متنباز بسیار نامشخص است. فکر میکنید این تاثیرش منفی باشد یا مثبت؟
به نظرم در زمینههای بسیار زیادی، هم مثبت است و هم منفی. از این نظر مثبت است که مشکلاتی را که در کارمان حل میکنیم (مثل ساختن ابزارها، برطرف کردن خطاها و نوشتن سندها) میتوانیم با دیگران به اشتراک بگذاریم و امیدوار باشیم که زندگی کسی را راحتتر کنیم یا کمکشان کنیم زودتر کارشان راه بیافتد. همچنین از این نظر منفی است که علاقه داشتن به کاری که خیلی نزدیک به کار روزانهام است، این حس را که تو «همیشه سرکاری» بدتر میکند.
همچنین میدانم که این مرزهای نامشخص، چطور بر گوناگونی جوامع متنباز و کسبوکارمان تاثیرگذار هستند. در دنیای استارتاپ یک فرض وجود دارد، اینکه یک برنامهنویس خوب، کسی است که یک پروفایل گیتهاب دارد و به متنباز کمک میکند. خوشبختانه من زمان، پول و آموزش لازم برای خدمت به متنباز را دارم. اما بسیاری هستند که این مزایا را ندارند و این مسئله حداقل تا حدی مسئول شکل دادن جامعه آماری کوچک بسیاری از جوامع متنباز است؛ سفیدپوست، مذکر، با سواد. این فرض از یک برنامهنویس «خوب» کمابیش تبدیل به یک حلقه بسته استخدامی شده و به تثبیت تکفرهنگی در متنباز و به صورت گستردهتر در کسب و کارمان، کمک کرده.
چطوری در پروژه داکر مشغول شدی؟
کمی بعد از اینکه شرکت سولومون، داکر را متنباز کرد، به آن برخوردم. کمی درباره LXC و حاملها میدانستم (پیشتر روی solaris zone و LPAR در سختافزار IBM هم کار کرده بودم) بنابراین تصمیم گرفتم داکر را امتحان کنم. سادگی استفادهاش من را متحیر کرد. تعاملهای قبلیام با حاملها این احساس را به من داده بود که موجوداتی پیچیده هستند که به تنظیمات و رسیدگی فراوان نیاز دارند. داکر بیرون از این ماجراست. به محض اینکه داکر و بعد جریانکارهای CI/CD محور را دیدم که داکر بر اساس آنها بنا شده بود، تصمیمم را گرفتم.
داکر ماجرای جدید در مجازیسازی و پردازش ابری است. چرا مردم این قدر دربارهاش هیجان دارند؟
فکر کنم به خاطر ماهیت سبک بودن داکر است که با جریانکار ترکیب شده. سریع است، استفاده از آن راحت است و ابزاری برنامهنویس محور است. ماموریتش در اساس این است: بستهبندی و انتقال کد را ساده کند. برنامهنویسها به دنبال ابزارهایی هستند که بخش زیادی از جزییات این فرآیند را از کار آنها مجزا کند. آنها فقط انتظار دارند ببینند کدی که مینویسند کار میکند. همین مسئله منجر به انواع تضادها با مدیران سیستم میشود؛ زمانی که کد از یک جا به جای دیگر منتقل میشود و در محیطی به جز محیط خود برنامهنویس درست کار نمیکد. داکر تلاش میکند کد شما را تا حد ممکن قابل انتقال سازد و این قابل انتقال بودن را برای کاربر ساده و دوستانه کند.
به نظر شما هیجانانگیزترین قابلیت داکر چیست؟
مشخصا pipeline خروجی. منظورم این است که میبینم افراد زیادی با حاملها، hyper-scaling انجام میدهند. در واقع میتوانید تعداد زیادی حامل روی یک میزبان داشته باشید و آنها به طرز خیرهکنندهای سریع هستند. اما این، به اندازه دیدن کسانی که از آن برای خودکار ساختن روال برنامهنویسی/آزمون/خروجی استفاده میکنند، هیجانزده نمیکند.
داکر چه تفاوتی با مجازیسازی استاندارد دارد؟
داکر مجازیسازی در سطح سیستمعامل است. بر خلاف مجازیسازی hypervisor، که در آن ماشینمجازی(VM) از طریق یک لایه واسط روی سختافزار فیزیکی اجرا میشود (خود hypervisor)، حاملها فضای کاربر را روی هسته سیستمعامل اجرا میکنند. این باعث میشود بسیار سبک و سریع باشند.
فکر میکنید توسعه فناوری ابری، بر توسعه متنباز تاثیر خیلی زیادی داشته؟
فکر میکنم نرمافزار متنباز خیلی به پردازش ابری وابسته است. هم از نظر نرمافزارهایی که روی ابر اجرا میشوند و هم مدلهای توسعه که خود ابر را تشکیل داده. نرمافزار متنباز ارزان است، معمولا نرمافزار متنباز هم از دیدگاه حق کپیرایت و هم کارآیی به صرفه است.
فکر میکنید داکر، مجازیسازی و محیطهای ابری را تغییر خواهد داد؟ فکر میکنید فناوری ابر یک مسیر مشخص دارد یا هنوز جا برای تغییرهای بزرگ هست؟
فکر میکنم فضاهای کاری زیادی وجود دارند که داکر برایشان ایدهآل است، همانطور که پیشتر گفتم، هم در بخش hyper-scale بسیاری از حاملها و هم در زمینه برنامهنویسی/آزمون/خروجی. انتظار دارم شرکتها و عرضهکنندههای زیادی از داکر به منزله یک شکل جایگزین برای مجازیسازی، هم در زمینه سختافزاری و هم ابری، استقبال کنند.
در مورد مسیر فناوری ابر فکر میکنم در چند سال گذشته، تغییرات مهمی را دیدهام. فکر میکنم همچنان تغییرات بیشتری در راه باشد. سوال درباره OpenStack است و اینکه آیا موفق میشود به عنوان یک جایگزین «زیرساخت به عنوان سرویس» (IaaS) یا راهکار ابری دستساز پذیرفته شود. فکر میکنم، ما تنها کمی از قابلیت «نرمافزار[تحت وب] به عنوان سرویس» (PaaS) را حس کردهایم و فضای زیادی برای رشد و توسعه در این باره وجود دارد. همچنین دیدن اینکه قابلیتهای محصولات PaaS چطور رشد میکنند و اینکه آیا با محصولات مبتنی بر ابر مصرفکننده پیوند میخورند یا خیر، هم جالب است.
میتوانید به صورت خلاصه به ما بگویید از ارایه داکر شما در نمایشگاه OSCON امسال انتظار چه چیزهایی را میتوانیم داشته باشیم؟
یک دوره فشرده برای معرفی داکر است. گروه مخاطب، برنامهنویسها و مدیران سیستم هستند که میخواهند کار با داکر را شروع کنند. ما اصول استفاده از داکر و اینکه چطور آن را با جریانکار روزمره یکپارچه سازید را درس خواهیم داد.