歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~css
一直以來,如何可以更快速地構建高性能,高擴展的移動應用一直是移動行業的熱點。在傳統模式下,開發者經過手動集成所需的各類移動服務,和後臺緊密配合去打造精品移動應用。傳統模式會形成一些問題:不一樣的集成和初始化方式,致使代碼的散亂以及維護成本的提高,對後臺服務的強依賴下降了移動開發者的單兵做戰能力,讓整個開發體驗不閉環。css3
騰訊雲,騰訊移動分析,騰訊移動推送信鴿,崩潰監控bugly,騰訊計費米大師聯手推出移動開發平臺,打造移動開發新模式: 移動開發即服務(mobile as a service),獨創零代碼集成,基於配置的雲端一體化閉環開發體驗。算法
然而,雖然不少開發童鞋也都接觸過騰訊雲的這些服務,可是對如何利用這些服務,在騰訊雲平臺上打造新的移動開發模式,更簡單、高效、高質量的進行移動開發仍然不是特別清楚。數據庫
爲此,5月28日,騰訊雲舉辦雲+社區沙龍,邀請到了五位騰訊雲的技術大咖,爲開發者詳細講解了在全新的騰訊雲移動開發模式下,如何基於騰訊云爲移動開發者提供衆多基於雲的移動服務,幫助開發者簡單、高效、高質的完成移動開發工做。小程序
傳統模式下,移動開發者所能獲得的服務一般會以單個產品或者能力的方式提供,好比推送就是提供推送的服務,分析提供的就是分析的服務。這種模式,也許在單個產品下,能作到極致,也能提供良好和方便的接入、使用、管理體驗。但對整個移動開發來說,這種提供單一服務的模式會致使整個移動開發體驗不流暢、不完善,各個產品之間的割裂會致使整個移動開發的節奏也是割裂的,沒法完整的作到一個事情從頭至尾只在一個平臺上作,因此騰訊雲提出一個全新的模式,移動開發即服務。後端
騰訊雲移動開發平臺業務負責人胡澤銳在沙龍中就騰訊雲的移動開發即服務進行了詳細的講解。胡澤銳表示,移動開發即服務,包含兩個概念,第一是要爲開發者提供完整的移動開發生命週期服務。二是要爲移動開發者儘可能提供最好的使用體驗。微信小程序
騰訊雲移動開發平臺其實是騰訊雲和騰訊內的各個產品合做,深度整合的產品。若是隻是看功能的話,這些產品都不是什麼特別新的東西,在騰訊公司內部普遍應用的,在公司外部也有相似的產品提供了對應的服務。好比NTA、bugly、計費米大師,應用寶等等。
安全
騰訊雲移動開發平臺把這些產品作了一個深度整合,造成一個總體,以一種全新的開發模式和體驗提供給開發者。該平臺具備三個關鍵點。服務器
首先,易用。即移動開發平臺爲開發者提供了豐富、可讀性很強的文檔支持。其次,效率提高。這個提高包括兩方面,便捷的接入,齊全的功能。第三,高留存。從統計數據來看,開發者在騰訊雲移動開發平臺上最終的留存率能夠達到50%。微信
之因此騰訊雲移動開發平臺能夠達成這樣的成績,是由於抓住了移動開發者開發應用的痛點。實際上,開發者在開發移動應用時,主要的痛點在於代碼散亂、溝通成本高、研發效率低下,而開發者的核心需求則在於把精力放在覈心業務上。這就意味着對一些通用的需求,其實都應該由平臺來提供,移動開發者則只需將主要的關注點放在如何知足核心業務上。
所以,對於移動開發平臺的設計,則應該從下面幾方面來考慮。
一、架構思惟,幫助開發者以架構師的思惟構建移動應用。
二、傻瓜式應用,使用的方式應該越簡單越好。
三、靈活搭配,即各類功能在開發的任何階段即插即用,按需使用。
基於這樣的考慮,騰訊雲移動開發平臺爲開發者提供了一個零代碼集成,基於配置、雲端一體化閉環的開發平臺,覆蓋從研發、測試、發佈、運維到運營的移動開發生命週期全流程,從而能夠幫助開發者簡單、高效、靈活的開發出移動應用。
移動消息推送,做爲用戶觸達的一種方式。基本上是開發者在開發移動 App 時的一項標配功能。然而受限於終端環境、基礎設施、後臺服務能力等等因素,要作到百億級消息推送、推送效果實時跟蹤,仍是有不小的技術挑戰。若是再進一步,只給用戶推送他感興趣的內容,作精細化運營,則須要藉助大數據和機器學習平臺,在推送系統中加入 BI 的能力。
騰訊信鴿高級工程師甘恆通介紹說,對於消息推送來講有三個主要環節,第一個環節是檢索出須要推送的目標用戶,第二步是選擇合適的通道進行消息的分發,最後是終端收到消息後進行展現。對於移動推送服務來說,最基礎的是須要在終端、後臺、數據服務三個層次作精作細。
而終端所面臨的挑戰,主要是:
Service 的保活
終端發佈後的運營能力
終端 Service 保活,最樸素的作法,是爲每一個 App 起一個獨立Service、創建一個長鏈接。這種方式實現相對簡單,可是對用戶來說,會消耗更多手機的資源。信鴿移動推送爲了兼顧服務質量和用戶體驗,使用的是共享通道的方式,更加省電、省流量。信鴿服務了公司內外不少大致量活躍 App,這些 App 可以有效提高 Service 存活率。
至於終端發佈後運營能力,主要有以下 3 個維度:
App 粒度調度能力:能夠經過後臺雲控,實現用戶無感知的配置下發、通道切換等操做;支持 App 粒度的雲端調度。
準確的統計數據上報。對推送來說,有正向效果,也有反向效果。然而要拿到準確的統計結果,須要注意不少細節。好比,國內有很多定製 ROM,調用接口在通知欄展現消息,消息是否真的展現給用戶,可能會受機型的限制;另外,也沒有很統一有效的標準查詢接口,查詢用戶是否打開推送。這裏要想拿到準確的統計數據,就都須要深刻了解終端環境,作些技術上的優化實現。
SDK 質量監控。爲了保證終端的質量,騰訊信鴿構建了一套從Crash上報、報警、在線修復的Crash平臺。這樣能嚴格保證終端的質量。
騰訊信鴿包含了終端、接入層、後臺邏輯層,存儲、數據分析平臺、消息網關這幾大部分。對於數據分析平臺來講,給用戶提供實時的效果跟蹤,多維分析的能力。整套系統構建在Docker雲化基礎之上。通過這一兩年的建設以後,信鴿如今初步造成了一個高性能、架構可伸縮、易於運維的系統。
而騰訊信鴿的使用,具備必定的經驗和技巧,甘恆通在沙龍上介紹了兩點。一是推送性能,即怎樣推的更快。二是運維效率,即怎麼改善運維效率。
此外,甘恆通還介紹了這套研發體系的三大優勢:
1.保證版本一致性,減小人工打包、解包帶來的版本交付件(程序、腳本、配置文件等)不一致的問題
2.環境隔離,一體化流程引入配置中心,開發、測試、運維使用不一樣的配置中心,根據不一樣的場景分別管理版本的配置信息,而且使得運行實例的配置可方便定製和追溯
3.並行編譯和測試,一體化流程充分利用了gaia硬件資源的虛擬化,原有流程的編譯和測試在有限的、固定的物理機上進行,優化後能夠在任意的虛擬機器上並行進行,至關於開發人員和測試人員每一個人都有一套獨立的開發和測試環境,不在受限於機器的數量
另外,信鴿還支持不少增值服務,包括精確推送、數據、支撐平臺以及可視化操做等。
若是開發者從終端的角度來看待數據存儲的場景的話,可能會有不少的從業務場景,好比頭像、圖片、音頻、視頻、短視頻等非結構化的數據,而這些數據和URL須要去適配不少的接口。而若是這些適配都須要移動開發者與後臺對接的話,移動開發者可能會有很是多的事情須要處理。從終端來講,移動開發者但願可以獲得統一的倉儲服務,真正能把數據看做是透明的,只需關注URL進行處理。
騰訊雲存儲業務終端負責人董朝介紹,騰訊雲有一個總體的COS服務,是一個對象存儲服務。數據傳送上來以後,會在COS的系統內部總體倉儲起來,並配合騰訊雲已有的,如CDN的能力幫助用戶去分發。這樣,對於終端的開發者來講,只須要一個SDK,剩下全部的事情均可以交給騰訊雲託管。
COS系統具備很高的可用、可靠性,數據的可靠性達到11個9,數據的可用性、輸入可訪問性達到3個9。並且COS系統還具備鑑黃、安全防禦等通用功能,能夠幫助移動開發者大幅減小在這些通用功能方面的時間消耗。
COS系統具備三層架構,在第一層的數據接口層,移動開發者經過API、SDK、控制檯等經常使用的方式使用服務,從這個意義上來講,其能夠簡單地歸結爲一個使用界面層。
第二層是分佈式的高可用集羣,即應用接入層,除了API層,上面還有一個應用接入。應用接入會把鑑黃、水印等通用服務接入進來。這樣就能夠給開發者提供一個通用的能力,開發者能夠自主去選擇須要的能力,而後把這些能力集成進去,服務端就再也不須要再次開發這些功能。
在傳輸層,主要解決的就是上傳和下載的問題,上傳主要是KTS和數據穩定性的問題。此外,還有關鍵的下載分發的問題,而在COS系統中有成體系化的CDN加速策略、動態加速策略,可以讓數據更快的從雲端下載。
不過,談到數據存儲,權限與安全應該是用戶最關注的問題。所以,在此方面,COS系統引入了一整套的訪問控制的策略(CAM)以及臨時密鑰的方法來確保存儲系統的安全。COS系統基於騰訊雲之上,有一整套的分佈式系統處理整個COS服務。在存儲落地的過程也考慮了不少的問題,好比安全性的問題,系統支持服務端加密,同時也支持客戶端加密,服務器非對稱加密這些策略,固然,像常見的版本控制,跨區複製等存儲系統通用功能也在COS系統的服務之列。
目前,整個COS的產品在世界各地都分佈有節點,這意味着若是服務須要出海或者跨國服務的話,COS將是一個很是好的選擇。
圍繞着COS-SDK產品的開發,董朝分享了製做COS-SDK上的一些經驗,他表示,SDK是做爲一個服務的界面,而COS服務更多的是後端服務,它不少的考慮點不是在終端上,因此須要把服務進行封裝,更好的供用戶使用。而好的SDK須要具有三個特徵,即好用,快速上手、高性能。這些詞語落實到SDK具體的形態上,實際上能夠把SDK分紅幾個模塊。第一個是最核心的,即代碼或者二進制編碼,是分發形態。第二個是SDK和用戶交互的API,第三個是文檔和Demo,只有把這三個模塊都作好,纔是一個好的SDK。COS-SDK的製做,就是遵循了這樣的規則,所以能夠爲移動開發者提供優良的使用體驗。
騰訊移動分析高級工程師楊列昂就騰訊移動分析與產品運營與到會的近二百名觀衆進行了交流。楊列昂表示,根據移動APP的需求層次,能夠概括成 4 個不一樣的發展階段:
最開始要看指標和報表,要彙總來自不一樣平臺的數據;到了APP初具規模,開始有付費和盈利模式,企業就進入了精細化運營的階段。這個階段更加關注付費轉化、流失等用戶行爲。接下來就是有針對性的作營銷推廣,引流新用戶。如何把控廣告的投放、APP的下載、最終完成註冊和付費的各個環節,如何衡量營銷的效果,成爲這個階段關注的問題;作完前面這些步驟之後,還能夠更進一步,利用大數據的手段解決細分行業的痛點難點。輸出一套行業的標準化解決方案,幫助新來的企業快速突破運營問題。
這整個過程,就是從瞭解業務總體狀態,到針對性的關注特定人羣,而後採起行動,最後成爲行業專家的過程。
騰訊MTA分析系統能夠幫助用戶儘快成爲行業專家,MTA除支持移動端主流的兩大系統Android和iOS外,還支持Html5。騰訊也有專門針對Html5的分析產品。還有一些App,好比微信內部承載了H5容器,也就是常說的Hybrid App。除此以外,騰訊還使得Native和H5的數據實現了互通,H5藉助App的上報通路便可實現更穩定的上報。
在微信小程序誕生之初, 騰訊就推出了相關的統計分析服務,在智能家居、智能硬件領域,騰訊也推出了相應的產品和軟件開發包。
不過,在介入MTA時,用戶常常會問一個問題:如何知道用戶的分佈狀態。這就不得不提騰訊的移動用戶畫像。騰訊的業務線很是普遍的,在社交、新聞、文娛、金融等各個領域,都有不少的佈局。不少App有數億甚至數十億的用戶規模,每一年產生千億級的數據流損。如何對這些數據作一個有效的規整,打通數據孤島,的確是一個難題。
實際上,數據通過鏈接、分析,最終將獲得一個標準化的結果。其中既包括結構化的數據,也包括一些非結構化的數據,再通過整個的處理流程以後,就轉化成騰訊多維海量的一個數據資產。這其中涉及到不少的算法和特定的領域問題,其中最基礎的,就是涉及到設備特徵的識別。在設備識別方面,安卓系統雖然能夠經過API獲取IMEI的標識,但在山寨機和終端模擬器的影響下,分析統計結果也會存在誤差。
基於以上事實,騰訊推出一套方案,經過移動端的設備識別,設備指紋信息,在服務器端加密下發的方式,解決了在不一樣場景下設備識別的問題。這稱之爲MID。另外經過一套離線的分析系統,能夠把設備、刷機、重置設備而重複分配的MID關聯起來,從而實現最終的一致性。
當企業進入到一個精細化運營的階段,這時候最重要的是歸因分析。騰訊提供了多種手段方法,好比細分流失用戶的特徵,經過一些方式來建模,最後去對潛在流失用戶作一個預測等等。
在營銷推廣環節,騰訊從人羣選取、廣告投放、效果跟蹤、流量清洗幾個維度來改善這個過程。
在人羣選取上,MTA提供了基於規則、基於算法的用戶分羣方式。能夠有針對性作個性化營銷。
同時,MTA系統和 SPA、WIN 等廣告平臺打通,支持在騰訊幾乎全部流量上的廣告定向投放,也能夠用 Lookalike 的方式,擴散獲取新用戶。
用戶分羣數據,也提供了導出的方式。支持將數據導出到業務自有平臺,方便作進一步經營分析以及沉澱數據資產。若是分羣的效果不滿意,或者但願拓展新的用戶,MTA也提供了lookalike的形式,經過和大盤用戶的關聯,疊加的排序,能夠找到目標人羣在不一樣興趣類目上的關聯度,能夠注意到在一些日常認知不到的類目。
更爲重要的是,MTA不只是對接了top10的平臺,包括騰訊、愛奇藝、百度、今日頭條、陌陌等一些標準的廣告渠道,還支持了定製化的平臺對接。由於這個渠道對接,在PC端經過用cookie關注數據,由於流量端、分發中心和應用激活分屬在不一樣的層面或者App,很難串聯起來的。騰訊提供了兩套方案,一是渠道安裝包的可擴展的動態簽名方案,在下載安裝包的過程當中實時對應渠道的安裝包。還有一種採用關聯算法,經過採集到了IOBS信息、指紋信息來蒐集下載安裝、激活這兩部分的行爲。
最後,App 流量推廣,沒法迴避流量做弊的問題。騰訊也在積極開展流量做弊的分析工做。流量清洗的模塊,簡單能夠分爲 3 層:特徵層、識別、應用。
鉅額利益驅動,黑產的發展也以實現機器智能化。能夠用很低的成本,模擬正經常使用戶的行爲、甚至是後續的活躍數據。常規的規則和模式識別,已經沒法知足訴求。將來的對抗網絡,以及神經進化網絡,能夠輔助更好的識別模式。從黑產經常使用手法,作有針對性數據、系統建設,能夠取得更好清洗效果。
實際上,單一企業,沒法知足全部用戶訴求,將來將會有更多的協同合做。以 騰訊MTA 爲橋樑,對接基礎設施、商業諮詢、數據服務,將能夠加速企業得到大數據的能力。從而讓企業從大數據受益、給用戶提供更優質服務。
對於開發者開發移動應用而言,移動支付是他們繞不過去的一道坎,而米大師就是這樣一個支付平臺。而實際上,騰訊龐大的收入和複雜的業務後面,米大師是整個騰訊的計費結算的惟一平臺,承載了全部的騰訊遊戲業務,如日活大幾千萬的王者榮耀,吃雞、CF等;還有騰訊雲和效果廣告;包括微信小程序支付、QQ錢包支付。
騰訊計費架構師段克曉表示,米大師的成功絕非一朝一夕之功,而是通過了15年的打磨,這期間經歷過了運營商計費,雲支付開放平臺,移動支付米大師和開放四個階段。
段克曉介紹說,米大師首先是一個全平臺的支付SDK入口,經過網絡路由和系統容災,選擇一個最近最快捷的接入點進入支付系統,通過風控安全交易,完成扣款後,須要進一步將交易落地到DB,對於海量交易,須要分佈式存儲架構,防止存儲服務宕機。和支付系統並存的就是數據服務,須要對用戶的歷史交易,用戶的畫像特徵進行分析,爲用戶推薦最優的交易方式,最優的營銷活動。任何系統的異常都要能進行可視化監控告警。直觀上,整個騰訊計費系統由在線交易,數據服務和運營平臺三大系統組成。
實際上,計費系統的需求也是多變的,所以,須要不停的拓展功能,拓展不一樣的支付渠道。新功能和新特性要上線時,最好是能經過沙盒環境或者白名單進行灰度驗證再發布。所以米大師系統架構按功能分層,模塊化,可進行垂直和水平方向的擴展。
對於交易來講,最重要的就是可靠性保障,米大師經過實時交易、訂單流、帳單流的三級策略,來保障扣款異常狀況下的交易一致性。而爲了進一步保障交易的一致性,米大師經過對交易系統的數據同步採集、撮合、分析和告警,不管是僞造票據流水,仍是篡改DB,經過稽覈平臺都可以同步發現,與交易系統造成互補。
同時,米大師系統模塊在設計時都要求有跨多機房部署能力,容災難度更大的是數據層,以米大師自研的金融級數據庫TDSQL爲例,主要由網關、DB、zookeeper和scheduler幾部分組成,DB通常是1主2備,也能夠擴展爲1主多備;DB節點和zookeeper節點分別部署在不一樣機房。
這樣單機或者單機房出現孤島網絡的狀況,均可以繼續保證數據服務有效進行。
雖然在機率上幾乎不可能出現深圳多機房同時不可用的狀況,但計費數據是公司很是核心的數據,因此騰訊在上海搭建一樣架構的數據存儲層集羣,異常狀況下,能夠直接將支付流量引導到上海提供服務。
經過這樣的容災設計,數據層單機或者單機房出現孤島網絡的狀況,均可以繼續保證數據服務有效進行。雖然在機率上幾乎不可能出現深圳多機房同時不可用的狀況,但計費數據是公司很是核心的數據,因此騰訊在異地搭建一樣架構的數據存儲層集羣,異常狀況下,能夠直接將支付流量引導到異地SET提供服務。
針對節假日的交易洪峯問題,米大師構建了分佈式交易引擎,支付子系統按場景、業務、流量進行解耦,核心業務分SET部署,SET之間物理隔離,活動期間將大流量調度到獨立SET,確保其餘業務交易正常,並對獨立SET進行一鍵擴容應對業務洪峯。
並且從現網數據採集到TDBANK上報再到TDP實時計算,整個過程實現了秒級別的處理,實時計算結果再存入內存KV,但基於內存的存儲空間是有限的,爲了能查看更長週期的監控數據,並用更長週期的數據來進行告警推薦,採用了「冷熱數據分離」,這樣就能夠輕鬆保存半年的細粒度數據和永久保存天數據了。
支付系統另外一個沒法繞過的坑就是風控。風控主要是數據採集和分析,並將分析結果應用與支付流程。米大師經過事前發現、事中檢測、過後審計的方式,覆蓋整個支付交易鏈路。好比,在設備方面。一方面經過設備標識區分用戶經常使用設備信息,另外一方面根據數據挖掘獲取設備黑名單,實時攔截黑名單設備的交易請求;經過用戶位置信息,判斷該筆交易是否代充。
此外,米大師從交易數據、遊戲行爲、設備等維度,創建500多個風控策略模型,準確識別異常交易場景,有效防範渠道匯率差套現、第三方低價代充、羊毛黨惡意刷單等風險,充分保證應用實收。米大師交易風控平臺,目前日均惡意交易攔截達千萬次,爲接入業務挽回損失百萬元以上。
而爲了跟隨全球化的部署,米大師重構了計費引擎,實現了全球的一套分佈式架構,這套架構能夠支持到在線請求按需加載,目前已經接入全球80多個支付渠道,覆蓋180多個國家地區。而米大師的接入很簡單,只需三個步驟:商戶號申請、接入配置、集成SDK,一次接入後,便可享有7大能力,好比全場景能力、帳戶服務、風控能力、數據服務、商戶服務、騰訊權益。
基於十餘年服務多行業、各生命週期產品的計費運營經驗,米大師創建了全面的互聯網增值服務營銷體系,經過對付費數據和用戶畫像分析,根據用戶興趣、付費習慣、支付能力等,提供針對用戶的個性化營銷活動推薦,幫助開發者節約運營成本,提高活動價值。
好比,按照消費能力發放不一樣額度的抵扣券,根據消費習慣發現該用戶在每個月某幾天消費比較頻繁能夠主動推送營銷精確觸達用戶。
開發者使用米大師營銷系統,可自助化完成首充、滿贈、限次、打折、紅包、抵扣券等營銷活動類型配置,0代碼輕鬆上線營銷活動,並能夠快速查看營銷效果,完善營銷內容,實現營銷效果的最大化。
段克曉的精彩演講,爲本次沙龍畫上了一個圓滿的句號,而從現場觀衆參與的熱情程度和火熱氣氛中,騰訊雲移動開發即服務爲開發者帶來的遠不止一場沙龍活動那麼簡單,更深層次的是對移動開發者在開發理念和模式上帶來了巨大的衝擊和改變!
現場資料:
董朝:打造雲存儲服務:移動端數據存儲與分發.pdf
甘恆通:騰訊信鴿海量移動推送服務構建.pdf
胡澤銳:移動開發即服務——騰訊雲移動開發平臺技術分享.pdf
楊列昂:騰訊移動分析與服務架構.pdf
段克曉:助力產品打造千億級營收——騰訊計費(米大師)支付服務之道.pdf
問答
如何在雲服務器已有的開發系統下搭建開發環境?
相關閱讀
楊列昂:騰訊移動分析與服務架構
微服務架構雲端應用
移動開發之css3實現背景幾種漸變效果
此文已由做者受權騰訊雲+社區發佈,原文連接:https://cloud.tencent.com/developer/article/1139894?fromSource=waitui
歡迎你們前往騰訊雲+社區或關注雲加社區微信公衆號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~