Monthly Archive: 一月 2019

軟體即服務 – 將軟體產品轉換為服務的指南

對於不斷擴大的全球市場,市場對更經濟,更高效的企業應用的需求不斷增長。無處不在的互聯網與開源軟體的可用性和合法性的結合為軟體供應商提供了提供軟體即服務(SaaS)的大量機會和經濟。

軟體即服務是一種模型,其中軟體供應商提供其應用程序的Internet託管版本(內部或在託管的第三方站點),客戶從網站訪問並按使用付費,項目或訂閱基礎。

SaaS模型為軟體供應商及其客戶帶來了巨大的好處。SaaS模型為客戶提供具有成本效益的基於訂閱或按使用價格的定價,從而無需大量資本支出來購買永久軟體許可。它還消除了安裝,支持和維護內部硬件及相關IT人員的初始費用和持續成本以及風險。此外,通過基於Internet的按需24×7系統,可以顯著提高用戶訪問和應用程序性能。SaaS模式為軟體供應商開闢了新的市場。成熟的軟體公司可以通過向中小型企業提供SaaS解決方案來擴大其市場範圍。其他好處包括可預測的經常性收入流的財務優勢和加強與客戶的關係。作為SaaS產品,從一開始就遷移或開發產品的軟體供應商在與傳統許可模型供應商競爭時將具有顯著的競爭優勢。

實現SaaS模型的好處可能需要對軟體供應商的業務模型,軟體架構和運營結構進行根本性的更改。本白皮書概述了與軟體應用程序本身相關的問題以及與遷移到SaaS模型相關的開發注意事項。

時間就是生命。與任何新的商業模式一樣,獎勵通常會流向早期的市場進入者。加快軟體部署的上市速度對您的業務成功至關重要。在專家服務團隊的協助下,外包產品修改以實施您的SaaS產品,並聘請最佳的按需服務交付公司,這將加快您的產品上市時間並確保按時,按預算,在範圍內實現。

轉換軟體的挑戰

手機應用程序使用雖然提供軟體即服務有很多好處,但傳統軟體公司可能在轉向此模型時面臨挑戰。首先,您的軟體必須支持Web,並且用戶使用Web瀏覽器執行所有功能。如果您有客戶端 – 服務器應用程序,則必須使用HTML以及可能由Web瀏覽器通過Internet顯示的其他技術(XML,Java等)替換客戶端中實現的功能。接下來,為了提高運營效率,您的軟體需要是多實例的。通過在一組服務器上加載軟體的多個副本,可以從單實例移動到多實例。通過多實例,您可以跨多個客戶共享服務器的成本。通過轉向多租戶SaaS或用開源軟體取代專有商業軟體,可以獲得額外的生產力增強和經濟效益。Web服務提供了與其他應用程序和數據流集成的機會。

單實例應用程序

傳統客戶端/服務器應用程序是單實例。它們需要在用戶的計算機上安裝軟體以執行計算和提供功能。客戶端通常實現高度交互的功能,並使用戶能夠操作大量數據。在傳統的HTML,請求/回复Web應用程序界面中,這可能非常難以實現,這需要頻繁的頁面刷新。從客戶端/服務器遷移到基於Internet的SaaS模型在很大程度上取決於您的特定應用程序。

今天,Macromedia,Laszlo Systems和其他公司可以使用新的富Internet應用程序(RIA)技術,為Web應用程序提供桌面應用程序或客戶端的外觀和功能。RIA要求在用戶的客戶端計算機上安裝很少或不安裝軟體。最需要的是一個小型瀏覽器插件或Java小程序。對用戶界面的這一根本性更改將您的客戶端/服務器應用程序轉換為單租戶Web應用程序。

Web應用程序可以是單實例或多實例。單實例Web應用程序通常安裝在客戶數據中心的專用服務器上,僅在防火牆後面的內部使用。在安裝時,您的軟體配置為使用計算機上所需的任何系統資源。

當Web應用程序作為Internet上的服務提供時,它應該託管在專業數據中心中。這將最大限度地降低成本並為您的客戶提供高質量的服務。如果您有單個實例應用程序和多個客戶,則一種方法是在每個客戶的專用服務器上安裝新軟體實例。這可能適用於少數客戶或一些大客戶,但它不能有效地擴展到大量客戶。它也不能用於無法承擔設置成本的中小型客戶。

從單個實例移動到多個實例

單個客戶專用服務器的替代方案是在一組服務器上安裝多個軟體副本。這稱為多實例。通過多實例,您可以跨多個客戶共享服務器的成本。大多數業務應用程序使用數據庫,並且安裝的每個附加軟體副本也需要新的數據庫實例。

