在阿里,我们这样帮助用户实现业务云原生化迁云
「本文整理自阿里云高級開發工程師郝樹偉(流生)在大會上的演講,獲取云原生專場全部 PPT 合集請在阿里巴巴云原生公眾號后臺回復“724”」
7 月 24 日,阿里云開發者大會正式在上海世博中心召開,大會聚焦 IT 基礎設施云化、云數據庫、開源大數據、物聯網以及云原生等主題,向數千位開發者分享了云上開發的技術干貨。
云原生的時代已經到來,云原生技術正在重塑整個軟件生命周期,阿里巴巴是國內最早布局云原生技術的公司之一。
容器服務團隊在過去的幾年時間內幫助很多用戶成功把業務云原生化并遷移上云,其中有現在已經是我們 TOP10 的大客戶,也有需要在國內開展業務的海外用戶,有些是從其他云廠商遷移過來的用戶,有些是從 IDC 里遷移上云的用戶,而且越來越多的用戶開始咨詢如何對自己的應用做云原生化改造、如何把業務平滑地遷移到云上。
每個用戶的業務場景都是不同的,有些差異化的業務場景對容器平臺也有一些定制化的需求,我們在幫助這些用戶落實遷云方案的同時也在不斷思考如何把這些案例中共性的東西做一些沉淀,總結出一些優秀的解決方案、最佳實踐以及開發一些工具來幫助用戶快速完成遷云的這件事情。這些解決方案、最佳實踐以及遷云工具就是今天這篇文章想要分享的內容。
在幫助用戶落實遷云方案之前,我們首先必須要回答至少 3 個問題:
- (1)ACK(阿里云容器服務 Kubernetes)如何能保證用戶業務的可靠性、穩定性、安全性和靈活性;
- (2)如何設計遷云方案把業務平滑地遷移到 ACK;
- (3)應用如何做進一步改造來適配 ACK 提供的更強大的擴展能力。
ACK 如何保證用戶業務的多種特性
-
首先,ACK 是以阿里云可靠穩定的 IaaS 平臺為底座的,有最大的彈性化與低廉成本和全球化接入的優勢;
-
其次,ACK 本身處于阿里云的安全體系架構之下并從基礎設施到容器運行時環境對容器集群有全維度的安全加固;過去幾年我們很好地支撐了成百上千家大小企業的業務運行,有海量用戶經驗總結并經過雙11驗證;
-
除此之外,ACK 是在標準的 Kubernetes 基礎上,對與用戶息息相關的能力做了大幅提升,用戶完全不需要擔心會被某一家廠商綁定。
在我們過去幫助用戶業務上云的案例中,絕大部分是自建 Kubernetes 集群遷移到 ACK 集群,與自建 Kubernetes 集群相比較,ACK 在成本、彈性、IaaS 高度融合、性能、安全加固以及實踐經驗等方面都有非常巨大的優勢。
另外,ACK 與阿里云的所有 region 保持一致,除了國內多個區域開服外,在東南亞、中東、歐洲、美東美西都有開服,完全可以滿足用戶開展全球業務的需求。
整體遷云方案設計
用戶業務整體遷云的方案設計會涉及到集群規劃、數據搬遷、監控切換、日志切換以及最終的生產流量切換或并網操作。
遷云到 ACK 需要涉及到哪些組件、搬遷哪些數據、切換哪些服務等,都是需要用戶有清晰的概念的。
-
首先需要做集群規劃,用戶需要根據自己業務場景的不同來選擇不同的機器類型,比如 CPU 機器還是 GPU 機器、比如虛擬服務器 ECS 還是神龍裸金屬服務器、網絡規劃這部分會涉及到容器集群基礎設施選擇vpc內網網絡還是經典網絡、集群內pod之間進行通信模式是flannel模式還是terway模式等;
-
在容量規劃這部分,用戶可以根據自己的成本以及預算,規劃一個可滿足初期業務正常運行的容量即可,隨后可以配置動態擴縮容隨時彈縮集群規模;
-
在安全防護提升這部分,有基礎架構安全比如設置合理的安全組規則,有鏡像安全比如使用私有鏡像并定義鏡像安全掃描,K8S 應用安全管理比如設置不同服務間互相訪問的網絡安全策略等;
-
監控切換這部分相對于用戶自建 Kubernetes 會更加全維度和立體,從基礎設施到容器運行時監控一應俱全,并可根據閾值設定觸發報警通知。用戶一般也會把自建的日志收集方案切換成阿里云上企業級的日志產品 SLS;
-
數據遷移是非常重要的一部分,這些數據包括數據庫數據、存儲數據、容器鏡像等,我們會對接阿里云上企業級的粗出產品以及遷移工具,目的是為了保證數據遷云的可靠性、安全性;
-
應用改造主要涉及的內容包括鏡像地址的更新、服務暴露方式的優化以及存儲盤掛載方式的更新適配;最后提供一個滿足用戶快速迭代上線產品的 CICD 方案。
以上各個組件調試完畢后,我們就可以進行一部分生產流量的切換。從集群規劃到生產流量切換便是用戶業務遷移上云所需要涉及到的方方面面。
我們提供了一個企業容器化生命周期模型,這個模型是根據時間階段和用戶側各個業務角色來劃分的:
比如業務架構師角色需要關心的是業務上云能給公司帶來什么價值,在 TCO 和場景上會帶來哪些優化,云平臺在安全性以及計算、存儲、網絡能力上是否能滿足當前業務需求;IT 架構師負責規劃當前業務需要的集群容量和規模以及網絡選型等問題,剩下的就是系統管理員與應用管理員把遷云方案的各個細節落實下來。
這個模型的主要核心關注點是讓用戶的業務上云后能更穩定、成本更低、效率更高。
全棧遷云架構思路分兩種:一種是整體遷移,一種是平滑遷移。
整體遷移是指用戶應用全部遷移上云后,各個組件調試完畢、測試驗收通過后,可以整體切換生產流量到線上集群,待線上集群上的業務穩定運行一段時間后再下線原有環境。
平滑遷移是指用戶可以使用線上 ACK 集群納管線下節點,或者線上集群與線下集群混合組網對外提供服務,逐步改造業務組件上云后將原有環境下線。
這兩種方式相比,整體遷移更簡單,平滑遷移響度復雜但對業務影響小,所以也需要根據用戶的實際場景做選擇。
容器化整體遷云這部分還有兩個小場景:
一個是用戶從自建 Kubernetes 集群遷移到 ACK,此場景下用戶的應用已經做了很大一部分的云原生化改造,遷移工作相對來說會簡單些;
還有一部分用戶的應用是傳統應用,直接運行在虛擬機或者裸金屬服務器上,沒有做過任何云原生化的改造,對于這部分場景,我們也提供了相關工具或方案幫助用戶進行云原生化的遷云改造,比如使用 derrick 項目可以自動檢測源碼項目類型并生成 Dockerfile 和用于應用部署編排的 yaml 文件,比如我們正在聯合 ECS SMC(遷云中心)開發的虛擬機轉換容器鏡像并運行在 ACk 集群中的能力。
為了幫助用戶提高遷云的效率,我們也在持續積累和開源一些遷云工具。
比如 ack-image-builder 為用戶提供創建 ACK 集群節點自定義鏡像的模板并通過校驗模塊檢查自定義鏡像是否滿足 ACK 集群要求;sync-repo 能夠幫助用戶快速完成容器鏡像批量遷移至 ACR(容器鏡像倉庫服務); velero 能夠幫助用戶快速把其他云廠商后者自建 Kubernetes 集群下的完整應用遷移至 ACK 集群。
Velero遷移Kubernetes應用到ACK視頻DEMO](http://cloud.video.taobao.com/play/u/3300558962/p/1/e/6/t/1/232004050150.mp4))
在數據搬遷部分,可靠遷移是關鍵,根據用戶數據類型的不同,我們會使用與之匹配的企業級遷移工具,比如數據在線遷移服務 DOMS,比如 OSS 的遷移工具,還有離線海量數據遷移方案閃電立方等。
數據、應用遷云完成后,需要進一步適配監控、日志等組件,待各個組件調試完畢通過驗收后,可以使用智能 DNS 進行生產流量的切割。
應用改造和優化
對于應用改造和優化這部分,K8s 到 K8s 的場景下,需要優化的是去適配自動擴容等自建 K8s 不具備的那些能力,在傳統應用遷移到 ACK 的場景下,這部分的工作量會更大些,所以我們針對這個場景也輸出了一些方案,比如類似于異地多活的方案,我們把用戶傳統應用環境,通常是虛擬機或者裸機環境集成到線上 ACK 部署的 Istio 網格中,逐步改造應用直至業務全部切換到線上 ACK 集群。
在應用逐步改造的這個過程中,會涉及到應用如何容器化、網絡環境如何遷移以及數據遷移的問題。
應用容器化這個問題,我們可以使用前面我提到過的一個服務叫做 SMC 遷云中心來完成虛擬機轉換為容器鏡像的過程,網絡這部分可以通過 iptables, External, CoreDNS PrivateZone 等方式對 IP 地址 DNS 域名做處理,保持原先的邏輯 IP 和域名不變,并通過 Istio 實現網絡虛擬路由和可觀測性的管理。
案例
典型案例如下圖所示:
接下來是部分遷云案例:
- 有對高性能網絡有特殊需求的用戶;
- 有做深度學習相關業務對大規模GPU機器有需求的用戶;
- 有要求裸金屬機型服務器的用戶等等。
ACK 云原生化遷云解決方案、混合云 2.0 管理能力發布
在云原生場景實戰分論壇上,阿里云容器服務 ACK 正式發布云原生化遷云解決方案、混合云 2.0 管理能力。
ACK 云原生化遷云解決方案
云原生化遷云解決方案旨在實現容器化整體遷云。方案能幫助用戶快速完成遷云方案評估、遷云實施和生產流量切換,全面提升用戶業務的可靠性、安全性、靈活性并降低開發運維成本,為用戶提供全方位保障,讓用戶聚焦業務創新。
ACK 混合管理能力 2.0
ACK 混合管理能力 2.0 提供了多維度統一能力,進一步減少開發者工作量:
-
首先提供統一管理能力。可以納管用戶 IDC 自有 K8s 集群和各類 K8s 集群,利用統一的控制平面實現統一的安全治理、應用管理和監控、日志等能力。
-
其次在統一的資源調度基礎上提供動態彈性能力。幫助客戶更好利用云端計算資源實現彈性擴容,從容應對突發流量。
-
最后是統一的服務治理能力。可以實現就近訪問,故障轉移,灰度發布等功能,配合阿里云混合云能力輕松支持支持云容災、異地多活等應用場景。
不久前,阿里云發布了 Edge@ACK 云邊端一體化的云原生邊緣容器產品。在此次大會上,阿里技術專家詳細闡述了邊緣容器如何在阿里云 CDN 落地。CDN 正在進行二次變革,從以內容分發服務為主轉變為邊緣計算,其節點經過改造后也可升級為具備存儲、計算、傳輸、安全功能云計算節點,形成處理高頻、高交互的海量數據的能力。
阿里云 ENS 就是基于 CDN 的邊緣節點服務,在阿里云看來:“云原生”在云邊端一體化時代將會發揮更大的價值。
總結
以上是生活随笔為你收集整理的在阿里,我们这样帮助用户实现业务云原生化迁云的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kubernetes 弹性伸缩全场景解读
- 下一篇: Knative 基本功能深入剖析:Kna