為了幫助IT從業(yè)者職業(yè)之路擁有更多收獲,在諸多C粉的殷切期待下,由 CTO俱樂部打造的CTO線上講堂自登場以來獲得大家好評。本期邀請逸創(chuàng)云客服CTO劉銘帶來SaaS云客服平臺技術(shù)架構(gòu)探討的主題分享。
歡迎加入CTO講堂微信群與業(yè)界大咖零距離溝通。

分享嘉賓: 逸創(chuàng)云客服CTO劉銘
嘉賓簡介: 劉銘,逸創(chuàng)云客服CTO,擁有多年的SaaS企業(yè)級產(chǎn)品研發(fā)經(jīng)驗。熱衷于研究各種技術(shù),從前端的界面設(shè)計延伸到后端的服務(wù)運維,熟悉分布式,緩存,消息,搜索等機制。因看好國內(nèi)SaaS發(fā)展趨勢,加入逸創(chuàng)云客服,一直從事架構(gòu)設(shè)計與產(chǎn)品研發(fā)等核心工作,致力于打造行業(yè)領(lǐng)先的云客服平臺。
公司簡介:逸創(chuàng)云客服從成立的2011年開始就本著讓企業(yè)的用戶更加滿意,客服更加高效,管理更加輕松的宗旨,打造中國最穩(wěn)定最安全的一站式客服系統(tǒng),整合呼叫中心,微信客服,在線客服,工單系統(tǒng),APP客服,郵件客服,表單客服,及微博客服,成就了逸創(chuàng)云客服:客服信賴的一站式企業(yè)級云服務(wù)平臺。
在三年的時間里,我們始終從客戶,從客服,從管理者三方的角度去完善我們的產(chǎn)品.也是我們這樣的堅持,獲得了百度,360,猿題庫,申通,蜜淘全球購,uber,印象筆記等國內(nèi)外30000家優(yōu)秀企業(yè)的信任。
以SaaS模式為企業(yè)打造ALL IN src="http://www.netofthings.cn/upload/2016-02/160203160272062.png" alt="圖片描述" width="433" height="269" />
上面這張圖描繪的是逸創(chuàng)云客服的系統(tǒng)架構(gòu)。
核心系統(tǒng)做了不同機房的災(zāi)備切換,數(shù)據(jù)庫支持主從切換和多節(jié)點備份,各種應(yīng)用服務(wù)都支持集群擴展,保障整個云客服平臺的高可用性。
入口層做了DNS層的負載均衡和Http層的負載均衡,充分發(fā)揮多機房與機房內(nèi)web集群的優(yōu)勢。
業(yè)務(wù)層主要采用了LAMP組合,后端開發(fā)框架上采用Yii,前端框架采用Ember.js、Backbone.js,實時應(yīng)用部分采用了Node.js、Express,業(yè)務(wù)層均是無狀態(tài)設(shè)計,具備很好的可伸縮性。
緩存層采用了Ucloud提供的Memcache和Redis,支持分布式、持久化、自動容災(zāi)。
數(shù)據(jù)層采用了Mysql作為數(shù)據(jù)庫,根據(jù)業(yè)務(wù)進行垂直分片,支持主從同步,讀寫分離、災(zāi)備切換。
文件存儲層采用了阿里云提供的對象存儲服務(wù),支持多媒體轉(zhuǎn)碼以及圖片處理。
監(jiān)控服務(wù)采用了Ucloud和阿里云提供的監(jiān)控,可以通過短信和郵件得知服務(wù)狀態(tài)。
日志服務(wù)采用ELK組合,聚合各種服務(wù)的日志信息,在管理平臺進行統(tǒng)計分析。
其他應(yīng)用服務(wù)包括即時通訊,郵件,電話,微信公眾號托管,消息推送,高級搜索等。
主持人:在產(chǎn)品開發(fā)過程中,對于架構(gòu)的把控和設(shè)計都有哪些要點?
劉銘: 創(chuàng)業(yè)公司的產(chǎn)品需要敏捷開發(fā),快速迭代,敏捷不僅僅在于快速交付,實現(xiàn)功能。如果單單為了提高速度,而不考慮擴展性,規(guī)范性,那么就產(chǎn)品就會變得冗余笨重,難以持續(xù)性發(fā)展,甚至是需要重新造一次輪子。
敏捷的關(guān)鍵在于快速響應(yīng)變化,在速度和質(zhì)量上找到平衡點,只關(guān)注真正重要的事,而且要重視,少關(guān)注占用大量時間而意義不大的事情。
在架構(gòu)的把控和設(shè)計上,就得與產(chǎn)品的敏捷開發(fā)相配合,不斷的進行權(quán)衡取舍,下面介紹三個架構(gòu)設(shè)計原則:
明確目標:架構(gòu)是為產(chǎn)品服務(wù)的,必須明確產(chǎn)品要實現(xiàn)的目標,才能確定架構(gòu)要達到的標準。即使是同樣的功能,但是目標不一樣,做出來架構(gòu)設(shè)計就可能不同。要充分進行溝通與思考,深入理解用戶的需求,在做架構(gòu)設(shè)計時,平衡好成本與性能,并保持架構(gòu)的可擴展性。
大道至簡:架構(gòu)設(shè)計上應(yīng)當保持簡單可控,不做過度設(shè)計。相信沒有最好的架構(gòu),只有最適合的架構(gòu)。在滿足產(chǎn)品迭代的前提下,盡量把架構(gòu)設(shè)計得簡單,讓架構(gòu)跟隨業(yè)務(wù)發(fā)展而演進。
單一職責:把業(yè)務(wù)上的模塊進行拆分,保持模塊間的獨立性,降低整個系統(tǒng)的耦合度。這樣可以就對單個模塊進行開發(fā)、測試、部署、升級,而不會影響其他模塊??蓪⒚總€模塊分配給不同的團隊小組,開發(fā)時互不干擾,整體研發(fā)效率也得到提升。
主持人:云客服關(guān)鍵的技術(shù)難點和挑戰(zhàn)有哪些?