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

設(shè)計(jì)微服務(wù)架構(gòu)時(shí)應(yīng)避免的五個(gè)錯(cuò)誤

譯文
開發(fā) 架構(gòu)
本文介紹了設(shè)計(jì)成功的微服務(wù)架構(gòu)的幾個(gè)優(yōu)秀實(shí)踐。我們不會(huì)介紹開發(fā)或部署微服務(wù),而是討論計(jì)劃使用微服務(wù)架構(gòu)時(shí)應(yīng)避免的常見錯(cuò)誤。

[[316471]]

【51CTO.com快譯】到目前為止,大多數(shù)開發(fā)人員已聽說了微服務(wù)的種種好處。不過,真正通過將現(xiàn)有應(yīng)用程序轉(zhuǎn)換成微服務(wù)架構(gòu)以“遷移整體式系統(tǒng)”時(shí),你可能會(huì)發(fā)現(xiàn)設(shè)計(jì)有效的微服務(wù)架構(gòu)困難重重。開發(fā)社區(qū)費(fèi)了大量的時(shí)間討論為何采用微服務(wù)架構(gòu),而不是討論如何設(shè)計(jì)。

本文介紹了設(shè)計(jì)成功的微服務(wù)架構(gòu)的幾個(gè)優(yōu)秀實(shí)踐。我們不會(huì)介紹開發(fā)或部署微服務(wù),而是討論計(jì)劃使用微服務(wù)架構(gòu)時(shí)應(yīng)避免的常見錯(cuò)誤。

1. 癡迷于每項(xiàng)功能有一個(gè)服務(wù)

讓大多數(shù)開發(fā)人員描述有效的微服務(wù)架構(gòu),他們會(huì)告訴你應(yīng)用程序每方面的功能都應(yīng)該由不同的微服務(wù)提供支持。以支付應(yīng)用程序?yàn)槔?,身份?yàn)證應(yīng)由一個(gè)微服務(wù)處理,另一個(gè)微服務(wù)進(jìn)行支付處理,另一個(gè)微服務(wù)運(yùn)行前端,另一個(gè)存儲(chǔ)和檢索數(shù)據(jù),依此類推。

旨在將各大應(yīng)用功能派給不同的微服務(wù)通常是個(gè)好主意。但是這個(gè)原則很容易過猶不及,往往會(huì)阻礙設(shè)計(jì)有效的微服務(wù)架構(gòu)。

有時(shí),區(qū)別一項(xiàng)功能與另一項(xiàng)功能的界線很模糊。比如說,你是否應(yīng)該將用戶注冊視作與用戶身份驗(yàn)證不同的功能,因此為各自創(chuàng)建單獨(dú)的微服務(wù)?如果你的應(yīng)用程序?qū)?shù)據(jù)存儲(chǔ)在多個(gè)位置,每個(gè)位置都應(yīng)該擁有自己的微服務(wù)嗎?還是應(yīng)該只有一個(gè)數(shù)據(jù)服務(wù)來處理所有位置?

這些問題的答案是,這可能無關(guān)緊要。要弄清楚某應(yīng)用程序?qū)⒂卸嗌傥⒎?wù)、各自處理哪些功能。如果你花太多的時(shí)間弄清楚如何在應(yīng)用程序中拆分不同的任務(wù),工作效率就不會(huì)很高。

2. 微服務(wù)做得過小

同樣,設(shè)計(jì)微服務(wù)架構(gòu)使每個(gè)微服務(wù)過小,因此需要眾多微服務(wù)來組成整個(gè)應(yīng)用程序是常見的錯(cuò)誤。

開發(fā)人員之所以遇到這個(gè)陷阱,是由于他們認(rèn)為微服務(wù)越小越好。從某種意義上說是對的——將大型應(yīng)用程序分成較小的離散單元是為應(yīng)用程序提高可擴(kuò)展性和可靠性的一種方法。

但是如果微服務(wù)變得過小,以后開發(fā)和部署微服務(wù)時(shí)開銷會(huì)大大增加。每個(gè)微服務(wù)需要各自的開發(fā)和部署管道(更不用說單獨(dú)的監(jiān)控、日志和安全操作了)。

因此,雖然你確實(shí)希望微服務(wù)小點(diǎn),但不應(yīng)該過小,也不應(yīng)該讓應(yīng)用程序含有太多的微服務(wù)。作為一條普遍的準(zhǔn)則,如果你的應(yīng)用程序由不止十幾個(gè)微服務(wù)組成,每個(gè)微服務(wù)可能太小,你應(yīng)該將一些微服務(wù)合并起來,以不同的方式來設(shè)計(jì)架構(gòu)。

3. 需要特定的部署解決方案

如今的常見做法是通過容器來部署微服務(wù)——通常借助OpenShift或另一種基于Kubernetes的編排平臺(tái)。

但幾年后還會(huì)是這樣嗎?不好說。部署技術(shù)日新月異,很難知道哪種部署解決方案將來對你的微服務(wù)應(yīng)用最合理。

