اتفاقات بد، منحصر به دنیای نرم افزار نیستن و همه جا میافتن. اما خب توی دنیا ما تقریبا یک چیز روزمره هستن. قطع شدن یک سرویس، کرش کردن دیتابیس، باگ و برنامه نویس تازه کاری که قارتی پوش کرده روی سرور لایو و فیلترینگی که نصفه شبی باعث شده سرور نتونه از ان پی ام آپدیت بشه، اتفاقهایی مرسوم هستن.
توی دنیای حرفهای، اتفاق بعد می افته و تیم لایه اول ساپورت یا تکنیکال ساپورت لایه دوم و غیره لازمه با تمام سرعت ممکن مشکل رو برطرف کنن. مثلا اگر در سیستم استعلام جریمه رانندگی خراب بشه و درست کار نکنه، بر اساس قرار، مثلا توی چهار ساعت لازمه سرویس کاملا برگرده و درست کار کنه. شما ممکنه در این چهار ساعت سیستم رو ریبوت کنین یا کلا از مدار خارج کنین و سرویس دوم رو بالا بیارین و غیره و مساله از طریق یک workaround حل بشه اما فرداش لازمه مساله به شکل واقعی حل بشه. یعنی نوشتن و ارائه Root Cause Analysis یا همون RCA.
این یک داکیومنت است که توضیح می ده مشکل چرا پیش اومده بود و احیانا چطور می شه جلوی اتفاق مجددش رو گرفت. در واقع شما دارین علت ریشه ای رو تحلیل می کنین. یک مدیر خوب همیشه بعد از هر اتفاق باید از شما RCA بخواد تا ۱) بتونه بفهمه مشکل چرا پیش امده ۲) جلوش رو بگیره و ۳) دفعه بعدی مرجعی داشته باشه برای اینکه باید چیکار کنه.
اما نوشتن RCA کار بسیار ناخواستنی و نچسبی است ولی هر جای حرفهای که کار کنین لازمه بلدش باشین. آر سی ای معمولا در پنج قدم نوشته میشه:
جمع کردن شواهد
تشریح مساله
تحلیل علت و معلولها
پیشنهاد راه حلها
نوشتن RCA
البته مساله همیشه هم به همین راحتی ها نیست و تکنیک هایی هست برای کشف اینکه مشکل کجا بوده. از ترابل شوتینگ سیسمتاتیک تا ۵ بار جواب دادن به این سوال که «چی شد که اینطوری شد؟» و غیره و غیره وجود داره. اما بازم مواردی هست که نمی شه بهش جواب داد. مثلا ممکنه فلان سرویس قطع شده باشه. جواب اول به «چی شد که اینطوری شد؟» اینه که «اپلیکیشن پایین بوده» و جواب بعدی به «چرا؟» این باشه که «چون دیتابیس کرش کرده» و بعد برسین به اینکه «دیتابیس ساعت ۴ کرش کرد» و در جواب به اینکه «چی شد که کرش کرد؟» بعدی جوابی نداشته باشین. حالا شاید بگین:
دیتابیس زاپاس داشته باشیم
لاگ بیشتر اضافه کنیم که ببینیم دیتابیس چرا ممکنه کرش کنه
اولی پر دردسر و گرون است و در واقع فقط فراموش کردن صورت مساله است و دومی یک پینشهاد برای داشتن RCA بهتر در صورت بروز مشکل مجدد.
توی این جادی.تی وی یک هک می کنیم (: دوستان خوب دلیون اجازه دادن که با تمرکز روی بازی کلاینت سایدی که طراحی کرده بودن، یک شکل از هک رو آموزش بدم: شنود ارتباطات با ابزارهای مرد میانی و دستکاری اونها به شکلی که لازم داریم تا بتونیم صبحانه مجانی بخوریم (:
همه چیز این ویدئو قاتی پاتیه! یک موزیک عالی داره که من عاشق لباس هاشون هستم و دوست داشتم یک لباس اونجوری داشتم و شماره رو اشتباه می گم و به یک دلیل که توضیحش می دم، ردهتی قدیمی نصب می کنم! زندگی باید فان باشه! نصب «لینوکس حرفه ای» هم سخت نیست.. نکست نکست نکست! توی این ویدئو ترس شما از ردهت می ریزه.
دوست خوب هکرم میلاد زنگنه نکته جالبی رو بهم یادآوری کرده:
امروز یه چیز جالب دیدم که نشون میده که برنامه هایی مثل cat و … خروجی کاملی از اون چیزی که واقعا درون فایل هست بهمون نشون نمیدن. برای مثال:
دلیل این اتفاق اینه که cat واقعا همه کاراکترها رو به همون شکلی که هستن توی خروجی استاندارد برامون چاپ نمیکنه و وقتی به \033[2A ( یا بطور کلی تر \033[XA )میرسه یکار خاص میکنه. این عبارت باعث میشه وقتی برنامه به این قسمت رسید به تعداد X خط (توی این مثال X دو هست) کرسر رو بالا ببره و باعث بشه X خط بالایی بازنویسی شه و در نتیجه باعث بشه ما گول بخوریم!
چنین چیزی ممکنه خیلی برای افراد عادی با اهمیت جلوه نکنه اما برای ادمین ها و لینوکسی ها که دائم با اسکرپت ها سرو کار دارن مهمه چون با همچین حقه ای ممکنه بدون اینکه بفهمن اسکریپت های مخربی رو اجرا کنن.
حرفش کاملا درسته و اکثرا هم میدونیم که Escape Characterها میتونن خروجی ترمینال رو تغییر بدن (مثلا رنگی کنن، پاک کنن، جابجا کنن، …) ولی اکثرا توجه نمیکنیم که یک اسکریپت در cat ممکنه چیز دیگه ای از اون چیزی که واقعا هست نشون داده بشه. در کل همیشه میگیم که بدون فهمیدن هیچ چیزی نباید روی کامپیوترتون اجراش کنین و الان ظاهرا باید بگیم که بعضی اسکریپت ها حتی ممکنه اون چیزی که در لحظات اول به نظر میرسن هم نباشن! یک مدیر سیستم مثل گرگ با چشم باز میخوابه!
پی.نوشت. ایریکس اشاره کرد که میشه از سوییچ A در دستور cat استفاده کرد تا همه کاراکترها اونطوری که واقعا هستن دیده بشن (زندگی از این سوییچها نداره؟ البته اگر داشت خیلی لوس می شد فضا)
ما مدیرهای سیستم کسانی هستیم که سیستم های کامپیوتری رو بالا نگه می داریم، وقتی برنامه نویس ها برنامه هاشون تموم می شه اونها رو تحویل می گیریم و در اختیار جامعه می ذاریم، شبکه ها رو امن نگه می داریم، وقتی دوستان از اینترنت ملی به عنوان فرصت درآمدزایی استفاده می کنن، تلاش می کنیم سایت های مردم بالا بمونه و هنگامی که سایت های خبری با هیجان در مورد «جدیدترین حفره امنیتی» قلمفرسایی می کنن مطمئن میشیم این حفره دقیقا چیه و چجور باید بسته بشه و اونو می بندیم. ما مدیرهای سیستم گاهی خیلی خوش اخلاقیم و همه دوست دارن با ما گپ بزنن و گاهی خیلی بداخلاقیم و اصلا هیچ کس دوست نداره کارش به ما بیافته (اصلا بیاین بهشون بگیم مدیرسیستمنما!).
مدیرهای سیستم کسانی هستن که پشت وبلاگ شما، پشت پرینتر شما، پشت شبکه شما و خیلی جاهای دیگه ایستادن و تا وقتی مشکلی پیش نیاد، دیده نمی شن – تقریبا شبیه دروازهبانهای دنیای دیجیتال.
امروز ۳۱ جولای، روز مدیرهای سیستم است. مهترین ۲۴ ساعت جهان و یک تعطیل ملی (که شانس آوردیم خورده به جمعه وگرنه بازم باز بود – هرچند که در این تعطیل هم داریم ایمیل کاری می زنیم و جواب می دیم). اگر فکر مکنین دوست دارین تو این جشن شریک باشین کمی فکر کنین که مدیر سیستم شما کیه و ازش با یک چیز خوب تشکر کنین یا حداقل روز رو بهش تبریک بگین. مثلا اسمس بزنین که «امروز روز مدیر سیستم ها است! روزت مبارک!» یا اینکه اگر بیشتر دوستش دارین فردا یا حتی امروز دعوتش کنین بیرون، بهش یک پیتزا، کارت پستال، هدیه کوچیک، هدیه گیکی باحال، تی شرت یا کتاب بدین که خوشحال بشه.
اگر هم مدیر سیستم هستین تو کامنت ها بگین چی شما رو از همه بیشتر خوشحال می کنه (:
ما روزانه ۲.۵ کویینتیلیون بایت دیتا درست می کنیم… اگر نمی دونین کویینتیلیون چقدره بذارین این شکلی بگم: نود درصد کل دیتایی که در جهان هست، در دو سال گذشته تولید شده! سیگنال های جی پی اس، سوشیال مدیا، کلیکها، سنسورها، ویدئوها، عکسها، خریدها، خوش اومدن ها، رفتارها و هر چیزی که فکرش رو بکنین الان دیتا است. این دیتا بزرگه! این دیتا در دست دانشمندهای داده است… رادیو گیک شماره ۵۳ برای شما مساله رو رازگشایی می کنه با ما باشین تا از آر، هدوپ، دانشمند داده، داده های بزرگ، یادگیری ماشینی و هر چیز دیگه مد روز عقب نمونین. در این شماره امیرصدیقی با تلفن ما رو همراهی می کنه.
چیزی که نتونین اندازه گیری کنین رو نمی تونین مدیریت کنین.
سرفصلها:
– حجم اطلاعات
– مثال کتابفروشی
– مثال کشورهایی که سراغش رفتن. از آمریکا تا هند
– مثال شرکت ها
– مثال علم
– در سه بخش حرف می زنیم: بیگ دیتا چیه، دیتا ساینس چیه، یادگیری ماشینی چیه
یادداشت های شخصی
اینها یادداشت های شخصی هستن. شدیدا توصیه می کنم به جاشون از بالای مطلب خود پادکست رو گوش کنین (:
این مفهوم نسبتا جدیده.. مال دهه اول قرن بیست و یک و شرکت ها و دولتهای زیادی هم سراغش رفتن.
اوباما: طرفدارشه. دی جی پاتیل. انتخابات ۲۰۱۲
بیگ دیتایی های هند هم از عوامل موثر پیروزی در انتخابات ۲۰۱۴ هند بودن
اینترنت چیزها
ebay:دو تا دیتاورهاوس داره (انبار داده) که کلا ۴۶ پتابایت است. یک چهل پتابایت هم هادوپ داره برای سرچ
آمازون: دیگه گفتن نداره… مستقل از خریدارها حدود نیم میلیون هم فروشنده داره. بزرگترین کلاستر لینوکس دیتابیسی جهان با حدود پنجاه ترابایت اطلاعات
فیسبوک: ۵۰ میلیارد عکس…
و البته توی علم هم هست
لارج هاردون کلایدر ۱۵۰ میلیون سنسور داره که در ثانیه ۴۰ میلیون واحد اطلاعاتی تحویل می دن.. این سیستم در ثانیه تقریبا ۶۰۰ میلیون برخورد ذرات درست می کنه که بعد از حذف کردن ۹۹.۹۹۹۹۵ تاشون، حدود ۱۰۰ برخورد در ثانیه رو نگه می داره که چیزی است که دانشمندها دنبالشن.
صنایع ای که بیشتر نیازمند داده کاوی و Big Data هستند:
۱- تجارت الکترونیک
شرکت ها با استفاده از آنالیز رفتار مشتریان خود می توانند محصولات بهتری را در اختیارشان قرار دهند که در این زمینه می توان به شرکت آمازون اشاره نمود.
۲-تبلیغات دیجیتالی.
در حوزه تبلیغات کارفرمایان می توانند بر اساس علایق مشتریان خود تبلیغات مناسب را نشان دهند
۳- در صنعت بازی سازی
با استفاده از جمع آوری داده و تحلیل رفتاری جامعه می توان بازی مناسب تولید کرد کنسول هایی مثل ایکس باکس با تعریف یک حساب کاربری آنلاین به تحلیل رفتاری کاربران خود می پردازد.
بیگ دیتا اشاره داره به دیتا ست هایی اونقدر بزرگ که روش های کلاسیک نمی تونن جوابگوش باشن. در اصل ما تعریف دقیقی از بیگ دیتا نداریم و به نظر من قشنگترین تعریف اینه که بگیم بیگ دیتا دیتایی است که روی یک ماشین جا نمی شه. این «جا نشدن» رو با سه تا V نشون می دن: volume, variety, velocity. حجم تنوع نرخ تولید.
حجم
گفتم دیگه.. در دو سال اخیر ما ۹ برابر کل تاریخ بشر اطلاعات تولید کردیم! در واقع ذخیره کردیم. الان می گن در هر ثانیه برابر کل اطلاعاتی که بیست سال قبل روی اینترنت بوده بهش اطلاعات اضافه می شه! ختمین اینه که فروشگاه والمارت ۲.۵ پتابایت اطلاعات مشتریان رو در هر ساعت جابجا می کنه یعنی تقریبا ۲۰ تا کابینت پر از کاغذ…
سرعت
و سرعت این حجم از اطلاعات هم زیاده. گوگل مدعی می شه که با نگاه کردن به سرچهای در حال انجام، سریعتر از سازمان پیشگری از بیماری آمریکا می تونه شیوع بیماریها رو تشخیص بده، تیمی توی ام آی تی به شکل زنده از روی سیگنال های موبایل کشف می کنن که در فروشگاهها چند نفر مشغول خرید عید هستن و HFT رو بگم. اینها مستقیما پول هستن برای کسی که بتونه اطلاعات رو سریعتر جابجا کنه.
تنوع
فقط فکر کنین که چطوری دارین اطلاعاتتون رو با همه به اشتراک می ذارین. من امروز ۳ گیگ آرشیو عکس روی گوگل آپلود کردم. چندین توییت فارسی کردم و یکی دو تا انگلیسی. این متن رو دارم می نویسم و شما صداش رو می شنوین ولی اینها چیزهایی هست که خودم می بینم. بارها توی بانکم لاگین کردم، با گوشی در دستم راه رفتم، با موبایلم بازی کردم، توی گیت برنامه پوش کردم، خرید کردم، اسمس فرستادم، وایبر زدم و ایمیلم رو چک کردم و توی وب چرخیدم. تک تک اینها ذخیره شدن که بعدا … علیه من استفاده بشن! یادتون باشه توییتر تازه ۲۰۰۶ ظاهر شد و فیسبوک تازه ۲۰۰۴ و آی پد ۲۰۱۰ و اینها هر کدوم به یک شکل باعث انفجار ثبت اطلاعات در اشکال گوناگون شدن.
این دیتا از کجا می یاد؟ صفحه ۹ فایل ۴
ما این دیتا رو کجا ذخیره می کنیم؟
تعداد سرورها از اینفوگرافی و اینکه حالا اینا رو چطوری ذخیره کنیم؟
توسعه عمودی و افقی رو بگم
مفهوم Hdfs و بیگ تیبل و مپ ردیوس گوگل در ۲۰۰۴ و بعد تلاش های آپاچی
بعد هادوپ و تکنولوژی های روش مثلا hive
هادوپ: فیسبوک و توییتر و لیندکدین و شرکت هایی مثل کلاودارا یا هورتن ورکز.
حالا چطوری می شه از این دیتاها استفاده کرد؟
مپ ردیوس رو توضیح بدم با یک مثال (چه مثالی به ذهنم می رسه اون موقع یعنی؟)
مفاهیمی مثل هایو و ایمپالا
دیتابیس های noSQL
اما کی با این دیتاها کار میکنه؟
دیتاساینتیست ها! افرادی که مهارتی دارن که قبلا اصولا وجود نداشته.. یا بهتر بگم ترکیب یاز مهارت هایی رو دارن که قبلا متخصصهاش پر بودن ولی هر کدومشون فقط در یک بخش مهارت داشتن. دیتاساینتیست ها در مورد شیوه های استخراج و استفاده از اطلاعات کار می کنن. گاهی کار به مهملی اینه که کلی اطلاعات از یک فایل اکسل با فرمت ناسازگار با فارسی رو بخونین و گاهی به این باحالی است که کشف کنین در این لحظه بهترین ماشین دست دومی که می شه خرید بر اساس اطلاعات فلان سایت چیه. اصطلاح توی ۲۰۰۱ درست شده و برای دانشمند داده بودن یک نفر باید چیزهایی مثل اینها رو بلد باشه:
مفاهیم آمار
برنامه نویسی آماری
برنامه نویسی (پایتون، آر، …)
کارهای مقدماتی با دادهها: خوندن، تمیزکردن، انتقال دادن و …
یادگیری ماشینی
نمایش اطلاعات / ویژوالایزیشن
درست کردن داشبوردها و نشون دادن اطلاعات
دیتابیس (کاساندرا، اچ بیس، مونگو دی بی)
بیگ دیتا
چیکار می کنن؟
گاهی کارهای خیلی ساده. در حد اینکه کیا مشتری ما هستن یا اینکه کی قبلا زنگ زده
گاهی کارهای جالبتر در این حد که چه مثالی بزنم؟ چاره به کیا می تونه چی بفروشه الان و گاهی کارهای خیلی جالبتر مثل اینکه پول های دولت رو شفاف کنیم (آمریکا و گیت هاب یا سوئد و انتشار درآمدها) یا مثلا روشی برای کشف اینکه نویسنده هری پاتر، چه کتاب دیگه ای رو با اسم مستعار منتشر کرده (کمی بحث در این مورد).
و البته این آدم ها کیان؟ هیچکدوم منبع اطلاعاتیشون تلگرام نیست (: و صفحه بیست شش که می گه خیلی خوشحالن و کمی بحث در مورد الگوریتم هایی که باید بلد باشیم