产品运营

技术选型的考虑与分析

2018-03-04  本文已影响145人  Cheava

由于现在互联网技术快速发展,无论前端还是后端,各领域的技术及框架层出不穷,百花争艳,例如后端的消息队列,就有RabbitMQ、Kafka、Apollo、RocketMQ等,甚至身为NoSql的redis都可以插一脚。如何针对开发需要,选用合适的技术,这值得下一定功夫。

需求分析

做事之前,最重要的就是准确获取需求。技术需求相当于一把标尺,把不适用业务场景的技术排除在外。而技术选型的需求,一般是根据业务需求和行业特性来决定的,例如金融行业,对正确性、稳定性、安全性等要求高,而互联网行业则要求快速迭代,性能高。

业务需求

行业特性

资源统筹

公司语言:Java? C#? 多种语言协作?……

公司技术栈:Spring全家桶? Vert.x? ……

团队技术实力:按部就班?有自研能力?参差不齐?

开发时间:临时任务?时间急迫?时间从容?

人才培养:同样符合要求的技术,差别只是相对于成员的难度不同,是否采用有难度的技术进行攻关?

选型要点

要点主要是整体模型涵盖开源许可证、行业认可度、产品活力、服务支持、安全性、兼容性、可维护性、可扩展性、功能性、可靠性、易用性、性能效率等12大类评估属性
参照以下链接:
开源软件成熟度评测报告-分布式消息中间件开源
流行的rpc框架benchmark 2018新春版

许可证

用户使用开源软件进行商业化时,需遵守开源软件许可证条款的规定。

活跃度

反映开源软件的可持续性和可进化的能力,主要从开源软件的版本发布情况、开源社区情况、软件的关注情况等方面进行分析。

行业认可与服务支持

行业认可与服务支持反映开源软件在业界的应用情况和提供专业化服务的情况。主要是对应用集成方案和云计算服务两方面进行分析

功能特性

考察候选技术在该应用范畴中的功能比较,例如消息中间件,主要从服务端、生产者、消费者、以及消息传输等四个方面进行对比。

性能效率

针对候选技术核心功能的性能评估,例如吞吐率、响应时间等

安全性

主要包括已暴露的安全漏洞情况和安全机制两方面。

可扩展性

关注第三方插件以及插件开发,可配置可集成

维护性

关注代码注释规范、管理、监控和测试工具

实施过程

先验证,后使用

引入新技术之前,先验证,把官方demo以及单测代码跑一遍,重点验证和研究自己业务需求的那一块,这一点正如《谈谈技术选型的注意事项》所说

对于未经验证的新技术、新理念的引入一定要慎重,一定要在全方位的验证过后,再大规模的使用。新技术、新理念的出现,自然有它的诱惑,慎重并不代表保守,技术总是在不断前进,拥抱变化本身没有问题,但是引入不成熟的技术看似能带来短期的收益,但是它的风险或者是后期的成本可能远远大于收益。

上一篇 下一篇

猜你喜欢

热点阅读