在早期的云開發(fā)項目中,主要的關注點是移動應用程序,這種安排是合乎邏輯的,因為云技術是一種新型的計算方案。幾年后,許多企業(yè)意識到最佳的云應用或許是那些從未執(zhí)行過數據中心的應用程序。懷著這樣的想法,計劃人員以及架構師們一直在應用程序的探索之中,以期云性能發(fā)揮到最佳的狀態(tài)。
在設計過程中,IT專業(yè)人士發(fā)現了如下要點:
首先要查看工作流和組件化模型
在計劃初期就要察覺到設計中的邏輯瓶頸
充分利用云供應商所提供的平臺服務
從設計之初就要建立監(jiān)控和APM體系
采用云計算的好處在于,它有別于遺留數據中心計算,而將重心放在計算的靈活性和敏捷性。軟件架構師知道這種優(yōu)勢源于組件化應用的設計。然而,每一位架構師同樣也知道組件化設計這條路需要走一段時間,導航功能一步步的設計會產生許多額外的開支。因此,架構師們應當意識到,任何云優(yōu)化應用設計都需要先經過工作流程和組件化分析。
企業(yè)結構文檔應該向架構師們提供工作流程的業(yè)務圖示。對于那些基礎數據無法訪問的地方,應該開發(fā)一種封閉的循環(huán),在監(jiān)控目標應用程序的同時將工作人員的請求或者輸入的信息轉化為一種輸出信息。通過先進的軟件設計流程,這種高級別的工作流程將會被分解為不同的組件化工作流程。
針對應用程序而設計的路線圖
一般來說,云應用設計的目的是要將所有的應用程序都變?yōu)閹в刑摂M圖像的用戶界面前端流程。該流程基于網絡設計原則,支持中介數據模型中組件化工作流的在線交易過程。這種模型實現了云計劃的兩個重要目標:1)實現了設備獨立性以及應用開發(fā)流程之外的工作人員定制化;2)根據工作容量的比例,應用現有的網絡技術來設計應用程序前端組件。
云控制應用設計的第一步就是要在高級水平下應用該模型。接下來,查看OLTP端的應用程序,需要將一般的邏輯請求轉換為一種普通的、多格式的輸出形式。
該流程將會被劃為多個步驟,其中許多會與獲取或者更新信息有關。每一步流程及其相關組件都會被許多特定的資源設置所限制。為了實現云性能最優(yōu)化,我們需要先解決三個與約束有關的問題。
輸入或者輸出環(huán)節(jié)可以優(yōu)化嗎?
內部操作系統(tǒng)可以提速嗎?
可否復制以提高工作流的速度?
在設計層面上,優(yōu)化組件 I/O通常意味著,控制必須流進或者流程的信息量。也就是說,注意千萬不要因為增加了超過實際組件所需的數據而夸大組件工作流的能力。在設計過程中,我們很容易在單獨的交易中創(chuàng)建一個大的數據元素,并在接下來的工作流程中一直應用這個數據元素,但是,最好不要將組件不需要或者不用的多余的東西引入到設計中。
內部處理所需要的是與他們所期望的工作變革相吻合的組件。在處理過程中,組件的功能使命是非常重要的。其目的是要讓操作系統(tǒng)可以盡可能的利用本地資源。
如果在不耗費成本的情況下可以復制參考表,那么這樣做要比在互聯(lián)網上連接用戶組件而建立中心數據庫的做法要好得多。通過組件分組將通用組件合并成一類單獨的組件,或者將這些組件設置在工作中相鄰的位置,這樣就會提升本地存儲的價值,優(yōu)化連接也會更容易。
設計中我們要避免使用混合格式以及相同組件的處理步驟,因為,通過組件復制,它們會限制優(yōu)化性能。如果組件訪問了可能會被共享的數據資源,想做到不使用就會很難。
那些用于提升產量而難以被復制的組件將會是工作流程中的瓶頸,應該在設計階段加以解決。通過優(yōu)化核心資源可能使用的路徑就會開發(fā)出許多提升組件性能的方法。
注意事項
我們要尋找多個組件在不同地點訪問同一個數據庫獲取不同信息的案例,或許將所有信息設置在訪問的初始階段會更好。同樣地,在設計中要謹慎使用組件化模型,因此,當應用程序以分片形式發(fā)送到云端時,敏捷性能將會以一種高風險方式被引入到交易中。
第二件需要注意的事情是要充分利用云供應商所提供的服務平臺。大多是大型云供應商都會向客戶提供云數據庫管理系統(tǒng)服務、工作流管理和分布式工作流處理服務。通常,這些工具可用于接近Web前端和應用程序的OLTP之間的部分。
需要注意的是,以上工具只有部分供應商能夠提供,并且只有在公共云環(huán)境下才能使用這些工具。我們需要根據云平臺的具體環(huán)境對應用程序進行定制化處理,只有這樣才能得到充分利用。
最后一點是,在設計過程中建立績效管理以及監(jiān)控系統(tǒng)。如果組件可以識別性能增強機制,那么,水平縮放或者甚至是分級存儲都能夠得到最優(yōu)化處理,并且也能夠檢查它們何時需要優(yōu)化,以及它們需要什么形式的協(xié)調處理。沒有突出的變革是無法有效地提高生產量的。
與數據中心相比,云環(huán)境下的性能更復雜,因為,我們不知道其中的資源分配細節(jié),而且它也不會受周圍環(huán)境所影響。我們最好在一開始就將這種性能優(yōu)化管理概念融入到應用程序的設計之中,以免后悔沒最先考慮到這一點。