因此,以需要特定類型部署技術(shù)的方式設(shè)計(jì)微服務(wù)架構(gòu)是錯(cuò)誤的。你不應(yīng)該讓自己依賴Kubernetes、甚至普通的容器才能部署應(yīng)用程序,而是應(yīng)設(shè)計(jì)一種可以在各種基礎(chǔ)架構(gòu)上、甚至可以在各種操作系統(tǒng)上運(yùn)行的架構(gòu)。

4. 要求同時(shí)更新所有微服務(wù)

你有時(shí)在微服務(wù)架構(gòu)中看到的一個(gè)錯(cuò)誤是要求:如果更新應(yīng)用程序中的一個(gè)微服務(wù),同時(shí)也要更新(或至少重新啟動(dòng))其他微服務(wù)。

如果從整體式系統(tǒng)的角度來看,這種想法很自然。但是就微服務(wù)而言,這種方法意味著你是自找麻煩。微服務(wù)的目的一方面是在不影響其他部分的情況下,更新、擴(kuò)展或重新啟動(dòng)應(yīng)用程序的某些部分。

因此,如果更改一個(gè)微服務(wù)的狀態(tài)意味著也要更改其他微服務(wù)的狀態(tài),你就失去了微服務(wù)本該帶來的許多靈活性。也更難搞持續(xù)交付,因?yàn)槟銦o法在不影響其他服務(wù)的情況下推送針對某一服務(wù)的更新。

另一方面,你的微服務(wù)不應(yīng)太緊密地耦合在一起。設(shè)計(jì)架構(gòu)時(shí)盡可能避免這種情況:如果依賴的另一個(gè)微服務(wù)沒在運(yùn)行,某一微服務(wù)就無法運(yùn)行。

5. 忽視日志

設(shè)計(jì)微服務(wù)架構(gòu)時(shí)要避免的最后一個(gè)陷阱是忽視日志。

很容易犯這個(gè)錯(cuò)誤。你會(huì)以為可以在以后為每個(gè)微服務(wù)編寫代碼時(shí)搞清楚日志,或者只要將日志代理部署到微服務(wù)環(huán)境中,它就能收集所需的所有數(shù)據(jù)。

最好一開始就將日志納入到微服務(wù)架構(gòu)中。在許多情況下,這意味著專門創(chuàng)建一個(gè)微服務(wù),用于從其他微服務(wù)收集日志數(shù)據(jù)。不過在其他情況下,每個(gè)微服務(wù)可能會(huì)進(jìn)行自己的日志記錄,將數(shù)據(jù)重定向到中心位置。

無論采用哪種策略,目的都應(yīng)該是確保微服務(wù)架構(gòu)便于從整個(gè)應(yīng)用程序收集日志數(shù)據(jù),并將其放入到中心位置以便分析和保存。

結(jié)論

設(shè)計(jì)微服務(wù)時(shí)沒有一成不變的規(guī)定。不過作為一般準(zhǔn)則,上述原則仍將幫助你規(guī)劃好這樣的微服務(wù)架構(gòu):提供微服務(wù)本應(yīng)提供的所有好處,又沒有因?yàn)樵愀庠O(shè)計(jì)的微服務(wù)架構(gòu)給開發(fā)人員和IT團(tuán)隊(duì)帶來的麻煩。

原文標(biāo)題:5 Mistakes to Avoid When Designing a Microservices Architecture,作者:Christopher Tozzi

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2015-05-22 09:05:00

云部署云部署錯(cuò)誤

2022-12-07 08:47:48

2011-07-28 09:42:14

IT安全虛擬化數(shù)據(jù)泄漏

2024-02-23 11:29:05

數(shù)據(jù)中心服務(wù)器

2024-04-03 14:50:46

數(shù)據(jù)中心冷卻數(shù)據(jù)中心

2023-06-07 07:43:06

APIVue 2Vue 3

2021-06-28 10:12:34

云計(jì)算云平臺(tái)云計(jì)算架構(gòu)

2012-04-26 10:26:51

移動(dòng)應(yīng)用設(shè)計(jì)

2019-07-01 10:43:15

區(qū)塊鏈技術(shù)數(shù)據(jù)

2024-01-25 11:28:18

CIO數(shù)據(jù)戰(zhàn)略IT領(lǐng)導(dǎo)者

2021-02-23 10:36:13

IT主管首席信息官IT預(yù)算

2017-09-27 13:56:58

微服務(wù)架構(gòu)故障網(wǎng)絡(luò)

2023-08-01 10:41:27

分派IT工作CIO

2021-12-02 18:07:53

云網(wǎng)絡(luò)部署云端云計(jì)算

2019-11-01 10:45:48

CIOIT技術(shù)

2024-06-03 00:00:10

微服務(wù)Python

2009-01-27 17:24:00

服務(wù)器數(shù)據(jù)虛擬化缺點(diǎn)

2021-05-20 13:22:31

架構(gòu)運(yùn)維技術(shù)

2020-12-19 10:53:08

微服務(wù)架構(gòu)設(shè)計(jì)模式軟件開發(fā)

2021-08-11 13:54:19

微服務(wù)系統(tǒng)架構(gòu)開發(fā)者
點(diǎn)贊
收藏

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