在一組服務器上安裝軟體的多個副本可能並不像聽起來那麼容易。需要修改安裝過程,以便安裝每個實例,而不會中斷資源分配或其他先前安裝的軟體副本的安全性。

可以安裝的實例數量有限制,最終將消耗系統資源。系統資源包括共享內存,進程信號量和其他內部操作系統參數。所以問題就變成了,“你可以在服務器上安裝多少份軟體?”

顯然,您可以繼續安裝軟體實例,直到資源耗盡為止。但是,您還必須考慮用戶在負載下系統的性能。通常,您的軟體必須支持最大數量的並髮用戶,並且必須滿足最低性能或響應時間要求才能滿足客戶承諾。

準確回答“您可以在服務器上安裝多少份軟體?” 通過在添加其他實例時測試軟體來獲得問題。最好使用自動化測試軟體工具,該工具可以模擬在系統上施加負載的所需數量的用戶。

測試過程是確定最佳實例數和最終性能。這是通過安裝應用程序的其他實例,並使用可變流量建模仔細監視系統資源和運行用戶負載測試來確定返回減少的點來實現的。

無論您是否已經創建了自動用戶負載測試腳本和過程,這個最大化服務器上實例數的過程可能需要一到三週,具體取決於系統的大小和復雜性,安裝過程的質量。

移動到多實例可能需要進行少量代碼更改。例如,如果您的應用程序在磁盤上讀取和寫入具有硬編碼文件名和位置的文件,則必須在每個實例的不同位置創建該文件,以避免每個實例之間發生衝突。將發現這些問題,並且需要在一到三週內進行更改。

後續步驟 – 提高功能和降低成本

一旦您的軟體作為多實例SaaS應用程序有效運行,您可能希望採用多租戶架構。在單租戶架構中,多個客戶共享一個軟體實例。從多實例遷移到多租戶可能是一個重要的項目,甚至可能需要從頭開始重寫您的應用程序。需要仔細研究轉向多租戶所獲得的效率。您可能會發現您的資源更好地用於其他方式。

另一個可能的步驟是專注於驅動模型的成本。許多應用程序依賴於昂貴的專有數據庫和/或中間件。通過遷移到更低成本或開源替代方案可以實現顯著節省。這裡的投資可以顯著節省運營成本,這對您的最終用戶來說是透明的,並且對您的利潤非常有利。

您還可以考慮為進程間通信添加Web服務。如果您的應用程序是從另一個應用程序傳遞或收集信息的工作流程的一部分,那麼這將特別有吸引力。設計Web服務將最大限度地減少長期集成需求。

單實例,多租戶Web應用程序

應用程序分類軟體公司已經創建了十多年的Web應用程序。這些通常安裝在客戶的Intranet上,僅在防火牆後面的內部使用。該軟體的單個實例僅由一個客戶使用。這是單實例和單租戶。

您在上面看到瞭如何安裝和測試軟體以使其成為多實例 – 在一台服務器上運行多個副本。但是,每個副本都是單租戶Web應用程序。

可以修改單租戶Web應用程序以支持同一實例上的多個客戶租戶。多租戶Web應用程序可最大限度地減少支持多個客戶所需的硬件數量。此外,客戶可以通過註冊帳戶並輸入付款信息來自行配置軟體的使用。這可以最大限度地減少並經常消除建立新客戶所需的支持量。

支持多租戶的修改之一是為用戶在系統中配置帳戶創建用戶界面。根據與其他企業系統集成的要求,另一個修改是LDAP接口,用於方便地配置和管理用戶帳戶。現代數據庫技術可以快速復制數據模型,因此每個客戶都有自己的數據庫中每個表的副本。當存儲在用於服務的單個數據庫實例中時,這是一種保持客戶數據分離的優雅方法。

應提供用於配置軟體的模板,以加速新客戶對服務的定制和採用。模板支持客戶使用各種系統的方案。

可能需要顯示所有租戶使用系統的系統管理儀表板。必須有一種機制來衡量系統使用情況,以便計費和監控系統負載。可能還需要實施用於客戶支持目的的管理帳戶。

可能有必要提高後端的可靠性,使用數據庫技術在物理上較遠的位置實施並行服務器,以確保在自然災害或人為災害期間保持恆定的上升時間。

維護多租戶Web應用程序的性能

多租戶應用程序必須處理在單租戶和客戶端/服務器系統中不那麼明顯的幾個問題。由於多租戶系統可通過公共互聯網使用,因此使用可能無法預測。因此,必須更加謹慎地進行需求規劃。應檢測系統以檢測不斷增加的使用情況,以便提供額外的硬件和帶寬以維持服務水平。

