一、前言
在日常工作中,当我们遇到新的业务需求要用到某一项技术时,或者在做架构设计的时候需要用到某项技术。然而这项技术有多个不同的解决方案,这时候就需要我们进行技术选型了。每种解决方案都有自己的优缺点,我们需要选出其中一个最适合我们的方案。在技术选型时没有最好,只有最适合。
二、应该考虑的因素
1. 功能是否能够满足业务、技术的需求?
这是一个最基础的前提,如果不能满足,那这个方案有再多的有点也没有用。满足需求又包含满足当前的需求和满足未来可能出现的需求。
2. 该方案的成本
成本其实包含很多方面:使用成本、学习成本、迁移成本和维护成本等。这些成本我们都需要综合考虑,有些方案是免费的,有些方案是收费的,大部分公司都会优先选择免费的方案。还有人员的上手速度,后期的迭代更新都需要详细考量。
3. 开源社区是否活跃
通常来说使用的人越多的方案,开源社区约活跃,bug就少一些,它更新迭代的速度就会快一些。那么就意味着,出现了问题能很快的解决,能够在生成环境中持续稳定的运行。
4. 安全性、可扩展性和性能
随着云华技术的日渐成熟,安全性是很多企业比较看重的一个指标。扩展性和性能这些在短期内可能影响不大,但是随着业务的逐渐增长,可能会成为我们系统的瓶颈。
5. 与公司现有技术栈是否匹配
这一点最容易忽略,但也是比较重要的。当我们引入一项新的技术或者框架,和公司内部现有的技术栈是否匹配。比如说公司现在正在使用Rocket MQ,而你再去引入一个Kafka肯定是不合适的。
综上所述,我们在进行技术选型时需要综合考量以上因素后,最终选择最合适的技术方案。