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

微服務(wù)or單體?這五家“耐撕”公司的初創(chuàng)故事

譯文 精選
開發(fā) 架構(gòu)
也許準(zhǔn)微服務(wù)架構(gòu)是更適合的方案?或者可能更傾向于嘗試其他方法?再次強調(diào),微服務(wù)和單體架構(gòu)之間的選擇不僅僅是技術(shù)選擇,對所有因素的評估才是實現(xiàn)完美匹配的關(guān)鍵。?
作者 | Gustavo 

編譯 | 言征

出品 | 51CTO技術(shù)棧(微信號:blog51cto)

創(chuàng)業(yè)工程團(tuán)隊不僅必須考慮技術(shù)方面,還必須考慮微服務(wù)與整體服務(wù)的選擇如何與其業(yè)務(wù)目標(biāo)相一致。毫無疑問,關(guān)于這兩種方法的評論和分析有很多,本文中,我們將探討真實的案例,以便諸位做出自己的決定。

在創(chuàng)業(yè)公司的現(xiàn)實中,工程團(tuán)隊在為其軟件應(yīng)用程序選擇基礎(chǔ)架構(gòu)時往往處于十字路口。這個看似技術(shù)性的決定實際上遠(yuǎn)遠(yuǎn)超出了編碼領(lǐng)域,直接進(jìn)入了可以決定創(chuàng)業(yè)公司早期階段的戰(zhàn)略規(guī)劃。

這個決定的核心取決于一個關(guān)鍵問題:團(tuán)隊?wèi)?yīng)該為去中心化的微服務(wù)架構(gòu)奠定基礎(chǔ),還是應(yīng)該選擇單體設(shè)計,讓整個應(yīng)用程序是統(tǒng)一且相互依賴的?

構(gòu)建一個系統(tǒng),其設(shè)計本質(zhì)上是隨著創(chuàng)業(yè)公司的發(fā)展而不斷增長和適應(yīng),這樣看,微服務(wù)相當(dāng)適配,其中的每個服務(wù)運行其獨特的進(jìn)程并通過定義良好、輕量級的機制進(jìn)行通信。這種方法提供了許多優(yōu)勢,尤其是在團(tuán)隊能夠更新和部署單個組件而不中斷整個系統(tǒng)的情況下。

然而過早地采用微服務(wù),并不十分明智。尤其是在時間至關(guān)重要且創(chuàng)業(yè)公司需要迅速建立自己作為可靠和可行的業(yè)務(wù)的情況下。設(shè)計、部署和維護(hù)微服務(wù)網(wǎng)絡(luò)的復(fù)雜性是一項重大任務(wù),經(jīng)常被許多人低估。這種復(fù)雜性可能會帶來意外的延遲、增加停機風(fēng)險,并要求初創(chuàng)公司可能仍然需要具備一定水平的運營成熟度。

相比之下,單體架構(gòu)(通常被視為傳統(tǒng)或過時)可堪一用,尤其是對于處于初級階段的創(chuàng)業(yè)公司。單體應(yīng)用程序中,所有組件都是相互連接和相互依賴的,為開發(fā)提供了一個簡單直接、統(tǒng)一的模型。這種方法可以大大簡化開發(fā)過程,縮短上市時間,并允許快速原型制作和迭代——這對于需要迅速證明其業(yè)務(wù)模式的可行性的創(chuàng)業(yè)公司來說是至關(guān)重要的因素。

路徑對比鮮明,創(chuàng)業(yè)公司的工程團(tuán)隊必須仔細(xì)權(quán)衡他們的選擇,不僅要考慮技術(shù)方面,還要考慮他們的選擇如何與他們的業(yè)務(wù)目標(biāo)、團(tuán)隊能力和市場進(jìn)入的緊迫性相一致。

一、單體架構(gòu)的吸引力

單體架構(gòu)的特點是應(yīng)用程序只有一個統(tǒng)一的代碼庫,由于其簡單性和高效性,對于創(chuàng)業(yè)公司而言非常有吸引力。這種架構(gòu)風(fēng)格中,所有組件都是相互連接和相互依賴的,簡化了開發(fā)和部署過程。

1.案例研究:Stack Overflow

