Cloud-Native 微服务开发元素卡: 高效搞定 Cloud-Native 微服务的持续交付

前言:

Docker, Vagrant 帮助我们能打造出如上图的持续交付的 “价值流”:

  • Docker, Vagrant 使得开发人员在开发的阶段, 就能在 Production-like 的环境上进行更可信、更有效的契约测试 (Contract Test)。 也就是说, 开发人员在开发的阶段, 就能藉由在 Production-like 环境上契约测试的结果, 确定自身所新增、修改的代码是否会对既有的系统、其他的开发人员的代码造成影响?
  • Docker, Vagrant 使得测试人员能在 Production-like 的蓝线环境上, 进行更贴近实际运维环境下的集成测试、失败测试 (Monkey Test)、A/B Test; 使得 Release Management Team 能更加的确定所发布的版本的质量与对用户的价值。

所以, 我们是不是只要拥有了如上图的持续交付的 “价值流”, 就能保证我们能按照外部用户的诉求, 快速的交付, 甚至是能做到按需的交付?

当然不是。

我们还有其他的 “功课” 必需要去做; 就像不是将高速公路给建好了, 就能保证不会堵车。

本文:

我们要能按照外部用户的诉求, 快速的交付, 甚至是能做到按需的交付, 拥有能持续交付的 “价值流” 是很关键且重要的第一步。

在这很关键且重要的第一步的基础之上, 我们还必需要能做到:

1. 分析出能独立发布、独立部署的业务流 (业务场景)。

2. 由每个独立发布、独立部署的业务流 (业务场景) 所形成的 “微服务” , 其内部代码的实践要能遵循 “Clean Architecture” 的原则; 以 “洋葱式” 的架构做好 “代码的隔离”。

3. 团队成员间可高效的协作。

上述的这三件事, 我们都早已清楚是必需要去做的。

但, 问题是: 我们是需要花费大量的时间先去学习些方法论; 如: 领域驱动设计, Use Case…等等; 才能做得到? 还是我们能有一轻量级、可视化的 “工具”, 就可以帮助我们省时、高效的完成?

事实上, 我们只要藉由 “卡片”; 轻量级、可视化的 “Cloud-Native 开发元素卡” ; 就能省时、高效的做得到。

Cloud-Native 微服务开发元素卡总共区分为:

  • Cloud-Native 微服务设计元素卡: 轻量级、可视化的 “卡片”, 协助我们能高效、有趣的完成微服务粒度 (边界) 的界定、Restful API 设计、Event 架构的设计。

  • Cloud-Native 微服务实现元素卡: 可视化、轻量级的 “卡片”, 承载著 Persistence Layer ( 使得微服务在读、写不同的数据库时; 如: MySQL, MongoDB, SqlLite, PostgreSQL; 都有一统一的接口)、 gRPC、Restful API 的样例实践代码。所以, 不仅可以协助我们能更快、更轻松的开发微服务, 更能在团队里建立起 “洋葱式架构” 的开发规范。

结论:

Cloud-Native 微服务开发元素卡使得我们:

  • 能省去学习难懂又费时的方法论。但是, 依旧是有 “规范” 的:
    • 从外部的视角, 界定可独立发布、可独立部署的微服务粒度。
    • 遵循著 “Clean Architecture” 的原则, 做好微服务内部开发代码的隔离。
  • 可根据团队、产品的现况, 加入适合团队、适合产品的元素卡。使得团队可永续的积累著可使团队高效开发微服务的优秀实践、架构方案、开发模式。
  • 轻量级、可视化的 "卡片" 使得团队的产品经理、架构师、开发人员、测试人员都可更易于互相的沟通、交流、协作。而可更高效、更准确的打造出能快速响应外部变化的 Cloud-Native 微服务。

后续我将会从 Cloud-Native 元素卡出发, 持续的探讨 Cloud-Native 微服务开发。我也会再加入其他的 Cloud-Native 元素卡; 如: Event Sourcing, CQRS, Security, Contract Test, DevOps…等等。

期待著你的持续的关注。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java学习网

每一个程序员都应当了解的11句话

每一个程序员都应当了解的11句话   1.技术只是解决问题的选择,而不是解决问题的根本   我们可以因为掌握了最新的JavaScript框架ahem、Angul...

2298
来自专栏DevOps时代的专栏

DevOps 与技术雷达

? 关于 Kubernetes Kubernetes 现在是当仁不让的首选容器编排平台,在技术雷达中,也将其标记为采用。社区也发展出很多 Kubernete...

2568
来自专栏Cloud Native - 产品级敏捷

Cloud Native-产品级敏捷 2.0: 打造服务化的架构, 使得产品能随著时间、版本的演进, 而能不断的提升其价值与对用户正面的影响力

2017.10.28, Ken Fang, 深圳 I. 前言: 产品级敏捷 2.0 是我在 2016 年所创建的。 创建产品级敏捷 2.0 最主要的目的...

2115
来自专栏Android 开发者

[译] 更好的数据,更明智的决策:Google Play Console 和 Firebase 帮你分析你的用户

作者:Tom Grinsted(Google Play Console 的产品经理)和 Tamzin Taylor(Google Play 西欧区应用及游戏部主...

2142
来自专栏Java编程技术

阿里之路(一)

我是2015年6月研究生毕业,然后通过校招进入到阿里巴巴,当时复习时候目标很明确就是要进入BAT,然后就一堆堆资料的复习,本科+研究生7年用的都是c++,所以面...

1632
来自专栏Java学习网

关于敏捷开发的26个心得

  我收集各式各样的至理名言。最近我一直在研究敏捷软件开发;有收获吗?下面就是能够指导敏捷软件开发团队的26条核心原则。 用例一完全能够运行后再开发用例二。厨...

3756
来自专栏用户2442861的专栏

腾讯微信技术总监周颢:一亿用户增长背后的架构秘密

http://www.csdn.net/article/2012-05-15/2805581

1392
来自专栏大数据文摘

微信技术总监周颢:一亿用户背后的架构秘密

3334
来自专栏数据和云

DBA入门之路:关于日常工作的建议

今天上午在恩墨学院进行了一个简短的分享,引用了多年前我的一页PPT,其中记录了我对DBA日常工作的建议。 虽然这7点内容来自多年以前的总结,但是在今天仍然具有指...

3195
来自专栏ThoughtWorks

云与性能测试 | 洞见

近年来,随着云计算技术的发展和各种诸如AWS、GCP、阿里云等云平台的日趋成熟,越来越多的的用户选择把系统搭建在云端,因此云测试的概念随即产生。云测试看字面意思...

4998

扫码关注云+社区

领取腾讯云代金券