0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

云應(yīng)用程序SaaS的設(shè)計方法

汽車玩家 ? 來源:今日頭條 ? 作者:聞數(shù)起舞 ? 2020-05-03 18:20 ? 次閱讀

最初發(fā)布于Cloud Nine Apps。

如何設(shè)計云應(yīng)用程序(SaaS)

如何設(shè)計云應(yīng)用程序(SaaS)

軟件即服務(wù)(SaaS)已成為許多軟件供應(yīng)商的主要模型。 與云供應(yīng)商提供基礎(chǔ)架構(gòu)服務(wù)一樣,它有助于類似地交付軟件。 SaaS應(yīng)用程序通常部署在公共云上,例如Amazon Cloud(AWS),Microsoft Azure,Google Cloud等。 但是,組織有時可能會選擇使用其數(shù)據(jù)中心(也稱為私有云)來托管SaaS應(yīng)用程序并利用其在基礎(chǔ)架構(gòu)上的投資。 在設(shè)計SaaS應(yīng)用程序時,不僅需要將應(yīng)用程序比特部署到云中,還需要花費更多。 進行適當?shù)脑O(shè)計考慮,不僅可以幫助您完成良好的設(shè)計,還可以幫助您降低成本并更有效地管理部署。 在這篇文章中,我將介紹一些多年來我發(fā)現(xiàn)有用的設(shè)計SaaS應(yīng)用程序的關(guān)鍵注意事項和技巧。

為云設(shè)計應(yīng)用程序與本地應(yīng)用程序設(shè)計有何不同?

· 更好的模塊化:如果您擁有一個龐大的單片應(yīng)用程序,那么明智的做法是查看它是否可以分解為可以單獨部署的邏輯組件。 這不僅可以提高模塊化,還可以幫助您減少應(yīng)用程序的占用空間。 假設(shè)您有一個使用后臺作業(yè)刷新數(shù)據(jù)的應(yīng)用程序。 您可以將核心應(yīng)用程序和后臺作業(yè)分離為2個(或更多)可以分別部署的組件。 這將減少核心應(yīng)用程序的占用空間。 因此,您可能會選擇較小的資源大小。 另外,根據(jù)需要,您可以獨立地縮放這兩個。 因此,如果對后臺作業(yè)的需求增加,則可以增加其容量,并增加應(yīng)用程序?qū)拥娜萘俊?由于每個資源的資源量都很小,因此,僅擴展所需的層/組件將導(dǎo)致整體成本低于整體資源的整體成本。 說得通?

· 應(yīng)用程序始終是最新的:對于許多本地應(yīng)用程序來說,這是一個很大的轉(zhuǎn)變。 在云中,客戶通常希望應(yīng)用程序始終處于最新版本。 現(xiàn)在,如果您將其視為一名架構(gòu)師,則意味著您不僅可以更新應(yīng)用程序位,而且可以在不涉及客戶的情況下升級客戶數(shù)據(jù)。 也就是說,這對他們是完全透明的。

這些只是一些差異。 但是,您明白了。

SaaS的關(guān)鍵設(shè)計注意事項

· 選擇適當?shù)脑品?wù):當然,您正在部署到云。 但是,您想使用哪些服務(wù)? 您是否只是要使用基礎(chǔ)架構(gòu)即服務(wù)(IaaS)? 還是要利用某些平臺即服務(wù)(PaaS)功能? 答案可能并不總是直截了當?shù)摹?因此,這里有一些準則。

· 您是否要將同一應(yīng)用程序部署到多個云平臺或內(nèi)部部署? 在這種情況下,可能沒有(或最小化)特定于云供應(yīng)商的服務(wù)并堅持使用更多的IaaS服務(wù)是有意義的。

· 成本應(yīng)該是選擇服務(wù)時的重要考慮因素。 例如,某些由Cloud供應(yīng)商管理的PaaS服務(wù)可以由您的團隊自己管理,以降低成本。 盡管這對于每項服務(wù)可能都沒有意義,但值得探討。

