国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
朱曄的互聯(lián)網(wǎng)架構(gòu)實(shí)踐心得S2E7:漫談平臺(tái)架構(gòu)的工作(基礎(chǔ)架構(gòu)、基礎(chǔ)服務(wù)、基礎(chǔ)平臺(tái)、基礎(chǔ)中間件等等)...

前言

程序開(kāi)發(fā)畢竟還不是搬磚這種無(wú)腦體力勞動(dòng),需要事先有標(biāo)準(zhǔn),有架構(gòu),有設(shè)計(jì),絕對(duì)不是新公司今天創(chuàng)立,明天就可以開(kāi)始編碼的。其實(shí)很多公司在起步的時(shí)候沒(méi)有財(cái)力和資源建設(shè)獨(dú)立的基礎(chǔ)架構(gòu)或平臺(tái)架構(gòu)部門(mén),甚至運(yùn)維團(tuán)隊(duì)都沒(méi)有,但是這不妨礙我們心中有一個(gè)藍(lán)圖知道努力的方向,本文我們就簡(jiǎn)單聊聊平臺(tái)架構(gòu)相關(guān)的工作內(nèi)容(或者說(shuō)作為一個(gè)技術(shù)管理,應(yīng)該去梳理、統(tǒng)一、明確的部分)的藍(lán)圖。由于本文覆蓋的內(nèi)容比較多,只能拋磚引玉大概提一些,無(wú)法一一展開(kāi)太詳細(xì)的東西。圖中的數(shù)字是我認(rèn)為的優(yōu)先級(jí),僅供參考。


規(guī)范

規(guī)范它雖然不是一個(gè)實(shí)際的代碼或組件,只是一個(gè)文檔,但是我覺(jué)得非常重要。沒(méi)有規(guī)范,那么員工加下去任何一行新代碼可能都是錯(cuò)的,整個(gè)研發(fā)流程也可能會(huì)因?yàn)闆](méi)有規(guī)范導(dǎo)致很多不必要的事故產(chǎn)生。

  • 代碼提交&分支管理規(guī)范,我們可以在gitflow基礎(chǔ)上根據(jù)實(shí)際情況(結(jié)合運(yùn)維流程,項(xiàng)目復(fù)雜度,團(tuán)隊(duì)人數(shù),發(fā)布周期)進(jìn)行細(xì)化,涉及到:

    • 有哪幾個(gè)常駐分支,哪幾個(gè)臨時(shí)分支?

    • 分支命名規(guī)范?

    • 提交代碼描述規(guī)范?

    • 分支遷出和合并的時(shí)機(jī)?

    • 哪些分支普通開(kāi)發(fā)沒(méi)有權(quán)限直接提交?

    • 測(cè)試用什么分支,上線又用什么分支?

    • 多版本并行開(kāi)發(fā)如何提測(cè)?

    • Hotfix如何處理分支?

  • 編碼規(guī)范,比如Java代碼可以以阿里Java開(kāi)發(fā)手冊(cè)為基礎(chǔ),大家一起過(guò)一遍,針對(duì)項(xiàng)目的實(shí)際情況(時(shí)間要求,對(duì)性能要求),選擇其中的一些堅(jiān)決執(zhí)行,然后補(bǔ)充一些其它的。我們也可以讓大家的IDE使用(導(dǎo)入)統(tǒng)一的Code Style Template來(lái)要求一致的編碼格式。因?yàn)镃ode Style的不一致導(dǎo)致提交的時(shí)候大范圍的代碼新增刪除完全會(huì)污染提交,讓大家很難看出提交的代碼到底改了什么。

  • 數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范。阿里Java開(kāi)發(fā)手冊(cè)里包含了一小部分?jǐn)?shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范,術(shù)業(yè)有專(zhuān)攻,這個(gè)還是應(yīng)該請(qǐng)資深DBA來(lái)給出一定的規(guī)范,包括但不限于:

    • 命名(表和字段前綴后綴命名,外鍵字段命名、通用字段命名統(tǒng)一)規(guī)范

    • 字段設(shè)計(jì)類(lèi)型規(guī)范

    • 字段冗余規(guī)范

    • 通用字段規(guī)范

    • 索引使用規(guī)范

    • ……。可以參考《朱曄的互聯(lián)網(wǎng)架構(gòu)實(shí)踐心得S2E1:業(yè)務(wù)代碼究竟難不難寫(xiě)?》中提到的一些內(nèi)容

  • 項(xiàng)目結(jié)構(gòu)規(guī)范,對(duì)于Java Maven項(xiàng)目來(lái)說(shuō)基本目錄結(jié)構(gòu)比較統(tǒng)一,對(duì)于其它語(yǔ)言的項(xiàng)目(比如Python),目錄結(jié)構(gòu)沒(méi)有一定標(biāo)準(zhǔn)的話,項(xiàng)目源碼結(jié)構(gòu)會(huì)千奇百怪,最好還是對(duì)于項(xiàng)目結(jié)構(gòu)有一個(gè)規(guī)范,包括:

    • 三層結(jié)構(gòu)目錄劃分

    • 多環(huán)境(Profile)配置文件

    • 服務(wù)接口、服務(wù)實(shí)現(xiàn)、Web、Job模塊命名

  • 最后是項(xiàng)目管理流程,有一些公司會(huì)有專(zhuān)門(mén)的PMO,有一些初創(chuàng)公司研發(fā)Leader也會(huì)充當(dāng)PMO的角色,雖然這個(gè)活一般和平臺(tái)架構(gòu)沒(méi)啥關(guān)系,不管怎么樣,既然是項(xiàng)目肯定少不了項(xiàng)目管理,作為技術(shù)管理角色需要關(guān)注的一個(gè)點(diǎn),項(xiàng)目管理流程也是比較重要的:

    • 迭代周期,迭代周期中的大環(huán)節(jié)大概發(fā)生的時(shí)間點(diǎn)

    • 開(kāi)哪些會(huì),開(kāi)會(huì)時(shí)間點(diǎn)是?(日站會(huì)、周例會(huì)、啟動(dòng)會(huì)、回顧會(huì)、復(fù)盤(pán)會(huì)、排期會(huì)、PRD預(yù)評(píng)審會(huì)、PRD評(píng)審會(huì)、測(cè)試用例評(píng)審會(huì)、上線方案討論會(huì))

    • 項(xiàng)目生命周期中每一個(gè)角色產(chǎn)出哪些文檔?

    • 任務(wù)在哪里管理,每一個(gè)角色怎么去維護(hù)任務(wù)狀態(tài)的流轉(zhuǎn)?不可能任務(wù)的每一個(gè)狀態(tài)的流轉(zhuǎn)都由PMO來(lái)做


