萬維網(wǎng)的網(wǎng)站抖音優(yōu)化排名
作者:升學(xué)e網(wǎng)通研發(fā)部基建團(tuán)隊
公司介紹
杭州銘師堂,是一個致力于為人的全面發(fā)展而服務(wù)的在線教育品牌。杭州銘師堂秉持“用互聯(lián)網(wǎng)改變教育,讓中國人都有好書讀”的使命,致力于用“互聯(lián)網(wǎng)+教育”的科技手段讓更多的孩子都能享有優(yōu)質(zhì)的教育,促進(jìn)他們的全面成長。
成立十余年以來,銘師堂不斷匯聚優(yōu)質(zhì)的全國各地教育資源,并展開先進(jìn)科學(xué)技術(shù)在學(xué)校教育智能化領(lǐng)域、學(xué)生個性化學(xué)習(xí)領(lǐng)域的應(yīng)用研究。杭州銘師堂始終堅守使命,持續(xù)創(chuàng)新,“賦能學(xué)校、培養(yǎng)學(xué)生”,在教育信息化 2.0 趨勢下,致力于促進(jìn)線上教育與線下教育的高度融合,以學(xué)校為核心場景,與學(xué)校攜手共建互聯(lián)網(wǎng)學(xué)習(xí)空間,為學(xué)校與學(xué)生提供學(xué)習(xí)解決方案,極大促進(jìn)教學(xué)效率的提升。
升學(xué)e網(wǎng)通是由杭州銘師堂公司運(yùn)營的針對高中生的綜合性在線教育品牌。重點打造了教育智能化系統(tǒng)、優(yōu)質(zhì)資源系統(tǒng)和大數(shù)據(jù)信息系統(tǒng),涵蓋互聯(lián)網(wǎng)生涯規(guī)劃、互聯(lián)網(wǎng)在線學(xué)習(xí)以及互聯(lián)網(wǎng)心理解決方案等內(nèi)容。針對不同學(xué)校,打破物理空間的限制,量身定制虛擬的網(wǎng)絡(luò)學(xué)習(xí)空間,希望用互聯(lián)網(wǎng)教育推進(jìn)個性化學(xué)習(xí)的實現(xiàn),促進(jìn)優(yōu)質(zhì)資源的跨地域流動,促進(jìn)每一位高中生更全面發(fā)展。
業(yè)務(wù)全量上云,為云原生化打好基礎(chǔ)
在 2022 年之前,杭州銘師堂全棧系統(tǒng)主要搭建在 IDC 之上,僅在寒暑假高峰期時會在云上部署一定資源來應(yīng)對預(yù)期外的流量,過程中初步享受到云計算的紅利,了解到云的魅力,對云有了一個比較淺顯的認(rèn)知。具體架構(gòu)為:基礎(chǔ)設(shè)施層利用自建 K8s 進(jìn)行應(yīng)用部署管理,中間件層包含:自建注冊配置中心、自建數(shù)據(jù)庫(Redis、MySQL、MongoDB 等)、自建消息隊列(Kafka、RabbitMQ)、自建大數(shù)據(jù) Hadoop 集群,應(yīng)用層為 Spring Cloud 構(gòu)建的 Java 服務(wù),網(wǎng)關(guān)層為基于 Zuul 1.0 開發(fā) Gateway 服務(wù),入口層通過 Nginx 進(jìn)行統(tǒng)一管理,配套工具有自建 ELK、Pinpoint、Zabbix。
隨著業(yè)務(wù)的高速發(fā)展,杭州銘師堂的業(yè)務(wù)流量在平峰期和高峰期之間的 Gap 從幾倍增長到幾十倍,原本的這套技術(shù)架構(gòu)逐漸暴露出諸多問題:
- 穩(wěn)定性問題多: 隨著業(yè)務(wù)發(fā)展,高峰期流量逐年增長,以自建形式搭建的集群,會面臨各種各樣前所未有的挑戰(zhàn),導(dǎo)致問題頻發(fā)、SLA 無法有效保障,業(yè)務(wù)發(fā)展帶來系統(tǒng)壓力和穩(wěn)定性保障復(fù)雜度成為焦點矛盾。
- 資源彈性能力不足: 當(dāng)實際流量超過預(yù)留值時,無法實現(xiàn)快速擴(kuò)容和響應(yīng),復(fù)雜的招采流程導(dǎo)致時長以小時甚至日級別。
- 成本管控難度高: IDC 機(jī)器不具備彈性能力,必然需要日常做好資源預(yù)留,導(dǎo)致資源空閑。
- 運(yùn)維成本和復(fù)雜高: 采用大量自建服務(wù),需要配套足夠且專業(yè)的人員進(jìn)行維護(hù),一旦遇到復(fù)雜問題,排查起來非常棘手,響應(yīng)速度無法跟上業(yè)務(wù)訴求。
基于以上的痛點,杭州銘師堂成立上云項目組,經(jīng)過深入方案調(diào)研,最終選擇阿里云,在上云項目組和阿里云專家團(tuán)隊的共同合作和努力下,在 2022 年杭州銘師堂成功完成了業(yè)務(wù)的全量上云,為下一步云原生化打好基礎(chǔ)。
全面擁抱云原生,保障穩(wěn)定性
隨著業(yè)務(wù)全量上云后,如何利用云更好的保障系統(tǒng)穩(wěn)定性成為了杭州銘師堂的重點課題。不同于業(yè)界大廠 618、雙十一的護(hù)航,杭州銘師堂的暑期高峰期長達(dá) 86 天,日活百萬+,峰值 QPS 幾萬+,系統(tǒng)壓力較平時有幾十上百倍的差異,要保障好全棧系統(tǒng)不出問題,是一項非常有挑戰(zhàn)性的任務(wù)??紤]到這一課題范圍較廣,涵蓋微服務(wù)領(lǐng)域、大數(shù)據(jù)領(lǐng)域、運(yùn)維領(lǐng)域、可觀測性領(lǐng)域、安全領(lǐng)域等等,這里重點圍繞微服務(wù)領(lǐng)域進(jìn)行展開講解,實踐的整體思路先從基礎(chǔ)設(shè)施,再到微服務(wù)應(yīng)用,最后到統(tǒng)一入口層,逐步進(jìn)行云原生化,建設(shè)一套規(guī)范化、先進(jìn)化、靈活化的穩(wěn)定性系統(tǒng),助力業(yè)務(wù)快速發(fā)展,做好技術(shù)的充分賦能。
基礎(chǔ)設(shè)施:注冊配置中心遷移
面臨的問題
配置中心和注冊中心的作用,技術(shù)發(fā)展至今,相比大家都已經(jīng)非常清楚,這里就不做贅述。升級前,杭州銘師堂采用 Eureka 集群作為注冊中心,采用 Apollo 管理業(yè)務(wù)應(yīng)用配置,采用 Spring Cloud Config 管理中間件配置,在過往使用中,針對這三款組件,業(yè)界通用問題都遇到過,例如:如集群不可用、Eureka 無法及時摘除下線實例、配置推送不及時等,在業(yè)務(wù)關(guān)鍵時期,因為注冊中心或者配置中心的不可用,是絕對不能容忍的。
針對性的解法
基于此,先解決微服務(wù)下這一關(guān)鍵基礎(chǔ)設(shè)施的穩(wěn)定性問題。通過充分調(diào)研和論證,MSE Nacos 產(chǎn)品能夠很好的滿足訴求,具體優(yōu)勢如下:
杭州銘師堂聯(lián)合阿里云一起共建,基于 MSE Sync 實現(xiàn)了 MST-Sync,讓注冊中心實現(xiàn)了絲滑平遷:
針對配置中心,因為使用 Apollo+Spring Cloud Config 兩類組件,因此也針對性自研開發(fā)了配套遷移工具,同樣實現(xiàn)了絲滑平遷。
取得的成果
配置注冊中心 SLA 提升到 100%,再無一例因其穩(wěn)定性或者功能性問題導(dǎo)致應(yīng)用不可用案例發(fā)生。此外,杭州銘師堂實踐了一套管理標(biāo)準(zhǔn),讓原本雜亂的配置實現(xiàn)了規(guī)范化。
- namespace:環(huán)境,目前有四套,開發(fā)、測試、預(yù)發(fā)、生產(chǎn)
- group:組,定義為業(yè)務(wù)線
- dataId:配置標(biāo)識,分為公共配置和應(yīng)用私有配置:
- 全棧公共配置:要求 group 為 public,dataId 為 public-{配置文件名}.{擴(kuò)展名}。
- 業(yè)務(wù)域公共配置:要求 group 為業(yè)務(wù)線,dataId 為 public-{配置文件名}.{擴(kuò)展名}。
- 業(yè)務(wù)配置:group 為業(yè)務(wù)線,dataId 為{應(yīng)用名稱}.{擴(kuò)展名},如果有擴(kuò)展配置,可定義為{應(yīng)用名稱}-{自定義名稱}.{擴(kuò)展名}。
- 業(yè)務(wù)敏感配置:group 為業(yè)務(wù)線,dataId 為{敏感配置文件名}.{擴(kuò)展名},提供給后續(xù)結(jié)合 KMS 實現(xiàn)敏感配置的加密處理。
服務(wù)治理全面落地與實踐
隨著上云后,雖然基礎(chǔ)設(shè)施彈性問題得以解決,但系統(tǒng)所面臨的壓力與挑戰(zhàn)并未減輕,問題和風(fēng)險在變更態(tài)和運(yùn)行態(tài)顯得尤為突出。因此,杭州銘師堂結(jié)合 MSE 微服務(wù)引擎的多項能力,不斷打磨和實踐,成功做到了服務(wù)運(yùn)行時的高可用防護(hù) & 服務(wù)變更時的可觀測、可灰度、可回滾。接下來,從高可用三大利器、安全發(fā)布兩大法寶(無損上下線、全鏈路灰度),展開進(jìn)行詳細(xì)介紹。
高可用三大利器:限流、熔斷、降級
面臨的問題
針對單應(yīng)用運(yùn)行時的高可用,隨著業(yè)界技術(shù)發(fā)展,已經(jīng)形成了一套通用的解決方案,也就是今天說的三大利器:限流、熔斷、降級。從 2018 年 .NET 轉(zhuǎn) Java 開始,杭州銘師堂一直沿用 Spring Cloud 這套微服務(wù)框架來搭建業(yè)務(wù)系統(tǒng),在高可用防護(hù)這塊,一直依賴于 Spring Cloud Hystrix 的能力。使用過 Hystrix 的同學(xué)應(yīng)該都了解,它所具備的防護(hù)能力非常的局限,缺點非常明顯:
- 防護(hù)能力不足,無法以 QPS 維度限制接口訪問。
- 線程池隔離占用資源高:在暑期高峰期,復(fù)雜的核心應(yīng)用因為使用線程池隔離策略,光內(nèi)存占用就多了幾個 GB,實在是過于繁重。
- 規(guī)則無法實時性等等。線上監(jiān)控發(fā)現(xiàn)答題接口被刷,無法利用 Hystrix 立即進(jìn)行防護(hù)手段的干預(yù),需要調(diào)整代碼才能處理,非常被動。
針對性的解法
隨著阿里開源的 Sentinel 這一神器,慢慢替代 Hystrix 成為業(yè)界高可用解決方案的標(biāo)準(zhǔn)。經(jīng)過調(diào)研和對比,最終杭州銘師堂選擇了商業(yè)版 Sentinel 產(chǎn)品 AHAS,后來統(tǒng)一合并到 MSE 微服務(wù)引擎流量治理中。對比 Hystrix,其具備了明顯的優(yōu)勢:
- 多維的防護(hù)能力: 基于 QPS 的限流、基于并發(fā)數(shù)的隔離、基于異常數(shù)或者慢調(diào)用的熔斷機(jī)制等等。
- 輕量的資源占用: 借助并發(fā)數(shù)的隔離機(jī)制,遠(yuǎn)遠(yuǎn)不需要像線程池方式這么重量級,內(nèi)存資源占用節(jié)省至少 10 倍以上。
- 規(guī)則實時生效: 針對突發(fā)情況能夠快速進(jìn)行響應(yīng),在關(guān)鍵時候能解燃眉之急。
如上圖所示,杭州銘師堂在實踐中落地了一套 SOP 機(jī)制:
- 在網(wǎng)關(guān)層進(jìn)行粗粒度的限流控制,來防止當(dāng)前超出系統(tǒng)容量下的流量,規(guī)則命中后日志接入 SLS,配套監(jiān)控告警,及時感知后,進(jìn)行干預(yù),針對合理請求進(jìn)行系統(tǒng)容量擴(kuò)容,預(yù)留足夠的響應(yīng)時間。
- 在應(yīng)用層進(jìn)行細(xì)粒度的限流、熔斷、降級組合控制,讓強(qiáng)依賴在可控范圍內(nèi)進(jìn)行調(diào)用,針對弱依賴可降級降級,不可降級進(jìn)行熔斷,避免被下游慢調(diào)用拖垮。配合應(yīng)用各項指標(biāo)監(jiān)控告警,充分利用 MSE 流量治理的實時性能力,及時調(diào)整,保障應(yīng)用高可用。
取得的成果
生產(chǎn)環(huán)境應(yīng)用 100% 完成接入和應(yīng)用,針對不同場景共配置幾十項規(guī)則實現(xiàn)高可用防護(hù)。通過以上措施的落地實施,全棧系統(tǒng)未再出現(xiàn)過一例因外部突增流量或者下游慢調(diào)用而拖垮大盤的情況,效果可謂是立竿見影。
安全發(fā)布第一法寶:無損上下線
面臨的問題
業(yè)務(wù)需求開發(fā)完成,在發(fā)版日準(zhǔn)備發(fā)版,會發(fā)現(xiàn)應(yīng)用發(fā)布后,總會有 5xx 相關(guān)的告警,通過 TraceId 一排查,就會發(fā)現(xiàn)是這個應(yīng)用剛啟動的新副本實例,經(jīng)過深入分析,基本對應(yīng)到以下這幾類情況:
- 非優(yōu)雅下線:
- 服務(wù)無法及時下線,導(dǎo)致上游應(yīng)用還在繼續(xù)調(diào)用已下線的副本實例,從而請求處理失敗。
- 非優(yōu)雅上線:
- 應(yīng)用發(fā)布后,K8s 就緒檢查以健康檢查接口來判定,而健康檢查接口里包含大量檢測依賴服務(wù)的檢查,耗時過久,造成健康檢查不通過。
- 一些應(yīng)用在初始化時存在復(fù)雜邏輯,導(dǎo)致時間比較長,此時流量過大,會造成大量請求超時、阻塞等問題。
針對性的解法
針對以上問題,分成兩個階段進(jìn)行針對性解決。
階段一:采用自研方式
具體做法如下:
- 非優(yōu)雅下線:
- 通過對 Nacos 源碼的研究,了解到 Nacos 服務(wù)端存在 1 分鐘對服務(wù)實例元數(shù)據(jù)記憶邏輯,借助 K8S preStop 機(jī)制,Sleep 60s,來達(dá)到應(yīng)用及時準(zhǔn)確的下線。
- 非優(yōu)雅上線:
- 統(tǒng)一規(guī)范應(yīng)用健康檢查機(jī)制,在原有/health 接口里將邏輯變薄,去除原有復(fù)雜邏輯,讓健康檢查足夠輕量。
- 針對初始化邏輯復(fù)雜的應(yīng)用,增加延遲注冊的時間,讓其在初始化完成后對外提供服務(wù)。
階段二:采用云產(chǎn)品能力
經(jīng)過上述嘗試后,雖然有損發(fā)布的情況得到好轉(zhuǎn),但是在業(yè)務(wù)高峰期,總是還會遇到,問題并沒有得到根本解決。于是,經(jīng)過詳細(xì)的方案調(diào)研,在自研和云產(chǎn)品之間,杭州銘師堂最終選擇了使用 MSE 無損上下線的能力,避免了自己去針對各類場景投入資源進(jìn)行處理的成本。
取得的成果
實現(xiàn)了 100+Java 應(yīng)用,下線 100% 無損,上線(不使用 Sharding-JDBC 組件)應(yīng)用 100% 無損,讓發(fā)布更有底氣,能夠?qū)⒏嗟木劢沟綐I(yè)務(wù)需求本身。
背后的原理
問題得到解決,這背后的原理自然是有必要進(jìn)行深入的了解,具體如下:
無損下線
MSE Agent 實現(xiàn)上下游的主動通知機(jī)制,在下游應(yīng)用副本下線時,能夠做到及時的通知上游應(yīng)用,剔除已下線副本實例,從而避免了上游應(yīng)用仍舊調(diào)用下游已下線實例,造成 Connect Refused 等相關(guān)錯誤。
無損上線
MSE Agent 結(jié)合延遲注冊能力和小流量預(yù)熱能力,有效保障在服務(wù)初始化完成后,才對外進(jìn)行服務(wù)的提供。在外部流量進(jìn)入實例時,采用線性增長的方式控制進(jìn)入的請求數(shù),避免流量過高導(dǎo)致超時、阻塞等問題。
安全發(fā)布第二法寶:全鏈路灰度
面臨的問題
解決了有損發(fā)布的問題后,從單應(yīng)用維度,就已經(jīng)做到了安全發(fā)布,不用再擔(dān)心發(fā)布造成的業(yè)務(wù)功能不可用的問題。但是,從全鏈路的角度,單個應(yīng)用的安全發(fā)布,還遠(yuǎn)遠(yuǎn)不夠。應(yīng)用發(fā)布后,新功能如何讓內(nèi)部人員先進(jìn)行驗證?內(nèi)部人員驗證后,如何讓小部分真實用戶進(jìn)行驗證?驗證發(fā)現(xiàn)問題后,如何快速進(jìn)行恢復(fù)?這一系列復(fù)雜的問題,需要靠全鏈路灰度的能力來進(jìn)行解決。
針對性的解法
針對全鏈路灰度實踐,杭州銘師堂分成兩個階段:
- 早期,通過開源 Nepxion Discovery 框架自研了一套解決方案,在業(yè)務(wù)流量不高,場景不復(fù)雜的情況下,這套解決方案還是可以滿足組織要求,慢慢隨著使用深度的增加,SDK 升級不夠靈活、性能達(dá)不到要求、改造成本越來越高的問題逐步暴露,此時,就需要一套更加輕量級的解決方案。
- MSE 全鏈路灰度產(chǎn)品提供以 Agent 方式進(jìn)行動態(tài)接入,接入成本低;默認(rèn)支持當(dāng)下主流框架,不需要使用方進(jìn)行開發(fā),接入即可用,使用難度低;能力設(shè)計開放性強(qiáng),滿足個性化流量染色訴求,靈活性高。
接下來,針對目前現(xiàn)有的全鏈路灰度能力,做下詳細(xì)講解,大致分為幾個核心模塊:
- MST 發(fā)布系統(tǒng):提供靈活的應(yīng)用 MAM 模型,可以動態(tài)接入 MSE Agent。
- MST 流量治理平臺:自研灰度規(guī)則的管理平臺,提供符合 MST 特色的灰度場景使用規(guī)則。
- MST 統(tǒng)一入口網(wǎng)關(guān):Go 語言開發(fā)的自研 wasm 插件,進(jìn)行灰度規(guī)則判定,實現(xiàn)核心染色邏輯。
- MST 靜態(tài)渲染服務(wù):自研前端靜態(tài)資源的控制服務(wù),實現(xiàn)前端頁面的灰度能力。
- 阿里云 MSE Agent:實現(xiàn) Java 應(yīng)用間染色標(biāo)記透傳。
取得的成果
基于以上核心模塊,杭州銘師堂實現(xiàn)了前后端鏈路在流量層面和配置層面的灰度能力,并形成一套規(guī)范化的使用 SOP:
- 業(yè)務(wù)需求上線,先通過內(nèi)部用戶進(jìn)行功能充分驗證。
- 驗證通過后,則按照比例將新功能覆蓋到外部用戶中,1% -> 5% -> 10%。
- 選取一定比例外部用戶使用新功能,觀察符合預(yù)期后,則進(jìn)行灰度轉(zhuǎn)全量,將新版本代碼推到 baseline 中,提供給所有用戶使用。
全量接入云原生網(wǎng)關(guān):保障統(tǒng)一入口層穩(wěn)定性
面臨的問題
講完了基礎(chǔ)設(shè)施層和微服務(wù)應(yīng)用層,視角從下到上,聚焦到統(tǒng)一入口層。一方面,網(wǎng)關(guān)作為全棧業(yè)務(wù)的統(tǒng)一入口,它的重要性不言而喻。另一方面,在高峰期網(wǎng)關(guān)需要承載峰值數(shù)萬+QPS,單日近數(shù)十億次調(diào)用的訪問壓力。二者結(jié)合,要保障好網(wǎng)關(guān)的穩(wěn)定性,是一件非常有難度的事情。
從 IDC 到上云,網(wǎng)關(guān)架構(gòu)從 1.0 演變成 2.0:
- 2018、2019 年第一代網(wǎng)關(guān)架構(gòu),上層采用 Nginx 作為流量網(wǎng)關(guān),下層采用 Spring Cloud Zuul 1.0 搭建的業(yè)務(wù)網(wǎng)關(guān)。規(guī)則管理和配置復(fù)雜度高,缺乏熱加載能力,規(guī)則修改后生效時間長。
- 2022 年第二代網(wǎng)關(guān)架構(gòu),流量網(wǎng)關(guān)從 Nginx 替換為 APISIX,下層依舊是 Spring Cloud Zuul 1.0 搭建的業(yè)務(wù)網(wǎng)關(guān)。APISIX?較 Nginx,具備更好的靈活性和可擴(kuò)展性,但是因為引入了 etcd 集群,增加運(yùn)維復(fù)雜度。另外,針對自定義插件的更新成本較高,缺乏版本化管理和秒級升級與回滾能力。
針對性的解法
2023 年第三代網(wǎng)關(guān)架構(gòu),利用 MSE 云原生網(wǎng)關(guān)合并流量網(wǎng)關(guān)和業(yè)務(wù)網(wǎng)關(guān),整體鏈路從兩層變一層,作為 Higress 的商業(yè)版,其性能和穩(wěn)定性較前兩代網(wǎng)關(guān)架構(gòu)而言具有非常顯著的優(yōu)勢。
取得的成果
通過云原生網(wǎng)關(guān)的落地,為組織帶來了諸多收益,其中?SLA 提升至 100%,財務(wù)成本降低 67%,算力成本降低 75%,每次請求 RT 減少 5ms。
背后的原理
以上成果得益于云原生網(wǎng)關(guān)的核心能力:
高可用
基于 MSE 體系的高可用能力建設(shè),生產(chǎn)環(huán)境使用至今近 9 個月的時間,歷經(jīng)寒暑假 2 輪高峰期數(shù)十萬在線人數(shù)的壓力,從未發(fā)生過網(wǎng)關(guān)不可用問題。
高性能
通過軟硬結(jié)合的方式,提供了 HTTPS 硬件加速、OS 內(nèi)核調(diào)優(yōu)、Envoy 參數(shù)調(diào)優(yōu)等多種手段,QPS 性能遠(yuǎn)遠(yuǎn)超出預(yù)期。
高擴(kuò)展
原本在 APISIX 里基于 Go 語言自研的灰度 wasm 插件,可以平滑遷移到云原生網(wǎng)關(guān)使用,并在灰度插件迭代過程中,能夠提供秒級升級和回滾的能力,從原本小時級別縮短到秒級別,極大的降低了升級成本,充分解放生產(chǎn)力。
未來展望(精益用云,增效降本,引領(lǐng)業(yè)務(wù))
在短短 2-3 年間,杭州銘師堂完整經(jīng)歷了云計算應(yīng)用的四個關(guān)鍵階段:從“啟動上云”到“全量上云”,再到“全棧用云”,最終達(dá)到“精益用云”。也從云計算的第一次浪潮,邁過了第二次浪潮,順利的進(jìn)入到了 第三次浪潮 AI + 云。
時光荏苒,最初上云是希望借助云的極致彈性,保障產(chǎn)品穩(wěn)定性的基本盤,杭州銘師堂始終堅持站在巨人的肩膀上進(jìn)行創(chuàng)新,過程中做擅長的事情,將背后交給阿里云非常專業(yè)的產(chǎn)研團(tuán)隊,歷經(jīng)雙十一的千錘百煉,共同助力業(yè)務(wù)。
當(dāng)下,在連續(xù)拿下穩(wěn)定性目標(biāo)后,接下來,將更多的關(guān)注開發(fā)和測試階段研發(fā)過程中質(zhì)量與效率問題,力求在需求迭代更早階段做好質(zhì)量和效率的建設(shè),保障業(yè)務(wù)高效率、高質(zhì)量的完成交付。此外,在業(yè)務(wù)多個方面進(jìn)行著 AI 領(lǐng)域的探索,期望以云 + AI 的方式進(jìn)行業(yè)務(wù)創(chuàng)新,用新思路、新方法來重塑升級業(yè)務(wù)能力。
未來,杭州銘師堂將持續(xù)深耕云計算 與 AI,在云計算的第三次浪潮上,披荊斬棘,迎風(fēng)破浪,去助力業(yè)務(wù),引領(lǐng)業(yè)務(wù),最終走向經(jīng)營業(yè)務(wù),給客戶帶來更好產(chǎn)品體驗的同時,帶著對教育創(chuàng)新的熱忱與使命感,為共同推動教育事業(yè)走向更為優(yōu)質(zhì)、更為創(chuàng)新的發(fā)展做出更大貢獻(xiàn)。