程序员和产品经理之间的争斗在互联网圈已经不再是新闻了。
怀着改变世界的远大志向,却每天要与不断变化、棘手的需求作斗争,这就是很多程序员的“生存困境”。
那么对于异常需求,程序员除了固执、不肯遵守之外,就没有其他办法了吗?不断更新是产品的常态。
不可否认,有些产品经理过于异想天开,或者要求不明确,比如要求“App随手机壳变色”。
这个时候程序员只想搬起砖头把产品经理打死。
然而,在这个互联网成为基础设施的数字经济时代,需求的变化是常态。
无论哪个行业,无论是为了满足客户还是由于竞争压力,都会出现挑战程序的需求变化。
很多时候,即使程序员把产品经理打得不能自理,也无助于解决企业发展的问题。
IDC《数字经济创新引领——中国企业数字化发展报告》认为,数字化创新需要构建的多项能力都与变革相关,例如: 敏捷能力:企业在不断变化和不可预测的商业环境中快速响应并提供适当响应的能力。
数字化产品和服务:通过不断迭代、实验和测试来开发新产品和服务,并实现频繁甚至持续更新,持续提供客户价值的能力。
鉴于当前市场的激烈竞争,我们甚至可以推断,企业允许的迭代频率决定了企业成长的下限。
在这种情况下,难免程序员的工作会变得更加忙碌、更加琐碎。
微服务的黎明与阴影 要解决这个矛盾,我们必须把目光转向一直在迭代发展的互联网公司。
新的答案将是“微服务架构”。
以不追潮流、稳健发展的网易为例。
网易考拉采用微服务架构后,日发布量从2倍增长到2倍,可以说是从步枪到大炮。
所谓微服务架构,就是将应用服务按照功能拆分为一组协同服务。
每个服务负责一组特定的相关功能,并且可以独立开发和部署。
用网易副总裁、网易杭州研究院执行院长王源的比喻来说,就是把系统分成很多很小的模块,这些模块可以通过一套标准的服务接口进行通信,从而实现可持续发展—— ——与人类社会类似,以人类最小单位为基础,设计了标准语言、文字、货币、法律,发展出了发达的文明。
微服务对整体问题的分解给迭代带来了好处——局部的技术选择和变更不会影响整个系统,不同模块的开发可以同时进行。
但整个系统的完善也受到微服务“划分”和“组合”的各种标准的限制,就像文字、法律等标准的成熟程度决定了一个文明的高度一样。
微服务的“标准”至少需要解决以下问题:微服务之间的调用和通信、服务之间的发现、服务调用链的跟踪和质量问题、微服务的测试因依赖而变得复杂、跨服务的变化。
当然,还存在数据库系统分区、分布式事务等问题。
三维微服务解决方案可以缓解冲突,解决上述问题。
微服务框架有很多。
如今,随着微服务技术的快速普及,Spring Cloud、Dubbo等开源微服务开发框架在某种程度上已经成为微服务的代名词。
知乎上有很多相关讨论。
微服务框架并不能解决所有问题。
例如,Dubbo在服务治理方面非常出色,但其功能不如Spring Cloud完善。
虽然Spring Cloud是一个系统的微服务解决方案,但它并没有覆盖整个应用程序生命周期。
例如,微服务测试就超出了它的能力范围。
网易考拉使用的工具是网易云在网易云创新大会上发布的“青舟”微服务解决方案。
王源表示,青舟微服务基于微服务的基本单元构建了多维度、完整的解决方案,让架构能够像人类社会一样不断发展。
根据网易云官方信息,青州微服务包括微服务框架、API网关、DevOps、容器服务、AIOps和测试平台等模块。
这是一个复杂的解决方案,但功能齐全且易于用户访问。
,运维方便——因为平台兼容开源微服务框架,集成了网易微服务架构实践中使用的各种工具。
借助智能化、自动化能力,可以快速分析整个服务链路,用技术发现并解决问题,保持微服务平稳运行。
我相信这种三维微服务解决方案能够启发企业构建新的开发流程,让企业的数字化产品和服务能够更快更好的迭代,程序员也将有更多时间与产品经理进行有效沟通。
,使双方矛盾得到缓解,也不影响公司经营目标的完成。