日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
輸了:傳統(tǒng)架構(gòu)應(yīng)用快速橫向擴(kuò)容PK容器!

背景?

當(dāng)監(jiān)控平臺(tái)發(fā)現(xiàn)流量突增,業(yè)務(wù)系統(tǒng)應(yīng)用或鏈路監(jiān)控出現(xiàn)一定范圍的告警,此時(shí)我們查看問題的方向?yàn)椋?/p>

創(chuàng)新互聯(lián)主營(yíng)松陽(yáng)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),松陽(yáng)h5微信小程序定制開發(fā)搭建,松陽(yáng)網(wǎng)站營(yíng)銷推廣歡迎松陽(yáng)等地區(qū)企業(yè)咨詢

  • APP或網(wǎng)站是否被攻擊了,如DDOS、CC、暴力破解等;
  • 合作推廣帶來的業(yè)務(wù)流量增高,應(yīng)用系統(tǒng)壓力過大;
  • 數(shù)據(jù)庫(kù)是否出現(xiàn)因連接數(shù)滿、事務(wù)死鎖導(dǎo)致壓力過大;

以上幾種情況都是我們?cè)谔幚砩a(chǎn)故障過程中比較常見的, 本次我們就應(yīng)用系統(tǒng)壓力過大的場(chǎng)景,需要進(jìn)行橫向擴(kuò)容的方向來講解。

需求?

當(dāng)應(yīng)用系統(tǒng)壓力過大,除了臨時(shí)調(diào)整線程數(shù)或直接橫向擴(kuò)容來解決外,更深入的優(yōu)化代碼以及調(diào)用鏈路上的耗時(shí)接口就更加滯后了。因此我們決定通過應(yīng)用橫向擴(kuò)容來應(yīng)對(duì)系統(tǒng)壓力過大,此時(shí)實(shí)現(xiàn)如何快速擴(kuò)容就成了我們重點(diǎn)關(guān)注的問題。

傳統(tǒng)架構(gòu)下,對(duì)于應(yīng)用橫向擴(kuò)容我們需要做的重點(diǎn)步驟如下:

  • 閑置的服務(wù)器資源;
  • 系統(tǒng)標(biāo)準(zhǔn)化部署步驟(應(yīng)用發(fā)布、標(biāo)準(zhǔn)目錄、配置發(fā)布、應(yīng)用啟動(dòng));
  • 應(yīng)用啟動(dòng)自動(dòng)健康檢查;
  • 應(yīng)用啟動(dòng)后自動(dòng)接入負(fù)載均衡或注冊(cè)中心;
  • 應(yīng)用橫向擴(kuò)容后同步到系統(tǒng)監(jiān)控平臺(tái);
  • CMDB資產(chǎn)同步添加到對(duì)應(yīng)業(yè)務(wù)分組;
  • 應(yīng)用服務(wù)器同步至堡壘機(jī);

以上是新的應(yīng)用服務(wù)器上線在運(yùn)維管理過程中流轉(zhuǎn)涉及的各個(gè)主要環(huán)節(jié),除了提前準(zhǔn)備閑置的服務(wù)器資源以節(jié)省不必要的時(shí)間外,其他都是需要根據(jù)我們系統(tǒng)架構(gòu)及運(yùn)維平臺(tái)的實(shí)際情況去適配,我這里只是提供了一個(gè)思路。

假設(shè),一套比較主流的架構(gòu)為:

  • CMDB,基礎(chǔ)設(shè)施統(tǒng)一納管
  • Zabbix監(jiān)控,統(tǒng)一的健康檢查
  • JumpServer堡壘機(jī),服務(wù)器統(tǒng)一登錄管理
  • Spring Cloud 框架
  • Eureka注冊(cè)中心
  • Apollo配置中心

解決方案?

在此我們通過??Pipeline支撐運(yùn)維自動(dòng)化??的思想來實(shí)現(xiàn)應(yīng)用橫向擴(kuò)容,以流水線的形式編排不同級(jí)別的原子模塊來實(shí)現(xiàn)不同運(yùn)維場(chǎng)景的功能需求。

根據(jù)系統(tǒng)架構(gòu),應(yīng)用橫向擴(kuò)容流水線的實(shí)現(xiàn)涉及的功能模塊上圖中已經(jīng)標(biāo)注出來,其中:

  • CMDB+事件推送網(wǎng)關(guān),可通過CMDB對(duì)空閑服務(wù)器資源分配觸發(fā)資產(chǎn)在Zabbix監(jiān)控和堡壘中自動(dòng)同步;
  • 基礎(chǔ)組件安裝,實(shí)現(xiàn)了Java環(huán)境包括標(biāo)準(zhǔn)部署目錄、JDK環(huán)境、管理腳本等內(nèi)容的自動(dòng)配置;
    當(dāng)然我們默認(rèn)空閑服務(wù)器已經(jīng)是按操作系統(tǒng)初始化(配置初始化、標(biāo)準(zhǔn)用戶、等保安全基線)交付的,因此我們?cè)诖藳]有過多介紹。
  • Apollo配置中心級(jí)原子模塊,實(shí)現(xiàn)應(yīng)用的配置發(fā)布;
  • 系統(tǒng)監(jiān)控級(jí)原子模塊,擴(kuò)容后應(yīng)用的健康檢查同步添加到監(jiān)控平臺(tái);

