一:功能的靈活性和易用性
互聯(lián)網(wǎng)通信云服務(wù)通常是將 IM 和實(shí)時(shí)音視頻技術(shù)封裝成SDK/API交付給開發(fā)者使用,在App功能的開發(fā)中占據(jù)了非常重要的地位,特別是對于社交、直播等行業(yè)而言,通信能力就是命脈。如果選擇了不適合或不能滿足自己業(yè)務(wù)場景的功能,初期由于業(yè)務(wù)復(fù)雜程度和業(yè)務(wù)量都比較小,可能問題不會十分明顯,但是到了后期這可能成為一個(gè)噩夢,會導(dǎo)致系統(tǒng)問題頻發(fā),極不穩(wěn)定,甚至導(dǎo)致項(xiàng)目迭代舉步維艱,有的團(tuán)隊(duì)會停止新功能的開發(fā),專門修復(fù)bug,給業(yè)務(wù)造成重大的經(jīng)濟(jì)損失。
因此,尋找能夠滿足適合自身業(yè)務(wù)場景的產(chǎn)品,能夠靈活地進(jìn)行二次開發(fā),同時(shí)支持多平臺和開發(fā)語言,是開發(fā)者前期調(diào)研中需要考慮的首要問題。通常意義上來講,SDK接口的數(shù)量在一定程度上代表了可實(shí)現(xiàn)功能量級的多寡,SDK接口越多,開發(fā)者在功能實(shí)現(xiàn)上就有更多的選擇空間,可以根據(jù)不同接口的組合來打造符合自身產(chǎn)品思路的功能。
但同時(shí)也要看到,有的服務(wù)商不斷增加SDK接口數(shù)量,但這并不代表越多就一定越好,有可能讓新接觸的開發(fā)者越發(fā)混亂,無從選擇。所以有些廠商直接將符合某一業(yè)務(wù)場景需求的十幾個(gè)或幾十個(gè) SDK 接口,打包成一個(gè)解決方案供開發(fā)者使用,這樣不僅避免了開發(fā)集成的復(fù)雜度,還提高了功能的易用性。
此外,SDK的體積也是一個(gè)需要注意的點(diǎn),過大的SDK會造成最終App體積也隨之變大,這對于用戶的下載體驗(yàn)非常糟糕,需要避免。
二:開發(fā)工具的完備性
靈活的功能性確保了項(xiàng)目開發(fā)從一開始就能夠走在正確的道路上。接下來要考慮的是真正進(jìn)入項(xiàng)目實(shí)施階段,開發(fā)工具的完備性。開發(fā)工具既包括開發(fā)文檔、SDK 注釋等基礎(chǔ)性文檔,也包括Demo、視頻教程等多種支持性工具。
開發(fā)者在寫代碼的時(shí)候是很不喜歡被打斷的,特別是一些基礎(chǔ)性的開發(fā)問題,比如怎么創(chuàng)建ID,怎么創(chuàng)建群組,有文檔之后直接扔URL鏈接就行了。因此,一個(gè)易讀易懂的技術(shù)開發(fā)文檔將有助于Coding事半功倍。一個(gè)好的開發(fā)文檔至少要做到結(jié)構(gòu)簡單、邏輯清晰。
所謂結(jié)構(gòu)簡單就是用戶能馬上找到自己要查找的知識點(diǎn)在哪,分類清晰。有些文檔愛用模棱兩可的詞,比如“1.常見問題”,“2.熱點(diǎn)問題”,一旦開發(fā)中遇到了問題,無法快捷查找答案,所以就需要將具體問題合理歸類。另一點(diǎn)是邏輯清晰,這樣可以讓開發(fā)者減少對業(yè)務(wù)和交互的思考,更專注于技術(shù)的邏輯與實(shí)現(xiàn)。
除了開發(fā)文檔外,SDK 注釋是一種更簡便的文檔說明方式。不需要開發(fā)者翻閱大量的技術(shù)文檔,通過完美的注釋,直接在代碼上就可以方便了解SDK功能。此外,還有Demo產(chǎn)品和視頻教程等支持性工具,輔助開發(fā)者更好地理解和應(yīng)用開發(fā),避免不停的試錯后才完成開發(fā)。
三:抗弱網(wǎng)環(huán)境和 QPS 承載能力的穩(wěn)定性
產(chǎn)品穩(wěn)定性至關(guān)重要,直接關(guān)乎用戶體驗(yàn)。在地鐵、電梯等相對密閉的弱網(wǎng)環(huán)境,常常面臨信號不暢,App穩(wěn)定性失常、無法使用的問題。因此,開發(fā)者需要考慮的是,如果遭遇弱網(wǎng)環(huán)境,能不能在系統(tǒng)運(yùn)行中通過最優(yōu)算法實(shí)施智能調(diào)度,擇優(yōu)選擇最佳鏈路進(jìn)行用戶無感知切換。
在平時(shí)業(yè)務(wù)壓力不大的情況下,系統(tǒng)看似運(yùn)行的很平穩(wěn)了,但是當(dāng)遇到雙十一、大型直播、春晚等特殊事件,瞬時(shí)的激增流量有可能直接導(dǎo)致系統(tǒng)瞬間崩塌,那么,開發(fā)者在一開始選擇的時(shí)候,就需要考量QPS承載能力,要求服務(wù)商必須有應(yīng)對高并發(fā)的能力。此外,還要考核消息到達(dá)率和準(zhǔn)確率,一些App中,消息“半路失蹤”,漏發(fā)、錯序的事件時(shí)有發(fā)生,這些大概率都因?yàn)榧軜?gòu)設(shè)計(jì)存在缺陷,是App使用者所無法容忍的。
要規(guī)避上面的這些坑,需要有良好的系統(tǒng)架構(gòu)做支撐。如果,開發(fā)者因?yàn)楫a(chǎn)品上線前的經(jīng)驗(yàn)不足,導(dǎo)致產(chǎn)品在研發(fā)架構(gòu),或者風(fēng)險(xiǎn)漏洞方面存在隱患時(shí),我們最好選擇能夠全程提供業(yè)務(wù)方案咨詢和技術(shù)方案咨詢服務(wù)的廠商,以他們的最佳實(shí)踐幫助我們做出最優(yōu)方案,在 App上線前即規(guī)避可能存在的風(fēng)險(xiǎn)。
四:全球化能力
業(yè)務(wù)前景和技術(shù)前景也是開發(fā)人員應(yīng)優(yōu)先考慮的因素。比如初創(chuàng)企業(yè)優(yōu)先布局在國內(nèi),但未來發(fā)展也許會出海,那么所選擇的服務(wù)商就必須具備全球化服務(wù)能力。
想要擁有穩(wěn)定的全球通信能力,不僅要有基礎(chǔ) IaaS 架構(gòu)的支持,還要有海外數(shù)據(jù)中心、多路動態(tài)節(jié)點(diǎn)及穩(wěn)定的全球鏈路做支撐,才可以有效解決跨國、跨運(yùn)營商、大規(guī)模用戶訪問導(dǎo)致的響應(yīng)慢、丟包高、服務(wù)不穩(wěn)定等諸多痛點(diǎn)。
還有些服務(wù)商構(gòu)建了私有加密協(xié)議的全球通信加速網(wǎng)絡(luò),針對性的進(jìn)行全球鏈路優(yōu)化,這對開發(fā)者來說,通信安全性和質(zhì)量穩(wěn)定性便有了雙重保障。
五:服務(wù)
目前,絕大多數(shù)廠商都能給開發(fā)者提供便利的服務(wù),以滿足產(chǎn)品開發(fā)、上線前后以及產(chǎn)品運(yùn)營階段的各種需求。但也有極少數(shù)的廠商只提供SDK技術(shù)及開發(fā)文檔,而后續(xù)無任何服務(wù)支持,這對開發(fā)者而言,當(dāng)然不是一個(gè)好的選擇。
雖然,知名度高一點(diǎn)的通信云服務(wù)商都提供7*24小時(shí)的運(yùn)維保障服務(wù),但仍有服務(wù)意識的強(qiáng)弱之分。以客服工單為例,業(yè)界平均工單回復(fù)時(shí)間為4-6小時(shí),而優(yōu)質(zhì)的服務(wù)商則可以做到1小時(shí)內(nèi)回復(fù)。
產(chǎn)品上線后,如果有自動故障排除工具類的服務(wù)支持,可以幫助開發(fā)者極大節(jié)省與廠商之間的溝通成本。除了這些工具類服務(wù)外,人的服務(wù)也是必備保障之一。比如,有的服務(wù)商從項(xiàng)目開發(fā)之前,便配備CTO或首席架構(gòu)師級別的頂級技術(shù)團(tuán)隊(duì)進(jìn)行全方位答疑,幫忙開發(fā)選擇適合場景的技術(shù)架構(gòu)和解決方案。還有的服務(wù)商,在項(xiàng)目上線運(yùn)營時(shí),針對可能出現(xiàn)的突發(fā)流量狀態(tài),通過人工方式幫開發(fā)者制定相應(yīng)的保障方案,動態(tài)調(diào)整服務(wù)器部署,這樣就可以有效地幫助開發(fā)者順利避開“坑”點(diǎn)。
選型填“坑”后,最優(yōu)性價(jià)比的勝出
價(jià)格將是選型過程中“最后的試金石”。通常來講,選擇好的技術(shù)和服務(wù),意味著選擇更多的成本投入,而在當(dāng)下的復(fù)工復(fù)產(chǎn)期間,行業(yè)回暖需要過程,節(jié)省開支就成了企業(yè)發(fā)展中的頭等大事,選型者往往因?yàn)閮r(jià)格因素,不得不退而求其次。
對于正處于選型當(dāng)口的企業(yè)和開發(fā)者而言,好消息來了;ヂ(lián)網(wǎng)通信云行業(yè)的領(lǐng)導(dǎo)者融云針對全體開發(fā)者推出了“199元IM 商用版首購限量開放”活動,充值優(yōu)惠有效期為2020 年5月1至12月31日。這是融云自成立以來,推出的優(yōu)惠幅度最大的一次活動,特別一提的是,由于疫情期間,受IaaS層帶寬資源成本均有提升等多重因素影響,加之確保最后一公里通信的穩(wěn)定、可靠、安全,絕不降品質(zhì)的執(zhí)著,融云為此承擔(dān)了巨大的成本負(fù)擔(dān)。但是,他們?nèi)匀徊幌Т蚱瞥杀镜拙,以最大優(yōu)惠讓利于開發(fā)者,誓為全行業(yè)復(fù)工“輸血”。也是因?yàn)橐陨显颍敬位顒酉蘖棵~ 1000 個(gè),額滿即止。
結(jié)語
總體說來,互聯(lián)網(wǎng)通信云PaaS平臺越來越成熟的技術(shù)能力為開發(fā)者提供了極大便利。作為技術(shù)選型,開發(fā)者根據(jù)自己的業(yè)務(wù)需求和行業(yè)特性,通過對通信云廠商在技術(shù)、服務(wù)、全球化方面的全面考量,再結(jié)合價(jià)格進(jìn)行綜合判斷,答案自然水落石出。