構(gòu)建彈性、可擴(kuò)展的云原生應(yīng)用程序
云原生應(yīng)用設(shè)計(jì)使軟件工程師能夠?qū)W⒂跐M足客戶需求,這是一種解決方案,可以在使用案例層面上利用。
在1986年,我搬到科羅拉多州博爾德市去為我叔叔的初創(chuàng)公司工作。第一天到達(dá)辦公室時(shí),他幫我找了一張附有 Compaq Portable 計(jì)算機(jī)的桌子。系統(tǒng)頂部放著一本關(guān)于使用 dBase II 的書。我的任務(wù)是為他的公司建立一個(gè)跟蹤訂單的應(yīng)用程序。我叔叔知道我對(duì)計(jì)算機(jī)很感興趣,我迫不及待地想要開始工作。這成為我學(xué)習(xí)微型計(jì)算機(jī)時(shí)代應(yīng)用程序構(gòu)建的第一次經(jīng)歷。流程非常簡(jiǎn)單:
記錄所需的需求。
創(chuàng)建滿足定義需求的設(shè)計(jì)。
構(gòu)建和調(diào)試解決方案。
驗(yàn)證解決方案是否按預(yù)期工作。
找出如何分發(fā)解決方案。
要求客戶采用并使用解決方案。
盡管我們目前在Web2和Web3世界中構(gòu)建應(yīng)用程序和服務(wù),但我通常將這個(gè)時(shí)代稱為“無(wú) Web”應(yīng)用程序設(shè)計(jì)時(shí)代。
幾年后,我記得在軟盤上分發(fā)基于 Turbo Pascal 的應(yīng)用程序,供分布在美國(guó)各地的保險(xiǎn)代理使用。后來(lái),應(yīng)用程序存儲(chǔ)在放置在企業(yè)數(shù)據(jù)中心的文件服務(wù)器上。Web1 迭代還要幾年才出現(xiàn)。
2023年容器技術(shù)趨勢(shì)展望
DZone 的 2023 年容器技術(shù)趨勢(shì)報(bào)告將探討容器的當(dāng)前狀態(tài)、全球容器化戰(zhàn)略的關(guān)鍵趨勢(shì)和進(jìn)展,以及現(xiàn)代化軟件架構(gòu)的建設(shè)性內(nèi)容。
盡管大多數(shù)應(yīng)用程序開發(fā)生命周期步驟并沒(méi)有真正改變,但云服務(wù)提供商帶來(lái)了一些重要的因素:
采用集中化方法。
提高可伸縮性。
應(yīng)用程序和服務(wù)的彈性。
所有這些方面都是云原生應(yīng)用的優(yōu)勢(shì)所在。
什么是云原生?
維基百科定義云原生計(jì)算為使用云服務(wù)“在公有云、私有云和混合云等現(xiàn)代動(dòng)態(tài)環(huán)境中構(gòu)建和運(yùn)行可擴(kuò)展的應(yīng)用程序”。隨著公司和初創(chuàng)企業(yè)渴望擺脫維護(hù)數(shù)據(jù)中心的業(yè)務(wù),轉(zhuǎn)向云端成為首要任務(wù)。
云原生應(yīng)用不僅僅是在云中運(yùn)行的應(yīng)用程序。一個(gè)關(guān)鍵區(qū)別是應(yīng)用程序如何設(shè)計(jì)成在云中本地運(yùn)行。采用容器、無(wú)服務(wù)器和微服務(wù)的方式提供了易于從一個(gè)環(huán)境部署到另一個(gè)環(huán)境的解決方案,同時(shí)提供了橫向擴(kuò)展和多區(qū)域支持。
由于硬件層與代碼庫(kù)分離,云原生應(yīng)用可以輕松實(shí)現(xiàn)縱向擴(kuò)展。
云原生方法
采用云原生方法使軟件工程師能夠?qū)?yīng)用程序拆分為多個(gè)方面,并使用通用方法來(lái)處理每個(gè)方面:
無(wú)服務(wù)器——將基于事件驅(qū)動(dòng)的請(qǐng)求轉(zhuǎn)移到函數(shù)式 Lambda 中進(jìn)行處理。
微服務(wù)——將大型應(yīng)用程序拆分為較小的處理單元。
容器——將應(yīng)用程序打包成獨(dú)立的多層容器以進(jìn)行分發(fā)。
對(duì)于每個(gè)方面,云服務(wù)提供商提供可增強(qiáng)體驗(yàn)的附加組件。一些常見的示例包括:
API 網(wǎng)關(guān)——為服務(wù)提供保護(hù),并處理常見組件(如授權(quán)請(qǐng)求)。
自動(dòng)擴(kuò)展——根據(jù)預(yù)配置的閾值進(jìn)行擴(kuò)展和收縮。
緩存——將請(qǐng)求的信息存儲(chǔ)在基于內(nèi)存的緩存中,以避免較長(zhǎng)時(shí)間運(yùn)行的應(yīng)用程序請(qǐng)求。
故障轉(zhuǎn)移——自動(dòng)將流量路由到用于處理的次要節(jié)點(diǎn)。
文件存儲(chǔ)——無(wú)限可擴(kuò)展且性能卓越的對(duì)象存儲(chǔ)。
負(fù)載均衡——將請(qǐng)求分發(fā)到位于不同地理位置的實(shí)例。
編排——容器解決方案在大規(guī)模上自動(dòng)化、擴(kuò)展和管理。
持久化——使用基于 SQL 和 NoSQL 的數(shù)據(jù)存儲(chǔ)選項(xiàng)。
機(jī)密管理——避免高度敏感信息的泄露。
由于云原生方法可以在最小粒度上進(jìn)行架構(gòu),因此得到的云原生應(yīng)用可以針對(duì)設(shè)計(jì)的每個(gè)方面提供最佳解決方案,如圖3所示:
云原生應(yīng)用由多個(gè)云服務(wù)功能構(gòu)建
云原生的好處
云原生應(yīng)用構(gòu)建方法使軟件工程師能夠根據(jù)用例級(jí)別使用最佳技術(shù)來(lái)構(gòu)建解決方案,以滿足客戶的業(yè)務(wù)需求。這意味著一個(gè)用例可以采用基于事件驅(qū)動(dòng)的無(wú)服務(wù)器解決方案,而另一個(gè)用例可以利用由 SaaS 驅(qū)動(dòng)的持久性層支持的微服務(wù)。
云原生應(yīng)用允許按需調(diào)整應(yīng)用程序的組件。這意味著對(duì)一個(gè)微服務(wù)的需求不需要為其他微服務(wù)分配相同水平的資源。此外,組件實(shí)例可以在相同或不同地理區(qū)域水平擴(kuò)展。
由于硬件層與應(yīng)用程序?qū)臃蛛x,設(shè)計(jì)云原生應(yīng)用的人可以專注于滿足業(yè)務(wù)需求和企業(yè)目標(biāo)。
與設(shè)計(jì)在本地?cái)?shù)據(jù)中心運(yùn)行的應(yīng)用程序相比,這些優(yōu)點(diǎn)為云原生應(yīng)用提供了強(qiáng)大的優(yōu)勢(shì)。當(dāng)考慮到備份計(jì)劃或?yàn)?zāi)難恢復(fù)等概念時(shí),差異只會(huì)變得更大。
云原生的挑戰(zhàn)
盡管云原生計(jì)算看起來(lái)是應(yīng)用程序設(shè)計(jì)的天堂,但也存在一些需要考慮的挑戰(zhàn)。對(duì)于云原生計(jì)算的主要批評(píng)是潛在的高成本問(wèn)題。
一些常見例子包括:
無(wú)法清除的原型組件。
自動(dòng)創(chuàng)建快照而沒(méi)有建立保留計(jì)劃。
在存在更便宜選擇的情況下過(guò)度分配硬件資源。
大多數(shù)云服務(wù)提供商都提供了出色的工具來(lái)預(yù)測(cè)和分析成本,但必須廣泛采用標(biāo)準(zhǔn)才能使成本控制成為優(yōu)先事項(xiàng)。在全球多個(gè)地區(qū)工作時(shí),了解現(xiàn)有的法規(guī)非常重要,特別是涉及敏感數(shù)據(jù)。未能遵守可能會(huì)導(dǎo)致處罰或費(fèi)用。
云提供商提供了多區(qū)域故障和災(zāi)難恢復(fù)保護(hù)的能力。然而,這些高級(jí)概念在設(shè)計(jì)和實(shí)施上可能具有挑戰(zhàn)性,既要實(shí)現(xiàn)自動(dòng)的故障處理,又要保護(hù)免受意外數(shù)據(jù)問(wèn)題的影響。
結(jié)論
作為軟件工程師,我們?cè)趹?yīng)用程序設(shè)計(jì)方面已經(jīng)取得了長(zhǎng)足的進(jìn)步。然而,對(duì)我來(lái)說(shuō),唯一沒(méi)有改變的方面就是當(dāng)我有機(jī)會(huì)設(shè)計(jì)和構(gòu)建一個(gè)新的應(yīng)用程序時(shí),我仍然感到非常興奮。
我一直專注于以下使命宣言,我認(rèn)為適用于任何 IT 專業(yè)人員:
將時(shí)間集中在提供能夠擴(kuò)展你的知識(shí)產(chǎn)權(quán)價(jià)值的功能/特性上。利用框架、產(chǎn)品和服務(wù)處理其他事項(xiàng)。
云原生應(yīng)用設(shè)計(jì)完全符合我的個(gè)人使命宣言,因?yàn)樗管浖こ處熌軌驅(qū)W⒂跐M足客戶的業(yè)務(wù)需求:允許在每個(gè)用例級(jí)別使用最佳解決方案。然而,就像我們?cè)谏钪凶龀龅拿總€(gè)決策一樣,我們必須始終注意相關(guān)成本。
- 上一篇
如何在數(shù)據(jù)分析中擁抱人工智能
人工智能等技術(shù)是革命性的,特別是對(duì)于數(shù)據(jù)分析等行業(yè)而言。生成式人工智能需要數(shù)據(jù)才能發(fā)揮作用;它訓(xùn)練系統(tǒng)學(xué)習(xí)數(shù)據(jù)中的模式、關(guān)系和結(jié)構(gòu)。這最終將作為模型生成新的、有意義的結(jié)論的基礎(chǔ)。因此,生成式人工智能需要數(shù)據(jù)才能發(fā)揮作用。
- 下一篇
物聯(lián)網(wǎng)行業(yè)十大新興趨勢(shì)
物聯(lián)網(wǎng)將基于機(jī)器的智能、監(jiān)控和連接納入越來(lái)越多的消費(fèi)者、商業(yè)和民用產(chǎn)品和系統(tǒng),對(duì)我們的生活和工作產(chǎn)生了更大的影響,以下是物聯(lián)網(wǎng)的最新趨勢(shì)以及對(duì)物聯(lián)網(wǎng)將如何推動(dòng)數(shù)字化變革的主要預(yù)測(cè)。
相關(guān)資訊
- 利用數(shù)據(jù)發(fā)現(xiàn)您的商業(yè)模式中的缺
- 數(shù)據(jù)科學(xué)與數(shù)據(jù)挖掘的主要區(qū)別
- 當(dāng)危險(xiǎn)來(lái)臨可以呼喚人工智能來(lái)救
- 2024年環(huán)境、健康和安全(EHS)的
- 云提供商如何幫助提高效率和生產(chǎn)
- 如何解決物聯(lián)網(wǎng)設(shè)備的安全問(wèn)題
- 運(yùn)營(yíng)數(shù)據(jù)分析體系,該怎么搭建?
- 大數(shù)據(jù)分析如何重塑智慧城市的未
- 人工智能測(cè)試如何在網(wǎng)絡(luò)世界中處
- 物聯(lián)網(wǎng)服務(wù)正在發(fā)生巨大變化:食品