· 牢記您的團隊專業(yè)知識。 使用某種云服務(wù)需要什么? 而且,如果團隊還維護基礎(chǔ)架構(gòu),那么需要什么技能?

· 針對故障的設(shè)計:設(shè)計容錯和高可用性的應(yīng)用程序是Cloud的基礎(chǔ)。 假定您的應(yīng)用程序會遇到問題,以及如何確保繼續(xù)為用戶提供服務(wù)。 這些可能是應(yīng)用程序故障或基礎(chǔ)架構(gòu)故障。 云供應(yīng)商提供了一些有用的功能來幫助您。

· 使用負載平衡器:出于負載平衡的目的,您可以將應(yīng)用程序節(jié)點放在負載平衡器的后面,并確保即使一個或多個節(jié)點出現(xiàn)故障,也可以通過其他節(jié)點為應(yīng)用程序提供服務(wù)。

· 地理分布的應(yīng)用程序:多個Cloud供應(yīng)商提供了將應(yīng)用程序分布在多個地理區(qū)域的功能,這樣,即使一個區(qū)域受到了影響(例如,由于自然災(zāi)害),也可以從其他區(qū)域提供應(yīng)用程序。 例如,AWS支持跨多個可用區(qū)部署應(yīng)用程序。

· 模塊化您的應(yīng)用程序:如我們在上一節(jié)中討論的,隔離可以分別部署和管理的組件可以幫助減少應(yīng)用程序的占用空間,從而降低基礎(chǔ)架構(gòu)的成本。 您也可以考慮將其中一些組件作為微服務(wù)。 如果您的應(yīng)用程序之外還有其他潛在使用者,則微服務(wù)方法可能特別有用。 現(xiàn)在,這并不意味著您會全力以赴,創(chuàng)建不必要的組件。 因此,一種方法是制作可以單獨部署的組件(例如核心應(yīng)用程序與后臺作業(yè))。

· 安全性:安全性涉及很多方面-從保護基礎(chǔ)結(jié)構(gòu)到應(yīng)用程序。 一些關(guān)鍵方面包括確保僅打開所需的端口,使用對資源的盡可能少的特權(quán),進行適當?shù)幕诮巧脑L問控制,使用加密,等等。 安全性不應(yīng)被視為一次性交易。 這是一個持續(xù)的過程,應(yīng)該隨著時間的推移而改進和發(fā)展。

· 多租戶:在云中運行的一個主要好處是能夠使用同一應(yīng)用程序?qū)嵗秊槎鄠€客戶提供服務(wù)。 這給應(yīng)用程序設(shè)計帶來了一些明顯的挑戰(zhàn),以確保每個客戶的數(shù)據(jù)出于安全和監(jiān)管目的而被隔離。 一些團隊選擇為每個客戶使用不同的持久性存儲實例,例如為每個客戶使用單獨的數(shù)據(jù)庫。 而且,有些人選擇使用行級標識符隔離數(shù)據(jù)。 無論采用哪種方法,重要的是確保體系結(jié)構(gòu)滿足可伸縮性和安全性需求。 例如,如果選擇每個客戶使用一個數(shù)據(jù)庫,則可以在一個RDS實例上托管多個數(shù)據(jù)庫。 而且,當容量用盡時,您可以建立另一個RDS實例。