基礎(chǔ)框架

使用一些基礎(chǔ)框架來(lái)做應(yīng)用開(kāi)發(fā)是必須的,對(duì)于Java技術(shù)棧,大家所熟悉的框架有Spring Cloud全家桶、Spring Boot套件(封裝的各種starters)、Mybatis等,直接使用這些框架進(jìn)行開(kāi)發(fā)是可以的,但是更建議的是由基礎(chǔ)架構(gòu)團(tuán)隊(duì)封裝自己的框架,自己做一層封裝,我們可以以類(lèi)似Spring Boot Starter的模式,為所有的組件封裝自己的Starter模塊,好處是:

  • 方便進(jìn)行統(tǒng)一的外部依賴(lài)類(lèi)庫(kù) & 庫(kù)版本管理和約定

  • 方便針對(duì)公司內(nèi)部情況做更合適的自動(dòng)配置(甚至實(shí)現(xiàn)0配置)

  • 如果內(nèi)部技術(shù)棧是異構(gòu)的話,使用統(tǒng)一的框架有助于技術(shù)棧后端基礎(chǔ)設(shè)施的打通

  • 為所有的模塊打通監(jiān)控,自動(dòng)配置AOP做相應(yīng)的攔截統(tǒng)一抓取獲取監(jiān)控?cái)?shù)據(jù)

  • 模塊之間可以相互整合和配合,實(shí)現(xiàn)1+1>2的效果

  • 還有很重要的一點(diǎn)是,我們可以提供相應(yīng)的管控后臺(tái)來(lái)配合框架使用,把框架的配置、管理和審計(jì)暴露在控制臺(tái)上

