部署MVC架構(gòu)的Web應(yīng)用程序,即從頭到尾的發(fā)展史,來嘍!
瀾夢IT攻略,我們來了!
使用 MVC 架構(gòu)部署 Web 應(yīng)用程序后的典型情況。 上圖中整個藍(lán)色部分是服務(wù)端邊界,負(fù)責(zé)應(yīng)用或代碼的在線運維。 所要解決的問題的邊界是服務(wù)器端的邊界,即服務(wù)器端的運維。
那么,我們先來看看服務(wù)端運維的發(fā)展史,也就是從頭到尾的發(fā)展史。 假設(shè)有一個 Web 應(yīng)用程序。 開發(fā)此 Web 應(yīng)用程序涉及開發(fā)工程師和運輸工程師的角色。 研發(fā)工程師只關(guān)心應(yīng)用的業(yè)務(wù)邏輯。 具體來說,在整個基于MVC的Web應(yīng)用開發(fā)中,從服務(wù)端接口View層到業(yè)務(wù)邏輯層、數(shù)據(jù)存儲Model層、Web應(yīng)用的整體版本管理和在線bug修復(fù)、運維工程師只關(guān)心適用的服務(wù)端運維。 事務(wù)。 負(fù)責(zé)部署在線小程序web應(yīng)用,綁定域名,監(jiān)控日志。 當(dāng)用戶訪問量大的時候,他就會擴(kuò)展這個應(yīng)用。 當(dāng)用戶流量低的時候,他會收縮應(yīng)用。 當(dāng)服務(wù)器停止時,他重新啟動或更換服務(wù)器。
時代。 最初,研發(fā)工程師不需要擔(dān)心與部署相關(guān)的事情。 每當(dāng)研發(fā)工程師發(fā)布新應(yīng)用時,運營工程師負(fù)責(zé)將最新代碼上線。 傳輸維護(hù)工程師必須管理迭代版本發(fā)布、分支合并、實時應(yīng)用程序和問題回滾。 如果在線出現(xiàn)問題,則必須記錄日志并將其發(fā)送給開發(fā)工程師。
Era 完全隔離了研究開發(fā)和運輸維度。 這種完全隔離的好處是顯而易見的:研發(fā)工程師可以專注于自己的業(yè)務(wù),而運維工程師則變成了工具工人,處理大量的運維工作和大量的瑣事。
時代。 運維工程師發(fā)現(xiàn),很多事情都是重復(fù)性的工作。 萬一網(wǎng)上出現(xiàn)故障,他們還得抓日志發(fā)給研發(fā)工程師,效率很低。 因此,運維工程師開發(fā)了一系列的運維控制臺,讓研發(fā)工程師可以處理在線導(dǎo)入和日志抓取的工作。
這讓運維工程師輕松了一點,但是架構(gòu)優(yōu)化和資源擴(kuò)容計劃必須要負(fù)責(zé)。 除了開發(fā)任務(wù)IT外包服務(wù),開發(fā)工程師還會從傳輸維度控制臺發(fā)布新版本來解決在線故障。 這時候就是開發(fā)和運維,研發(fā)工程師也是運維工程師的一部分工作,但是這部分工作應(yīng)該由研發(fā)工程師負(fù)責(zé)(比如版本管理,在線故障等)。 而且,運維工程師工具化這部分工作,效率更高,趨向于更少。 工業(yè)時代。 運維工程師也可以根據(jù)研發(fā)工程師的開發(fā)流程進(jìn)一步完善運維控制臺,實現(xiàn)代碼的自動發(fā)布:掃碼-測試-灰度驗證-上線。 這樣,開發(fā)工程師只需要將最新的代碼合并到Git倉庫指定的分支中,剩下的由代碼自動發(fā)布的管道負(fù)責(zé)。 這個時候研發(fā)工程師不需要運維。 沒有 NoOps,研發(fā)工程師又回到了起點。 您只需要關(guān)心您的應(yīng)用業(yè)務(wù)。
運營工程師還可以發(fā)現(xiàn)資源優(yōu)化和可擴(kuò)展性場景,并利用性能監(jiān)控流量來估計解決方案。 這樣,運維工程師的運維工作也實現(xiàn)了全自動化。 那么對于研發(fā)工程師來說,運維工程師的存在感越來越弱,運維工程師要做的事情越來越少,被自動化工具所取代。 這是。
未來。 實現(xiàn)無運維后,運維工程師必須提供更多的基礎(chǔ)服務(wù)IT外包服務(wù),建設(shè)基礎(chǔ)設(shè)施,提供更智能、更省資源、更周到的服務(wù)。 研發(fā)工程師完全不用擔(dān)心運輸維度,可以專心處理自己的業(yè)務(wù),提升用戶體驗,考慮商業(yè)價值。
無運維NoOps并不是說服務(wù)端運維不存在,而是通過無所不知、無所不能的服務(wù)覆蓋研發(fā)引入的所有需求,讓研發(fā)工程師越來越不了解它。 另外,NoOps是一種理想狀態(tài),我們可以無限接近NoOps,所以可以說less不是。
定義了解決問題的邊界,即服務(wù)端的運維。 less說明了解決問題的目的,即沒有運輸NoOps。 所以應(yīng)該叫服務(wù)端空跑維度,這才是需要解決的問題。
什么是無服務(wù)器
需要解決的是讓運維工程師的工作完全透明。 研發(fā)工程師只關(guān)心業(yè)務(wù)邏輯,不需要關(guān)心傳輸和在線維護(hù)的各種問題。 為了達(dá)到這種狀態(tài),意味著網(wǎng)絡(luò)服務(wù)器的整體運維工作是極其抽象的。 越是抽象的東西,它包含的信息量就越大,所以很難定義。
但總的來說,是指以下兩種。
狹義上(最常見)是指架構(gòu)=FaaS架構(gòu)=(事件驅(qū)動)FAS( as a )BAS(BAS)廣義上是指服務(wù)端非運維,即,具有特色的云服務(wù)。
文/上海瀾夢IT外包專家
