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

15年資深架構(gòu)師詳解:一個(gè)大型互聯(lián)網(wǎng)公司的微服務(wù)轉(zhuǎn)型實(shí)踐

原創(chuàng)
開發(fā) 架構(gòu)
本文將以 Netflix 為例,分享一個(gè)大型互聯(lián)網(wǎng)公司如何從一個(gè) Monolithic 的 APP 成功轉(zhuǎn)型到微服務(wù)。主要涉及微服務(wù)的產(chǎn)生歷史,應(yīng)用場景,與單片服務(wù)區(qū)別,微服務(wù)帶來的技術(shù)、企業(yè)組織結(jié)構(gòu)等方面挑戰(zhàn),以及如何合理地選擇單片服務(wù)構(gòu)架和微服務(wù)構(gòu)架等內(nèi)容。

【51CTO.com原創(chuàng)稿件】微服務(wù)是一個(gè)比較大的話題,基于我的過往經(jīng)歷,本文將以 Netflix 為例,分享一個(gè)大型互聯(lián)網(wǎng)公司如何從一個(gè) Monolithic 的 APP 成功轉(zhuǎn)型到微服務(wù)。文章主要涉及微服務(wù)的產(chǎn)生歷史,應(yīng)用場景,與單片服務(wù)區(qū)別,微服務(wù)帶來的技術(shù)、企業(yè)組織結(jié)構(gòu)等方面挑戰(zhàn),以及如何合理地選擇單片服務(wù)構(gòu)架和微服務(wù)構(gòu)架等內(nèi)容。

微服務(wù)的產(chǎn)生歷史

如下圖,是微服務(wù)在 Google 的搜索結(jié)果:

自 2014 年以來,微服務(wù)開始被關(guān)注,搜索的人越來越多,并在 2016 年左右達(dá)到頂峰。從地域來看,很多國家都在關(guān)注,如印度,歐洲等等,并且很多公司在使用微服務(wù)構(gòu)架。以下以 Netflix 為例來分享微服務(wù)的演變過程以及帶來的挑戰(zhàn)。

Netflix 的微服務(wù)演化

我 2012 年加入Netflix,從中了解到:

  •     Netflix 從 2008 到 2009 年就開始在自有數(shù)據(jù)中心做單片的 Web 應(yīng)用,那個(gè)時(shí)期是很龐大的 Java 包,無數(shù)的程序?qū)懺谄渲校斐珊芏鄦栴}。
  •     2010 年開始把重量級(jí)的部分轉(zhuǎn)出。
  •     2013 到 2014 年,其他的模塊也陸續(xù)轉(zhuǎn)出,并發(fā)布很多 Open Source 的微服務(wù)工具,在硅谷及全球受到很多人的關(guān)注。
  •     直至 2015 年左右,Netflix 基本完成向微服務(wù)的轉(zhuǎn)型,也徹底從自有數(shù)據(jù)中心,轉(zhuǎn)移到亞馬遜的云平臺(tái)。

如下,是微服務(wù)示意圖:

微服務(wù)看上去很復(fù)雜,其實(shí)它是一個(gè)個(gè)服務(wù)器組成的,這些服務(wù)器之間相互連接。

如下圖,是 Netflix 在微服務(wù)方面的使用情況

從時(shí)間點(diǎn)看,Netflix 是硅谷采用微服務(wù)比較早的公司,在采用過程中也受到很多質(zhì)疑,特別是傳統(tǒng)公司,從數(shù)據(jù)中心遷到云上,需要時(shí)間來慢慢接受。

微服務(wù)、單片服務(wù)兩者的概念與區(qū)別

如下,是很普遍的 Monolithic APP 示意圖:

從 powser 到各種公司的 Apache,形成一個(gè)包含各種功能的 WAR 包,最后是一個(gè) MySQL 的存儲(chǔ)層。這樣的方式,比較易于測試,部署方面也很簡單。

