چند وقت پیش ویدیویی در مورد تفاوت دواپس و اسآرای از گوگل دیدم که به نظرم به صورت ساده و مختصر همه چیز رو به خوبی توضیح داده بود. من هم سعی میکنم چیزهایی که ازش یاد گرفتم رو اینجا بنویسم و به اشتراک بذارم.
چون خود ویدیو به صورت مکالمهی بین دو نفره و من مستقلا در مورد خود موضوع میخوام بنویسم کمی متفاوت میشه این متن از ویدیو. ولی تلاش میکنم دخل و تصرفی تو خود بحث نداشته باشم و صرفا بعضی جاها توضیحات بیشتری بدم.
قدیما (نه لزوما از لحاظ زمانی) توسعهدهندهها بدون در نظر گرفتن مسائل مربوط به اجرای کد و نگهداری از کدهای در حال اجرا و زیرساختهای مربوط بهش، سعی داشتند تا فقط روی توسعهی محصول تمرکز کنن و با سرعت بیشتری قابلیتهای جدید به محصول اضافه کنن.
تیمهای عملیاتی (Operation teams) هم تمرکزشون روی قابل اطمینان بودن خدمات و بالا نگه داشتن کدهای در حال اجرا بود.
توی این شرایط توسعهدهندهها تیمهای عملیاتی رو تحت فشار میذاشتن که تند تند کدهاشون رو وارد مدار کنن و از طرف دیگه عملیاتیها برای حفاظت از شرایط باثبات فعلی در مقابل این درخواستها تا جای ممکن مقاومت میکردن و یک دیوار فرضی بین این دو گروه به وجود میاومد. این تقابل گاهی تنشهای زیاد و دشمنیهای ضمنی به وجود میآورد.
دواپس که از ترکیب دو کلمهی Development و Operations به وجود اومده، یک فرهنگه که شامل یک سری راه و روشه تا اون دیوار فرضی بین توسعهدهندهها و عملیاتیها و حتی سایر تیمها رو از بین ببره. دواپس رو میشه به پنج قسمت کلیدی شکوند.
اگر دواپس رو به چشم یک تفکر (فلسفه) ببینیم، اسآرای دستورالعمل اجرا کردن اون تفکره. یا به زبون خودمون برنامهنویسها میشه گفت که اگر دواپس یک اینترفیس بود، اسآرای یک کلاسه که به صورت کامل دواپس رو پیادهسازی میکنه.
پس با این وجود اسآرای باید پنج نکتهای که دواپس میگه رو اجرا کنه. از اونجایی که اسآرای راه حل گوگله بیاید جزئیتر ببینیم چجوری این کار رو انجام میده.
همونجوری که تو فضای برنامهنویسی یک کلاس وقتی یه اینترفیس رو پیادهسازی میکنه میتونه متدهای دیگهای که ربطی به اینترفیس ندارن رو داشته باشه. در واقعیت هم اسآرای (کلاس) میتونه تکنیکها و قواعدی داشته باشه که لزوما ربطی به دواپس (اینترفیس) نداره. یا حتی ممکنه اون کلاس چند اینترفیس مختلف رو پیادهسازی کنه. این به معنیه که راه و روشی که اسآرای پیش میگیره و تکنیکهایی که استفاده میکنه لزوما همونی نیست که افراد دیگهای که دواپس رو پیادهسازی میکنن انجام میدن.
پس بذارید تا در قسمت بعد که در مورد چیستی و تفاوت SLO، SLI و SLA و تاثیرشون تو موفق شدن اسآرای هست بیشتر به این مسئله بپردازیم.
در نتیجه، دواپس و اسآرای دو چیز مقابل هم نیستند که یکی بهتر از اون یکی باشه. برعکس دوتا دوست صمیمی هستند که کمک میکنن تا موانع سازمانی رو از بین ببریم و با سرعت بیشتری نرمافزارهای بهتر بسازیم.