具體實(shí)現(xiàn)?

1.構(gòu)建?

我們只需輸入應(yīng)用名、新應(yīng)用IP、版本號(hào),就可以實(shí)現(xiàn)應(yīng)用的橫向擴(kuò)容,但是目前只支持逐臺(tái)擴(kuò)容,還不能批量橫向擴(kuò)容。

2.構(gòu)建結(jié)果?

通過對(duì)流水線的stage的時(shí)間統(tǒng)計(jì),應(yīng)用擴(kuò)容耗主要為版本發(fā)布過程中的啟動(dòng)時(shí)間。

3.Pipeline?

@Library('shared-library') _
pipeline {
agent any
options {
timestamps()
}
stages {
stage('基礎(chǔ)組件初始化') {
steps {
script {
build job: 'init_system', parameters: [text(name: 'HOST_IP', value: "${HOST}"), string(name: 'PLAYBOOK', value: 'software_install.yml'), string(name: 'TAG', value: 'java,filebeat')]
}
}
}
stage('應(yīng)用初始化') {
steps {
script {
java_deploy.InitApp("${APP_NAME}")
}
}
}
stage('拉取Yunweiconfig配置') {
steps {
script {
java_deploy.PullFromYunweiconfig("${APP_NAME}")
}
}
}
stage('從制品庫(kù)拉取包文件') {
steps {
script {
java_deploy.PullFromArtifactory("${APP_NAME}", "${VERSION}")
}
}
}
stage('apollo更新') {
steps {
script {
apollo.ApolloDeploy("${APP_NAME}")
}
}
}
stage('版本發(fā)布') {
steps {
script {
app_port = apollo.ApolloGetPort("${APP_NAME}")
java_deploy.DeployApp("${APP_NAME}", "${VERSION}", "${HOST}")
ip_port = "${HOST}" + ':' + "${app_port}"
//健康檢查
java_deploy.HealthCheck("${ip_port}")
}
}
}
stage('添加zabbix健康檢查 ') {
steps {
script {
app_prot = apollo.ApolloGetPort("${APP_NAME}")
//println("test pass")
println("${app_prot},${HOST}")
ip_port = "${HOST}" + ':' + "${app_prot}"
build job: 'zabbix_newalert', parameters: [string(name: 'APP_NAME', value: "${APP_NAME}"), string(name: 'IP_PORT', value: ""), string(name: 'HTTP_URL', value: "${ip_port}")]
}
}
}
}
}

PK容器?

彈性伸縮相對(duì)于傳統(tǒng)架構(gòu),操作系統(tǒng)CPU、內(nèi)存資源閾值的粒度太粗,無法精確地進(jìn)行適時(shí)擴(kuò)容;另外對(duì)于批量擴(kuò)容,需要提前準(zhǔn)備好資源,相對(duì)于容器的解決方案還是不夠靈活。

啟動(dòng)時(shí)間無論是容器還是傳統(tǒng)架構(gòu),限制快速擴(kuò)容的主要原因在于應(yīng)用的啟動(dòng)時(shí)間,這方面要提前進(jìn)行優(yōu)化。

IP地址分配傳統(tǒng)架構(gòu)無法做到IP地址的自動(dòng)分配,在生產(chǎn)環(huán)境使用DHCP不僅會(huì)導(dǎo)致keepalived切換產(chǎn)生腦裂,還會(huì)因租期問題產(chǎn)生其他問題。而云原生架構(gòu)的可以做到自定義IP池,因此后續(xù)擴(kuò)容會(huì)使用IP池中的地址。

以上幾點(diǎn)是通過本次對(duì)應(yīng)用自動(dòng)橫向擴(kuò)容,與容器使用過程中的幾點(diǎn)對(duì)比,印象比較深刻。

總結(jié)?

本次PK,傳統(tǒng)架構(gòu)雖然輸了,但也并不是一敗涂地。至少讓我發(fā)現(xiàn)只要細(xì)心,堅(jiān)持標(biāo)準(zhǔn)化、原子化、場(chǎng)景化的原則,我們還是有很大空間可以提升的。容器給了我們目標(biāo)和方向,剩下就要看我們自己了


當(dāng)前標(biāo)題:輸了:傳統(tǒng)架構(gòu)應(yīng)用快速橫向擴(kuò)容PK容器!
當(dāng)前鏈接:http://m.5511xx.com/article/ccspdgc.html