自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

老板覺得冷,服務(wù)如何縮容?

開發(fā) 架構(gòu)
傳統(tǒng)的資源是CPU、內(nèi)存、網(wǎng)絡(luò)、I/O,當(dāng)然我們也可以擴(kuò)大一點(diǎn),把更上層的軟件勞動(dòng)者也囊括進(jìn)來,包括數(shù)據(jù)庫、MQ、SLB等諸多組件。

大環(huán)境穩(wěn)中向好,公司卻不行了。為什么?肯定是自己的問題,這怪不得別人。在任老板緊裹大襖的今天,我們也沒必要穿著秋褲耍帥,保暖措施是一定要跟上的。

這些保暖方案,除了要降本增效把可憐的勞動(dòng)者變成靈活勞動(dòng)者,原則上我們還可以對(duì)服務(wù)運(yùn)行的寄主,這就是躺在機(jī)房里的那些硬件采取一些措施。

假如CPU一直沒跑滿,我們就要想著讓它一直極限運(yùn)行;如果磁盤富余,那可以使用MinIO再在上面搭建一套文件系統(tǒng);JVM的內(nèi)存分配也要省著點(diǎn),方便以后進(jìn)行混合部署...

如果老板覺得很冷,作為員工xjjdog絕對(duì)不可以眼睜睜看他凍死。這樣的措施很多,我們要出方案,找抓手,真正的落實(shí)下去。

搭建監(jiān)控系統(tǒng)

想要知道每個(gè)部件的溫度,看這些硬件有沒有偷懶,有沒有瞞報(bào)誤報(bào),我們需要搭建一套完整的監(jiān)控系統(tǒng)來對(duì)這些硬件進(jìn)行監(jiān)控,它們絕對(duì)逃不出我們的五指山。

傳統(tǒng)的資源是CPU、內(nèi)存、網(wǎng)絡(luò)、I/O,當(dāng)然我們也可以擴(kuò)大一點(diǎn),把更上層的軟件勞動(dòng)者也囊括進(jìn)來,包括數(shù)據(jù)庫、MQ、SLB等諸多組件。

這套系統(tǒng)可以采用占用資源較少的組件,比如Telegraf進(jìn)行指標(biāo)指標(biāo),Prometheus進(jìn)行指標(biāo)存儲(chǔ),只保存1天的時(shí)間。至于展示,一個(gè)Grafana就可以滿足需求,我們可以直接使用潛入的sqlite來保存監(jiān)控面板。至于報(bào)警,不要再發(fā)郵件、發(fā)短信了,花錢。我們?nèi)斯とザ⒕涂梢粤恕?/p>

抓數(shù)據(jù)也要平衡花費(fèi),不能在保暖的步伐中首先凍死了自己。抓取的間隔可以調(diào)高到30s或者1min;參數(shù)也要調(diào)整好,像CPU利用率,我們只抓總的就好了,沒必要抓取單核的。

覺得冷一般是一個(gè)整體覺得冷,抓單核CPU不符合平均主義的精神。有了監(jiān)控系統(tǒng),我們就相當(dāng)于有了抓手,這措施就有一定的針對(duì)性,在縮容的進(jìn)程中就多了一些掌控度。

去容器化

容器很好,但有成本。無論Namespace隔離的再好,總有運(yùn)行成本。再加上k8s的維護(hù)人員,鏡像的存儲(chǔ)倉庫,所謂的云原生等一系列Proxy,在公司勢(shì)必會(huì)造成大的浪費(fèi)。

先別再研究什么ServiceMesh了,我們先把容器去掉。

對(duì)于Java來說,WAR包、JAR包,都是比較好的運(yùn)行方式。對(duì)于其他語言來說,二進(jìn)制也很好,不用再用Docker包上一層。

使用Jenkins來替代Rancher或者采購的k8s系統(tǒng),可以省下一部分授權(quán)費(fèi)用,而且服務(wù)運(yùn)行的更清爽。順便,也可以把k8s團(tuán)隊(duì)整個(gè)給優(yōu)化掉,因?yàn)樗麄冊(cè)诳s容的環(huán)境中根本不是那么重要,反而是公司的累贅。

xjjdog在十幾年前,一個(gè)Tomcat,一個(gè)ssh遠(yuǎn)程命令行,服務(wù)就能運(yùn)行的很好??v觀這些年,容器化發(fā)展縱然迅速,但公司的業(yè)務(wù)卻每況愈下。這證明了先進(jìn)的技術(shù)并不能助力業(yè)務(wù)的發(fā)展。