Monolithic APP 的優(yōu)點(diǎn)如下

  •     易于開發(fā)。很多 IDE 和框架都支持,比如 Sprint MVC、Ruby Rails、Python Django 等。
  •     易于測試??梢酝ㄟ^簡單啟動(dòng)應(yīng)用程序并使用 Selenium 測試 UI 來實(shí)現(xiàn)端到端測試。
  •     易于部署。只需將打包的應(yīng)用程序復(fù)制到服務(wù)器。
  •     易于擴(kuò)展。通過在負(fù)載平衡器后運(yùn)行多個(gè)副本,可以輕松地水平擴(kuò)展。
  •     DevOps 比較簡單。一支專門 DevOps 團(tuán)隊(duì)負(fù)責(zé)即可。

Monolithic APP 的缺點(diǎn)如下:

  •     應(yīng)用程序太大且復(fù)雜,很難完全理解并快速正確地進(jìn)行更改。
  •     應(yīng)用程序會(huì)越變?cè)酱?,可能?huì)減慢啟動(dòng)時(shí)間。
  •     必須在每次更新時(shí)重新部署整個(gè)應(yīng)用程序。
  •     如果代碼庫有新的變化,變化的影響通常不是很清楚,這導(dǎo)致廣泛的手動(dòng)測試。
  •     連續(xù)部署很困難。
  •     當(dāng)不同模塊具有沖突的資源需求時(shí),單片應(yīng)用也可能難以擴(kuò)展。
  •     可靠性差。任何模塊中的錯(cuò)誤(例如內(nèi)存泄漏)都可能會(huì)導(dǎo)致整個(gè)網(wǎng)站宕機(jī)。此外,由于應(yīng)用程序的所有實(shí)例是相同的,該錯(cuò)誤將影響整個(gè)應(yīng)用程序的可用性。
  •     采用新技術(shù)或框架很困難。由于框架或語言的變化將影響整個(gè)應(yīng)用程序,因此在時(shí)間和成本上都是非常昂貴的。

隨著代碼庫,組件和團(tuán)隊(duì)規(guī)模增長,各種問題相繼出現(xiàn)。

主要概括為如下幾點(diǎn):

  •     原代碼太大,IDE 打不開了。
  •     單機(jī)的內(nèi)存不夠,沒法編譯和跑代碼。
  •     部署一次要花很長時(shí)間。
  •     開發(fā)速度跟不上產(chǎn)品的需求,一個(gè)小小的變化需要整個(gè)源代碼重新編譯。
  •     某一個(gè)模塊里的一個(gè)小錯(cuò)誤,可能導(dǎo)致整個(gè)網(wǎng)站宕機(jī)。

隨著組織的成長,功能的增多以及技術(shù)棧的瓶頸出現(xiàn),需要有新的變革。但面對(duì)如此龐大的視頻網(wǎng)站,有的程序都是用的 Java 包,自有數(shù)據(jù)中心,當(dāng)時(shí)還沒有微服務(wù)的概念,但已經(jīng)有了把內(nèi)容拆分出來的意識(shí)。

什么是微服務(wù)?

“微”是指團(tuán)隊(duì)、代碼行數(shù)或 API 端口的數(shù)目等指標(biāo)的大小?都不是,不同人對(duì)微服務(wù)有不同定義。

個(gè)人比較贊同這個(gè)描述:Loosely coupled service orientedarchitecture with bounded contexts。

關(guān)鍵是 LOOSELY  COUPLED和BOUNDED TEXT,LOOSELY  COUPLED 意味著每個(gè)服務(wù)可以獨(dú)立更新,BOUNDED TEXT 意味著一個(gè)服務(wù)只要做自己的事情,外界以API等接口。

也就是微服務(wù)要實(shí)現(xiàn)獨(dú)立部署,擁有獨(dú)立技術(shù)棧、界定上下文,明確的所有權(quán)等特點(diǎn)。

微服務(wù)與單片服務(wù)的對(duì)比

如下,是微服務(wù)與單片服務(wù)很形象的對(duì)比圖:

