روش طراحی، توسعه و استقرار نرمافزار میتواند تاثیر عمدهای بر مصرف انرژی داشته باشد. به همین دلیل استفاده از نرمافزار سبز خیلی مهم است. بر این اساس، شرکتها باید در تلاشهایشان در رابطه با محیط زیست، نرمافزارها را هم در نظر بگیرند. آنها باید استراتژیای داشته باشند که در آن اولویتهای رقابتی مشخص شده باشند؛ در این استراتژی باید امکان انعطافپذیری وجود داشته باشد، چرخه عمر توسعه نرمافزار بررسی و اصلاح شود و در نهایت از نرمافزار «پایدار» برای سبزتر کردن مراکز داده ابری استفاده شود.
بدون شک، نرمافزار ستون فقرات تمامی راهحلهای هوشمندانهای است که برای پشتیبانی از محیط طراحی شده است. برای مثال در جهت تلاش برای مقابله با جنگل زدایی و کاهش انتشار گازهای گلخانهای بسیار مهم هستند. با این حال در بسیاری از موارد خود نرمافزارها بخشی از گسترش سریع میزان ردپای کربن در جهان هستند.
در واقع تکنولوژیهای دیجیتال جدید و در حال تکثیر، باعث بدتر شدن بسیاری از مشکلات زیستمحیطی شده است که با هدف حل آنها ایجاد شدهاند. اما شرکتها میتوانند با در نظر گرفتن ردپای کربن در مراحل طراحی، توسعه و استقرار و با تجدید نظر در چگونگی بعضی از جنبههای عملکرد مراکز داده، که خدمات مبتنی بر ابر را فراهم میکنند، نرمافزار را به بخشی جداییناپذیر در تلاشهای خود به سمت پایداری تبدیل کنند.
برای روشن شدن موضوع باید در نظر گرفت که نرمافزار به خودی خود انرژی مصرف نمیکند یا تشعشعات مضری ندارد بلکه مشکل در روش توسعه نرمافزار و شیوه استفاده از آن است.
نرمافزار روی سختافزار کار میکند و همانطور که نرمافزار به رشد خود ادامه میدهد وابستگی آن به ماشینها برای عملیاتی شدن هم ادامه دارد.
به عنوان مثال بلاکچین پیشرفتهترین راهحلهای سبز موجود مانند ریزشبکهها (Microgrids) را دارد که به استفادهکنندگان اجازه میدهد تا انرژی سازگار با محیط زیست را مبادله کنند و این نوآوری نرمافزاری پشت رمزارزها هم وجود دارد.
در سال ۲۰۱۹ محققان دانشگاه کمبریج برآورد کردند که مقدار انرژی مورد نیاز برای حفظ شبکه بیتکوین از میزان کل انرژی مورد نیاز کشور سوئیس پیشی گرفته است.
به طور کلی انتظار میرود با افزایش فعالیت بخش فناوری اطلاعات و ارتباطات تا سال ۲۰۴۰ میزان ردپای کربن در جهان به ۱۴٪ افزایش یابد. در حالی این مقدار در سال ۲۰۰۷، تنها ۱/۵٪ بود.
توسعه نرمافزار نیاز به انرژی زیادی دارد. در نظر بگیرید ما چه چیزهایی یاد گرفتیم. برای مثال زمانی که یک مدل هوش مصنوعی (AI) را بر روی یک مجموعه داده کوچک و قابل دسترس درباره گلهای زنبق توسعه دادیم. مدل AI در طبقهبندی گونههای مختلف گلها تنها با مصرف ۹۶۴ ژول انرژی به دقت ۹۶/۱۷٪ دست یافت. افزایش بیشتر دقت به میزان ۱/۷۴ درصد، به مصرف ۲۸۱۵ ژول انرژی نیاز دارد. در نهایت برای افزایش ۰/۰۸ درصد باقی مانده تقریباً ۴۰۰ درصد انرژی بیشتری نسبت به مرحله اول نیاز است.
حال همان مثال را در زمینه تصویر بزرگتر و کلی AI نظر بگیرید. امروزه آموزش یک مدل شبکه عصبی میتواند به اندازه پنج ماشین در طول عمر خود، کربن منتشر کند. مقدار توان محاسباتی مورد نیاز برای اجرای مدلهای بزرگ آموزشی AI به طور تصاعدی در حال افزایش است و ممکن است تا ۴ ماه آینده دو برابر شود.
با توجه به آنچه گفته شد، محدود کردن وابستگی به نرمافزار به عنوان ابزاری برای انجام کارها منطقی به نظر نمیرسد، به خصوص در جهان پس از کرونا که در آن کار از خانه یا دورکاری میتواند برای بسیاری از افراد تبدیل به عادت شود. در عین حال محدود کردن نوآوریهای مبتنی بر نرمافزار هم پاسخ مناسبی نخواهد بود.
با این حال شرکتها میتوانند با کارشناسی عملکرد نرمافزار در حوزه بهرهوری انرژی با توجه به میزان پارامترهای سنتی (مثل عملکرد، امنیت، مقیاس پذیری و دسترسی) و با در نظر گرفتن شیوهها و اهداف سبز به عنوان معیاری برای بررسی عملکرد CIO، نرمافزار را به بخشی جداییناپذیر از تلاشهای پایداری خود تبدیل کنند.
در نهایت پاداش مهمتر از چالشها خواهد بود: ساخت نرمافزار سبز به بررسی اولیه بیشتر و دقیقتری نیاز دارد تا به یک محصول با کیفیت بالاتر، سریعتر، تمیزتر و مناسبتر برای آن هدف تبدیل شود.
این ویژگیها همچنین هزینههای اولیه اضافی را جبران میکنند. نرمافزار سبز به شرکتهای بزرگ کمک خواهد کرد تا اهداف ESG خود را که یک معیار عملکردی بسیار مهم برای سهامداران است، برآورده کنند.
در نهایت، پژوهش ما نشان دادهاست که اخیرا مهندسان کامپیوتر به طور قابل توجهی در هنگام انتخاب کارفرما بر شرکتهایی که روی پایداری تمرکز دارند، توجه میکنند. تعهد به نرمافزار سبز را میتوان به عنوان یک عامل ترغیبکننده در نظر گرفت.
چگونه شرکتها میتوانند به سمت نرمافزار سبز حرکت کنند؟
این فرآیند سه مرحله دارد که با تشریح استراتژی شروع می شود و برخی از مرزها را تعیین میکند، سپس چرخه عمر توسعه نرمافزار را هدف قرار داده و به سبز کردن Cloud هم توجه دارند. تا جایی که ما میدانیم هیچ شرکتی به طور کامل در این فرآیند مشارکت ندارد و از مزایای نرمافزار سبز به صورت هدفمند استفاده نمیکند. با این حال تعداد رو به رشدی از کسب و کارها از جمله گوگل، فولکسواگن و Rainforest (که یک شرکت تست نرمافزار است) از روشها و تکنیکهای زیر استفاده میکنند:
تنظیم استراتژی برای هدایت تعاملها و ایجاد انعطافپذیری
انجام این کار باعث خواهد شد تا تیمهای IT به این فکر کنند نرمافزار آنها چه سطحی از اثرات زیستمحیطی را باید تحمل کند. تقریبا همیشه باید بین اهداف کسب و کار و محیط زیست تعادل وجود داشته باشد. مهندسان نرمافزار باید این مرز را به خوبی بشناسند.
به مدل AI که در مجموعه داده گل زنبق به آن اشاره کردیم، فکر کنید. این که آیا انجام آخرین مرحله برای افزایش دقت ارزش انرژی مصرف شده برای آن را دارد یا نه؟ یک تصمیم تجاری است و نیاز به دستورالعمل شفاف در سطوح بالاتر دارد.
داشتن استراتژی انعطافپذیر هم به همان اندازه مهم است و به مهندسان اجازه میدهد تا کارها را در لحظه و از طریق یادگیری با آزمون و خطا اداره کنند.
نرم افزار سبز هنوز یک حوزه جدید است که تا حد زیادی به دانشگاه محدود شده است و هیچ کتاب راهنمایی برای مهندسین در این زمینه وجود ندارد.
در نهایت این استراتژی گسترده باید معیارهای مورد نیاز برای اندازهگیری پیشرفت را نشان دهد. برای بهروزرسانیهای نرمافزاری تنظیم این موارد دشوار نخواهد بود (برای مثال تعیین این که یک نسخه جدید نسبت به نسخه قبلی چقدر انرژی مصرف میکند.) اما برای ساخت یک نرمافزار جدید تعریف این معیارها سختتر خواهد بود.
در ابتدا کار این معیارها میتوانند مواردی مانند کارایی حافظه، مقدار دادههای مورد استفاده و عملیات نقطه شناور (floating-point (mathematical) operations ) در هر ثانیه باشند.
بررسی و اصلاح چرخه عمر توسعه نرمافزار
با پرسیدن این سوال شروع کنید: کوچکترین رد پای زیستمحیطی ممکن که ما میتوانیم با این اپلیکیشن درست کنیم، چیست؟ از این انتظارات برای هدایت اولین مراحل چرخه توسعه نرمافزار استفاده کنید. با افزایش آگاهی انتظارات ممکن است تغییر کند اما میتواند کمک بزرگی برای اطلاعرسانی، امکانسنجی و ارزیابی هرگونه مبادلات بین رویکردهای جایگزین باشد.
شما میتوانید توصیههایی مانند الگوریتمها، زبانهای برنامهنویسی، APIها و کتابخانههایی که میتوانید برای به حداقل رساندن انتشار کربن از آنها استفاده کنید را ارائه دهید. این کار نیاز به ارزیابی دائمی جایگزینهایی دارد که ممکن است کارآمدتر باشند. این ارزیابیها سازگاری نرمافزار را در طراحیهای مختلف سختافزاری با محدودیت انرژی مثل کنترلکنندههای موبایل، ماشین و خانه آزمایش میکند.
در مرحله استقرار میتوانید با کمک تکنیکهایی مثل تحلیل کد پویا بر مصرف انرژی نظارت کنید. دادههایی که جمعآوری میکنید برای درک شکافهایی که بین انتخاب طراحی و پروفایلهای انرژی واقعی وجود دارد، حیاتی خواهد بود.
بعضی از شرکتها به صورت روزافزون ابزارهایی را برای کمک به توسعه سیستمهای آگاه، قدرتمند و کارآمد ارائه میدهند.
به عنوان مثال اینتل ابزارها و منابعی را برای مدیریت مصرف انرژی برای توسعهدهندگان فراهم میکند. دستیار توسعه نرمافزار شرکت به مهندسان اجازه میدهد تا هنگامی که بار کاری زیادی در یک برنامه خاص دارند، انرژی مصرفی سیستم را انداهگیری کرده و کارایی آن را تعیین کنند.
با این حال این ابزارها زیاد در دسترس نیستند. ارزیابی تعاملات کلیدی بین انتشار کربن و اهداف تجاری مانند انعطافپذیری هنوز هم در ابتدای یک راه سخت قرار دارد.
سبز کردن Cloud
اپلیکیشنهای مدرن تقریبا همیشه بر روی ابر مستقر هستند. اما رشد نمایی خدمات مبتنی بر ابر منجر به گسترش سریع مصرف انرژی در مراکز داده شدهاست. امروزه دیتاسنترها حدود ۲ درصد از برق جهانی را مصرف میکنند و تا سال ۲۰۳۰ این مقدار میتواند تا ۸ درصد افزایش پیدا کند.
تا امروز بیشتر تلاشها برای سبز کردن مراکز داده بر روی بهینهسازی سختافزار با کاهش گرمای بیش از حد سرورها و کاهش انتشار کربن با افزایش ترکیب انرژیهای تجدیدپذیر برای تامین برق مورد نیاز متمرکز شده است. این روشها به حل مشکل کمک میکنند. با این حال مفاهیمی مانند نرمافزار پایدار، فرصتهای جدیدی را برای صرفهجویی در مصرف انرژی ایجاد میکنند.
به عنوان مثال حذف کپیهای تکراری از دادهها یا فشرده کردن دادهها به تکههای کوچکتر باعث ذخیره انرژی میشود. بنابراین، قرار دادن واحدهای پردازش گرافیکی برای مدیریت بار کاری در نواحی مرزی مانند نزدیک دستگاه یا کاربر نهایی به کمک شکستن وظایف بزرگ به وظایف کوچکتر و تقسیم آنها در میان بسیاری از پردازندهها، کارآمدی بیشتری ایجاد میکند.
استفاده از معماری سرور سبزتر به احتمال زیاد برای صرفهجویی در مصرف انرژی بسیار مهم خواهد بود.
به عنوان مثال استفاده از سرورهای مجازی به شرکتها کمک میکند تا سرورهای خود را براساس تقاضا افزایش دهند و انرژی را در مراکز داده سازمانی ذخیره کنند. مجازیسازی در اصل با ایجاد محیطهای شبیهسازی شده چندگانه یا منابع اختصاصی از یک سیستم سختافزار فیزیکی واحد ممکن میشود. Containerization در اصل یک پیشرفت در سیستمهای مجازی نسبت به گزینه دیگری است. جایی که محاسبات بدون سرور کاربرها را در سطح سختافزاری از هم جدا کرده و containerization آنها را در سطح سیستمعامل از هم جدا میکند.
معماری اپلیکیشنهای جدیدتر مانند محاسبات بدون سرور یا توابع به عنوان یک سرویس faaS امکان کنترل بیشتری بر ظرفیت و در نتیجه آن حتی امکان کنترل مصرف انرژی را هم فراهم میکند. برای مثال محاسبات بدون سرور منابع زیرساختی را با اجرای توابعی تنها با یک نیازمندی به اشتراک میگذارد در نتیجه برنامهنویسان را وادار میکند تا کارایی کدهای خود را بهبود بخشند.
به عنوان مثال ارائهدهندگان خدمات محاسباتی بدون سرور بزرگ مانند AWS Lambda و توابع مایکروسافت مقیاسگذاری پیوسته را با یک مدل هزینهای pay-as-you-use فراهم میکنند.
این که آیا یک تلفن همراه نیاز به استفاده کارآمدتر از منابع و توان محاسباتی برای صرفهجویی در انرژی دارد یا یک مرکز دادههای ابری که در آن سرورها باید برای نحوه مصرف انرژی بهینهسازی شوندنیاز به بررسی دارد. در هر حال باید پذیرفت که نیاز به نرمافزارهای سبز به رشد خود ادامه خواهد داد.
این متن ترجمه شده مقاله How Green Is Your Software از وبسایت HBR است.
دیدگاهتان را بنویسید