夠用就好。有時(shí)候追求潮流反而尾大不掉,企業(yè)有縮容的需求,去容器化就是必須要實(shí)行的。

去微服務(wù)化

接下來,我們要把公司的業(yè)務(wù)進(jìn)行單體化。把原來拆的七零八落的微服務(wù)模塊給合并起來。

公司下行,業(yè)務(wù)也變的穩(wěn)定,微服務(wù)的魔力已經(jīng)一去不復(fù)返,是時(shí)候把它們放在一個(gè)Idea項(xiàng)目中來運(yùn)行了。

ERP、CRM、Shop、Front?沒有什么不是一個(gè)獨(dú)立的git項(xiàng)目不能管理的。相對(duì)于RPC這些耗時(shí)的調(diào)用,直接方法內(nèi)調(diào)用會(huì)節(jié)省下大量的硬件。流量的節(jié)省,機(jī)器的節(jié)省,這都是微服務(wù)不能比擬的。

微服務(wù)到單體的改造,我們要從下游開始,逐步向上游靠攏。原來是RPC調(diào)用,現(xiàn)在我們只需要把它封裝成一個(gè)jar包,然后讓業(yè)務(wù)進(jìn)行集成就好了。

這個(gè)過程可能是痛苦的,但一旦完成了改造,什么注冊(cè)中心、日志手收集、熔斷、分布式鎖等組件,都可以說bye了。

公司沒業(yè)務(wù),與其讓開發(fā)人員在那里閑著沒事做,不如加加班,把微服務(wù)改造成單體。這部分省下來的錢,換量新車,再不濟(jì)出去旅個(gè)游,不爽么?

其實(shí),把微服務(wù)做成單體,還可以降低遷移成本。這個(gè)我們接下來說。

去云化

千萬不要買什么云上的產(chǎn)品,比如RDS或者M(jìn)Q或者什么Log服務(wù),這些開源組件都是現(xiàn)成的,云服務(wù)商簡(jiǎn)單的包裝了一層就拿來賣錢。它們的棉襖倒是厚了,作為企業(yè)我們都沒有褲頭穿。

這不能忍。

要用云服務(wù),也就簡(jiǎn)單的買裸機(jī)就好。就買那種大容量的,大cpu大內(nèi)存。如果一臺(tái)機(jī)器的利用率沒有漲上去,我們就可以再在上面添加一些服務(wù),就是這么簡(jiǎn)單。

隨著業(yè)務(wù)的訪問量越來越少,這些大容量的機(jī)器可以越來越少。這是后話,我們首先要干掉的就是云產(chǎn)品。

像MySQL,你搞那么多實(shí)例干什么?通過開不同的賬號(hào),我們可以讓所有的系統(tǒng)使用同一個(gè)MySQL實(shí)例。這樣備份都好做,只需要掛上個(gè)從機(jī),或者定期拉一下Binlog就好了。

像MQ、緩存,各種系統(tǒng),沒有什么不是不能共用的。你買了云廠商十幾二十個(gè)實(shí)例,結(jié)果發(fā)現(xiàn)最后搭建一個(gè)就滿足需求了,何苦花這個(gè)錢、費(fèi)這個(gè)勁,來滿足一個(gè)半死不活的業(yè)務(wù)呢?

完成混合部署

很多年前,混合部署還是一種潮流。容器出來之后,混合部署就逐漸落于下成。主要是混合部署,服務(wù)之間會(huì)相互影響,也無法進(jìn)行資源隔離。

但今日不同往昔了兄弟們,公司幾百個(gè)服務(wù)的運(yùn)行情況,已經(jīng)是可以預(yù)見的處于那種水平,再也不可能來個(gè)10倍流量,百倍秒殺這樣的場(chǎng)景了。