單片服務(wù)是把所有的東西放在一個(gè)大盒子里,這個(gè)大盒子里什么都有。微服務(wù)更像是車箱,每個(gè)箱子里包含特定的功能模塊和物品,所有東西可以很靈活地拆分出來。

也就是說,在 Monolithic APP 中,所有的部件都在一個(gè)巨大的軟件包中。在微服務(wù)的構(gòu)建下,有很多獨(dú)立存在的小服務(wù),通過 API 接口連接成大的系統(tǒng)。

如下圖,是 Monolithic APP 的架構(gòu):

Netflix 會(huì)支撐很多設(shè)備,最初是所有設(shè)備通過一個(gè)負(fù)載均衡器到一個(gè)碩大的、什么都包含的程序中,最后會(huì)成為一個(gè)碩大的 Oracle 數(shù)據(jù)中心。這樣一來,會(huì)產(chǎn)生很大問題,大家都很反感。

如下圖,是微服務(wù)的架構(gòu):

上圖可以看出每個(gè)服務(wù)都可拆分,自有數(shù)據(jù)源,不一定是 Oracle,可根據(jù)業(yè)務(wù)場景用不同的數(shù)據(jù)庫,完全由各個(gè)團(tuán)隊(duì)自己決定。

綜上是從技術(shù)角度分析 Netflix 為什么選擇微服務(wù),從商業(yè)角度來看 Netflix 選擇微服務(wù)的原因如下。

有三點(diǎn)原因:

  •     可用性(Availability)。24 x 7 防止單點(diǎn)失?。╯ingle point of failure)。在巨大的 CODEBASE 情況下,經(jīng)常一個(gè)小小的錯(cuò)誤比如代碼中多加了一個(gè)冒號(hào)就會(huì)導(dǎo)致整個(gè)程序編譯不了甚至引起整個(gè)網(wǎng)站宕機(jī)。對(duì)于大型互聯(lián)網(wǎng)公司而言,一定要避免單片服務(wù)導(dǎo)致的宕機(jī)。
  •     可拓展性。Netflix 當(dāng)時(shí)流量占到美國三分之一,超過 9000W 的付費(fèi)用戶且增長非常快。一旦某部件達(dá)到瓶頸時(shí)要有迅速可拓展的能力,一般就是添加新機(jī)器讓它運(yùn)轉(zhuǎn)。但在傳統(tǒng)單片服務(wù)上,整個(gè)部分綁定在一起,擴(kuò)展非常困難。
  •      速度。對(duì)互聯(lián)網(wǎng)公司,特別是 ToC 需要快速推出,速度很重要。速度在互聯(lián)網(wǎng)時(shí)代是致勝的關(guān)鍵。
  •     大型互聯(lián)網(wǎng)公司推行微服務(wù),一旦需要新功能,可立即新開一個(gè)微服務(wù),或在幾個(gè)有限的微服務(wù)中進(jìn)行改動(dòng),不需要像原來基于巨大的數(shù)據(jù)庫來改動(dòng)。

微服務(wù)帶來的技術(shù)挑戰(zhàn)

軟件構(gòu)架從單片服務(wù)向微服務(wù)轉(zhuǎn)型過程中帶來了很大的技術(shù)挑戰(zhàn)。下面選取自認(rèn)為比較關(guān)鍵的內(nèi)容進(jìn)行分享。

主要涉及以下幾方面的挑戰(zhàn):

  •     服務(wù)發(fā)現(xiàn)(Service discovery)。傳統(tǒng)單片服務(wù)相對(duì)簡單,但微服務(wù)有幾百上千的服務(wù)器,對(duì)用戶來講,服務(wù)器的選擇是個(gè)問題。
  •     運(yùn)維復(fù)雜度增加 – DevOps。
  •     分布式系統(tǒng)本質(zhì)上帶來的復(fù)雜度。
  •     網(wǎng)絡(luò)延遲,容錯(cuò)。
  •     服務(wù)接口版本控制,存在不匹配。
  •     測試(需要整個(gè)生態(tài)系統(tǒng)來測試)。
  •     FAN OUT - >增加網(wǎng)絡(luò)流量。

