新手指引
Serverless 應(yīng)用引擎 SAE(Serverless App Engine)是面向應(yīng)用的Serverless PaaS平臺,能夠幫助PaaS層用戶免運維IaaS、按需使用、按量計費,做到低門檻微服務(wù)、PHP應(yīng)用上云。本文介紹如何使用SAE,幫助您快速了解SAE以及各方面的實踐教程。
背景信息
如果您初次接觸SAE,建議您觀看入門視頻,了解SAE及其基本操作。更多信息,請參見什么是Serverless應(yīng)用引擎。
功能索引
一級分類 | 二級分類 |
阿里云網(wǎng)絡(luò)基礎(chǔ)概念、SAE網(wǎng)絡(luò)訪問主要場景與方式、SAE網(wǎng)絡(luò)訪問對比項、微服務(wù)增強 | |
SAE使用流程
SAE使用流程如下圖所示。
在首次部署SAE應(yīng)用前,需要完成規(guī)劃VPC、vSwitch、命名空間(區(qū)分測試、預(yù)發(fā)、生產(chǎn)等環(huán)境)的準(zhǔn)備工作。
具體操作,請參見準(zhǔn)備工作。
在SAE控制臺部署應(yīng)用。
具體操作,請參見應(yīng)用托管概述。除通過控制臺部署應(yīng)用外,SAE還支持通過Jenkins、IDE插件、Maven插件、Terraform、OpenAPI和云效等多種方式來部署應(yīng)用。
說明如果您是第一次部署應(yīng)用到SAE,需要在SAE控制臺創(chuàng)建應(yīng)用。
通過以下方式訪問SAE應(yīng)用。
方式一:綁定CLB訪問,一個端口支持綁定一個應(yīng)用。具體操作,請參見為應(yīng)用綁定CLB。
方式二:配置網(wǎng)關(guān)路由訪問,一個端口支持綁定多個應(yīng)用。具體操作,請參見為應(yīng)用配置網(wǎng)關(guān)路由(CLB)。
方式三:綁定EIP訪問,一個實例支持綁定一個EIP。具體操作,請參見基于EIP配置SAE實例公網(wǎng)訪問和訪問公網(wǎng)的能力。
為SAE應(yīng)用配置更多進(jìn)階功能。
例如,企業(yè)級權(quán)限控制、彈性(降本增效)、Java微服務(wù)增強、高可用、存儲等功能。
部署
SAE支持代碼包部署和鏡像部署,當(dāng)前代碼包支持Java的WAR包和JAR包、PHP ZIP包和Python ZIP包。在創(chuàng)建SAE應(yīng)用時,需要自定義或者自動配置VPC、vSwitch和安全組等,并且需要指定實例規(guī)格(創(chuàng)建后可以修改規(guī)格)。本文以下列配置為例,介紹SAE的參考部署。
啟動命令和參數(shù)
鏡像部署
啟動命令以及相關(guān)參數(shù)可以直接寫在Dockerfile內(nèi),同時也支持在SAE控制臺覆蓋啟動命令,如下圖所示。
代碼包部署
以JAR包部署為例,支持在SAE控制臺配置啟動相關(guān)參數(shù),如下圖所示。
數(shù)據(jù)庫白名單
不同于ECS模式,SAE在容器形態(tài)下,每次部署應(yīng)用時IP地址都有可能變化,但應(yīng)用綁定的vSwitch的網(wǎng)段不會變化,因此您可以在數(shù)據(jù)庫的白名單內(nèi)配置vSwitch的網(wǎng)段。更多信息,請參見應(yīng)用訪問阿里云數(shù)據(jù)庫。
CI/CD
除控制臺部署和API部署外,SAE和很多CI/CD工具進(jìn)行了集成,典型的有云效和Jenkins,可以實現(xiàn)代碼提交以后自動部署。更多信息,請參見應(yīng)用托管概述。
如果您使用Java語言,SAE提供了豐富的插件部署,包括Maven插件、IntelliJ IDEA插件、Eclipse插件等。更多信息,請參見應(yīng)用托管概述。
在微服務(wù)場景下,通常會拆分成很多應(yīng)用。如果您的測試環(huán)境部署在阿里云,聯(lián)調(diào)的時候會是一大痛點。SAE聯(lián)合Cloud Tookit提供了遠(yuǎn)程的端云互聯(lián)能力,可以在本機直接調(diào)用云端的Consumer、提供Provider等。更多信息,請參見使用Cloud Toolkit實現(xiàn)端云互聯(lián)(IntelliJ IDEA)。
SAE支持Terraform。更多信息,請參見terraform-provider-alicloud和Terraform概述。
升級和回滾
SAE支持豐富的回滾策略,包括單批發(fā)布、分批發(fā)布、灰度發(fā)布和回退歷史版本等。更多信息,請參見升級和回滾應(yīng)用。
權(quán)限配置
SAE支持精細(xì)的權(quán)限控制,支持命名空間、應(yīng)用和讀寫等粒度的權(quán)限控制,通過權(quán)限助手功能有效簡化您的配置過程。更多信息,請參見SAE權(quán)限助手。
其他
應(yīng)用在系統(tǒng)中運行需要配置特定的環(huán)境變量,其相關(guān)命令才可以被執(zhí)行。環(huán)境變量以鍵值對的方式存儲,不同應(yīng)用擁有不同的環(huán)境變量,并且互不影響。更多信息,請參見設(shè)置環(huán)境變量。
SAE支持應(yīng)用級別的實例,通過Hosts綁定對主機名進(jìn)行解析,以便通過主機名訪問應(yīng)用實例。更多信息,請參見設(shè)置Hosts綁定。
網(wǎng)絡(luò)
將應(yīng)用部署至SAE后,您可能會有不同的網(wǎng)絡(luò)訪問需求。更多信息,請參見SAE網(wǎng)絡(luò)相關(guān)概念和能力。
阿里云網(wǎng)絡(luò)基礎(chǔ)概念
專有網(wǎng)絡(luò)(VPC):基于阿里云創(chuàng)建的自定義私有網(wǎng)絡(luò),不同的專有網(wǎng)絡(luò)之間在邏輯上徹底隔離。
說明私有網(wǎng)絡(luò)默認(rèn)不可訪問公網(wǎng)。
交換機(vSwitch):交換機是組成專有網(wǎng)絡(luò)的基礎(chǔ)網(wǎng)絡(luò)設(shè)備,對應(yīng)實體物理機房。在VPC內(nèi)創(chuàng)建云資源時,必須指定云資源所連接的交換機。
彈性公網(wǎng)IP(EIP):只能和一個資源(ECS、SAE實例等)綁定,綁定的資源具備出、入公網(wǎng)的能力。
NAT網(wǎng)關(guān)(NAT Gateway):支持VPC內(nèi)的資源訪問公網(wǎng)(SNAT)。區(qū)別于EIP的核心功能,公網(wǎng)NAT網(wǎng)關(guān)可用于VPC內(nèi)的所有資源,而EIP只能用于VPC內(nèi)的一個資源。
SAE網(wǎng)絡(luò)訪問主要場景與方式
將應(yīng)用部署到SAE后,您可能會遇到以下網(wǎng)絡(luò)訪問需求。概念圖如下所示。
SAE應(yīng)用之間的內(nèi)網(wǎng)互相訪問(非微服務(wù))
Serverless模式下,每次部署都會產(chǎn)生新的內(nèi)網(wǎng)IP,但不支持直接基于實例的IP來互相訪問應(yīng)用。您可以通過以下方式實現(xiàn)。
SAE Service(CLB):基于阿里云負(fù)載均衡產(chǎn)品(私網(wǎng)CLB)實現(xiàn)的SAE服務(wù)來訪問。更多信息,請參見基于CLB配置應(yīng)用服務(wù)訪問。
SAE ServiceName:基于SAE的K8s底座,實現(xiàn)的基于域名的應(yīng)用訪問。每個SAE的應(yīng)用會有一個SAE環(huán)境中可供訪問的域名。更多信息,請參見基于K8s ServiceName配置應(yīng)用服務(wù)訪問。
SAE Ingress(ALB/CLB):基于阿里云負(fù)載均衡產(chǎn)品(私網(wǎng)ALB/CLB)實現(xiàn)的網(wǎng)關(guān)路由,可以根據(jù)不同的域名、路徑路由到不同的SAE應(yīng)用。更多信息,請參見基于ALB/CLB配置網(wǎng)關(guān)路由(Ingress)訪問。
SAE應(yīng)用需要被公網(wǎng)訪問(入口流量)
您可以通過以下方式實現(xiàn)。
SAE Service(CLB):基于阿里云負(fù)載均衡產(chǎn)品(公網(wǎng)CLB)實現(xiàn)的SAE服務(wù)訪問。更多信息,請參見基于CLB配置應(yīng)用服務(wù)訪問。
SAE Ingress(ALB/CLB):基于阿里云負(fù)載均衡產(chǎn)品(公網(wǎng)CLB/ALB)實現(xiàn)的網(wǎng)關(guān)路由,可以根據(jù)不同的域名、路徑路由到不同的SAE應(yīng)用。更多信息,請參見基于ALB/CLB配置網(wǎng)關(guān)路由(Ingress)訪問。
SAE EIP:為SAE應(yīng)用的每個實例綁定一個EIP,使該實例能夠同時具備出、入公網(wǎng)的能力。更多信息,請參見基于EIP配置SAE實例公網(wǎng)訪問和訪問公網(wǎng)的能力。
SAE應(yīng)用需要訪問公網(wǎng)(出口流量)
您可以通過以下方式實現(xiàn)。
NAT網(wǎng)關(guān):為SAE應(yīng)用關(guān)聯(lián)的VPC或者vSwitch配置NAT網(wǎng)關(guān),則所有相關(guān)的SAE應(yīng)用都具備了訪問公網(wǎng)的能力。更多信息,請參見配置NAT網(wǎng)關(guān)使SAE應(yīng)用能訪問公網(wǎng)。
SAE EIP:為SAE應(yīng)用的每個實例綁定一個EIP,則該實例會同時具備出、入公網(wǎng)的能力。更多信息,請參見基于EIP配置SAE實例公網(wǎng)訪問和訪問公網(wǎng)的能力。
SAE需要訪問VPC內(nèi)的ECS、RDS、Redis等
SAE基于阿里云VPC網(wǎng)絡(luò),因此無需額外配置,可以直接訪問同一VPC內(nèi)的資源(ECS、RDS、Redis等)。反之,同一VPC內(nèi)的阿里云資源也可以訪問SAE。
需要確認(rèn)安全組、產(chǎn)品白名單是否放開。如果遇到問題,請參考常見問題的步驟進(jìn)行排查。
微服務(wù)應(yīng)用訪問注冊中心以及實例互相訪問
更多信息,請參見SAE微服務(wù)相關(guān)概念和能力。
SAE網(wǎng)絡(luò)訪問對比項
SAE中服務(wù)(Service)和網(wǎng)關(guān)路由(Ingress)的區(qū)別
SAE基于阿里云SLB(CLB和ALB)實現(xiàn)的網(wǎng)關(guān)路由(Ingress),具備根據(jù)域名、路徑路由到不同應(yīng)用的能力(如下圖),而ServiceName不具備該能力。因此,在滿足需求的前提下,建議您優(yōu)先考慮使用網(wǎng)關(guān)路由。在需要使用4層TCP協(xié)議訪問或者無法通過域名訪問等場景下,您可以考慮使用ServiceName。
基于CLB實現(xiàn)的服務(wù)和基于域名(K8s Service Domain)實現(xiàn)的服務(wù)的區(qū)別
K8s服務(wù)有兩種模式,一種是基于CLB,另一種是基于ClusterIP。SAE沒有直接提供ClusterIP,而是提供了一個可供訪問的域名。兩者的主要區(qū)別如下。
對比項 | CLB | Domain(ClusterIP) |
費用 | 免費 | |
運維 | CLB作為一個獨立的阿里云產(chǎn)品,支持配置相關(guān)的監(jiān)控、告警以及收集訪問日志到SLS,提供細(xì)粒度的問題排查能力。 | 未提供獨立的監(jiān)控、告警、訪問日志等能力,需要應(yīng)用側(cè)本身配置告警和日志。 |
基于ALB實現(xiàn)的網(wǎng)關(guān)路由和CLB網(wǎng)關(guān)路由的區(qū)別
ALB(Application Load Balancer)是阿里云推出的專門面向HTTP、HTTPS和QUIC等應(yīng)用層負(fù)載場景的負(fù)載均衡服務(wù)。針對網(wǎng)關(guān)路由場景,建議您優(yōu)先考慮使用ALB。更多信息,請參見負(fù)載均衡SLB產(chǎn)品家族介紹。
基于NAT訪問公網(wǎng)和EIP訪問公網(wǎng)的區(qū)別
EIP訪問公網(wǎng)的示例圖如下,每個實例都會綁定一個EIP。如果EIP不足,則會創(chuàng)建失敗,導(dǎo)致實例無法對外提供服務(wù)。
NAT和EIP兩種模式的主要差異如下。
對比項 | NAT | EIP |
生效范圍 | NAT可以控制在VPC或者vSwitch級別,為VPC或者vSwitch內(nèi)所有無公網(wǎng)IP的實例提供訪問公網(wǎng)的代理服務(wù)。一個VPC或者vSwitch只需要配置一個NAT,其所有實例將具備出公網(wǎng)的能力。 | EIP為實例級別,例如10個實例就需要10個EIP。一個實例綁定EIP后,將同時具備出網(wǎng)和入網(wǎng)的能力。 |
是否固定公網(wǎng)IP | 是。 | 否。新的實例成功綁定EIP后,SAE才會銷毀原先的實例并解綁原來的EIP。因此,需保證EIP數(shù)量至少為實例數(shù)量加一。EIP是變化的,是一個IP池。 |
典型場景 | 應(yīng)用會自動彈性擴縮,新的實例默認(rèn)需要出公網(wǎng)的能力,且需要固定IP(95%的用戶都適合該場景)。 | 可接受EIP可變,需要直連實例的場景(例如在線會議),另外還需要自行精細(xì)化地控制每個實例的生命周期。 |
費用 | 計費詳情,請參見NAT網(wǎng)關(guān)計費。 | 計費詳情,請參見EIP計費。實例數(shù)不超過20個時,EIP成本更優(yōu)。 |
微服務(wù)增強
SAE作為微服務(wù)架構(gòu)Serverless化的最佳實踐產(chǎn)品,提供了諸多微服務(wù)能力的增強。更多信息,請參見SAE微服務(wù)相關(guān)概念和能力。
注冊中心
使用說明
為了讓微服務(wù)的應(yīng)用可以快速部署到SAE,SAE提供了“Serverless”版的Nacos作為注冊中心,適用于使用Nacos1.X和2.X客戶端的微服務(wù)應(yīng)用。您可以參見在應(yīng)用中配置SAE內(nèi)置Nacos,將您的微服務(wù)應(yīng)用部署到SAE。SAE注冊中心的使用說明如下。
選擇SAE內(nèi)置Nacos后,SAE通過自動注入相關(guān)環(huán)境變量以及借助于Java Agent修改字節(jié)碼的技術(shù),支持自動修改程序的注冊中心地址。因此,您無需對程序做任何修改即可將其直接部署到SAE。
不適用于使用非Nacos注冊中心的程序,相關(guān)邏輯完全由您的程序控制。
該注冊中心適用于快速體驗或者小規(guī)模生產(chǎn)環(huán)境,如果您的微服務(wù)應(yīng)用實例總數(shù)超過30個,推薦您使用自建注冊中心或者M(jìn)SE注冊中心。
應(yīng)用配置
應(yīng)用配置如何生效,請參見使用SAE內(nèi)置Nacos。
配置中心
使用說明
與注冊中心一樣,也提供了“Serverless”版的Nacos作為配置中心,適用于使用Nacos1.X和2.X客戶端的微服務(wù)應(yīng)用。您可以參見在應(yīng)用中配置SAE內(nèi)置Nacos,使用SAE的配置中心。SAE配置中心的使用說明如下。
選擇SAE內(nèi)置Nacos后,SAE通過自動注入相關(guān)環(huán)境變量以及借助于Java Agent修改字節(jié)碼的技術(shù),支持自動修改程序的配置中心地址。因此,您無需對程序做任何修改即可將其直接部署到SAE。
不適用于使用非Nacos配置中心的程序,相關(guān)邏輯完全由您的程序控制。
該配置中心的控制臺由阿里云應(yīng)用配置管理(Application Configuration Management,簡稱ACM)提供,雖然作為獨立產(chǎn)品,它已經(jīng)進(jìn)入下線狀態(tài),但是在SAE中支持繼續(xù)使用。建議您直接使用MSE提供的Nacos 2.0配置服務(wù)。更多信息,請參見Nacos版本特性。
應(yīng)用配置
應(yīng)用配置如何生效,請參見使用SAE內(nèi)置Nacos??刂婆_如何管理配置,請參見分布式配置管理。
微服務(wù)開發(fā)
IDE自動部署
相比于每次重新打包部署,IDE一鍵部署可以大大減少您的部署時間,并提升研發(fā)效率。
端云互聯(lián)
采用微服務(wù)架構(gòu)后,您的應(yīng)用數(shù)會增多。在極端情況下,本地開發(fā)聯(lián)調(diào)需要啟動所有相關(guān)的微服務(wù)應(yīng)用。針對該痛點,您可以借助阿里云Cloud Toolkit插件提供的端云互聯(lián)能力。例如,讓您的本地Consumer直接連接到SAE中部署的Provider,從而無需在本地啟動Provider,大大減少開發(fā)調(diào)試成本。
服務(wù)治理
服務(wù)列表
對于使用內(nèi)置Nacos的應(yīng)用,SAE提供基礎(chǔ)的服務(wù)列表查詢能力。如果您使用自建注冊中心或者M(jìn)SE注冊中心,可以登錄對應(yīng)的控制臺查詢,無需在SAE控制臺查看。
具體操作,請參見查詢服務(wù)列表。
無損下線
因為Consumer客戶端存在緩存,無法及時收到微服務(wù)Provider的下線通知,所以通常需要從注冊中心摘除Provider實例,等待Consumer緩存刷新。針對上述情況,SAE借助MSE的無損下線將該功能做了產(chǎn)品化的集成。
關(guān)于該功能不適用的場景以及相比較于開源Spring Cloud和開源Dubbo優(yōu)勢的更多信息,請參見配置無損下線。
在SAE中配置無損下線的具體操作,請參見設(shè)置微服務(wù)無損下線。
無損上線
微服務(wù)的Provider服務(wù)只要注冊到注冊中心即可被Consumer調(diào)用,但此時,Provider可能還需要更進(jìn)一步的初始化,例如數(shù)據(jù)庫連接池的初始化等。因此,對于流量比較大的微服務(wù)應(yīng)用,推薦您開啟無損上線功能。
具體操作,請參見設(shè)置微服務(wù)無損上線。
微服務(wù)灰度
SAE不僅支持應(yīng)用生命周期托管,還提供了微服務(wù)應(yīng)用發(fā)布態(tài)的灰度能力。
具體操作,請參見管理灰度規(guī)則(Java)和灰度發(fā)布微服務(wù)。
限流降級
無論是微服務(wù)應(yīng)用還是單體應(yīng)用,在面對一些突發(fā)流量,例如秒殺場景時,應(yīng)用可能會突然崩潰。如果是微服務(wù)應(yīng)用,可能還會造成雪崩效應(yīng),因此有必要去做一些保護(hù)措施。SAE集成阿里云應(yīng)用高可用服務(wù)(Application High Availability Service,簡稱AHAS),能夠方便地配置和管理限流降級規(guī)則。
具體操作,請參見限流降級。
應(yīng)用監(jiān)控
微服務(wù)架構(gòu)下,如果沒有配套的監(jiān)控系統(tǒng),不利于發(fā)現(xiàn)問題和診斷問題。SAE集成 應(yīng)用實時監(jiān)控服務(wù) ARMS(Application Real-Time Monitoring Service),提供了應(yīng)用大盤、JVM監(jiān)控、慢調(diào)用監(jiān)控、調(diào)用鏈分析和告警等能力,盡可能降低企業(yè)落地微服務(wù)架構(gòu)的門檻。
更多信息,請參見應(yīng)用監(jiān)控。
多語言
PHP運行時支持
SAE支持以下部署方式。
鏡像:任意PHP架構(gòu)應(yīng)用。
PHP ZIP包:任意PHP-FPM結(jié)合Nginx架構(gòu)的在線應(yīng)用。
SAE默認(rèn)提供PHP運行時環(huán)境。更多信息,請參見PHP運行環(huán)境說明。
靜態(tài)文件托管
借助NAS和OSS,SAE支持獨立托管靜態(tài)文件,對運行過程中的代碼、模板、上傳的文件進(jìn)行持久化存儲,并實現(xiàn)跨實例共享文件。
遠(yuǎn)程調(diào)試
借助SAE的不同功能,SAE支持多種調(diào)試能力。
PHP遠(yuǎn)程調(diào)試
SAE內(nèi)置Xdebug插件,可開啟遠(yuǎn)程調(diào)試。
文件下載
SAE支持通過Webshell登錄實例,并借助SAE或OSS等功能下載文件。更多信息,請參見使用Webshell實現(xiàn)文件上傳下載。
文件上傳
SAE借助NAS和OSS,方便開發(fā)調(diào)試代碼。
日志
SAE集成了SLS和Kafka日志采集。SAE實時日志功能支持查看500行日志信息,如果您有更高的查閱需求,建議使用文件日志收集功能。SAE會將業(yè)務(wù)文件日志(容器內(nèi)日志路徑)、容器標(biāo)準(zhǔn)輸出日志(stdout)收集并輸入SLS或Kafka中,實現(xiàn)無限制行數(shù)查看日志、自行聚合分析日志,方便業(yè)務(wù)日志對接。
文件日志
SAE集成了SLS日志采集,您只需在SAE控制臺開啟。與ECS時代手動維護(hù)采集的機器列表不同,在SAE配置好采集目錄或者采集文件后,后續(xù)每當(dāng)部署、擴容時,SAE都會自動和SLS對接日志采集,支持在SLS控制臺根據(jù)關(guān)鍵字檢索日志。更多信息,請參見設(shè)置日志收集至SLS。
日志源支持通配符,例如/tmp/log/*.log表示采集/tmp/log目錄以及子目錄下所有以log
結(jié)尾的文件。
在不便使用SLS采集、RAM用戶(子賬號)無法查看SLS日志等情況下,您可以選擇將日志導(dǎo)入Kafka。在此基礎(chǔ)上,您可以結(jié)合自身的業(yè)務(wù)場景,將Kafka的數(shù)據(jù)投遞到例如Elasticsearch等其他持久化庫中,便于集中管理和分析日志。更多信息,請參見設(shè)置日志收集至Kafka和SAE日志導(dǎo)入Kafka最佳實踐。
同時,您還可以通過環(huán)境變量來設(shè)置Logtail啟動參數(shù)。更多信息,請參見設(shè)置環(huán)境變量提升Logtail采集性能。
實時日志
SAE會自動采集標(biāo)準(zhǔn)輸出的日志,保留最新的500條,并支持在SAE控制臺查看。更多信息,請參見日志管理。
如果您希望將標(biāo)準(zhǔn)輸出內(nèi)容也采集到SLS,可以先將標(biāo)準(zhǔn)輸出到文件,再配置文件采集。參數(shù)如下圖所示。
存儲
SAE自帶20 GB的系統(tǒng)盤存儲,如果您有讀寫外部存儲需求,建議使用NAS和OSS。診斷SAE應(yīng)用包括常規(guī)檢查和上傳日志兩種方式,其中上傳日志不僅可以使用OSS,也可以使用SAE內(nèi)置的一鍵上傳與下載功能。
日志場景下,建議使用SLS,不建議使用NAS和OSS。更多信息,請參見設(shè)置日志收集至SLS。
NAS
SAE支持NAS存儲功能,解決了應(yīng)用實例數(shù)據(jù)持久化和實例間數(shù)據(jù)分發(fā)的問題。NAS存儲只有掛載到ECS或者SAE才能訪問。更多信息,請參見設(shè)置NAS存儲。
OSS
OSS提供了便捷的工具以及控制臺,支持可視化地管理Bucket。OSS適合讀多寫少的場景,例如掛載配置文件或者前端靜態(tài)文件等。在SAE控制臺部署應(yīng)用時配置了OSS存儲后,您可以通過OSS控制臺訪問數(shù)據(jù)。更多信息,請參見設(shè)置OSS存儲。
寫日志的場景下,無法使用ossfs工具。更多信息,請參見ossfs。
上傳下載文件
如果您希望將SAE內(nèi)的文件下載到本地,您可以使用Webshell自帶的文件上傳下載功能。更多信息,請參見使用Webshell實現(xiàn)文件上傳下載。
除使用NAS或者OSS存儲外,您還可以使用ossutil工具。關(guān)于如何使用阿里云OSS服務(wù)進(jìn)行日志上傳下載,請參見通過常規(guī)檢查診斷應(yīng)用。
監(jiān)控告警
SAE內(nèi)置了基礎(chǔ)監(jiān)控和ARMS業(yè)務(wù)監(jiān)控(Java和PHP)。告警管理提供了可靠的告警收斂、通知、自動升級以及其他功能,幫助您快速檢測和修復(fù)業(yè)務(wù)告警。
基礎(chǔ)監(jiān)控
基礎(chǔ)監(jiān)控包含CPU、Load、MEM、磁盤、網(wǎng)絡(luò)和TCP連接等。更多信息,請參見基礎(chǔ)監(jiān)控。當(dāng)前基礎(chǔ)監(jiān)控內(nèi)置的是阿里云云監(jiān)控產(chǎn)品,所以您也可以登錄云監(jiān)控控制臺配置自定義的監(jiān)控大盤。
業(yè)務(wù)監(jiān)控
業(yè)務(wù)監(jiān)控默認(rèn)提供了ARMS基礎(chǔ)版,可以查看應(yīng)用大盤、JVM監(jiān)控、接口QPS RT、線程池和調(diào)用鏈分析等。更多信息,請參見應(yīng)用詳情。
告警設(shè)置
SAE支持對以上各個監(jiān)控項設(shè)置告警。更多信息,請參見應(yīng)用監(jiān)控報警。
高可用
將應(yīng)用部署在SAE后,針對流量的優(yōu)雅上線與下線,您可以使用健康檢查功能查看應(yīng)用實例與業(yè)務(wù)運行是否正常,以便運行異常時定位問題。同時,SAE支持部署多vSwitch以應(yīng)對機房級別的故障,支持使用AHAS實現(xiàn)Java應(yīng)用的限流降級,全面保障應(yīng)用的可用性。
多vSwitch部署
為了應(yīng)對機房級的故障,建議您對生產(chǎn)級別的SAE應(yīng)用配置多vSwitch。您可以選擇在創(chuàng)建應(yīng)用時配置多vSwitch,或者在創(chuàng)建應(yīng)用以后增加vSwitch。創(chuàng)建vSwitch時,建議您設(shè)計相對充足的IP地址數(shù)(建議100以上),如果IP地址不足則會出現(xiàn)無法創(chuàng)建或者彈性伸縮失敗的情況。更多信息,請參見切換vSwitch。
創(chuàng)建時選擇多vSwitch。
創(chuàng)建后增加vSwitch。
說明增加vSwitch時,要注意同步配置數(shù)據(jù)庫白名單。更多信息,請參見應(yīng)用訪問阿里云數(shù)據(jù)庫。
優(yōu)雅上下線
在SAE部署應(yīng)用時,一般會經(jīng)過先擴容再縮容的過程,但是對于流量的優(yōu)雅上線與下線有以下兩大業(yè)務(wù)痛點。
新擴容的實例是否已經(jīng)就緒能夠承接流量。
如何優(yōu)雅銷毀老實例。
SAE基于Kubernetes,提供了兩種健康檢查方式,包括應(yīng)用實例存活檢查(Liveness配置)和應(yīng)用業(yè)務(wù)就緒檢查(Readiness配置)。針對上述兩大痛點,SAE支持配置健康檢查Readiness。Readiness探針會周期性地檢測實例是否就緒,新實例就緒后,SAE才會接入流量。如果檢測失敗,SAE不會引入流量。開始銷毀老實例前,會先從流量側(cè)摘除,并且銷毀實例前可以配置下線腳本以及等待時間。更多信息,請參見設(shè)置健康檢查。
健康檢查Liveness,也會周期性地檢測實例是否已經(jīng)啟動。如果檢測失敗,SAE會自動重啟容器。該特性便于進(jìn)行異常場景的自動化運維,但可能會造成現(xiàn)場丟失,無法排查失敗原因。您可以根據(jù)您的實際場景判斷是否需要配置Liveness。
除配置Readiness或者Liveness外,微服務(wù)場景還需要配置微服務(wù)的優(yōu)雅下線,以解決注冊中心存在緩存的問題。更多信息,請參見設(shè)置微服務(wù)無損下線同時,在生產(chǎn)環(huán)境中,可能會出現(xiàn)因使用自動彈性伸縮、回滾升級等能力,而導(dǎo)致短時間內(nèi)服務(wù)不可用、業(yè)務(wù)監(jiān)控大量報錯等情況。針對上述痛點,SAE支持配置微服務(wù)的優(yōu)雅上線。更多信息,請參見設(shè)置微服務(wù)無損上線。
限流降級
對于大流量場景,SAE集成了AHAS限流降級,保障應(yīng)用的可用性。更多信息,請參見設(shè)置限流降級。
彈性(降本增效)
SAE支持手動擴縮、定時彈性、指標(biāo)彈性、混合彈性和定時啟停等彈性策略。彈性作為云原生架構(gòu)和應(yīng)用的典型特點,從機器成本角度能夠幫您降低成本,從運維角度能夠幫您提升運維效率。
手動擴縮
手動擴縮適用于人工運維的場景。相較于ECS相對較復(fù)雜較慢的擴縮過程,SAE擴縮基于容器鏡像,更加快速。更多信息,請參見手動擴縮。
定時彈性
定時彈性適用于流量可預(yù)期的場景。例如,餐飲和教育行業(yè)每天存在明確的早晚業(yè)務(wù)高峰,則可以配置在不同的時間段運行不同的實例數(shù),使服務(wù)器資源盡量貼合實際業(yè)務(wù)流量。更多信息,請參見配置彈性伸縮策略。
指標(biāo)彈性
指標(biāo)彈性適用于流量相對不可預(yù)期的場景,當(dāng)前支持CPU、MEM、TCP連接數(shù)、QPS和RT等指標(biāo)。更多信息,請參見配置彈性伸縮策略。
混合彈性
混合彈性適用于同時有突發(fā)流量和定時彈性訴求的場景,例如互聯(lián)網(wǎng)、教育和餐飲等行業(yè),對已知的時段進(jìn)行精細(xì)粒度的實例數(shù)調(diào)整。
例如,在工作日彈性的實例最大值配置為max
,最小值配置為min
,但是實際上在周末又不需要保持min
的實例數(shù),則可以針對周末再配置一個實例數(shù),減小min
。更多信息,請參見配置彈性伸縮策略。
定時啟停
定時啟停功能可以實現(xiàn)按命名空間定時批量啟停應(yīng)用,例如定時啟停開發(fā)環(huán)境或測試環(huán)境的全部應(yīng)用。假設(shè)對于開發(fā)測試環(huán)境,每天只需在08:00~20:00時使用,其余時間處于閑置狀態(tài),則可以在SAE配置定時啟停,以降低成本。更多信息,請參見管理定時啟停規(guī)則。
實踐教程
針對各種業(yè)務(wù)需求,SAE提供了相關(guān)的最佳實踐。除本文涉及到的彈性、網(wǎng)絡(luò)、存儲和應(yīng)用訪問阿里云數(shù)據(jù)庫等外,還包括鏡像、應(yīng)用加速、JVM參數(shù)配置等。更多常見場景,請參見實踐教程。