把這些可憐的小家伙們部署在一塊,是必然的選擇。況且,經(jīng)過我們的單體化改造,微服務(wù)已經(jīng)沒有了,這些服務(wù)數(shù)量上必然是可控的。為了讓實(shí)施速度快一點(diǎn),我們也推薦買大容量的CPU、內(nèi)存等,這樣也方面我們?nèi)蘸笳{(diào)整。

資源調(diào)整

當(dāng)這一切完成之后,你會(huì)發(fā)現(xiàn),縮容竟然也是這么的美妙。人變少了,團(tuán)隊(duì)好管理;機(jī)器變少了,掌控力就變強(qiáng)。有些公司,在進(jìn)行這些非常Nice的改造之后,會(huì)發(fā)現(xiàn)一臺(tái)16C32G的機(jī)器,就能夠Hold住公司的所有業(yè)務(wù)了。

但16C32G也是錢啊,而且每個(gè)月都付,我們的縮容還沒到極致。這時(shí)候監(jiān)控系統(tǒng)的作用必須要體現(xiàn)。

如果某臺(tái)機(jī)器的CPU一直處于低水位運(yùn)行,說明你的服務(wù)調(diào)度是不合格的,你需要調(diào)整每臺(tái)機(jī)器上部署的服務(wù)的情況。這通常是拷貝一下程序,修改一下Ng的配置文件就能完成的事。

JVM的內(nèi)存監(jiān)控也要走起來,除了堆,像什么MetaSpace、堆外內(nèi)存也要控制起來,夠用就好。如果你擔(dān)心一些突發(fā)情況把進(jìn)程搞Down了,那么可以使用systemctl做個(gè)自動(dòng)重啟。相信對(duì)于技術(shù)高超的你來說,這都不是問題。

其他

當(dāng)然,上面的縮容都是一些指導(dǎo)思想。我們的目標(biāo)就是降低機(jī)器使用的數(shù)量。像性能優(yōu)化、日志縮減這些就不多談了,因?yàn)樗鼈儗?duì)技術(shù)要求比較高。

另外,任何花錢的地方,都可以讓它不花錢。就拿HTTPS來說啊,證書要花錢,沒必要讓用戶的數(shù)據(jù)走什么安全通道。況且現(xiàn)在移動(dòng)端訪問誰也看不出到底是不是HTTPS,證書這種東西能去掉就去掉吧,沒人在乎。

高可用建設(shè)的這一塊,從DNS到組件的主從,甚至某些服務(wù)的負(fù)載均衡。只要能處理業(yè)務(wù),也沒必要為了這些幾乎永遠(yuǎn)看不到的風(fēng)險(xiǎn)點(diǎn)花這些冤枉錢。

退一萬步講,假如縮容之后,我們的公司還是很冷,活不了幾天。我們還可以把這些單體應(yīng)用開源出去,做點(diǎn)教程賣錢。

單體應(yīng)用,用鼠標(biāo)點(diǎn)吧點(diǎn)吧就能跑,學(xué)生、老板和培訓(xùn)機(jī)構(gòu)們最喜歡了。

作者簡(jiǎn)介:小姐姐味道  (xjjdog),一個(gè)不允許程序員走彎路的公眾號(hào)。聚焦基礎(chǔ)架構(gòu)和Linux。十年架構(gòu),日百億流量,與你探討高并發(fā)世界,給你不一樣的味道。

責(zé)任編輯:武曉燕 來源: 小姐姐味道
相關(guān)推薦

2024-03-29 12:11:46

2024-02-23 10:25:33

Kubernetes自動(dòng)擴(kuò)縮容工作負(fù)載

2022-12-30 08:37:25

Kubernetes垂直水平

2018-12-05 10:40:54

MySQL架構(gòu)分布式

2023-02-08 07:55:33

K8sHPA服務(wù)器

2021-01-28 10:36:09

Redis擴(kuò)縮容架構(gòu)

2023-12-07 12:48:09

微服務(wù)容量規(guī)劃

2017-09-06 10:01:58

戴爾

2014-12-24 09:35:29

Docker集群管理kubernetes

2022-02-18 08:54:21

docker操作系統(tǒng)Linux

2024-06-04 08:09:00

kubernetesHPA擴(kuò)縮容

2020-12-29 07:20:43

冷鏈物聯(lián)網(wǎng)IOT

2020-11-06 09:36:11

命令微服務(wù)軟件

2019-12-12 20:26:11

物聯(lián)網(wǎng)數(shù)據(jù)物流

2024-01-22 08:01:17

IM即時(shí)通訊系統(tǒng)

2022-04-07 12:13:22

技巧高可用單機(jī)版

2018-05-07 17:41:23

物聯(lián)網(wǎng)

2024-02-28 09:12:27

RocketMQKosmosAZ

2024-02-01 15:03:14

RocketMQKosmos高可用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)