關於Web Scale IT的一些觀點

2021-09-17 03:52:20 字數 2869 閱讀 5217

fit2cloud聯合創始人阮志敏近日通過郵件向infoq中文站分享了他對web-scale it的一些觀點,當中列舉了web-scale it的典型特徵,並對企業實現web-scale it提供了一些建議。以下是郵件內容:

\\ gartner近日發布了2023年十大it趨勢**,其中包括web-scale it。gartner指出:未來將有更多的企業以亞馬遜、谷歌、facebook等網際網路科技巨頭的方式去思考、行動和打造應用程式和基礎設施。傳統企業渴望擁有和網際網路公司一樣的it能力去進行業務創新,同時提高it運營效率、降低費用。web-scale it和國內的\"去ioe\"運動有著相同的邏輯,都是網際網路企業影響、顛覆傳統it解決方案的一種趨勢。

\\ web-scale it和傳統it不僅在技術上有差異,而且在文化上也有差異,所以企業也並不是要完全從傳統it轉向web-scale it。比如,一些交易型應用/system of record應用仍然離不開傳統it,傳統it有其存在的價值和理由。但是,企業應該開始用web-scale it的方式去構建一些新型的社交化、移動化、面向外部使用者的應用。企業應該怎麼做才能實現web-scale it呢?

\\ 我認為web-scale it有5個典型特徵:

\\ 擁有成千上萬臺機器的計算能力\\t

只需少數工程師就可以運維大量機器\\t

應用可以承載非常高的使用者訪問量\\t

即使有些機器出現故障,應用仍然工作正常\\t

應用每天可以公升級部署應用好幾次\

\\ 這裡的機器是指商品化伺服器(commodity)。企業可以通過兩種路徑實現這個目標,一是採用公有雲,二是自建方式/私有雲。目前我們觀察到的情況是,國內對it需求稍大一些的企業,都傾向於通過採用自建方式。而在國外,採用公有雲的比例會高一些,比如像netflix等,在aws上面的虛機數量超出1萬台,仍不自建資料中心/私有雲。隨著國內公有雲服務的完善、api的開放、費用的進一步下調,更多的企業應該會優先考慮採用公有雲。

\\ 很多企業實施\"go to cloud\"戰略的第一步就是構建自己的私有雲服務,而不是採用公有雲,這種策略值得商榷:對企業而言,基於雲的可程式設計特性,學習在雲中開發、部署和運營大規模、分布式的雲應用是更重要的,而不是將全部精力放在構建私有雲基礎設施上。一種更好的做法是,比如,企業可以先使用青雲公有雲,如果業務取得成功、使用的規模越來越大,可以考慮基於青雲構建自己的私有雲並託管給青雲來運維。

\\\\

如果使用者採用公有雲,那麼這個問題就轉變成:如何高效管理成千上萬臺虛機?這包括:

\\ 如何快速啟動部署乙個應用所需要的一串行資源\\t

如何給這些虛機做配置\\t

如何一鍵給這些虛機打patch\\t

如何對這些虛機進行統一監控和告警\\t

如何進行安全和費用統一管理\

實現這些的核心是要充分利用雲的api來實現自動化管理,使用者可以採用雲服務商提供的工具(比如cloudformation、 opsworks),也可以採用第三方管理工具(比如rightscale), 也可以自己基於雲服務api構建自己的管理部署工具(比如netflix)。

\\ 若使用者採用私有雲,使用者可以自己運維也可以採用託管方式。如果是自己運維,則不僅需要對整個私有雲解決方案非常熟悉,而且需要投入相當的開發和運維人力,同時伴隨著很大的風險。而想減少運維人員,託管、外包方式應該是更好的選擇。

\\\\

web-scale it通過以下兩個方面來實現這個特點:

\\ web architecture/soa服務架構, 把整個系統分為松耦合的元件,盡量實現無狀態,使得元件可以水平擴充套件。\\t

充分利用雲來動態、快速地建立資源(scale-out),根據各層次的監控資料來實現自動伸縮。\

傳統it則是更多地通過scale-up方式來進行擴容,和web-scale it相比在架構方面也有些差異,比如,採用session複製方式也多於基於redis/memcached的集中式session方案。

\\ 在雲環境下,雲服務商除了提供計算、網路和儲存資源外,還提供負載均衡服務、快取服務、rds服務等很多上層服務。雲服務商負責這些服務的建立並提供自動化運維方案以實現確保安全性、可用性和擴充套件性。企業也可以通過api動態管理這些服務。從這個角度看,在雲中開發、運維應用和傳統方式有很多不同,企業需要進行相應的轉變。

\\\\

傳統it可以通過infra層面的冗餘來保證系統的高可用性,而web-scale it是構建在商品化硬體上,其冗餘度比較低。web-scale it在infra層次的sla是無法保證的,這就需要使用者design for failure。這不僅僅需要在infra層次部署架構方面做相應的設計,如把應用部署在兩個可用區、使用負載均衡服務等,在應用本身的邏輯架構、中介軟體、資料庫儲存層等方面做針對性的設計,同時在應用本身的管理上也需要有相應的設計,如資料的備份、恢復、動態地更改dns、更改負載均衡的後端配置等。

\\\\

傳統it對變更有著嚴格的控制和要求,開發和運維團隊有著明確的分工和責任,應用要實現每天十幾次的變更是不太可能的。

\\ web-scale it能夠實現持續部署和交付,不單是靠自動化工具,更重要的是依靠流程、組織、文化上面的變革。很多時候,思維方式、文化方面的改變比技術上更重要。因此gartner說,開發與運營之間的高效協作配合(devops)是實現web-scale it的第一步。

\\\\

從上述分析可以看出,要向web-scale it轉變,企業需要實現在infra、平台和管理部署工具、應用架構,流程、組織和文化等各個層面的改變。雲計算的進一步普及會加速企業在infra層面的轉變,而另一方面,隨著各個行業雲標桿使用者的出現,會示範和引導更多企業去實現其他層面轉變。

\\\\

阮志敏是aws認證解決方案架構師(專業級別),fit2cloud聯合創始人,長期關注於如何使用雲服務進行業務創新。fit2cloud是乙個雲管理及devops協作平台,旨在幫助開發人員、運維人員實現應用全生命週期的自動化管理,提公升雲使用成熟度。

\\

關於RemoteView 的一些字型的一些問題

最近在做乙個 在notification 新增 天氣通知的小部分 發現困擾在 如何給 remoteview 中的字型 作修改 大家都知道 textview 設定字型 在xml 中 可以 設定 3種 而其他字型的設定 需要通過 typeface 去設定 具體 將字型放置在asset 資料夾中 type...

關於Thread的一些

執行緒有幾種狀態 1.產生 new 執行緒已經產生,只是放在記憶體中啥事都不幹。2.可執行 runnable 在呼叫了start方法到它獲得系統給它分配了時間片之前,或者時間片用完了但還沒執行完。3.執行 running 獲得了時間片,正在執行。4.死亡 dead 執行完成 5.阻塞 block 不...

關於SpannableString的一些用法

因為專案中有用到spannablestring,所以稍微寫了一下,有參考 如果需要詳盡的可以去鏈結部落格裡看看 分別有 spanned.span exclusive exclusive 前後都不包括 spanned.span inclusive exclusive 前面包括,後面不包括 替換 spa...