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