面對(duì)這些方面的挑戰(zhàn),分享一些關(guān)鍵技術(shù),如 Service discovery、服務(wù)注冊(cè)、服務(wù)注冊(cè)模式、瓶頸/熱點(diǎn)、熔斷器和測試等。

Service discovery

對(duì)用戶而言,最難抉擇的是去哪個(gè)服務(wù)器上取數(shù)據(jù),解決方案有客戶端發(fā)現(xiàn)和服務(wù)器端發(fā)現(xiàn)兩種。

如下圖,是客戶端發(fā)現(xiàn)

客戶端發(fā)現(xiàn),就是客戶端布設(shè) Service Instance,存放所有地址、各種信息??蛻舳私邮盏綌?shù)據(jù)之后,可自行判斷去哪臺(tái)服務(wù)器上獲取信息。

如下圖,是服務(wù)端發(fā)現(xiàn)

客戶端不需要寫很多程序,而是通過 Load Balancer 把信息轉(zhuǎn)到某個(gè)服務(wù)器。

服務(wù)注冊(cè)

服務(wù)注冊(cè)表是服務(wù)發(fā)現(xiàn)的關(guān)鍵部分,是一個(gè)包含服務(wù)實(shí)例的網(wǎng)絡(luò)位置的數(shù)據(jù)庫,需要高度可用且是最新的。

服務(wù)注冊(cè)一定不能宕機(jī),一旦出現(xiàn)問題,恢復(fù)非常困難。服務(wù)注冊(cè)和發(fā)現(xiàn)部分,Netflix 采用的是自研 Eureka 組件。

服務(wù)注冊(cè)模式

服務(wù)注冊(cè)模式分為自注冊(cè)和第三方注冊(cè)兩種:

自注冊(cè)模式。這種方法的一個(gè)很好的例子是 NetflixOSS Eureka 客戶端。Eureka 客戶端處理服務(wù)實(shí)例注冊(cè)和注銷的所有方面。

Spring Cloud 項(xiàng)目實(shí)現(xiàn)了各種模式,包括服務(wù)發(fā)現(xiàn),可以輕松地使用 Eureka 自動(dòng)注冊(cè)服務(wù)實(shí)例,只需使用 @EnableEurekaClient 注釋注釋您的 Java 配置類。

服務(wù)注冊(cè)模式相對(duì)簡單,并且不需要任何其他系統(tǒng)組件。但它將服務(wù)實(shí)例耦合到服務(wù)注冊(cè)表。您必須在您的服務(wù)使用的每種編程語言和框架中實(shí)現(xiàn)注冊(cè)碼。

如下圖,是第三方注冊(cè)模式

開源注冊(cè)器項(xiàng)目—經(jīng) Registrator,會(huì)自動(dòng)注冊(cè)和注銷部署為 Docker 容器的服務(wù)實(shí)例,支持多個(gè)服務(wù)注冊(cè)表,包括 etcd 和 Consul。

NetflixOSS Prana 主要用于以非 JVM 語言編寫的服務(wù),它是與服務(wù)實(shí)例并行運(yùn)行的邊路應(yīng)用程序。 Prana 使用 Netflix Eureka 注冊(cè)和注銷服務(wù)實(shí)例。

Registrator 的優(yōu)點(diǎn)是服務(wù)與服務(wù)注冊(cè)表斷開連接,不需要為開發(fā)人員使用的每種編程語言和框架實(shí)現(xiàn)服務(wù)注冊(cè)邏輯。

相反,在專用服務(wù)內(nèi)以集中方式處理服務(wù)實(shí)例注冊(cè)。缺點(diǎn)是除非它內(nèi)置在部署環(huán)境中,它是另一個(gè)高可用性的系統(tǒng)組件,需要設(shè)置和管理。

如何處理 FAN OUT

如下圖所示,單片服務(wù)里請(qǐng)求只有一個(gè),而微服務(wù)里很多時(shí)候客戶端必須通過不同的微服務(wù)器才能把數(shù)據(jù)全部收集起來,請(qǐng)求繁多。