其實(shí)說(shuō)白了,就是使用自己封裝的類(lèi)庫(kù)占坑,哪怕只是一層淺淺的封裝,也是很有好處的,不僅僅是做了各種統(tǒng)一(使用框架的統(tǒng)一,框架版本號(hào)的統(tǒng)一),更多的是因?yàn)檎剂丝樱ó?dāng)然,要擴(kuò)展做Java agent動(dòng)態(tài)字節(jié)碼注入的方式也是可行的,這種方式的缺點(diǎn)是沒(méi)有辦法提供API給業(yè)務(wù)使用),以后直接可以通過(guò)升級(jí)框架通過(guò)IOC組件替換+AOP直接做各種擴(kuò)展(不需要再麻煩業(yè)務(wù)團(tuán)隊(duì)了)。

我們來(lái)看看這里腦圖上大概列出的一些業(yè)務(wù)開(kāi)發(fā)需要用到的常見(jiàn)模塊(可以看一下我們公司開(kāi)源的框架SummerFramework(github.com/ke-finance/… )  ,當(dāng)然開(kāi)源出來(lái)的模塊比較少,實(shí)際公司內(nèi)部封裝了這里提到的所有模塊:

  • Web MVC:可以基于Spring MVC進(jìn)行封裝,增加一些模板引擎的支持等

  • 數(shù)據(jù)訪問(wèn):可以基于MyBatis或Mybatis Plus+Druid數(shù)據(jù)源進(jìn)行封裝,做一些額外的功能,比如敏感數(shù)據(jù)加密保存

  • RPC服務(wù)調(diào)用或微服務(wù):可以基于Dubbo或Spring Cloud(Feign+Eureka)進(jìn)行封裝,在客戶(hù)端方面擴(kuò)展一些更智能的LB算法,以及路由策略(比如灰度)等功能

  • Web API:可以在Spring MVC+Swagger UI基礎(chǔ)上實(shí)現(xiàn)功能,提供統(tǒng)一的RESTful服務(wù)端API的標(biāo)準(zhǔn),比如規(guī)范化API版本、響應(yīng)結(jié)構(gòu)體自動(dòng)包裝(自適應(yīng))、錯(cuò)誤包裝、HATEOAS超媒體資源導(dǎo)航整合、數(shù)據(jù)加解密實(shí)現(xiàn)、Collection資源的規(guī)范化、自動(dòng)的mock接口的實(shí)現(xiàn)等

  • 配置:可以基于攜程Apollo(github.com/ctripcorp/a… )客戶(hù)端進(jìn)行封裝,做自動(dòng)配置

  • 消息:可以封裝RabbitMQ、RocketMQ的客戶(hù)端實(shí)現(xiàn)統(tǒng)一的消息API,然后擴(kuò)展事務(wù)消息(收發(fā)消息和業(yè)務(wù)邏輯本地事務(wù)在一個(gè)事務(wù)中處理)等功能

  • 緩存:可以基于CacheCloud(github.com/sohutv/cach… )提供Redis緩存服務(wù)

  • 調(diào)度:可以封裝XXLJob(github.com/xuxueli/xxl… )或ElasticJob(elasticjob.io)提供調(diào)度服務(wù)

  • 日志監(jiān)控:可以基于Micrometer實(shí)現(xiàn)應(yīng)用打點(diǎn),找一個(gè)APM(Skywalking github.com/apache/skyw… 或Pinpoint github.com/naver/pinpo… )整合trace功能,擴(kuò)展logback做日志脫敏,擴(kuò)展Spring Boot Actuator Endpoint等功能

  • 鎖:可以基于Redisson封裝分布式鎖,使用統(tǒng)一的API來(lái)提供內(nèi)存鎖和分布式鎖

  • 分布式事務(wù):主要是兩塊,同步2PC分布式事務(wù)處理(比如我們開(kāi)源的https://github.com/ke-finance/dts ),異步的saga思想的實(shí)現(xiàn),參考https://github.com/eventuate-tram/eventuate-tram-sagas  。

  • 彈性:流控+隔離+熔斷,考慮基于https://github.com/alibaba/Sentinel 來(lái)實(shí)現(xiàn),可以是獨(dú)立的模塊提供服務(wù),也可以整合到Web API或RPC模塊中去

  • 安全:可以基于Spring Security進(jìn)行擴(kuò)展,加入符合業(yè)務(wù)需求的風(fēng)控策略進(jìn)去

基礎(chǔ)平臺(tái)

基礎(chǔ)平臺(tái)(管理平臺(tái))需要和基礎(chǔ)框架打配合,框架是開(kāi)發(fā)的時(shí)候使用的,平臺(tái)更多的是開(kāi)發(fā)或運(yùn)維人員做技術(shù)運(yùn)營(yíng)時(shí)使用的。很多開(kāi)源框架都已經(jīng)提供了管理后臺(tái),我們需要做的可能只是一些小修改,比如包括:

  • 打通公司內(nèi)部自己的賬號(hào)登錄體系和權(quán)限體系

  • 根據(jù)不同的環(huán)境(開(kāi)發(fā)、測(cè)試、灰度、生產(chǎn))部署多份管理控制臺(tái)

  • 根據(jù)需要看是否需要做多租戶(hù)的改造,實(shí)現(xiàn)業(yè)務(wù)隔離

有些平臺(tái)是重流程的,這些可能需要自主開(kāi)發(fā),大概介紹一下腦圖上提到的這些:

  • 配置平臺(tái):如果使用了攜程Apollo,自然就是使用Apollo的管理后臺(tái)

  • 微服務(wù)管理平臺(tái):這里我列出了兩個(gè)方面的工作,一個(gè)是服務(wù)中心,更多的是服務(wù)維護(hù)、管理、監(jiān)控方面的功能,可以基于Spring Cloud Admin進(jìn)行改造;一個(gè)是服務(wù)集市,更多的是服務(wù)標(biāo)準(zhǔn)化方面的管理,比如服務(wù)上線需要的文檔,接入的監(jiān)控系統(tǒng),以及上線后統(tǒng)一的文檔中心,服務(wù)集市類(lèi)似于App Store的概念

  • 緩存平臺(tái),如果使用了CacheCloud,可以使用CacheCloud的管理后臺(tái)

  • 日志平臺(tái),分為兩塊,一塊是日志收集展示基本ELK已經(jīng)是標(biāo)準(zhǔn);還有一塊是日志異常報(bào)警,可以自己來(lái)開(kāi)發(fā),基于Kafka消費(fèi)日志異步做日志篩選+聚合結(jié)合自己公司的IM和郵件體系做報(bào)警

  • 數(shù)據(jù)庫(kù)管理平臺(tái):

    • DDL/DML工作流:開(kāi)發(fā)提交申請(qǐng),主管審批,自動(dòng)執(zhí)行,外加自動(dòng)的風(fēng)險(xiǎn)檢測(cè),優(yōu)化建議等

    • DDL/DML變更通知:方便大數(shù)據(jù)以及運(yùn)營(yíng)團(tuán)隊(duì)針對(duì)感興趣的數(shù)據(jù)庫(kù)和表進(jìn)行訂閱,在DDL應(yīng)用到各個(gè)環(huán)境(測(cè)試、生產(chǎn))的時(shí)候能夠第一時(shí)間得到通知可以進(jìn)行人工、自動(dòng)處理(類(lèi)似before,after Filter的概念)

    • 數(shù)據(jù)庫(kù)知識(shí)庫(kù):有一個(gè)統(tǒng)一的地方查看數(shù)據(jù)庫(kù)的結(jié)構(gòu)說(shuō)明、字典枚舉的定義

    • 當(dāng)然數(shù)據(jù)庫(kù)管理平臺(tái)還可以進(jìn)一步做數(shù)據(jù)庫(kù)監(jiān)控、慢SQL優(yōu)化原因分析等功能

  • 全鏈路追蹤平臺(tái):比如如果使用Skywalking的話可以實(shí)現(xiàn)它提供的管理臺(tái),主要功能無(wú)非是依賴(lài)拓?fù)浞治觥race查看、服務(wù)性能分析等

  • 指標(biāo)查看平臺(tái):分為兩塊,Dashboard一般可以考慮直接使用Grafana,報(bào)警的話雖然Grafana也有Alert但是還是建議在更底層(數(shù)據(jù)源頭)去做,可以基于流處理去做或基于定時(shí)拉的方式去實(shí)現(xiàn)


基礎(chǔ)中間件

中間件是指獨(dú)立部署的不具有業(yè)務(wù)邏輯耦合 的通用服務(wù),存儲(chǔ)服務(wù)在廣義上歸到中間件也不是不可以,這里大概列了幾個(gè)典型:

  • MQ代理(Broker,不是Proxy),比如RabbitMQ、RocketMQ、Kafka

  • API網(wǎng)關(guān),有很多開(kāi)源的網(wǎng)關(guān)實(shí)現(xiàn),比如Kong(github.com/Kong/kong )、Spring Cloud Gateway,我們也實(shí)現(xiàn)了一套https://github.com/ke-finance/tesla ,一般網(wǎng)關(guān)的主要功能是調(diào)用路由、協(xié)議轉(zhuǎn)換、調(diào)用編排,然后也會(huì)以插件和過(guò)濾器形式提供很多安全、彈性方面的擴(kuò)展功能

  • DB代理,比如類(lèi)似https://github.com/flike/kingshard 和https://github.com/Qihoo360/Atlas 的MySQL Proxy,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的讀寫(xiě)分離、分表分庫(kù)、故障轉(zhuǎn)移、彈性處理、監(jiān)控、SQL優(yōu)化等功能

  • ES集群,也可以理解為中間件,畢竟ES其實(shí)做的就是基于Lucene的分布式集群管理工作

這些中間件雖然很多時(shí)候做的是Proxy背后的其它服務(wù),但是節(jié)點(diǎn)本身很可能是有狀態(tài)的,也需要考慮中間件本身的高可用性問(wèn)題。


基礎(chǔ)服務(wù)

一般而言如果公司具有多個(gè)項(xiàng)目的話,項(xiàng)目之間肯定會(huì)用到一些通用的內(nèi)部和外部能力,這些能力和業(yè)務(wù)邏輯沒(méi)有太多關(guān)系,可以考慮把這些能力進(jìn)行統(tǒng)一的封裝獨(dú)立部署以微服務(wù)形式提供出來(lái),這樣所有項(xiàng)目都可以快速對(duì)接。

在這里把基礎(chǔ)服務(wù)分為了兩類(lèi),一類(lèi)是沒(méi)有業(yè)務(wù)邏輯的純基礎(chǔ)服務(wù),往往是對(duì)接封裝一個(gè)或多個(gè)外部服務(wù)通道,另外一類(lèi)是包含一些業(yè)務(wù)的業(yè)務(wù)基礎(chǔ)服務(wù)。對(duì)于第一類(lèi)基礎(chǔ)服務(wù)你可能會(huì)想,既然是對(duì)接外部服務(wù)通道直接使用他們的SDK或服務(wù)是不是直接在業(yè)務(wù)系統(tǒng)使用那些三方SDK就好了,基礎(chǔ)服務(wù)是需要做什么呢?我覺(jué)得基礎(chǔ)服務(wù)應(yīng)該這么封裝:

  • 封裝外部服務(wù)的SDK,一般而言比如短信也好、推送也好、存儲(chǔ)也好,都會(huì)使用多家提供的服務(wù)做備份、降級(jí),通過(guò)我們的SDK提供統(tǒng)一的對(duì)內(nèi)API,屏蔽不同SDK的API差異

  • 提供一個(gè)服務(wù)端,在服務(wù)端做數(shù)據(jù)落地,落地的目的有幾個(gè):

    • 方便和外部進(jìn)行服務(wù)消費(fèi)對(duì)賬

    • 方便出錯(cuò)的時(shí)候查找原因

    • 方便和外部服務(wù)同步調(diào)用狀態(tài)(比如短信到達(dá))

    • 方便進(jìn)行服務(wù)余額預(yù)警

  • 服務(wù)端除了做數(shù)據(jù)落地,由統(tǒng)一的服務(wù)端做出口的好處是:

    • 做權(quán)限控制,一般而言即使是公司內(nèi)部的項(xiàng)目進(jìn)行基礎(chǔ)服務(wù)的調(diào)用應(yīng)該也是需要先申請(qǐng)?jiān)偈褂玫?,甚至需要做服?wù)調(diào)用量的控制(類(lèi)似在內(nèi)部再實(shí)現(xiàn)一層SaaS)

    • 收斂調(diào)用源IP

    • 集中管理調(diào)用外部SaaS服務(wù)的密鑰

    • 外部服務(wù)的降級(jí)和切換策略更換比較方便

    • 給接入方做報(bào)警

  • 做一個(gè)管理后臺(tái),雖然外部服務(wù)提供方作為SaaS產(chǎn)品一般都會(huì)有不錯(cuò)的控制臺(tái)(其實(shí)更多的時(shí)候,不可能把外部服務(wù)的控制臺(tái)的權(quán)限放給所有人看,內(nèi)部業(yè)務(wù)方看自己的基礎(chǔ)服務(wù)控制臺(tái)即可),但是我們內(nèi)部做一個(gè)管理后臺(tái)意義還是很大的,主要的功能一般是:

    • 統(tǒng)一登錄

    • 賬號(hào)(包括Secret)申請(qǐng)和分配,以及配額、限流等配置(管理員權(quán)限)

    • 調(diào)用記錄(請(qǐng)求、結(jié)果)查看

    • 調(diào)用模板的配置(考慮一下是不是放開(kāi)服務(wù)的使用,比如短信、郵件、推送一般是基于模板的,模板需要內(nèi)部外部審核后才能使用)

