几乎所有技术团队都经历过服务选型问题,在最常见的 3 大云服务交付模式(IaaS、PaaS、SaaS)中,PaaS 是目前市场上增速最快的交付模式,选型过程也是最令开发者头疼的。而相同问题往往不止一种解决方案,如何才能正确选择,少趟坑,是件烧脑的事情。那么我们究竟该如何做出正确的选择?下面就以 PaaS 层的互联网通信云服务为例,借助几个具有通用性的角度来告诉大家如何避坑。
一:功能的灵活性和易用性
互联网通信云服务通常是将 IM 和实时音视频技术封装成 SDK/API 交付给开发者使用,在 App 功能的开发中占据了非常重要的地位,特别是对于社交、直播等行业而言,通信能力就是命脉。如果选择了不适合或不能满足自己业务场景的功能,初期由于业务复杂程度和业务量都比较小,可能问题不会十分明显,但是到了后期这可能成为一个噩梦,会导致系统问题频发,极不稳定,甚至导致项目迭代举步维艰,有的团队会停止新功能的开发,专门修复 bug,给业务造成重大的经济损失。
因此,寻找能够满足适合自身业务场景的产品,能够灵活地进行二次开发,同时支持多平台和开发语言,是开发者前期调研中需要考虑的首要问题。通常意义上来讲,SDK 接口的数量在一定程度上代表了可实现功能量级的多寡,SDK 接口越多,开发者在功能实现上就有更多的选择空间,可以根据不同接口的组合来打造符合自身产品思路的功能。
但同时也要看到,有的服务商不断增加 SDK 接口数量,但这并不代表越多就一定越好,有可能让新接触的开发者越发混乱,无从选择。所以有些厂商直接将符合某一业务场景需求的十几个或几十个 SDK 接口,打包成一个解决方案供开发者使用,这样不仅避免了开发集成的复杂度,还提高了功能的易用性。
此外,SDK 的体积也是一个需要注意的点,过大的 SDK 会造成最终 App 体积也随之变大,这对于用户的下载体验非常糟糕,需要避免。
二:开发工具的完备性
灵活的功能性确保了项目开发从一开始就能够走在正确的道路上。接下来要考虑的是真正进入项目实施阶段,开发工具的完备性。开发工具既包括开发文档、SDK 注释等基础性文档,也包括 Demo、视频教程等多种支持性工具。
开发者在写代码的时候是很不喜欢被打断的,特别是一些基础性的开发问题,比如怎么创建 ID,怎么创建群组,有文档之后直接扔 URL 链接就行了。因此,一个易读易懂的技术开发文档将有助于 Coding 事半功倍。一个好的开发文档至少要做到结构简单、逻辑清晰。
所谓结构简单就是用户能马上找到自己要查找的知识点在哪,分类清晰。有些文档爱用模棱两可的词,比如“1.常见问题”,“2.热点问题”,一旦开发中遇到了问题,无法快捷查找答案,所以就需要将具体问题合理归类。另一点是逻辑清晰,这样可以让开发者减少对业务和交互的思考,更专注于技术的逻辑与实现。
除了开发文档外,SDK 注释是一种更简便的文档说明方式。不需要开发者翻阅大量的技术文档,通过完善的注释,直接在代码上就可以方便了解 SDK 功能。此外,还有 Demo 产品和视频教程等支持性工具,辅助开发者更好地理解和应用开发,避免不停的试错后才完成开发。
三:抗弱网环境和 QPS 承载能力的稳定性
产品稳定性至关重要,直接关乎用户体验。在地铁、电梯等相对密闭的弱网环境,常常面临信号不畅,App 稳定性失常、无法使用的问题。因此,开发者需要考虑的是,如果遭遇弱网环境,能不能在系统运行中通过算法实施智能调度,择优选择更佳链路进行用户无感知切换。
在平时业务压力不大的情况下,系统看似运行的很平稳了,但是当遇到双十一、大型直播、春晚等特殊事件,瞬时的激增流量有可能直接导致系统瞬间崩塌,那么,开发者在一开始选择的时候,就需要考量 QPS 承载能力,要求服务商必须有应对高并发的能力。此外,还要考核消息到达率和准确率,一些 App 中,消息“半路失踪”,漏发、错序的事件时有发生,这些大概率都因为架构设计存在缺陷,是 App 使用者所无法容忍的。
要规避上面的这些坑,需要有良好的系统架构做支撑。如果,开发者因为产品上线前的经验不足,导致产品在研发架构,或者风险漏洞方面存在隐患时,我们建议选择能够全程提供业务方案咨询和技术方案咨询服务的厂商,以他们的丰富实践帮助我们做出优质方案,在 App 上线前即规避可能存在的风险。
四:全球化能力
业务前景和技术前景也是开发人员应优先考虑的因素。比如初创企业优先布局在国内,但未来发展也许会出海,那么所选择的服务商就必须具备全球化服务能力。
想要拥有稳定的全球通信能力,不仅要有基础 IaaS 架构的支持,还要有海外数据中心、多路动态节点及稳定的全球链路做支撑,才可以有效解决跨国、跨运营商、大规模用户访问导致的响应慢、丢包高、服务不稳定等诸多痛点。
还有些服务商构建了私有加密协议的全球通信加速网络,针对性的进行全球链路优化,这对开发者来说,通信安全性和质量稳定性便有了双重保障。
五:服务
目前,绝大多数厂商都能给开发者提供便利的服务,以满足产品开发、上线前后以及产品运营阶段的各种需求。但也有极少数的厂商只提供 SDK 技术及开发文档,而后续无任何服务支持,这对开发者而言,当然不是一个好的选择。
虽然,知名度高一点的通信云服务商都提供 7*24 小时的运维保障服务,但仍有服务意识的强弱之分。以客服工单为例,业界平均工单回复时间为 4-6 小时,而优质的服务商则可以做到 1 小时内回复。
产品上线后,如果有自动故障排除工具类的服务支持,可以帮助开发者极大节省与厂商之间的沟通成本。除了这些工具类服务外,人的服务也是必备保障之一。比如,有的服务商从项目开发之前,便配备 CTO 或架构师级别的核心技术团队进行全方位答疑,帮忙开发选择适合场景的技术架构和解决方案。还有的服务商,在项目上线运营时,针对可能出现的突发流量状态,通过人工方式帮开发者制定相应的保障方案,动态调整服务器部署,这样就可以有效地帮助开发者顺利避开“坑”点。
选型填“坑”后,更高性价比的胜出
价格将是选型过程中的“试金石”。通常来讲,选择好的技术和服务,意味着选择更多的成本投入,而在当下的复工复产期间,行业回暧需要过程,节省开支就成了企业发展中的头等大事,选型者往往因为价格因素,不得不退而求其次。
对于正处于选型当口的企业和开发者而言,好消息来了。互联网通信云行业的领行者融云针对全体开发者推出了“199 元 IM 商用版首购限量开放”活动,充值优惠有效期为 2020 年 5 月 1 至 12 月 31 日。这是融云自成立以来,推出的优惠幅度非常大的一次活动,特别一提的是,由于疫情期间,受 IaaS 层带宽资源成本均有提升等多重因素影响,加之确保最后一公里通信的稳定、可靠、安全,绝不降品质的执着,融云为此承担了巨大的成本负担。但是,他们仍然不惜打破成本底线,以尽可能大的优惠让利于开发者,誓为全行业复工“输血”。也是因为以上原因,本次活动限量名额 1000 个,额满即止。了解更多活动详情请点击:
结语
总体说来,互联网通信云 PaaS 平台越来越成熟的技术能力为开发者提供了极大便利。作为技术选型,开发者根据自己的业务需求和行业特性,通过对通信云厂商在技术、服务、全球化方面的全面考量,再结合价格进行综合判断,答案自然水落石出。