Stack Overflow選擇單體架構(gòu)無疑說明了這種方法的強大之處。盡管它每秒處理超過6000個請求,每月頁面瀏覽量達(dá)到20億次,但Stack Overflow仍然通過一個運行在IIS上的單一應(yīng)用程序進(jìn)行操作,為200個網(wǎng)站提供服務(wù),并表現(xiàn)出卓越的效率。這種設(shè)置由一個單一的SQL Server組成,該服務(wù)器由廣泛的緩存和精簡的技術(shù)堆棧支持,由一個只有50名工程師的團(tuán)隊進(jìn)行管理。他們能夠快速部署更新,每天多次部署,這展示了結(jié)構(gòu)良好的單體系統(tǒng)可以提供的運營靈活性。

2.案例研究:Shopify

Shopify是科技行業(yè)的另一巨頭,它采用了模塊化單體的方法,所有代碼都放在一個代碼庫中,但進(jìn)行了模塊化以更好地管理。這種方法允許清晰地劃分業(yè)務(wù)領(lǐng)域,如訂單、運輸和結(jié)算,每個領(lǐng)域都有自己的專用接口和數(shù)據(jù)所有權(quán)。維護(hù)一個單一的存儲庫和部署管道使得Shopify能夠獲得流線化維護(hù)和跨所有團(tuán)隊的合作的好處。

3.補充:我在一家共享自行車和滑板車初創(chuàng)公司的個人經(jīng)歷

根據(jù)我在一家共享單車和滑板車初創(chuàng)公司的個人經(jīng)驗,采用單體架構(gòu)的決定導(dǎo)致了驚人的快速推出,僅用了四個月的時間。這種單體方法促進(jìn)了從簡單原型到完整應(yīng)用程序的開發(fā),包括信用卡支付、物聯(lián)網(wǎng)集成和必要的運營工具。其簡單性使我們能夠快速建立基礎(chǔ)設(shè)施,并保持對整個代碼庫的清晰理解。

這種簡化的架構(gòu)使我們在發(fā)布時能夠部署5000多輛自行車上路。此外,事實證明,它非常有效地擴(kuò)大了服務(wù)規(guī)模以滿足我們經(jīng)歷的快速增長的用戶需求,在運營的前六個月內(nèi)容納了超過100萬用戶。單體設(shè)計固有的靈活性和簡單性對于高效、迅速地管理這些大規(guī)模和變化至關(guān)重要。

現(xiàn)在你可能會想:Shopify、Stack Overflow等巨頭,甚至作者個人的成功經(jīng)驗……如果單體架構(gòu)那么好,還有必要繼續(xù)使用微服務(wù)嗎?當(dāng)然。別擔(dān)心,我有其他例子來豐富各位的視野,我們繼續(xù)。 

二、向微服務(wù)架構(gòu)的轉(zhuǎn)變

向微服務(wù)架構(gòu)的轉(zhuǎn)變代表著許多初創(chuàng)公司的戰(zhàn)略性轉(zhuǎn)變,尤其是在它們擴(kuò)大規(guī)模和發(fā)展的過程中。微服務(wù)的特點是分布式運行,每個服務(wù)獨立運行,這在可擴(kuò)展性、靈活性和適應(yīng)不斷變化的需求的能力方面具有顯著優(yōu)勢。

1.案例研究:Nubank

一個典型的例子是Nubank,這家公司從2013年成立之初就開始采用微服務(wù)架構(gòu)。這一決定違背了傳統(tǒng)的觀點,通常建議以單體架構(gòu)開始,以提高速度和簡化初始開發(fā)過程。Nubank選擇從微服務(wù)開始是基于對其商業(yè)模式和市場的戰(zhàn)略評估。雖然這種方法最初減緩了他們的開發(fā)過程,但它允許他們投資于堅實的基礎(chǔ)架構(gòu),隨著他們開始擴(kuò)大規(guī)模和擴(kuò)展功能,這帶來了回報。

這個過程并非沒有挑戰(zhàn)。隨著對領(lǐng)域的深入了解,Nubank必須不斷調(diào)整和完善其服務(wù)邊界。這種持續(xù)的評價和調(diào)整過程比任何東西都更能說明微服務(wù)的動態(tài)性質(zhì),它允許持續(xù)改進(jìn)和優(yōu)化。

2.補充:健康科技初創(chuàng)公司

據(jù)本人在一家健康科技初創(chuàng)公司的經(jīng)驗,采用了一種更有趣的方式:準(zhǔn)微服務(wù)架構(gòu),這種架構(gòu)需要在高安全性、可擴(kuò)展性系統(tǒng)與小型團(tuán)隊的實用性之間取得平衡。這種方法與傳統(tǒng)微服務(wù)不同,將應(yīng)用程序劃分為可管理的層和部分,每個部分由一個專門的團(tuán)隊負(fù)責(zé),以促進(jìn)問責(zé)制和專注性。