如下圖所示,解決的方法就是 Cache:

盡量把已經(jīng)擁有的數(shù)據(jù) Cache 起來,當(dāng)訪問時(shí),優(yōu)先于 Cache,沒有再選擇其他部分。

瓶頸/問題

如下圖,當(dāng)遇到整個(gè)服務(wù)中某個(gè)變成瓶頸的情況,就會(huì)調(diào)用 X,X 要從用戶帳戶里拿數(shù)據(jù)。X 調(diào)用 Y,Y 也要從用戶帳戶里拿數(shù)據(jù)。

這樣一來,用戶服務(wù)會(huì)變成一個(gè)大大的瓶頸,一旦宕機(jī),最前端的APP一定拿不到數(shù)據(jù)。

處理方法如下圖所示

Netflix 用的比較多的方法是針對(duì)一些共用的數(shù)據(jù)不進(jìn)行反復(fù)調(diào)用,可采用 HTTP HEADER 傳遞數(shù)據(jù)。

如何提高可用性(Availability)?

微服務(wù)并不一定能保證可用性,甚至有時(shí)微服務(wù)做不好更容易宕機(jī),所以一定要采用一些好的容錯(cuò)機(jī)制。

所謂容錯(cuò),原則上說就是當(dāng)錯(cuò)誤發(fā)生,盡可能讓一臺(tái)服務(wù)器宕機(jī)。常見的解決方式有 Time out、Circuit peaker(熔斷器)和 Bulkheads (艙壁)-Reject new request 三種。

熔斷器在 Netflix 用的比較多,如下兩圖所示,為熔斷流程:

熔斷器主要應(yīng)用在當(dāng)一個(gè)服務(wù)去它的下游服務(wù)拿數(shù)據(jù)時(shí),不應(yīng)該直接拿,要通過一個(gè)熔斷程序。

當(dāng)下游服務(wù)出現(xiàn)錯(cuò)誤,或延時(shí)很長時(shí)間,熔斷器就停止再到下游服務(wù)拿數(shù)據(jù),直接返回。熔斷器也會(huì)不斷進(jìn)行判斷,服務(wù)是否恢復(fù),恢復(fù)之后才會(huì)繼續(xù)拿取數(shù)據(jù)。

這樣一來,問題就會(huì)在某個(gè)地方被阻擋,不會(huì)出現(xiàn)服務(wù)接連問題,導(dǎo)致微服務(wù)出現(xiàn)大規(guī)模崩潰的現(xiàn)象。

微服務(wù)測試

測試是比較頭疼的環(huán)節(jié),特別是微服務(wù)架構(gòu)端到端變得特別困難,主要原因是幾百個(gè)服務(wù)隸屬于不同的團(tuán)隊(duì)。

個(gè)人比較推薦單元測試(Unit Test)、服務(wù)測試(Service Test)。而端對(duì)端測試(End to End Test)要盡量避免,可以通過一些監(jiān)控工具來完成。

還有 Netflix 采用 ChaosMonkey 工具來對(duì)延遲和服務(wù)可靠性進(jìn)行測試。這里值得注意的是,每個(gè)微服務(wù)至少要有三個(gè)實(shí)時(shí)備份,以免宕機(jī)后無法恢復(fù)。

微服務(wù)帶來的企業(yè)組織結(jié)構(gòu)挑戰(zhàn)

之所以分享微服務(wù)帶來的企業(yè)組織結(jié)構(gòu)挑戰(zhàn),是因?yàn)闅w根結(jié)底還是人在做事。微服務(wù)是去中心化,讓每個(gè)服務(wù)有獨(dú)立權(quán),這樣會(huì)導(dǎo)致組織結(jié)構(gòu)發(fā)生很大的變化。

企業(yè)的組織構(gòu)架往往會(huì)反映在技術(shù)構(gòu)架中,微服務(wù)在企業(yè)內(nèi)部是否能夠成功,很大程度上取決于企業(yè)的組織構(gòu)架和技術(shù)構(gòu)架是否能夠匹配。