如果每一個(gè)服務(wù)都有控制臺(tái)的話,可以大大方便業(yè)務(wù)方的自主接入和問(wèn)題排查,這是基礎(chǔ)服務(wù)封裝非常有價(jià)值的一個(gè)點(diǎn),對(duì)于大點(diǎn)的公司內(nèi)部項(xiàng)目眾多就更需要把基礎(chǔ)服務(wù)在內(nèi)部進(jìn)行SaaS化了,而且最好對(duì)于不同的基礎(chǔ)服務(wù)打通接入方(統(tǒng)一的地方來(lái)申請(qǐng)所有需要的基礎(chǔ)服務(wù))。


這里腦圖上大概列了一些常見(jiàn)的基礎(chǔ)服務(wù)和業(yè)務(wù)服務(wù),每一個(gè)公司根據(jù)自己的業(yè)務(wù)一般都會(huì)不盡相同,基礎(chǔ)服務(wù)包括:

  • 短信:接入多個(gè)短信渠道,根據(jù)政策、費(fèi)率、到達(dá)率等情況路由

  • 文件存儲(chǔ):接入多個(gè)小文件存儲(chǔ)服務(wù)(比如七牛、騰訊云),根據(jù)存儲(chǔ)服務(wù)提供的功能,文件大小、費(fèi)率等情況路由

  • 郵件:接入內(nèi)部和外部(比如SendCloud)的郵件服務(wù),根據(jù)使用場(chǎng)景進(jìn)行路由

  • 推送:接入多個(gè)推送渠道(比如極光、個(gè)推),并且做用戶(hù)、設(shè)備的關(guān)系維護(hù)

  • 唯一ID:全局唯一ID的生成

  • 圖形、滑動(dòng)、點(diǎn)擊、智能驗(yàn)證碼:提供統(tǒng)一的驗(yàn)證碼服務(wù),可以根據(jù)場(chǎng)景自動(dòng)選擇驗(yàn)證碼類(lèi)型

  • 電子簽章:接入多個(gè)電子簽章服務(wù),根據(jù)費(fèi)率等因素路由

  • 地圖服務(wù):接入多個(gè)外部地圖服務(wù),根據(jù)功能以及接入方使用的地圖進(jìn)行服務(wù)選擇