通過轉向開源來降低成本

許多軟體開發人員對其應用程序使用的應用程序服務器和數據庫軟體不了解。客戶經常要求這些選擇。如果您的客戶希望使用Oracle作為數據庫,那麼您必須支持這種流行的選擇。您的軟體必須具有模塊以在技術上支持每個數據庫。在業務方面,如果他們尚未擁有許可證,則會將數據庫許可證的成本傳遞給最終客戶。

轉換軟體挑戰但是,當您的軟體作為服務提供時,您應該選擇哪種數據庫?可能不需要昂貴的商業數據庫的技術特徵。此外,將軟體作為服務提供的經濟性可能會降低商業數據庫許可費用的費用。

因此,許多將軟體轉換為服務的公司將選擇目前可用的低成本或無成本的開源數據庫之一。這些數據庫選擇現在被廣泛使用和強大。冗餘集群和自動備份功能等高級功能可與商業數據庫相媲美。

如果您的應用程序尚不支持其中一個數據庫,則需要克服一些技術問題。用於訪問和操作數據庫中的數據的大多數SQL的格式和語法是標準的。但是,幾乎每個數據庫供應商都擴展了SQL,許多應用程序使用這些擴展,例如特殊功能來修改和比較數據。每個數據庫供應商如何處理游標,觸發器,數據類型和包變量可能有很多變化。如果在應用程序中使用SQL擴展,則需要重新編碼這些SQL語句以使用目標開源數據庫。

遷移到按需交付模型與引導技術部署和投資緊密結合。即使開源數據庫軟體沒有您想要的所有功能,或者它們運行速度稍慢,當您第一次開始提供軟體即服務時,也可能沒有經濟上的選擇。在商業數據庫許可證中投入數万美元,而每個訂戶只能收取幾百美元,這對您來說可能沒有經濟意義。隨著時間的推移,隨著您的訂戶群增長,您可以選擇切換到商業數據庫。在您負擔得起或活動水平增長到高水平之前,開源數據庫解決方案可能是您唯一的實用解決方案。

軟體的另一個相對昂貴的部分是商業Java應用程序服務器所需的許可證。這是另一類軟體,其中存在多個開源選項。通常,轉換到開源應用程序服務器相對簡單。所有這些都必須符合Java 2 Enterprise Edition(J2EE)的規範,您的代碼不需要任何修改。

但是,在應用程序服務器中安裝代碼的方式有所不同。所有開源應用程序服務器都記錄了安裝和設置過程。您必須修改安裝過程以滿足您使用的應用程序服務器的要求。

同樣,商業案例很清楚。龐大的用戶社區使開源應用服務器成為一種安全的選擇。當您剛開始提供軟體即服務時,商業應用程序服務器的成本很難證明是合理的。與轉換為開源數據庫的轉換一樣,隨著訂戶群的增長,您可以隨時切換回商業應用程序服務器。

用於數據傳輸和集成的Web服務

API flowcart當客戶將軟體安裝在自己的防火牆後面的數據中心時,他們可以將軟體與其他應用程序和數據源集成。當您通過Internet將軟體作為服務提供時,集成並不容易。必須提供身份驗證和加密才能實現安全的數據傳輸。

通過公共Internet進行數據傳輸和集成的最流行的方法是使用Web服務,SOAP協議和WSDL。如果您的應用程序具有Java或C ++等本機語言的應用程序編程接口(API),則需要創建一個Web服務接口,該接口使用API​​與您的軟體進行通信,並使用SOAP實現與外部世界的雙向數據流。

上市時間

時間就是生命。隨著新的SaaS模式的採用,早期進入者將具有顯著的優勢。將您的應用程序發展為支持Web的多實例將使您能夠快速成為SaaS播放器。在決定是否與專家合作或在內部進行移民和基礎設施開發時,應考慮上市時間問題。

外包軟體開發的優勢

擁有SaaS經驗的外包開發人員可以幫助您快速遷移到這個新模型。他們可以提供安裝和負載測試,以確定多實例配置的最佳設置; 調整您的軟體以從多實例遷移到多租戶; 或者從客戶端/服務器應用程序開發多實例或多租戶應用程序。

重要的是,外包開發人員可以修改您現有的軟體產品,而不會中斷您當前客戶期望的新功能和增強功能。通過託管外包關係,您可以繼續專注於當前業務,而外包開發人員正在創建軟體以支持您的新業務模式。外包開發人員將為您提供達到SaaS模式的成本和時間節省。

要利用SaaS在您的空間中佔據競爭優勢,您應該考慮與經驗豐富的供應商合作,指導您完成轉換應用程序的過程。