以 Netflix 為例,分享在向微服務(wù)構(gòu)架轉(zhuǎn)變的過程中對(duì)團(tuán)隊(duì)和企業(yè)構(gòu)架帶來的挑戰(zhàn)。

優(yōu)化速度,而不是效率

Netflix 在考量以速度還是以效率為優(yōu)化核心,最終選擇了速度。因?yàn)樗俣仁勤A得市場最重要的因素,速度意味著了解客戶需求,并以比競爭對(duì)手更快的速度給予他們想要的東西。在競爭對(duì)手準(zhǔn)備跟進(jìn)的時(shí)候,已經(jīng)轉(zhuǎn)到下一組改進(jìn)。

速度和效率是什么關(guān)系呢?強(qiáng)調(diào)效率通常意味著試圖控制開發(fā)過程的整體流程,以消除重復(fù)的工作并避免錯(cuò)誤的同時(shí)注意降低成本。

常見的結(jié)果是,注重節(jié)流,而不是開源。如果你說“我這樣做是因?yàn)樗行?rdquo;,那么這個(gè)意想不到的結(jié)果就是讓你慢下來。

這不是鼓勵(lì)浪費(fèi)和重復(fù)開發(fā),但是應(yīng)該先優(yōu)化速度,效率成為次要。提高效率不是一個(gè)企業(yè)的終極目標(biāo),提高效率要以業(yè)務(wù)增長更快為結(jié)果。

以結(jié)果為導(dǎo)向,減少不必要流程

盡量增加每個(gè)微服務(wù)團(tuán)隊(duì)的自由度,如開發(fā)工具,開發(fā)流程等方面,然后以結(jié)果為導(dǎo)向。

Netflix 有三個(gè)框架,其中 Java 占主流,每個(gè)團(tuán)隊(duì)可根據(jù)自身情況選擇技術(shù)構(gòu)架,甚至數(shù)據(jù)庫也可選擇 MySQL 或者 NoSQL。

盡量減少流程,為什么有流程呢?流程往往是對(duì)過去的事情的總結(jié),如對(duì)一些錯(cuò)誤,經(jīng)驗(yàn)總結(jié),之后用這個(gè)進(jìn)行流程控制。

但過多的流程會(huì)減慢對(duì)新生事物和突發(fā)情況的反映速度。還有要明確每個(gè)團(tuán)隊(duì)的目標(biāo),減少互相依賴關(guān)系。

如下圖,是傳統(tǒng)公司的產(chǎn)品開發(fā)流程

大多數(shù)軟件開發(fā)團(tuán)隊(duì)呈孤島狀,他們之間沒有人員重疊。軟件開發(fā)項(xiàng)目的標(biāo)準(zhǔn)過程從與用戶體驗(yàn)和開發(fā)組的產(chǎn)品經(jīng)理召開會(huì)議開始,一塊討論新功能的想法。

在代碼中實(shí)現(xiàn)該思想之后,代碼被傳遞給質(zhì)量保證(QA)和數(shù)據(jù)庫管理團(tuán)隊(duì),經(jīng)常需要進(jìn)行很多溝通。與系統(tǒng)、網(wǎng)絡(luò)和SAN管理員的溝通往往是通過內(nèi)部的 TICKET 系統(tǒng),導(dǎo)致整個(gè)過程非常緩慢。

有些公司試圖用初創(chuàng)公司的形式開發(fā)產(chǎn)品,但初創(chuàng)公司開發(fā)團(tuán)隊(duì)并不一定是微服務(wù)開發(fā)團(tuán)隊(duì)。公司雖會(huì)有很多個(gè)小的初創(chuàng)公司形式的小團(tuán)隊(duì),但是每個(gè)團(tuán)隊(duì)內(nèi)部結(jié)構(gòu)還是和傳統(tǒng)公司的團(tuán)隊(duì)結(jié)構(gòu)一樣。

如下圖,是微服務(wù)產(chǎn)品研發(fā)團(tuán)隊(duì)