我們在一個單體數(shù)據(jù)訪問層上實施了這種架構(gòu),集中了健康科技領(lǐng)域至關(guān)重要的高標(biāo)準(zhǔn)隱私和安全要求。這種設(shè)置允許團(tuán)隊獨立工作,而不需要單獨處理這些關(guān)鍵的合規(guī)方面。此外,我們使用單個單體存儲庫作為所有服務(wù)的存儲庫,并結(jié)合統(tǒng)一的部署管道。此外,為了應(yīng)對典型的微服務(wù)挑戰(zhàn),我們開發(fā)了一種標(biāo)準(zhǔn)化、用戶友好的跨服務(wù)通信機制。該系統(tǒng)有效地緩解了低開發(fā)生產(chǎn)力、數(shù)據(jù)一致性等問題。

因此,準(zhǔn)微服務(wù)架構(gòu)的靈活性對于快速適應(yīng)不斷變化的需求和按需擴(kuò)展特定系統(tǒng)組件至關(guān)重要。

三、結(jié)論:基于關(guān)鍵因素做出決策

當(dāng)初創(chuàng)公司面臨選擇微服務(wù)還是單體架構(gòu)的關(guān)鍵決策時,有幾個關(guān)鍵因素需要考慮。

首先,工程團(tuán)隊的規(guī)模至關(guān)重要。較小的團(tuán)隊可能更容易在單體架構(gòu)中進(jìn)行管理和開發(fā),而較大的團(tuán)隊可以利用微服務(wù)的分布式性質(zhì)同時處理不同的組件。

項目復(fù)雜性也起著重要作用:具有清晰且穩(wěn)定范圍的單體架構(gòu)可能更適合簡單的項目,而復(fù)雜的、不斷發(fā)展的項目可能更適合微服務(wù)。

可擴(kuò)展性需求是另一個關(guān)鍵因素。如果需要快速擴(kuò)展,微服務(wù)提供了必要的靈活性和可擴(kuò)展性來適應(yīng)增長。然而,如果可擴(kuò)展性不是立即需要考慮的問題,單體的簡單性可能更有優(yōu)勢。

當(dāng)前工具和技術(shù)趨勢的影響也不能忽視。支持微服務(wù)或單體架構(gòu)的工具和框架的可用性可以顯著影響開發(fā)和維護(hù)的便利性。

所有這些示例和推理背后的主要思想是鼓勵初創(chuàng)公司仔細(xì)評估其獨特的情況,并做出與業(yè)務(wù)目標(biāo)、團(tuán)隊動態(tài)和競爭格局相一致的選擇。

也許準(zhǔn)微服務(wù)架構(gòu)是更適合的方案?或者可能更傾向于嘗試其他方法?再次強調(diào),微服務(wù)和單體架構(gòu)之間的選擇不僅僅是技術(shù)選擇,對所有因素的評估才是實現(xiàn)完美匹配的關(guān)鍵。

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2021-11-19 15:33:02

云計算DevOps初創(chuàng)公司

2021-06-02 08:04:58

微服務(wù)初創(chuàng)公司

2021-11-26 05:19:52

AI初創(chuàng)公司人工智能

2021-09-06 10:13:56

人工智能深度學(xué)習(xí)技術(shù)

2018-08-15 09:16:56

網(wǎng)絡(luò)初創(chuàng)公司網(wǎng)絡(luò)網(wǎng)絡(luò)交付

2021-11-19 15:37:14

大數(shù)據(jù)初創(chuàng)公司盤點

2015-08-21 09:32:50

大數(shù)據(jù)

2022-12-21 16:13:31

微服務(wù)架構(gòu)

2015-09-01 10:24:16

2019-12-10 08:59:17

DevOps初創(chuàng)公司軟件

2019-12-05 12:27:33

SaaS初創(chuàng)公司

2020-11-20 20:57:04

網(wǎng)絡(luò)初創(chuàng)公司IT

2018-09-10 13:02:48

人工智能AI創(chuàng)業(yè)公司

2016-07-11 10:49:54

2016-08-01 10:50:00

2019-03-18 05:36:12

2019 RSA初創(chuàng)公司網(wǎng)絡(luò)安全

2018-12-06 08:14:10

云計算初創(chuàng)公司云服務(wù)

2022-11-30 22:13:39

初創(chuàng)公司AI

2019-12-05 12:54:42

物聯(lián)網(wǎng)初創(chuàng)公司IOT

2013-01-04 11:44:38

初創(chuàng)公司2013盤點
點贊
收藏

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