作者 | 付瑩,梁晶,孫郁儼
2023年7月6日,世界迎來有記錄以來最熱的一天。氣候變化是如今人類面臨的最大健康威脅。據(jù)世界衛(wèi)生組織預(yù)測(cè)2030年至2050年期間,氣候變化預(yù)計(jì)每年將造成約25萬人死亡。這是人們可以真切感受到的變化,而背后的主要推手是碳排放。
而在萬物互聯(lián)的數(shù)字化時(shí)代,碳排放很重要的來源之一是互聯(lián)網(wǎng),全球三分之二的人口預(yù)計(jì)將在2023年通過互聯(lián)網(wǎng)連接。隨著人們對(duì)數(shù)據(jù)和網(wǎng)絡(luò)服務(wù)的需求日益增長,互聯(lián)網(wǎng)在數(shù)據(jù)中心、網(wǎng)絡(luò)通信和終端用戶設(shè)備等各個(gè)環(huán)節(jié)都消耗了大量電力,其碳排放也在不斷增加。如果我們將 Web 視為一個(gè)國家,那么它將在電力消耗方面排名第三,在污染方面排名第四。
圖片
軟件膨脹(Software bloat)是一個(gè)老生常談的話題,Web 應(yīng)用中往往充斥著冗余的功能,甚至在企業(yè)軟件領(lǐng)域,可能有 50% 的功能幾乎從未被使用過,80% 的功能價(jià)值很低或沒有價(jià)值。冗余臃腫的復(fù)雜應(yīng)用,不但難以維護(hù)與擴(kuò)展,而且會(huì)增加應(yīng)用的運(yùn)行成本,導(dǎo)致能源浪費(fèi)。實(shí)現(xiàn)低碳 Web 應(yīng)用,并不意味著我們只能通過技術(shù)手段進(jìn)行“壓縮”,我們也可以“壓縮”需求,從源頭減少能源消耗,構(gòu)建一個(gè)功能精簡(jiǎn)、小而全的應(yīng)用。
面對(duì)客戶急切的聲音:“我們需要這個(gè)功能,它對(duì)我們特別重要,我們現(xiàn)在就想要”,我們需要引導(dǎo)他們思考功能背后的價(jià)值:它真的可用、有用?它是僅有的解決方案嗎?它是否可以使用現(xiàn)有功能替代?同時(shí),更小的應(yīng)用也意味著更低的開發(fā)成本和更短的交付周期。
用戶行為與 Web 應(yīng)用的能耗效率息息相關(guān),每當(dāng)用戶開始使用 Web 應(yīng)用,用戶所使用的設(shè)備就會(huì)開始持續(xù)消耗能量,增加 Web 應(yīng)用的數(shù)據(jù)傳輸。用戶行為對(duì) Web 應(yīng)用能耗的影響,可能也遠(yuǎn)超我們的想象——預(yù)計(jì) 52% 的數(shù)字產(chǎn)品碳排放源于用戶設(shè)備。為了最大程度地減少應(yīng)用的使用能耗,我們可以優(yōu)化用戶旅程,精簡(jiǎn)用戶的操作流程,確保用戶通過最少的步驟達(dá)成目標(biāo)。
此外,我們也需要從設(shè)計(jì)出發(fā),思考如何延長 Web 應(yīng)用的壽命。Web 應(yīng)用能兼容老舊設(shè)備,相當(dāng)于延長了設(shè)備的使用壽命,因?yàn)橛脩舨恍枰獮榧嫒輵?yīng)用而更換設(shè)備。
除了用戶體驗(yàn),也有很多可以參考的綠色可持續(xù)設(shè)計(jì),例如:
減少 Web 應(yīng)用頁面權(quán)重最直接的方法,就是避免一切不必要的數(shù)據(jù)傳輸:
(1) 設(shè)定頁面權(quán)重閾值:將頁面確保的數(shù)據(jù)傳輸量保持在盡可能低的水平。通常建議頁面權(quán)重應(yīng)小于 1 MB,最好能夠不大于 500 KB。
(2) 頁面只加載必要的資源,優(yōu)化頁面請(qǐng)求:
(3) 按需使用三方服務(wù):在許多數(shù)字產(chǎn)品和服務(wù)中,追蹤用戶數(shù)據(jù)以及插入廣告的第三方服務(wù)往往會(huì)耗費(fèi)大量能源。此外,這些服務(wù)也會(huì)嚴(yán)重侵犯用戶隱私,并明顯降低用戶體驗(yàn)。第三方服務(wù)如果需要跟蹤數(shù)據(jù),應(yīng)向用戶說明收集的內(nèi)容和使用方式。要盡可能選擇侵入性最小、效率最高的方式收集數(shù)據(jù),確保只收集所需的數(shù)據(jù),并且支持用戶關(guān)閉追蹤。
(4) 采用 PWA 應(yīng)用架構(gòu):漸進(jìn)式 Web 應(yīng)用(Progressive Web App,PWA)通過在用戶設(shè)備上緩存關(guān)鍵信息和信息資產(chǎn)以改善用戶體驗(yàn)并減少數(shù)據(jù)傳輸。用戶在訪問 PWA 緩存數(shù)據(jù)時(shí),可以實(shí)現(xiàn)零網(wǎng)絡(luò)數(shù)據(jù)傳輸。數(shù)據(jù)緩存不但可以減少由數(shù)據(jù)傳輸引起的碳排放,還可以改善網(wǎng)絡(luò)連接不穩(wěn)定對(duì)用戶體驗(yàn)的影響。相較于本地應(yīng)用程序和傳統(tǒng) Web 應(yīng)用,PWA 用戶響應(yīng)速度更快,能耗更低,碳排放更少。
在開發(fā)過程中,我們往往并不會(huì)優(yōu)先考慮運(yùn)行應(yīng)用產(chǎn)生的能源消耗,以及應(yīng)用運(yùn)行的硬件性能。一段低效代碼會(huì)隨著 Web 應(yīng)用的運(yùn)行,會(huì)持續(xù)影響應(yīng)用的能耗水平,我們可能已經(jīng)造成了難以預(yù)計(jì)的計(jì)算資源浪費(fèi)。開發(fā)人員不應(yīng)只考慮通過更簡(jiǎn)單、更快速的方式實(shí)現(xiàn)功能,還應(yīng)考慮功能的性能與能耗,選擇更低碳的方式實(shí)現(xiàn)功能:
我們可以將碳排量和代碼能耗效率作為測(cè)試驗(yàn)收的一部分,以下是一些檢測(cè)工具:
(1) 碳排放計(jì)算工具:
(2) 代碼能耗效率掃描工具:
在部署階段,使用可再生能源的托管服務(wù)部署 Web 應(yīng)用是最便捷有效的減碳實(shí)踐。你可以使用Green Web Foundation首頁提供的 Green Hosting 掃描工具檢測(cè)應(yīng)用的部署服務(wù)是否使用可再生能源。通常云服務(wù)供應(yīng)商會(huì)提供Green Hosting服務(wù),但如果當(dāng)前你使用的供應(yīng)商尚未提供此類服務(wù),可以考慮更換到支持Green Hosting的服務(wù)商。這會(huì)是一個(gè)重要的決策,但實(shí)施起來其實(shí)并不復(fù)雜,也不會(huì)增加成本。此外,數(shù)據(jù)傳輸?shù)奈锢砭嚯x越短,傳輸階段消耗的能源就越少。請(qǐng)盡量選擇將服務(wù)部署在離用戶更近的區(qū)域,尤其是分發(fā)靜態(tài)資源的 CDN 服務(wù)。
在Thoughtworks的一個(gè)內(nèi)部項(xiàng)目上,借助優(yōu)化一個(gè)主要的JS資源大小(從3.12MB 減小至 648KB),結(jié)合每月用戶訪問量和開源工具 CO2.js估算出每月數(shù)據(jù)傳輸減少了17GB,碳排放降低了79%。這僅僅是優(yōu)化了一個(gè)JS資源,如果每個(gè)頁面上的內(nèi)容都做到有用、可用和被使用,在技術(shù)上也能通過壓縮、緩存等方式減少資源大小,累加在一起會(huì)產(chǎn)生巨大的影響,特別是對(duì)于訪問量很大的 Web 應(yīng)用。
目前很多IT從業(yè)者和公司已經(jīng)開始重視網(wǎng)站對(duì)環(huán)境的影響。Valentino (fashion house)與Karma Metrix公司合作來衡量其頁面和網(wǎng)站的能源性能并減少其影響。WordPress的Mailchimp插件的開發(fā)者通過減少其中一個(gè)文件20KB,每月可節(jié)省約59噸二氧化碳。Branch是由一群關(guān)注數(shù)字化技術(shù)與環(huán)境可持續(xù)性的人共同創(chuàng)建的在線雜志。Branch實(shí)現(xiàn)了一種設(shè)計(jì) —— 需求響應(yīng),利用來自電網(wǎng)強(qiáng)度和用戶位置的數(shù)據(jù),按照當(dāng)前用戶所在地的能源情況呈現(xiàn)不同的界面。例如當(dāng)電網(wǎng)需求較低且可再生能源比例較高時(shí),該網(wǎng)站顯示了自動(dòng)加載所有圖像,視頻和媒體內(nèi)容的完整體驗(yàn)。當(dāng)電網(wǎng)需求高且可再生能源利用較少時(shí),會(huì)通過強(qiáng)調(diào)替代文本(alt text)的方式來展示媒體內(nèi)容。用戶可以選擇點(diǎn)擊展示內(nèi)容,但內(nèi)容不會(huì)自動(dòng)加載。
此外,W3C的可持續(xù)網(wǎng)頁設(shè)計(jì)社區(qū)目前正在合作制定一套指導(dǎo)方針,以幫助從事 Web 工作的人群創(chuàng)建更環(huán)保的數(shù)字產(chǎn)品和服務(wù),希望如同 Web Accessibility 權(quán)威標(biāo)準(zhǔn)WCAG(Web Content Accessibility Guidelines)一樣,建立互聯(lián)網(wǎng)的環(huán)境標(biāo)準(zhǔn)。目前有一個(gè)草案提議在HTTP headers加入請(qǐng)求的碳排放數(shù)據(jù),以便服務(wù)提供商和消費(fèi)者可以就網(wǎng)絡(luò)使用情況做出更明智的決策。
技術(shù)手段可以幫助減少 Web 對(duì)環(huán)境的影響,但不僅僅是減碳。
當(dāng)我們創(chuàng)建更易于訪問的數(shù)字產(chǎn)品來消除內(nèi)容障礙時(shí),通常還會(huì)提高性能和效率,從而會(huì)使用更少的資源。這意味著在助力 Web 無障礙性的同時(shí),也提高了性能。
摩爾定律指出每 18 個(gè)月硬件的運(yùn)算能力就會(huì)提升一倍,但軟件卻無法跟上硬件的進(jìn)步。維爾特定律提到軟件變慢的速度永遠(yuǎn)快過硬件變快的速度,軟件效率每18個(gè)月減半,從而抵消了摩爾定律的所有好處。因此相比新設(shè)備,軟件在老舊設(shè)備上會(huì)耗費(fèi)越來越多的資源,造成不必要的碳排放,而低碳實(shí)踐可以減少頁面權(quán)重,所以一定程度上可以幫助精簡(jiǎn)軟件,讓軟件在舊設(shè)備上運(yùn)行順暢,延長舊設(shè)備更換周期,減少浪費(fèi)。
據(jù)《2022年中國可持續(xù)消費(fèi)報(bào)告》統(tǒng)計(jì),消費(fèi)者對(duì)低碳消費(fèi)生活方式的理解主要集中在“綠色出行”(72.51%)、“環(huán)保材料”(66.68%)、“循環(huán)再生”(65.79%)、“垃圾分類”(60.76%)、 “節(jié)水節(jié)電”(60.33%)、“新能源車”(60.14%)這幾項(xiàng),而絕大多數(shù)互聯(lián)網(wǎng)用戶尚未注意互聯(lián)網(wǎng)也是需要綠色低碳的。實(shí)現(xiàn)綠色互聯(lián)網(wǎng)之路需要實(shí)踐者和使用者共同努力,因此可以借助 Web 應(yīng)用的低碳實(shí)踐構(gòu)建用戶意識(shí)。公眾低碳消費(fèi)意識(shí)越來越強(qiáng),也有利于我們?nèi)ホ`行負(fù)責(zé)任技術(shù)。
作為IT從業(yè)者,我們應(yīng)該踐行負(fù)責(zé)任技術(shù) —— 積極思考并探索技術(shù)的價(jià)值、不可測(cè)的后果和負(fù)面的影響,主動(dòng)管理、減緩和降低技術(shù)的風(fēng)險(xiǎn)與傷害。我們是一切實(shí)踐的關(guān)鍵起點(diǎn),如何在早期最大限度避免把人所固有的認(rèn)知偏見和思維慣性帶入到設(shè)計(jì)和開發(fā)中顯得尤為重要。
Web 應(yīng)用作為碳排放的一個(gè)重要來源,我們需要將低碳 Web 實(shí)踐融入到日常應(yīng)用開發(fā)的過程中。在業(yè)界,已經(jīng)有很多在低碳 Web 方面的研究,從 Web 應(yīng)用的設(shè)計(jì)到部署運(yùn)維都提供了相應(yīng)的工具和最佳實(shí)踐供大家參考。本文將相關(guān)實(shí)踐以軟件生命周期為主線進(jìn)行了整理匯總,同時(shí)也分享了簡(jiǎn)單的案例,供同業(yè)人員進(jìn)行參考和了解。
隨著氣候變化的影響日益增大,部分國家已經(jīng)開始著手制定相關(guān)標(biāo)準(zhǔn)和政策,而我們 Web 從業(yè)者需要從意識(shí)、實(shí)踐等多方入手,在優(yōu)化 Web 應(yīng)用的時(shí)候,不僅僅為了性能和體驗(yàn)而優(yōu)化,也為了可持續(xù)而優(yōu)化,共同構(gòu)建綠色地球。
本文鏈接:http://www.www897cc.com/showinfo-26-5146-0.html低碳 Web 實(shí)踐指南
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com
上一篇: Golang 中的 IO 包詳解:?jiǎn)巫止?jié)操作接口
下一篇: 如何高效使用Gherkin