微服務(wù)產(chǎn)品研發(fā)團(tuán)隊(duì)沒有不同的產(chǎn)品經(jīng)理、UX 經(jīng)理、開發(fā)經(jīng)理等,在其孤島中向下管理。

每個(gè)產(chǎn)品功能(實(shí)現(xiàn)為微服務(wù))都有一名經(jīng)理,他負(fù)責(zé)監(jiān)督一個(gè)團(tuán)隊(duì),從構(gòu)思到部署來處理各個(gè)方面微服務(wù)的軟件開發(fā)。

平臺(tái)團(tuán)隊(duì)提供產(chǎn)品團(tuán)隊(duì)通過 API 訪問的基礎(chǔ)架構(gòu)支持,在整個(gè)過程中,都采用 DeVop 形式發(fā)布和維護(hù)產(chǎn)品。

如何合理地選擇單片服務(wù)構(gòu)架和微服務(wù)構(gòu)架

并不是所有的場景都適合微服務(wù),要根據(jù)實(shí)際情況,選擇微服務(wù)或單片服務(wù):

    微服務(wù)適用于巨大流量、系統(tǒng)有一定復(fù)雜性、需要快速開發(fā)出新的產(chǎn)品、用戶數(shù)量增長迅速以及絕大多數(shù) TOC 的互聯(lián)網(wǎng)公司。

    單片服務(wù)的應(yīng)用場景一般是流量比較小、功能單一或非常簡單、不會(huì)快速迭代以及企業(yè)內(nèi)部工具,POC 工具或網(wǎng)站。

[[200918]]

前樂視美國視頻平臺(tái)技術(shù)總監(jiān)以及Netflix 視頻內(nèi)容平臺(tái)技術(shù)負(fù)責(zé)人。有 15 年以上互聯(lián)網(wǎng)公司(LinkedIn、樂視、Netflix 以及 PayPal)技術(shù)開發(fā)、構(gòu)架以及團(tuán)隊(duì)管理的經(jīng)驗(yàn)。主要負(fù)責(zé)的領(lǐng)域是高并發(fā)后端服務(wù)構(gòu)架、微服務(wù)構(gòu)架、大數(shù)據(jù)平臺(tái)構(gòu)架等,以及端對(duì)端的整個(gè)產(chǎn)品開發(fā)。感興趣的領(lǐng)域是視頻,支付,互聯(lián)網(wǎng)金融以及電商領(lǐng)域。

以上內(nèi)容根據(jù)羅軼民老師在 WOTA2017 “微服務(wù)架構(gòu)”專場的演講內(nèi)容整理。

【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】

責(zé)任編輯:王雪燕 來源: 51CTO
相關(guān)推薦

2018-07-19 08:54:48

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

2017-09-25 12:11:14

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

2016-09-22 14:22:53

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

2017-08-03 13:26:17

阿里企業(yè)級(jí)互聯(lián)網(wǎng)架構(gòu)

2017-10-10 19:43:44

架構(gòu) 搭建 技術(shù)

2020-11-27 10:50:06

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

2014-03-06 10:18:22

架構(gòu)技術(shù)架構(gòu)

2019-10-21 09:32:48

緩存架構(gòu)分層

2014-08-11 13:46:32

用友

2015-12-14 11:03:17

.NET架構(gòu)師思考

2012-09-19 15:43:21

云時(shí)代

2018-12-04 09:24:08

互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)

2018-12-26 08:54:06

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

2019-10-24 14:13:45

NJSD互聯(lián)網(wǎng)架構(gòu)數(shù)字化轉(zhuǎn)型

2013-10-17 15:45:24

紅帽

2019-01-22 10:15:12

互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)

2015-11-16 11:13:58

Netflix云計(jì)算互聯(lián)網(wǎng)公司

2017-10-27 14:52:31

互聯(lián)網(wǎng)高可用架構(gòu)高可用

2013-04-18 14:37:27

英特爾互聯(lián)網(wǎng)收購

2013-11-14 10:06:11

紅帽redhat
點(diǎn)贊
收藏

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