· 零/最小停機時間和無縫升級:信不信由你,許多客戶期望SaaS應(yīng)用程序的停機時間為零或非常小,并且由于這些停機時間通常由構(gòu)建應(yīng)用程序的同一公司管理,因此應(yīng)進行無縫升級。面臨的挑戰(zhàn)是您的應(yīng)用程序可能沒有被設(shè)計為能夠順利處理升級,特別是如果它已被轉(zhuǎn)換為SaaS應(yīng)用程序而已。需要考慮兩個關(guān)鍵方面:a)部署應(yīng)用程序位和文件b)處理持久性存儲升級。對于推出應(yīng)用程序位策略,可以使用諸如Blue / Green部署之類的策略,其中,如果成功推出,則將新版本部署到新堆棧中,進行測試并啟用。較舊的堆棧資源可以在以后退役并回收。實現(xiàn)無縫升級的一種方法是使基礎(chǔ)數(shù)據(jù)模型n_1兼容。這意味著,如果要部署的發(fā)行版具有數(shù)據(jù)模型版本n,則該數(shù)據(jù)模型與先前的數(shù)據(jù)模型版本(n — 1)向后兼容,從而確保升級不會破壞它。您如何確保?這就要求在整個開發(fā)周期中遵守紀律,并遵循某些準則,例如不刪除任何列,提供必要的升級腳本來處理任何數(shù)據(jù)遷移需求,等等。并且,如果升級未成功,則支持回滾升級?,F(xiàn)在,您可以理解,這不僅在技術(shù)上具有挑戰(zhàn)性,因為它涉及數(shù)據(jù)遷移和回滾,而且還可能導(dǎo)致部署速度大大降低。因此,您必須仔細評估適合您的應(yīng)用程序需求的合理方案,并相應(yīng)地實施解決方案。

SaaS的DevOps注意事項

DevOps對SaaS至關(guān)重要,因此值得單獨討論。 以下是一些關(guān)鍵注意事項。

· 持續(xù)交付:DevOps管道應(yīng)該能夠獲取簽入的代碼,并從中生成一個構(gòu)建,然后以自動化的方式經(jīng)歷各個階段(QA,性能,最終通過/不通過檢查,生產(chǎn)部署)。 這可能涉及到擁有多個管道(通常是每個階段),并擁有一個超級管道來推動構(gòu)建通過這些階段中的每個階段。 現(xiàn)在,開發(fā)這些管道可能還需要一些時間,但是開始為每個管道定義合同是一個好主意,這樣用戶管道就不必擔(dān)心細節(jié)了。 最終,目標應(yīng)該是使雙手完全免于打擾或盡可能地接近手。

· 對所有版本(包括DevOps更改)使用版本控制:對于應(yīng)用程序代碼,通常最好使用源代碼控制的master分支。 但是,對于任何DevOps更改執(zhí)行相同的操作同樣重要。 例如,在推出基礎(chǔ)架構(gòu)更改時,還應(yīng)將這些更改檢入源代碼管理中,進行測試,然后將其推向生產(chǎn)環(huán)境。

· 敏捷的基礎(chǔ)架構(gòu):要在SaaS上取得成功,您需要確保您的基礎(chǔ)架構(gòu)是敏捷的并且可以應(yīng)對需求的變化。 隨著需求上升,它可以擴展適當?shù)膶?,當需求下降時,釋放不需要的資源。 這需要一定程度的實驗和測試才能達到適當?shù)钠胶狻?例如,您可以使用AWS自動擴展功能自動擴展/縮減基礎(chǔ)架構(gòu)。

SaaS的其他注意事項

· 計劃和優(yōu)先級:與其他任何成功的項目一樣,SaaS項目也需要計劃和優(yōu)先級。 盡管每個人都希望實現(xiàn)"將每一個檢查都投入生產(chǎn)"之類的目標,但要了解什么才是最有意義的事情,并首先將重要的事情放在優(yōu)先位置。 當然,有一個延伸目標沒錯。 但是,重要的是首先正確處理重要的事情。 例如,如果您沒有良好的單元測試和自動化范圍,并且您試圖將每個代碼更改推向生產(chǎn)環(huán)境,即使您完成了更改,其實用性也值得懷疑。 之所以會適得其反,是因為生產(chǎn)中的事情可能會開始崩潰得太快,然后研發(fā)團隊將被消耗掉。

· 貨幣化模型:SaaS也影響貨幣化模型。 在內(nèi)部部署中,您可能會被罰款一定數(shù)量的許可證,而在SaaS中,您可能不得不重新考慮什么是最適合您的業(yè)務(wù)的模型。 您是否要使用基于訂閱的模型,基于利用率的模型,混合模型或其他所有模型?

