CTO訓(xùn)練營(yíng)第一季畢設(shè):"e管家"系統(tǒng)當(dāng)前架構(gòu)及升級(jí)
導(dǎo)語:CTO訓(xùn)練營(yíng)***季已經(jīng)圓滿收官,作為一個(gè)學(xué)習(xí)分享和社交的平臺(tái),CTO訓(xùn)練營(yíng)提供的不光是知識(shí)分享,還有一個(gè)屬于技術(shù)管理者的人脈圈子。結(jié)課之后,***季學(xué)員提交了畢業(yè)設(shè)計(jì),來對(duì)四個(gè)月以來的學(xué)習(xí)進(jìn)行總結(jié)與回顧,部分論文由CTO導(dǎo)師進(jìn)行點(diǎn)評(píng)和打分。
"e管家"系統(tǒng)當(dāng)前架構(gòu)及升級(jí) 楊一甲 天津聯(lián)創(chuàng)宏圖CTO
我司主要產(chǎn)品為社區(qū)類O2O平臺(tái)“e”管家,在此選擇“當(dāng)前系統(tǒng)技術(shù)架構(gòu)總結(jié)分析,并給出解決方案”為課題,進(jìn)行答辯。
1.1.當(dāng)前系統(tǒng)架構(gòu)
本項(xiàng)目整體架構(gòu)如下圖所示。
基本架構(gòu)就是當(dāng)前典型的移動(dòng)互聯(lián)網(wǎng)系統(tǒng)架構(gòu)??蛻舳送ㄟ^restful web服務(wù)進(jìn)行對(duì)業(yè)務(wù)邏輯操作。通過負(fù)責(zé)均衡服務(wù)器實(shí)現(xiàn)分流和容災(zāi)。將業(yè)務(wù)部署在兩臺(tái)阿里云服務(wù)器上,采用nginx web服務(wù)器,主要業(yè)務(wù)邏輯通過php及python實(shí)現(xiàn)。數(shù)據(jù)庫為mysql,目前沒有做分別分庫處理,只是實(shí)現(xiàn)了MySql的主從復(fù)制和讀寫分離。文 件服務(wù)通過七牛云存儲(chǔ)實(shí)現(xiàn)。監(jiān)控運(yùn)維通過聽云實(shí)現(xiàn)。
就當(dāng)前架構(gòu)來說,我們的優(yōu)點(diǎn)為架構(gòu)簡(jiǎn)單,基本滿足了當(dāng)前的業(yè)務(wù)需求。并充分利用了當(dāng)前市場(chǎng)上的第三方服務(wù),如負(fù)載均衡、云服務(wù)器、云數(shù)據(jù)庫都利用了阿里云,即時(shí)通訊使用了融云,通知推送使用了JPush以及前面提到的聽云和七牛。這樣大大節(jié)省了我們的開發(fā)成本和上線速度。
缺點(diǎn)為目前架構(gòu)簡(jiǎn)單,如果業(yè)務(wù)量發(fā)生突然增長(zhǎng),只能通過添加硬件的形式滿足業(yè)務(wù)增長(zhǎng)。并且小區(qū)數(shù)量和用戶數(shù)量爆發(fā)增長(zhǎng),那么數(shù)據(jù)庫當(dāng)前架構(gòu)無法支持系統(tǒng)工 作。并且當(dāng)前公司商業(yè)模式比較復(fù)雜,主要存在與物業(yè)合作、招募合伙人、定制開發(fā)三種擴(kuò)展模式,從而導(dǎo)致了客戶端多樣性、接口混亂等問題。在開發(fā)方面,缺乏 自動(dòng)化部署,如果未來服務(wù)器數(shù)量增多,則會(huì)導(dǎo)致代碼上傳問題。
現(xiàn)正在進(jìn)行的優(yōu)化有客戶端組件化、按照業(yè)務(wù)邏輯(不同小區(qū))進(jìn)行分表分庫處理、部署自動(dòng)化發(fā)布平臺(tái)等等,詳細(xì)解決方案不一一說明,在下節(jié)對(duì)項(xiàng)目的整體架構(gòu)優(yōu)化進(jìn)行說明。
1.2. 項(xiàng)目升級(jí)架構(gòu)
2. 2.1系統(tǒng)設(shè)計(jì)架構(gòu)
根據(jù)課程所學(xué)內(nèi)容,對(duì)整體系統(tǒng)設(shè)計(jì)如下圖所示:
客戶端通過統(tǒng)一接口,連接服務(wù)器,實(shí)現(xiàn)各種業(yè)務(wù)。其中將業(yè)務(wù)層分為四大類:基礎(chǔ)服務(wù)、公用服務(wù)、行業(yè)服務(wù)、可定制服務(wù)。其中如通知推送、即時(shí)通訊、短信服務(wù) 等為基礎(chǔ)服務(wù);幫幫、電商、論壇等為公共服務(wù);物業(yè)報(bào)修、物業(yè)投訴、社區(qū)電話等為行業(yè)服務(wù);通用查詢、領(lǐng)域應(yīng)用、衍生應(yīng)用為可定制服務(wù)。在這些業(yè)務(wù)之下, 提供了組件服務(wù)和基礎(chǔ)服務(wù)能夠更加穩(wěn)定高效的實(shí)現(xiàn)業(yè)務(wù)層邏輯。并提供云管理后臺(tái),實(shí)現(xiàn)用戶、社區(qū)等業(yè)務(wù)管理,并提供鏡像管理、可用性管理、安全管理等資源 管理實(shí)現(xiàn)系統(tǒng)的高可靠性、高穩(wěn)定性。同時(shí)提供了自動(dòng)化發(fā)布系統(tǒng)讓系統(tǒng)服務(wù)自動(dòng)化升級(jí),以及在線測(cè)試平臺(tái)、運(yùn)行監(jiān)控平臺(tái)保證及時(shí)發(fā)現(xiàn)、修正系統(tǒng)問題。
2.2技術(shù)架構(gòu)
本項(xiàng)目技術(shù)架構(gòu)如下圖所示:
在原有系統(tǒng)上,增加計(jì)算層、存儲(chǔ)層、采集層、調(diào)度層,增強(qiáng)系統(tǒng)的穩(wěn)定性、高效性、可靠性。
導(dǎo)師點(diǎn)評(píng):七樂康高級(jí)技術(shù)總監(jiān)曲毅
評(píng)分:B
評(píng)語:層次分的非常清晰,其中webcontroller和appcontroller根據(jù)具體的應(yīng)用場(chǎng)景和靈活性對(duì)service進(jìn)行了適配轉(zhuǎn)換。這里提出一個(gè)觀點(diǎn)僅供思考,我們說系統(tǒng)架構(gòu),除了后端架構(gòu)。其實(shí)前端也可以架構(gòu)。或者我們的前端和后端可以統(tǒng)一架構(gòu)。 例如我們的web和app還有微信。如何采用架構(gòu)減少適配,減少編碼,減少業(yè)務(wù)邏輯的重復(fù)編寫? 在本設(shè)計(jì)圖中,沒有看到前端的架構(gòu)。提出觀點(diǎn),是否可以前后端統(tǒng)一架構(gòu),這樣我們能設(shè)計(jì)出性能更好,更靈活的系統(tǒng),是否有這樣的可能性。
【CTO訓(xùn)練營(yíng)】是51CTO高招旗下,面向中高端技術(shù)管理人才,提供技術(shù)和管理的學(xué)習(xí)以及人脈和資源平臺(tái),旨在打造技術(shù)經(jīng)理的MBA,為行業(yè)輸送更多CTO人才,第二季CTO訓(xùn)練營(yíng)課程內(nèi)容參照CTO勝任能力以及延展能力設(shè)計(jì),包含技術(shù)與架構(gòu)、技術(shù)與管理、商業(yè)運(yùn)營(yíng)、敏捷個(gè)人管理4大模塊,聘請(qǐng)一線互聯(lián)網(wǎng)平臺(tái)CTO擔(dān)任導(dǎo)師,完成為期12天的課程學(xué)習(xí)之后,參與畢業(yè)典禮,輔修學(xué)分,完成結(jié)業(yè)。