業(yè)務(wù)服務(wù)包括:

  • RBAC權(quán)限控制:統(tǒng)一的RBAC配置后臺(tái),以及方便的SDK

  • 通用表單服務(wù):根據(jù)后臺(tái)配置的表單自動(dòng)生成界面,以及表單信息的收集

  • 狀態(tài)機(jī):可以借鑒https://github.com/hekailiang/squirrel ,基于狀態(tài)(State)、行為(Action)、轉(zhuǎn)移(Transition)、條件(Condition)等概念,構(gòu)建基于數(shù)據(jù)庫(kù)的狀態(tài)機(jī)平臺(tái)

  • 統(tǒng)一支付:聚合支付,業(yè)務(wù)方可以快速接入多種支付渠道,并且統(tǒng)一支付可以提供統(tǒng)一的SDK和H5來(lái)實(shí)現(xiàn)統(tǒng)一的支付收銀臺(tái)

  • 工作流、爬蟲(chóng)、SSO……不詳細(xì)說(shuō)明了


工程效率

接下去也簡(jiǎn)單提一下工程效率和運(yùn)維范疇的事情,雖然這和平臺(tái)架構(gòu)沒(méi)啥太大關(guān)系,但是這兩塊是很重要的技術(shù)基建工作:

  • 源代碼倉(cāng)庫(kù):比如可以選擇Gitlab或atlassian三件套的Bitbucket

  • 內(nèi)部類(lèi)庫(kù)倉(cāng)庫(kù):比如Java的Maven倉(cāng)庫(kù),可以自己搭建Nexus倉(cāng)庫(kù)

  • 項(xiàng)目管理平臺(tái):可以選擇SaaS產(chǎn)品(比如Tower、Teambition),比較有名的是atlassian三件套的Jira

  • 知識(shí)管理平臺(tái):可以選擇SaaS或開(kāi)源Wiki產(chǎn)品,比較有名的是atlassian三件套的Confluence

  • Bug管理平臺(tái):比如可以選擇禪道或直接復(fù)用Jira

  • 代碼質(zhì)量分析:比如可以搭建SonarQube平臺(tái)


