亞馬遜可持續軟件工程實踐

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在技術領域裏,2021年是特殊的一年。這一年是Amazon Web Services 成立的第 15 週年,這一切始於亞馬遜的對象存儲解決方案S3。在過去的這15年裏,我們可以看到雲計算改變了整個世界。並且有越來越多的客戶將業務遷移到公有云,開啓了企業數字化之旅。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"未來十年,雲計算髮展將是一個持續擴張和不斷迭代的過程。與此同時,“可持續發展”已成爲全球、全國以及各個企業必須考慮的主題之一。作爲全球領先的科技企業亞馬遜也在技術的可持續發展性上不斷探索,從基礎設施到軟件設計,有一整套自下而上的具有前瞻性的解決方案實現它。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"作爲亞馬遜雲科技可持續發展架構副總裁,Adrian Cockcroft在9月11日的"},{"type":"link","attrs":{"href":"https:\/\/mp.weixin.qq.com\/s?__biz=MzA4ODMwMDcxMQ==&mid=2650959377&idx=1&sn=645f11c492134f20b6ddafab6a2d45b2&chksm=8bda83d9bcad0acfd5bc03db61fb4e4dd5b5830eca78d0a5604a84d7bc5759007911204343d2&mpshare=1&scene=1&srcid=09025Sag8AbTPaHf0EExlgWe&sharer_sharetime=1630544783736&sharer_shareid=e3873f5a9e4cfcdaf24ca5d144af1503&key=256dad3179984e78c82aac1d970b08052b425584a80d1fc3289a6d9c00c957d14b81260d1072840992ef4e074dbb6ad3a9b15ee405bc9d5965ea4c1fd9f2d92190f99ea6601edcb03b6459e5791c04036b4f50184ec767f9eb74660a3a7244a78d935f03a5bed804537ce5989e616b95819925450e17889700b6024c35f1f0c9&ascene=1&uin=Mjk3OTQ4MDc3OQ%3D%3D&devicetype=Windows+10+x64&version=63010029&lang=zh_CN&exportkey=A3CGFDdKEscGiNFJZtWnM5o%3D&pass_ticket=JON0cwBpvy9IHWZ0rWeiwOHv%2FQbbIDS7UxzDKLO8iqg0IDlbMwkmV8B7nWg1UQ4G&wx_header=0&fontgear=2","title":"xxx","type":null},"content":[{"type":"text","text":"亞馬遜雲科技中國峯會 Dev Day"}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"上發表了主題演講,講解了亞馬遜的可持續發展戰略,更重要的是,他從開發者的角度闡述了亞馬遜雲科技如何進行可持續軟件工程實踐,我們可以從中得到非常多的啓發。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"我們爲什麼要關注“可持續發展”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.sustainablewebmanifesto.com\/","title":null,"type":null},"content":[{"type":"text","text":"可持續網絡宣言"}]},{"type":"text","text":":如果互聯網是一個國家,那麼它製造出來的二氧化碳排放量,排在全球第七位。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"聯合國於2015年制定了一個全球框架《"},{"type":"link","attrs":{"href":"https:\/\/zh.wikipedia.org\/wiki\/%E5%B7%B4%E9%BB%8E%E5%8D%94%E5%AE%9A","title":null,"type":null},"content":[{"type":"text","text":"巴黎協定"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"》,隨後各締約國紛紛制定了“碳中和”路徑和目標,對地球環境的健康發展做出承諾。今年兩會,中國也將“碳中和”和“碳達峯”寫入政府工作報告,目標在2030年前實現“碳達峯”,2060年前實現“碳中和”。毋庸置疑,可持續發展已經成爲不言而喻的社會共識。但在社會共識之下,還需要個人、企業、政府等各類社會主體的參與——其中體量龐大的科技企業是至關重要的參與者。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"目前全球互聯網用戶超過 46 億,隨着互聯網普及率的上升,互聯網很快將產生近 10 億噸二氧化碳,用電量相當於全球的 "},{"type":"link","attrs":{"href":"https:\/\/serving.green\/#co2-generation","title":null,"type":null},"content":[{"type":"text","text":"10%"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。其中爲數據中心供電所需的能源量大約"},{"type":"link","attrs":{"href":"https:\/\/www.datacenterknowledge.com\/industry-perspectives\/data-center-dilemma-our-data-destroying-environment","title":null,"type":null},"content":[{"type":"text","text":"每四年翻一番"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",就碳排放而言,ICT 行業自 2007年以來一直貢獻了"},{"type":"link","attrs":{"href":"https:\/\/c2e2.unepdtu.org\/wp-content\/uploads\/sites\/3\/2020\/03\/greenhouse-gas-emissions-in-the-ict-sector.pdf","title":null,"type":null},"content":[{"type":"text","text":"2-6%"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",幾乎與航空業持平。 "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"好消息是,雖然 ICT 和雲採用呈指數級增長,但能源使用和碳排放卻能相對保持不變,因爲主流雲提供商的"},{"type":"link","attrs":{"href":"https:\/\/www.datacenterdynamics.com\/en\/analysis\/huge-data-center-efficiency-gains-stave-energy-surge-now\/","title":null,"type":null},"content":[{"type":"text","text":"超大規模數據中心"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"正顯著地提高效率。"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"埃森哲的分析表明,倘若採用綠色方法遷移至公有云,全球二氧化碳排放量每年可減少5,900萬噸,這相當於動動手指就能減少"},{"type":"link","attrs":{"href":"https:\/\/siliconangle.com\/2020\/12\/01\/cloud-migration-good-sustainable-cloud-better-reinvent\/","title":null,"type":null},"content":[{"type":"text","text":"2,200萬輛汽車"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"的碳排放量!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"從目前全球情況來看,亞馬遜、谷歌、微軟"},{"type":"link","attrs":{"href":"https:\/\/www.accenture.com\/_acnmedia\/PDF-142\/Accenture-Strategy-Green-Behind-Cloud-POV-CN.pdf","title":null,"type":null},"content":[{"type":"text","text":"這三家"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"世界級科技巨頭引領了“綠色雲”改造。亞馬遜表示將提前十年達成《巴黎協定》,並在 2025 年實現 100% 可再生能源。並且還成立了 20 億美元的氣候承諾基金,投資那些能幫助亞馬遜達成目標的公司。谷歌大膽承諾,到2030年實現數據中心全天候無碳運行,而不是依靠每年的直接能源匹配。微軟(Microsoft)自2012年起實現碳中和,並承諾通過電力購買協議,到2025年實現數據中心完全使用可再生能源。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"而在中國,互聯網科技企業也都在不斷加大力量投入到碳中和改造中。今年8月國際環保組織綠色和平(Greenpeace)發佈了中國科技巨頭《"},{"type":"link","attrs":{"href":"https:\/\/www.eet-china.com\/mp\/a69760.html","title":null,"type":null},"content":[{"type":"text","text":"綠色雲端2021"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"》排行榜,從能源信息披露、節能減碳表現、可再生能源方面合梳理了中國互聯網科技企業的氣候行動,相比去年,中國互聯網科技企業整體平均得分上升11%。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在9月11日的"},{"type":"link","attrs":{"href":"https:\/\/mp.weixin.qq.com\/s?__biz=MzA4ODMwMDcxMQ==&mid=2650959377&idx=1&sn=645f11c492134f20b6ddafab6a2d45b2&chksm=8bda83d9bcad0acfd5bc03db61fb4e4dd5b5830eca78d0a5604a84d7bc5759007911204343d2&mpshare=1&scene=1&srcid=09025Sag8AbTPaHf0EExlgWe&sharer_sharetime=1630544783736&sharer_shareid=e3873f5a9e4cfcdaf24ca5d144af1503&key=256dad3179984e78c82aac1d970b08052b425584a80d1fc3289a6d9c00c957d14b81260d1072840992ef4e074dbb6ad3a9b15ee405bc9d5965ea4c1fd9f2d92190f99ea6601edcb03b6459e5791c04036b4f50184ec767f9eb74660a3a7244a78d935f03a5bed804537ce5989e616b95819925450e17889700b6024c35f1f0c9&ascene=1&uin=Mjk3OTQ4MDc3OQ%3D%3D&devicetype=Windows+10+x64&version=63010029&lang=zh_CN&exportkey=A3CGFDdKEscGiNFJZtWnM5o%3D&pass_ticket=JON0cwBpvy9IHWZ0rWeiwOHv%2FQbbIDS7UxzDKLO8iqg0IDlbMwkmV8B7nWg1UQ4G&wx_header=0&fontgear=2","title":null,"type":null},"content":[{"type":"text","text":"Dev Day"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"上,Adrian Cockcroft表示亞馬遜雲科技取得的成績非常顯著:"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"亞馬遜雲科技的基礎設施能源效率比普通美國企業數據中心高出3.6倍。同時,亞馬遜在執行相同任務時,可以減少88%的碳足跡。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/a5\/a5d8fc523b788e035cc330b022c2a210.png","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"這是多種因素促成的結果,Adrian Cockcroft講述了亞馬遜探索出來的構建綠色雲服務的幾條有效路徑。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"第一是水資源的保護"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",亞馬遜雲科技使用蒸發冷卻,循環用水,並儘可能在現場處理水。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"第二是採購可再生能源"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",亞馬遜雲科技現在是美國和歐洲最大的可再生能源買家。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"第三是移除了傳統的不間斷電源(UPS)"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",轉而採用了集成在每個機架的小型電池組合自定義電源。以往,每次在電壓和直流電\/交流電轉換當中都會有一些功率損失,通過移除傳統的UPS,優化機架電源,減少最終轉換等措施讓能量損失降低約35%。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"第四是探索創新的服務器設計"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。中央處理器是現代計算機最耗電的部分,亞馬遜雲科技自研、基於ARM架構的Amazon Graviton2處理器每瓦特性能比其他業界標準流程"},{"type":"link","attrs":{"href":"https:\/\/www.anandtech.com\/show\/15578\/cloud-clash-amazon-graviton2-arm-against-intel-and-amd","title":"xxx","type":null},"content":[{"type":"text","text":"高2 ~ 3.5 倍"}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"第五是在新數據中心建設中增加使用低碳混凝土"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",它能夠減少新建築碳排放量的25%。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"可持續軟件工程實踐"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"很多人可能認爲遷移到雲就足夠了,以至於忽視了優化內部效率。實際上,遷移到雲上的每個工作負載都會消耗能源,有一些任務還尤其耗電,比如有計算密集的AI或ML業務。一項對自然語言處理模型的研究說明了問題的嚴重性,"},{"type":"link","attrs":{"href":"https:\/\/medium.com\/@AINowInstitute\/ai-and-climate-change-how-theyre-connected-and-what-we-can-do-about-it-6aa8d0f5b32c","title":null,"type":null},"content":[{"type":"text","text":"研究表明"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"訓練一個 NLP 模型產生的碳排放量相當於從紐約到北京的航班往返 125 趟。 "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"另一項"},{"type":"link","attrs":{"href":"https:\/\/www.fastcompany.com\/90346595\/the-internets-youtube-habit-has-the-carbon-footprint-of-a-small-city","title":null,"type":null},"content":[{"type":"text","text":"研究"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","text":"量化了觀看YouTube視頻"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"所產生的碳足跡,它等同於一個小城市的二氧化碳排放量。這項研究同時指出,如果讓25%的音樂視頻改進爲後臺播放,那麼一年可以節省 323,000 噸二氧化碳當量,這等同於每年 50,000 輛汽車的排放量。研究團隊的成員之一Chris Preist教授強調:“一個人對環境的影響很小,但把全球服務加起來時,它們可能會產生明顯的影響”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"對於我們技術人來說也是一樣,當手下的那一份“綠色”代碼部署到成千上萬、甚至過億設備上時,所產生的節能效應將是巨大的,所以大家有責任確保我們的技術能更加“可持續發展”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"那麼作爲開發者,我們到底能做些什麼呢?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"可持續軟件工程是一個新興的領域,但亞馬遜雲科技的探索能給我們一些啓示,Adrian Cockcroft在演講中,從"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"代碼效率、平臺部署、軟件應用設計"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"等方面講述了該如何實施可持續工程,InfoQ摘取了其中一些開發者相關的部分以饗讀者。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"發揮開源的作用"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"如果我們考慮在雲上進行優化,開源是一個很好的方式。現在很多我們正在使用的算法其實不是很高效,但幸運的是,還存在每個開發人員都可以使用的、更爲高效的開源替代方案。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"JSON 文檔在互聯網上無處不在,服務器花費大量時間來解析這些文檔。開發者們希望在進行完全驗證(包括字符編碼)的同時儘可能使用常用的 SIMD 指令來加速 JSON 的解析。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"GitHub 上有一個開源 JSON 解析器 "},{"type":"link","attrs":{"href":"https:\/\/simdjson.org\/","title":null,"type":null},"content":[{"type":"text","text":"simdjson"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",通過與其他常用解析器的對比實驗,結果顯示,simdjson 的解析速度達到 2.2GB\/s。與其它解析器相比,simdjson只使用四分之一或更少的指令,並且可用於許多不同的平臺和語言。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/00\/001c93e847e0e8abefd57624e1a97d50.png","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"這個解析器是2019年開源的,但亞馬遜已經使用simdjson處理了大量的 JSON,Adrian Cockcroft總結說效果是驚人的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"另一個例子是關於壓縮的。很多時候,我們需要壓縮日誌文件,以壓縮的格式存儲千兆字節或萬兆字節的數據。gzip 和類似算法作爲廣泛使用的格式流行了很長一段時間,但現在有了一個新的、由臉書開發的叫做 Z-Standard的算法。這種算法不僅可以使用更少的 CPU 來進行壓縮,而且能獲得更高的壓縮率,壓縮後的文件最終只有 gzip 文件大小的 60%。對於單獨一個小文件來說,壓縮到這個程度可能可有可無,但是當你要處理千或萬兆字節的數據時,這就有了很大的不同,你可以通過遍歷和重新壓縮來釋放大量的數據空間。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"這就是開發者可以做的一些簡單的事情:尋找其他更有效的算法,來替代程序中的低效算法。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"在峯值和碳足跡之間多加權衡"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"工作負載運行時通常會出現尖峯,所以需要我們提供高於期望峯值的容量,但是碳足跡不依賴於系統的平均使用量,甚至不依賴於系統的峯值使用量,碳足跡取決於系統預留的容量。而我們常常需要爲一些這樣的“尖峯”時刻準備大量的資源。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/a3\/a3f04c38482a352552b50bae5061f556.png","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"因此,減少碳足跡的方法之一是確保負荷峯值分散開來,避免產生這樣的尖峯。即使平均利用率是相同的,所完成的工作量也相同,但通過減少峯值,就能減少預留容量。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/9a\/9a18dfbd0080a7e09d14f90fdcb4a0c7.png","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"另外就是配置定時任務的運行。如每天午夜運行的Crontab任務,很多人通過它來設置批處理作業,或進行數據倉庫的日常彙總。當每個客戶同時運行同步工作負載時,這些同步作業會增加峯值工作負載。這實際上提高了對亞馬遜雲科技的需求,因爲我們必須提供更大的容量來處理這些併發任務造成的高峯。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/69\/69e231605e4c9346ca2f78a49ebf84f9.png","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"但如果能避開整點、適當的安排偏移或抖動,就能避免併發產生的高峯。而且還不需要額外付出,因爲你的工作量並沒有變化。因爲在高峯時點的可用資源更爲緊張,如果能避開高峯,在資源不那麼緊張的時候,可能你的任務也因此會運行得更快一點。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"總的來說,減少碳足跡的方法之一是在服務水平協議和可持續性承諾之間進行權衡,比如說可以稍微降低期望值。我們知道二八定律,如果需要提升20%的性能,那麼這20%的性能提升涉及的努力通常會佔據整體工作量的80%。有相當多的算法或業務都存在這樣的權衡比較。例如當服務水平協議中規定響應時間爲500毫秒,只要仍然符合服務水平協議的要求,就沒必要用100毫秒的響應時間來超額完成工作。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"還有高可用性配置,如果你有一個等待故障轉移的熱備系統,你就可以在服務級別協議內採用冷備或是溫備系統進行故障轉移,從冷備啓動所需的時間實際上可能不會比溫備或熱備所需的時間長很多。高可用性總是要付出額外的成本和額外的碳代價,所以,我們可以利用這些權衡來減少碳足跡。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"利用無服務器架構"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"無服務器是另一個減少碳足跡的極好的方式。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"無服務器計算指應用在遠程託管的執行環境中按需運行。過去幾年中,構建有彈性的無服務器系統一直是系統管理員和 SaaS 公司的主要關注點。該架構提供的關鍵優勢在於:無服務器模型無需用戶自身去維護操作系統,只需生成通用的代碼,上傳到無服務器框架,看着它運行就好了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"因此,用戶可以選取託管服務,使用"},{"type":"link","attrs":{"href":"https:\/\/aws.amazon.com\/cn\/lambda\/features\/","title":null,"type":null},"content":[{"type":"text","text":"Amazon Lambda"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"執行計算資源的所有管理工作,可以關聯平臺配置伸縮這樣的工作。比如即時調度這樣的程序,當不使用時可以關閉計算機休眠所有測試環境,僅在需要的時候進行喚醒。這是一種極其強大的可以減少能源消耗和運行系統的成本的方式,能實現的事情之一就是釋放閒置的硬件,讓別人可以同時利用,可以降低亞馬遜雲科技運行所需的總體容量,也不會影響到用戶的實際工作。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"因此,構建更可持續的體系結構的一個強有力的方法是轉向無服務器,將工作負載轉移到雲服務,然後選擇最小化能源使用的服務和實例類型。"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":" "}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"寫在最後 "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"實施可持續軟件工程,我們可以自上而下進行,首先從管理的角度測量整個企業的碳足跡,將工作負載從數據中心轉移到雲區域,改變使用模式以避免產生骯髒能源開發,然後選擇最小化能源使用的服務和實例類型。再深入到更多細節,優化工作負載以提高利用率,我們可以分散定時任務,降低負載峯值,達到調整CPU使用效率的目的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"重要的是,優化並不是只考慮某一個地方就可以,需要我們在架構和系統層面去思考,Adrian Cockcroft還講道,亞馬遜雲科技正在培訓可持續發展解決方案架構師,以幫助大家進行可持續性架構評估。在可持續發展的共同責任模型的基礎上開展工作,最大限度地減少能源消耗,最大限度地提高每項資源消耗的工作量,轉向更省電的共享服務,並通過分享知識來持續改進。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在演講的最後,Adrian Cockcroft發出了一個“行動的號召”:"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"每位開發者都可以從現在開始去理解“可持續性”相關的術語和原則,在工作中尋找優化負載的機會,開源自己的經驗和方案,通過“分享”促進大家一起達成“可持續發展”的目標。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"活動推薦:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在今年 10 月 22 日舉辦的 QCon 全球軟件開發大會上海站,我們設置了亞馬遜雲科技專場,以可持續發展技術爲核心,四位頂尖專家將分別從 “構建未來的大數據平臺”、“利用無服務器架構”、“發揮開源的作用”、“雲端機器學習助推”四個方面展開分享,帶大家探索軟件開發的下一站旅程。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"活動議程:"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"9:30-10:15 面向未來的湖倉架構, 大數據平臺的技術現狀與趨勢"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"10:30-11:15 藉助 Serverless 和性能工程的可持續軟件開發實踐"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"11:15-11:45 開源雲原生解決方案助力業務的發展"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"11:45-12:15 以雲端的機器學習推動可持續發展的實現"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"會議日程已上線,查看詳情:"},{"type":"link","attrs":{"href":"http:\/\/gk.link\/a\/10AW0","title":null,"type":null},"content":[{"type":"text","text":"http:\/\/gk.link\/a\/10AW0"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章