BT

架构师特刊:微服务与DevOps技术内参

| 作者 InfoQ中文站 发布于 2017年1月6日 欲知区块链、VR、TensorFlow等潮流技术和框架,请锁定QCon北京站!

目录

技术选型

云平台的微服务治理框架

云平台的基础消息处理架构

技术洞察

谈DevOps对于企业IT的价值

谈元数据驱动的微服务架构

技术实践

基于微服务架构的技术实践

谈API网关的背景、架构以及落地方案

实施DevOps从哪里开始?

【卷首语】大道至简—微服务时代的技术美学

作者:普元信息CTO 焦烈焱

从结绳记事到云端计算,计算工具的演化经历了由简单到复杂、从低级到高级的不同阶段,贯穿始终的是人们一直在试图用人力以外的力量,简化人的工作,提升生产与生活的效能。然而,“科学每解决一个问题,都要引发十个新问题”。软件定义了一个无限美好的未来,却将人们拖入充满泥淖的现实。

虽然摩尔定律早就揭示了硬件进化的潜力,《没有银弹》却告诉我们一个冰冷的现实:没有任何一项技术或方法可以能让软件工程的生产力在十年内提高十倍。数以百万计的软件从业者每天创造着浩如烟海的软件代码,却使得软件这一计算机的灵魂变得越来越纷繁复杂。

其实软件本应是美的,而美的软件应该是简单的,正所谓道生一,一生二,二生三,三生万物。

简单获得的体验之美

“(软件之美)在于它的功能,在于它的内部结构,在于团队创建它的过程。”然而美的价值最终在于体验,风景在旁人看不到它的时候,便不能算是“风景”。

Gartner为我们预言了一个人、物和商业深度连接的世界,在这样的世界中,因为云计算技术和架构的演进和发展,软件的体验正在如同水电一样无关基础,即用即得;移动终端的广泛应用,让人们可以无关时空,随时随地的获得功能和应用的交付,而在这些功能和交付的背后,不再需要动辄以千万计的庞大团队作为支撑,DevOps和微服务满足了应用的碎片化,时间的碎片化,人们关注度的碎片化,使软件的生产能力可以给予客户所需要的即得感,企业和组织可以以“周”或以“天”甚至以“分”为单位快速实验和探索,在不断尝试中获得更加契合客户需求的软件。让软件表达出简单获得的体验之美。

简单创造的价值之美

程序员们日以继夜,诠释着披星戴月的含义,却不断的沉沦在重复搭建环境、重复系统部署、重复环境验证、重复代码开发等等的炼狱之中,“感觉身体被掏空”的绝望如影随形。人类发明并建造计算机,努力对其开发和优化,是为了让计算机可以更好地理解人类行为,模拟人类的学习和表达过程;在智能时代,计算机的认知能力开始超越人类的个体经验,甚至可以为人类行为提供帮助和预测。DevOps、ChatOps、OpsDev让生产运营者做到聊天式的开发运维一体化,让提供者做到自动化的部署供给,让消费者做到自助式的开通使用,让程序员轻松地超越极限,充分释放自己的智力、想象力和创造力,从码农成为商业价值的创造者,让软件迸发出简单创造的价值之美。

简单架构的设计之美

《营造法式》为中国古建筑的结构设计、工程管理奠定了基础,灿若星辰的中国古典园林体现了建筑执着于简单的美学理念,砖、瓦、琉璃与建筑构件,以最简化的分解让没有生命的木方泥胎诞生了横亘古今的美感。软件体系的“营造法式”却仍旧“立而望之,偏何姗姗其来迟。”。

出于项目实施时间、投入资源等方面的限制,大型软件往往以实现若干个具体的用户功能需求为目标。日复一日,随着用户功能要求的变化,软件变得面目全非。任何系统,在自然情况下,都是从有序到无序,但生物可以通过和外界交互,主动进行新陈代谢,继续生存。软件系统随着功能越来越多,调用量急剧增长,整个系统逐渐碎片化,越来越无序,最终无法维护与扩展,人们没有时间,也没有精力去追求软件的美学目标。所以系统在一段时间后必须即时干预,避免野蛮生长。然而大型软件项目已成为大量代码的随机而无序的堆积。工程师一旦完成项目,就恐避之不及,不愿再去碰自己几个月来夜以继日的劳动成果。

架构的本质就是让系统开发、维护变得有序,而好的架构一定是高度抽象的、易于理解的、合理定位的、整合有机的、面向未来的。微服务架构模式将大型的、复杂的、长期运行的应用程序构建为一组相互配合的服务,每个服务都可以很容易得到局部改良。让软件折射出简单架构的设计之美。

简单协作的生态之美

“我住长江头,君住长江尾。日日思君不见君,共饮长江水。”企业IT中,战略与实现的鸿沟,业务与技术的鸿沟,开发与运维的鸿沟,让协作的各方难以互相理解和交流。对于开发团队与运维团队而言,世界上最远的距离,不是我站在你的对面你却听不到我的话,而是我和你要了苹果7代,你却给了我7袋苹果。DevOps提倡开发和IT运维之间的高度协同,从而在完成高频率部署的同时,提高生产环境的可靠性、稳定性、弹性和安全性。

  • 通过纵向协作,DevOps强调的重点是跨工具链的「自动化」,最终实现全部人员的「自助化」服务。
  • 通过横向协作,DevOps强调的重点是跨团队的「线上协作」,也即是通过IT系统,实现信息的「精确传递」。

DevOps不仅打通了开发运维之间的部门墙,更实现了应用全生命周期的工具链路打通、跨团队的线上协作能力,让软件衍生出简单协作的生态之美。 软件本应是美的,消费者的体验,工程师的价值,架构师的设计,部门间的生态,无不因简而实,因简而预,因简而美。因此,本期《架构师》,我们试图在技术的极简美学方面作一些尝试和分享。如何通过元数据这种“数据的数据”来抽象和简化微服务架构认知的维度;如何用简单的几种模式,看透数据的最终一致性;如何将DevOps软件交付的过程和环节,映射为最简单的企业IT生产元素;如何用几条简单的规则,来衡量选择开源架构的得失,简而言之如何确立数字化时代的软件技术架构。

我们今年一直在尝试做一件事,用开放和分享,来简化技术创新的过程,我们将面向商用的企业级云计算平台的设计文档,过程文档,技术思考,通过社群和公众平台的方式全面开放和分享,期待更多的身处企业IT环境的工程师和架构师,可以和我们一起,追寻软件的初心,寻求软件之美,合作创新,让未来触手可及。

至言不繁,大道至简。

BT