運(yùn)維

這里提到的一些運(yùn)維系統(tǒng)相關(guān)工作有的公司是架構(gòu)團(tuán)隊(duì)來(lái)建設(shè)的,列一個(gè)大概:

  • CI/CD平臺(tái):一般而言需要自己結(jié)合公司的工作流程做一套CI/CD平臺(tái)(底層可以基于Jenkins(或直接SSH+腳本)封裝),這個(gè)平臺(tái)需要結(jié)合公司的工作流程去做,比如誰(shuí)可以發(fā)起流程,每一個(gè)發(fā)布環(huán)節(jié)需要誰(shuí)來(lái)審批,發(fā)布時(shí)間窗口等等

  • DNS平臺(tái):一般會(huì)直接使用域名管理商的平臺(tái)或類(lèi)似DNSPod這種平臺(tái)

  • CMDB:一般都會(huì)根據(jù)自己的情況自建平臺(tái),進(jìn)行運(yùn)維各個(gè)層次相關(guān)資源的元數(shù)據(jù)以及配置管理

  • 監(jiān)控:一般會(huì)基于Prometheus+Grafana+Zabbix等開(kāi)源項(xiàng)目來(lái)打造運(yùn)維的基礎(chǔ)監(jiān)控

  • CDN平臺(tái):一般是用云的,比如七牛、又拍或三大云服務(wù)的CDN都可以

  • 集群配置管理:這個(gè)不是指CMDB,是指批量進(jìn)行集群配置應(yīng)用操作,管理操作的平臺(tái),比如Chef、Puppet、Ansible、Fabric,一般也是基于開(kāi)源改造封裝或直接用開(kāi)源的

  • 容器編排:比如K8S平臺(tái),一般可能會(huì)基于k8s的API做一套自己的k8s管控平臺(tái)或選用類(lèi)似Rancher這種更好用更高層的服務(wù),完全基于命令行的k8s運(yùn)維不是很高效易用

  • 容器鏡像倉(cāng)庫(kù):比如Docker私有倉(cāng)庫(kù)Harbor


