新聞中心
當前位置:網站(zhàn)首頁 > 新聞中心
将應用(yòng)程序移動到(dào)雲端需要知(zhī)道(dào)的事(shì)項
如今,很(hěn)多企業都在将他(tā)們的應用(yòng)程序遷移到(dào)雲端。将應用(yòng)程序遷移到(dào)雲端很(hěn)容易,但(dàn)如果需要遷移現(xiàn)有的基礎設施怎麽辦?可以在雲平台中重新創建網絡,實現(xiàn)架構現(xiàn)代化,企業可以利用(yòng)AWS等雲計(jì)算(suàn)提供商的諸多優勢。
是什(shén)麽讓雲計(jì)算(suàn)如此有用(yòng)?
在最基本的形式中,“雲”就是基礎設施即服務,允許企業租用(yòng)硬件來(lái)運行其應用(yòng)程序。許多企業通過自(zì)己的内部部署服務器運行他(tā)們的網絡,從(cóng)第三方租用(yòng)服務器可以提供更大(dà)的靈活性,并可根據需要進行擴展。
然而,AWS、谷歌雲平台和(hé)微軟Azure等主要雲計(jì)算(suàn)提供商提供的不僅僅是服務器。他(tā)們的業務是提高(gāo)運營效率,并爲開(kāi)發人員提供易于使用(yòng)的工(gōng)具,使構建應用(yòng)程序變得更加容易。
例如,在雲平台中運行服務器實際上(shàng)可以爲企業節省更多的成本。雖然專用(yòng)服務器的成本會(huì)更昂貴,但(dàn)像AWS公司這(zhè)樣的雲計(jì)算(suàn)提供商擁有先進的自(zì)動擴展系統。這(zhè)些(xiē)使企業可以完全自(zì)動化其服務器生命周期過程,随着需求波動創建和(hé)關閉服務器資源(通常一天多次)。企業可以在非工(gōng)作(zuò)時(shí)間縮減規模,從(cóng)而節省總體成本,而不是爲峰值容量付費。
設置自(zì)動擴展還允許企業在遇到(dào)更高(gāo)負載時(shí)自(zì)動創建其他(tā)服務器。這(zhè)使企業的網絡具有高(gāo)度可擴展性,并且意味着企業不會(huì)因高(gāo)流量而真正遇到(dào)停機。這(zhè)種可擴展的功能(néng)适用(yòng)于所有服務。例如,AWS公司開(kāi)箱即用(yòng)的Lambda函數可以無限擴展。他(tā)們的系統爲企業處理(lǐ)和(hé)運行代碼;無論每秒調用(yòng)多少次函數,它都不會(huì)出現(xiàn)瓶頸。
雲計(jì)算(suàn)還通過任務自(zì)動化來(lái)節省成本。例如,AWS的關系數據庫服務(RDS)是一項完全托管的SQL服務,可以自(zì)動執行許多管理(lǐ)數據庫的工(gōng)作(zuò)。企業可能(néng)已經通過自(zì)己的服務器完成這(zhè)些(xiē)任務;如果使用(yòng)AWS RDS,則可以管理(lǐ)更多數據庫并更有效地利用(yòng)剩餘時(shí)間。
最後,雲計(jì)算(suàn)基礎設施通常比内部部署解決方案更耐用(yòng)。這(zhè)主要是由于像S3存儲這(zhè)樣的服務對(duì)于數據存儲來(lái)說是非常冗餘的,但(dàn)它也(yě)适用(yòng)于高(gāo)可用(yòng)性網絡設計(jì)。故障轉移情況的設計(jì)很(hěn)容易,在發生硬件故障時(shí),備份服務器可以接管。而且在最壞的情況下(xià),備份網絡中的所有内容都非常容易,因爲爲服務器存儲提供動力的EBS等服務可以配置爲自(zì)動備份到(dào)S3存儲設施中。
例如,AWS公司的DNS服務Route 53支持運行狀況檢查,如果服務器無響應,它會(huì)監控企業的硬件并在DNS級别自(zì)動切換流量。自(zì)動擴展還支持運行狀況的檢查,并且可以在服務器出現(xiàn)問題時(shí)完全終止和(hé)替換它。
使用(yòng)雲計(jì)算(suàn)解決方案實現(xiàn)架構現(xiàn)代化
遷移到(dào)雲平台是一大(dà)步,有了(le)提供給企業的其他(tā)工(gōng)具,就有充分的理(lǐ)由檢查其架構,可以了(le)解哪一部分是否可以從(cóng)設計(jì)更改中受益。
例如,許多傳統的應用(yòng)程序被設計(jì)爲一個“單體”,即打包成一個可以在服務器上(shàng)運行的大(dà)程序。該程序可能(néng)與内部部署或遠程數據庫通信、處理(lǐ)傳入的Web請(qǐng)求、執行查詢、查找信息、處理(lǐ)隊列,以及企業的用(yòng)例所需的所有其他(tā)内容。
這(zhè)對(duì)于應用(yòng)程序的快(kuài)速啓動和(hé)運行是有好(hǎo)處的,但(dàn)最終帶來(lái)一個問題——效率不高(gāo)。隻要它試圖同時(shí)處理(lǐ)許多複雜(zá)的任務,大(dà)型??單體應用(yòng)程序的某個方面總會(huì)成爲應用(yòng)程序其餘部分的瓶頸。通常情況下(xià),企業會(huì)被迫擴大(dà)規模,配置更多服務器,運行更多實例。如果程序中的其他(tā)組件沒有受到(dào)那麽大(dà)的壓力,這(zhè)可能(néng)會(huì)導緻浪費。
因此,許多工(gōng)程師正在轉向的解決方案是“微服務”。 這(zhè)些(xiē)服務是單獨的,每個服務都有一個明(míng)确的固定目标。或許企業的Web應用(yòng)程序的一個元素處理(lǐ)視(shì)頻,相比之下(xià),當用(yòng)戶上(shàng)傳更大(dà)的視(shì)頻時(shí),它的壓力更大(dà)。企業可以将這(zhè)一部分轉移到(dào)微服務中,在外(wài)部處理(lǐ)它,并在需要時(shí)簡單地調用(yòng)它。現(xiàn)在,該組件可以完全自(zì)行擴展;企業可能(néng)需要三台服務器運行視(shì)頻處理(lǐ)服務,但(dàn)隻有兩台服務器運行應用(yòng)程序的其餘部分。這(zhè)樣可以更有效地利用(yòng)企業的資源,并且在總體上(shàng)是一種更具可擴展性的設計(jì)。
企業應該考慮采用(yòng)哪些(xiē)服務?
無論企業是否選擇微服務設計(jì),其他(tā)雲計(jì)算(suàn)解決方案都非常有用(yòng)。
以下(xià)将讨論AWS公司提供的一些(xiē)服務,因爲該公司是雲計(jì)算(suàn)行業的領導者,尤其是在提供的服務數量方面。但(dàn)是,大(dà)多數主要雲服務提供商都提供了(le)類似的産品。
(1)雲對(duì)象存儲(S3)
大(dà)多數内部部署解決方案使用(yòng)塊級存儲,這(zhè)意味着對(duì)象作(zuò)爲文(wén)件存儲在磁盤上(shàng),并通過網絡提供。但(dàn)是,AWS等雲計(jì)算(suàn)提供商的規模允許在其簡單存儲服務(S3)中存儲大(dà)量文(wén)件。
S3沒有采用(yòng)傳統的文(wén)件夾,盡管它們确實有對(duì)象鍵,它們的工(gōng)作(zuò)方式大(dà)多與S3類似。S3不提供對(duì)底層驅動器的直接訪問,而是僅允許企業在雲平台中存儲具有名稱和(hé)位置的文(wén)件。就是這(zhè)樣,但(dàn)是這(zhè)種簡單的設計(jì)模式提供了(le)極大(dà)的靈活性。
例如,假設企業的應用(yòng)程序允許用(yòng)戶上(shàng)傳的内容。将圖像存儲在S3中将是一個很(hěn)好(hǎo)的選擇,企業甚至可以使用(yòng)AWS的CloudFront内容交付網絡通過全球互聯網提供它們。
切換到(dào)基于S3的存儲是一個過程,但(dàn)有混合解決方案,例如AWS的Storage Gateway。
(2)Cloud functions
像Lambda這(zhè)樣的雲計(jì)算(suàn)功能(néng)非常有用(yòng),它們允許企業在雲平台中運行代碼而無需考慮服務器。隻需直接從(cóng)AWS的API網關等API請(qǐng)求要執行的函數,它就會(huì)排隊并在Lambda服務器上(shàng)運行。
企業隻需爲函數使用(yòng)的CPU秒數和(hé)内存量支付費用(yòng)。不管調用(yòng)多少函數,它都會(huì)擴展來(lái)處理(lǐ)它。
Cloud functions可以輕松地自(zì)動執行網絡中的簡單任務。如果企業在其中一台服務器上(shàng)運行cron作(zuò)業腳本,需要考慮将其移至Lambda。當然,Lambda不僅限于簡單的腳本。它非常強大(dà),可用(yòng)于制作(zuò)強大(dà)的應用(yòng)程序後端。
(3)負載均衡器和(hé)自(zì)動擴展
負載平衡器是在服務器之間分配流量的網絡設備。傳統上(shàng),企業必須設置服務器并使用(yòng)HAProxy之類的程序自(zì)己配置。在AWS雲平台上(shàng),它們内置于網絡中,隻需打開(kāi)它們并支付費用(yòng)即可。
自(zì)動擴展是建立在負載均衡器之上(shàng)的另一項功能(néng)。企業的服務器列表不是靜态的,而是基于流量需求。将根據需要在資源池中添加和(hé)删除服務器。
正如以上(shàng)介紹的那樣,這(zhè)有很(hěn)多好(hǎo)處,但(dàn)它也(yě)會(huì)對(duì)企業使用(yòng)和(hé)更新網絡的方式産生深遠的影響。因爲企業的服務器安裝過程是自(zì)動化的,所以可以進行藍/綠代碼部署,即通過創建全新的服務器來(lái)更新服務器,等待服務上(shàng)線,并緩慢地将流量切換到(dào)它們以消除任何問題。
如果可以确定的話(huà),那就是自(zì)動擴展企業的主要EC2服務。
(4)自(zì)動化持續集成(CI)/持續交付(CD)管道(dào)
持續集成(CI)/持續交付(CD)是設置應用(yòng)程序自(zì)動構建的過程,隻要企業對(duì)源代碼控制進行更改,該應用(yòng)程序就會(huì)部署到(dào)服務器。
基本上(shàng),企業将提交推送到(dào)Github(或使用(yòng)其他(tā)存儲庫),然後AWS CodePipeline之類的服務啓動構建服務器。該服務器構建并測試應用(yòng)程序,如果成功,它将完成的構建發送到(dào)企業的服務器進行更新。如果設置了(le)自(zì)動擴展,則可以通過藍/綠部署完成,并在必要時(shí)提供快(kuài)速輕松回滾的選項。
(5)内置内容交付網絡(CDN)
企業擁有内容交付網絡(CDN) 可以顯著加快(kuài)交付時(shí)間。由于AWS是全球雲計(jì)算(suàn)巨頭,因此他(tā)們的内容交付網絡(CDN) 在全球擁有邊緣節點。許多其他(tā)雲計(jì)算(suàn)提供商也(yě)有類似的解決方案;谷歌公司的内容交付網絡(CDN) 是最快(kuài)、最靈活的CDN之一,因爲該公司實際上(shàng)控制着構成互聯網的許多基礎設施。
企業可以在不停機的情況下(xià)遷移嗎?
遷移将是一個漫長而複雜(zá)的過程,但(dàn)這(zhè)并不一定意味着延長停機時(shí)間。可能(néng)會(huì)有一些(xiē)停機時(shí)間,但(dàn)這(zhè)一過程可以相當無縫。
企業可以采用(yòng)以下(xià)兩種策略中的一種:第一種選擇是一次性移動所有服務器并切換整個網絡,或者将企業應用(yòng)程序的一部分移動到(dào)雲平台中,然後更新應用(yòng)程序以使用(yòng)新服務。
第二種選擇是采用(yòng)混合方法,這(zhè)是大(dà)多數大(dà)型企業的選擇,因爲隻遷移最有用(yòng)的東西更具成本效益。AWS公司有許多服務通過将内部部署硬件與雲平台集成來(lái)工(gōng)作(zuò)。
第一種選擇對(duì)于小(xiǎo)型部署很(hěn)容易,并且通過AWS公司的應用(yòng)程序遷移等服務變得更加簡單,該服務可以将一組服務器快(kuài)速移動到(dào)EC2上(shàng)。企業可能(néng)仍然需要代碼更新和(hé)配置,但(dàn)它可以将企業的整個網絡移動到(dào)一個測試環境中,可以在其中設置所有内容,然後在準備就緒時(shí)執行切換。
無論哪種方式,遷移到(dào)雲平台對(duì)于企業來(lái)說都是一個重大(dà)的決定,企業應該确保經過充分研究并制定明(míng)确的計(jì)劃。企業的具體設置會(huì)有很(hěn)大(dà)的差異,因此需要研究要運行的應用(yòng)程序類型的最佳實踐。
上(shàng)一篇 企業上(shàng)雲迎來(lái)“黃金(jīn)時(shí)代” 下(xià)一篇 怎樣找回虛拟主機密碼
|