观点:技术选型的3个关键要素
极客时间编辑部
讲述:杜力大小:875.28K时长:03:44
技术选型对任何一个企业都至关重要,正确的选型会让公司少走弯路,而错误的选型则会带来巨大的技术债务,选型的正确与否是关乎企业未来甚至是生死攸关的大事。简单的说,技术选型就是技术决策,只要你在团队中稍微有点地位,独立承担某项任务,就会面临选择,需要做出相应的决策。资深架构师一乐曾经撰文分享了他对于技术选型的一些思考。以下为具体内容。
整体来看,技术选型需要三点,分别是分析、实验和胆量。
先说第一点“分析”。分析主要有定性分析和定量分析。实际操作中,定性分析主要针对的是模型维度的估计,用来考虑一个组件是否有可能达到它宣称的目的,定量分析主要用来验证,用来确认它是否在真的做到了。
比如在语言选型时,你要考虑它的范型、内存模型和并发设计;数据库选型时你要考虑存储模型、支撑量级、成本开销;开源项目要考虑它的社区发展、文档完善程度;如果是库或者中间件,还要考虑他的易用性、灵活性以及可替代性,等等。
需要说明的一点是,我个人并不觉得阅读全部源码或者文档这种事情是必须的,这不局限在 OS、VM 层面。不仅因为这样的事情会耗费过多精力,而且受制于代码以及文档质量,就算真正阅读完毕也未必意味着完全领会。
这些都是定性的,而定性的东西就有可能存在理解偏差。一个库可以完成工作,并不代表它在高并发压力下依然表现正常;一个语言做到了自动管理内存,并不代表他能做得很好没有副作用;一件事情设计者觉得达到了目标并不代表能够满足使用者期望。因此我们还需要量化分析,也就是一直口口相传的,用数据说话。
量化分析需要你构建或使用现成的工具和数据集,对服务进行特定场景下的分析。通过提高压力、增加容量或者针对性的测试,来验证之前的定性分析是否达到预期,并分析不同技术之间的差异和表现。
紧接着再说第二点“实验”。量化分析可以为真正的实验做一些准备和帮助,但是实验要走的明显更远。到了这一步,意味着要在真正的业务场景下进行验证,这跟量化分析中通用性场景有所不同。
在真正的业务中采用需要很多细致和琐碎的工作,除此之外,还要构建自己的测试工具集,这需要非常扎实的业务理解能力和勤奋的工作。而所有这些,你需要在开发环境做一次,在沙箱环境做一次,然后在仿真环境再做一次。
这几步经常被简化,但经验告诉我们,如果你想做一个高可用的系统,你就不应该少走任何一步。
最后一点是胆量,实验做完,剩下的就是上线,但这一步有很多人跨不过去。因为就算做了再多准备,你依然不敢说百分百保证没问题。现实情况是,80% 的线上问题都是升级或者上线引起的。
你需要胆量。这不是说要硬着头皮做,人家都是艺高才胆大。所以为了让胆子大一点,你首先需要考虑降级和开关。从最悲观的角度来重新审视整个方案,如果升级出现问题怎么办,如何才能让出现的问题影响最小化。
以上就是一乐分享的全部内容,希望对你有所帮助。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- 加菲猫分析、实验、胆量,最后一步胆量不足,也就是自信不够,总感觉哪里还没有考虑周到,总感觉会出错,如果增加一些应对措施可以增加胆量1
收起评论