總結(jié)

好吧,的確一些中大型互聯(lián)網(wǎng)公司是有超過(guò)100個(gè)內(nèi)部系統(tǒng)是和研發(fā)相關(guān)的,甚至需要有專(zhuān)門(mén)的導(dǎo)航網(wǎng)站來(lái)管理工程效率、運(yùn)維、基礎(chǔ)框架、基礎(chǔ)服務(wù)、基礎(chǔ)中間件、基礎(chǔ)平臺(tái)的這些網(wǎng)站,這些系統(tǒng)本身的維護(hù)工作量也是不小的,一整理就會(huì)發(fā)現(xiàn)原來(lái)除了業(yè)務(wù)程序還有這么多周邊的東西是為研發(fā)服務(wù)的,歡迎大家針對(duì)本文的內(nèi)容進(jìn)行補(bǔ)充。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
騰訊開(kāi)源業(yè)界首個(gè)云原生標(biāo)準(zhǔn)的一站式微服務(wù)管理框架Femas|云原生|插件|中間件|sdk
日調(diào)度5萬(wàn)億次 騰訊云微服務(wù)架構(gòu)體系TSF深度解讀
阿里將開(kāi)源進(jìn)行到底
PaaS和SaaS之間的中間架構(gòu),詳細(xì)后端即服務(wù)(BaaS)
有坑!傳統(tǒng)企業(yè)別上微服務(wù)了
傻傻分不清楚 - 基礎(chǔ)架構(gòu)、平臺(tái)和接口
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服