希望您對設(shè)計基于云或SaaS的應(yīng)用程序有更好的了解。 看到涉及許多不同方面的應(yīng)用程序投入生產(chǎn),無疑是一種豐富的體驗。 就像我經(jīng)常說的那樣,"云是一個旅程,而不是目的地"。 因此,請繼續(xù)學(xué)習(xí)并不斷發(fā)展。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)中心
    +關(guān)注

    關(guān)注

    16

    文章

    4517

    瀏覽量

    71637
  • SaaS
    +關(guān)注

    關(guān)注

    1

    文章

    358

    瀏覽量

    36752
收藏 人收藏

    評論

    相關(guān)推薦

    網(wǎng)絡(luò)與計算:有什么區(qū)別?

    計算和網(wǎng)絡(luò)是相關(guān)但又不同的概念。計算關(guān)注的是應(yīng)用程序如何運行,而網(wǎng)絡(luò)則關(guān)注的是應(yīng)用程序
    的頭像 發(fā)表于 06-25 11:43 ?253次閱讀
    <b class='flag-5'>云</b>網(wǎng)絡(luò)與<b class='flag-5'>云</b>計算:有什么區(qū)別?

    Anthropic推出iPhone應(yīng)用程序和業(yè)務(wù)層

    Anthropic 推出 iPhone 應(yīng)用程序和業(yè)務(wù)層,支持使用Claude 3 Opus、Sonnet 和 Haiku 模型
    的頭像 發(fā)表于 05-07 10:22 ?311次閱讀

    SOLIDWORKS應(yīng)用程序:面向?qū)W生的全新機遇

    隨著科技的快速發(fā)展和數(shù)字化轉(zhuǎn)型的深入,SOLIDWORKS應(yīng)用程序的推出,無疑為學(xué)生提供了一個全新的學(xué)習(xí)和實踐平臺。SOLIDWORKS,作為一款工程設(shè)計軟件,其應(yīng)用程序的推出,不
    的頭像 發(fā)表于 03-25 15:39 ?196次閱讀

    什么是SaaS?中國SaaS發(fā)展簡史

    SaaS融合了軟件與計算的優(yōu)勢,在這種服務(wù)模式下,用戶不僅獲得了軟件的功能,更重要的是,用戶擁有數(shù)據(jù)與隱私權(quán)。
    發(fā)表于 03-14 11:30 ?507次閱讀
    什么是<b class='flag-5'>SaaS</b>?中國<b class='flag-5'>SaaS</b>發(fā)展簡史

    應(yīng)用程序中的服務(wù)器錯誤怎么解決?

    在使用應(yīng)用程序時,可能會遇到服務(wù)器錯誤的問題。這種錯誤通常會導(dǎo)致應(yīng)用程序無法正常運行 ,給用戶帶來不便。下面將介紹應(yīng)用程序中的服務(wù)器錯誤及其解決方法,幫助您快速解決這一問題。
    的頭像 發(fā)表于 03-12 15:13 ?4382次閱讀

    LTE MQTT通信應(yīng)用程序說明

    電子發(fā)燒友網(wǎng)站提供《LTE MQTT通信應(yīng)用程序說明.pdf》資料免費下載
    發(fā)表于 02-21 10:47 ?0次下載
    LTE MQTT通信<b class='flag-5'>應(yīng)用程序</b>說明

    如何從幾個方面介紹SaaS系統(tǒng)

    PaaS,某些時候也叫做中間件。就是把客戶采用提供的開發(fā)語言和工具(例如Java,python, .Net等)開發(fā)的或收購的應(yīng)用程序部署到供應(yīng)商的計算基礎(chǔ)設(shè)施上去。
    的頭像 發(fā)表于 02-20 11:37 ?914次閱讀
    如何從幾個方面介紹<b class='flag-5'>SaaS</b>系統(tǒng)

    SNP Glue新Saas技術(shù)在數(shù)據(jù)集成中如何提升客戶價值

    ■ 新Glue版本可作為軟件即服務(wù)(SaaS)應(yīng)用程序使用 ■ SAP數(shù)據(jù)和非SAP數(shù)據(jù)源之間的云原生集成大大簡化了客戶的企業(yè)數(shù)據(jù)集成 ■ SNP Glue通過應(yīng)對AI和大數(shù)據(jù)計劃中的關(guān)鍵挑戰(zhàn)來增強
    的頭像 發(fā)表于 12-28 14:06 ?293次閱讀

    中軟國際管理平臺SaaS產(chǎn)品榮獲華為云云軟件認證

    近日,中軟國際管理平臺SaaS產(chǎn)品憑借扎實的技術(shù)實力,以及與華為服務(wù)深度融合能力,榮獲華為云云軟件認證。 華為云云軟件認證是華為全新推出的伙伴體系中的高級別的認證,華為
    的頭像 發(fā)表于 12-07 10:10 ?322次閱讀

    開發(fā)java應(yīng)用程序的基本步驟是

    ava是一種面向?qū)ο蟮木幊陶Z言,廣泛用于開發(fā)各種類型的應(yīng)用程序。在開發(fā)Java應(yīng)用程序時,有一些基本步驟需要遵循,以確保應(yīng)用程序的正確性和可靠性。 1.確定需求:這是開發(fā)任何應(yīng)用程序
    的頭像 發(fā)表于 11-28 16:52 ?1311次閱讀

    Flask如何升級到 Quart 應(yīng)用程序

    本文詳細介紹了典型的生產(chǎn)環(huán)境的 CRUD 應(yīng)用程序從 Flask 到 Quart 的轉(zhuǎn)換,并展示相關(guān)的性能改進優(yōu)勢。 將這個 Flask-pyscopg2 應(yīng)用程序升級到 Quart-asyncpg
    的頭像 發(fā)表于 11-01 16:23 ?540次閱讀
    Flask如何升級到 Quart <b class='flag-5'>應(yīng)用程序</b>

    PGO到底是什么?PGO如何提高應(yīng)用程序性能呢?

    性能的方法。PGO技術(shù)在編譯優(yōu)化中起了很大的作用,能夠優(yōu)化代碼、減少程序體積、提升程序性能等。 PGO技術(shù)可以分為三個步驟,首先是收集運行特征數(shù)據(jù),然后是根據(jù)收集到的數(shù)據(jù)生成優(yōu)化參數(shù),最后是使用優(yōu)化參數(shù)來重新編譯
    的頭像 發(fā)表于 10-26 17:37 ?1881次閱讀

    SEW-MOVIPRO啟動應(yīng)用程序配置程序

    AMA0801應(yīng)用程序模塊使用六個過程數(shù)據(jù)字進行尋址。因此,應(yīng)用程序配置程序必須將這六個過程數(shù)據(jù)字傳輸?shù)捷S,而不進行更改。這是通過選擇“透明6PD”選項來確保的。
    的頭像 發(fā)表于 10-22 16:18 ?629次閱讀
    SEW-MOVIPRO啟動<b class='flag-5'>應(yīng)用程序</b>配置<b class='flag-5'>程序</b>

    工業(yè)組態(tài)saas平臺有什么功能?有什么優(yōu)勢?

    工業(yè)組態(tài)SaaS平臺是實現(xiàn)數(shù)據(jù)采集與過程控制的平臺,旨在于用戶提供靈活的組態(tài)和便利的服務(wù)為,快速構(gòu)建工業(yè)自動控制系統(tǒng)的監(jiān)控功能,能夠快速識別到設(shè)備故障與參數(shù)變化,廣泛應(yīng)用于機械、汽車、石油、化工
    的頭像 發(fā)表于 10-08 17:30 ?531次閱讀

    MPLAB Harmony應(yīng)用程序幫助

    電子發(fā)燒友網(wǎng)站提供《MPLAB Harmony應(yīng)用程序幫助.pdf》資料免費下載
    發(fā)表于 09-25 09:50 ?0次下載
    MPLAB Harmony<b class='flag-5'>應(yīng)用程序</b>幫助