精益微服务工作坊第一期回顾

精益微服务工作坊系列目录

  1. 精益与微服务的关系:微服务理念、精益理念。工作坊的演示练习案例
  2. 微服务搭建秀,现场演示微服务框架:Java的Spring Boot、Docker、等
  3. 微服务测试驱动开发:微服务的验证测试。测试金字塔的缺失与改良
  4. 微服务接口开发与测试:契约测试以及集成。集成联调的灵活配置
  5. 微服务的DevOps:微服务底下的DevOps就是微DevOps
  6. 探讨微服务的质量属性:系统通常的质量属性在微服务下如何达成
  7. 微服务的实施:如何有效的落地微服务。遗留系统多又复杂怎么办

第一期 - 精益与微服务的关系,微服务搭建秀

由黄药师和雪峰发起的精益微服务工作坊系列上周日在 Thoughtworks 北京办公室交付了第一期成果,总共有20多个来自不同领域和公司的小伙伴参与到我们的活动中来,“汉”会议室都有点hold不住了。在这里对本次活动做一个回顾和总结,梳理一下整个活动主线和精彩片段,对尾声部分的反馈和精彩的讨论进行一下整理和汇总,以便更充分地去准备下一期的内容。

先来几张全景暖暖场

标题必须高大上

guide

雪峰在哪里?

2

黄博士在沉思

3

饿了的举个手

4

这个问题怎么这么难搞?

5

ICE Breaking

满满的套路啊,我们的活动属于workshop,这一步当然是要的了,每个小伙伴自我介绍,规则是介绍自己姓名爱好之前需要讲出你前面两位介绍者的姓名和爱好(原本是想全部串联,难度还是有点大,后面的小伙伴得累的半死啊),机(ji)智(zei)的小伙伴就有开始打小抄的了,我想说这是赤果果的作弊啊,下次要规定不准动手,只能动嘴。说到动情处都有好几个小伙伴直接就是“爱雪峰的旅行的爱看书的我”都出来了,基情四射啊。这就是这个环节精彩的地方,打破不熟悉的僵局,让大家迅速嗨起来,快速投入到后面的干货分享和实战中来。

装备破冰

考虑到大家带来的吃瓜工具型号,品牌差异比较大,我们的实战中用到的工具和环境又相对比较新,所以已经给大家准备好了vagrant 虚拟环境和项目文件,文件比较大5G多。原本是想通过airdrop互相传一下,结果因为各种原因折腾了比较长的时间,后期我们可以通过提前将环境通过云端分享给大家,这样就可以来之前就可以将环境搭建好了。

Thoughtworks 安利

此处省略1w字,请移步Thoughtworks

我们的支柱

实战环境说明

我们的所有服务和依赖已经打包到虚拟机镜像中,用vagrant加载后就可以run了


toolchain
  • vagrant + virtualbox 构建我们的虚拟机环境
  • spring boot 框架实现我们的微服务
  • gitlab-ce 搭建git仓库托管我们的代码和配置
  • jenkins 2 pipeline 作为CI服务
  • docker + docker compose + nginx + shell 作为简化版本的CD
  • shell 脚本实现红蓝部署

精益和微服务

微服务已经烂大街了,有不良的方法也有好的方式,那我们如何区分好坏呢?答案是精益思想,软件交付的改进目标就是缩短开发和交付的周期和节奏,并可以以持续的方式获得更好更快的反馈

lean + microservice + xp

你心目中的精益代表什么?

淘宝买家秀,祝贺黄博士瘦身成功!


lean

精益的根本是什么?

value

实战场景

背景

史密斯,team lead,负责实施某医院集团的产品,接触到Bahmni,希望采纳它们的SaaS医疗平台,此外还希望实现医疗服务的预约功能,他希望在精益快速稳定的基础上完成业务目标。

期望: 快速稳定的交付

在还没有考虑具体需求时,我们先要确保快速稳定的交付能力,如何做?我们需要什么样的工具链和方法论来来构建这样的快速交付能力?

  • 自动化测试 (没有自动化测试,你怎么对的起QA妹妹)
  • 持续集成 (没有CI,只有梦想,代码是没法自己变成可工作的软件)
  • 持续交付(交付部署点两下就可以去喝咖啡了,so easy)
  • 微服务(自我治理,高度模块化开发部署)
value

微服务是啥?

Martin Fouler 与 James Lewis 共同提出了微服务的概念定义:

  • 微服务是以单一应用程序构成的小服务
  • 自己拥有自己的进程和轻量化处理,服务依赖业务功能设计
  • 全自动的方式部署
  • 与其他服务使用HTTPs协议通讯
  • 同时服务会使用最小规模的管理能力(例如 Docker)
  • 服务可以用不同的编程语言和数据库来构建

一个微服务一般具有一下特征:

  • 服务独立性,自治性
  • 单一职责
  • 自我包含(自给自足)
  • 高度解耦
  • 高度弹性
  • 具体实现不可知
  • 并行可扩展并具有弹性
  • 定义良好的接口
  • 单个团队端到端的所有权

单体架构和微服务架构的区别

monolith vs microservice

微服务的利与弊

任何一个事物都有正反两面,微服务也不例外

  • 强烈的模块划分
  • 独立部署
  • 技术多样性
  • ...

  • 分布式
  • 最终一致性
  • 运行复杂度
  • ...

分布式计算的谬误

基本上每个人,当他们构建分布式应用时,都会做出以下八个假设,所有这些假设最后都证明是假的,从长远来看,都造成了你痛苦和黑暗的经历,都是过来人,谁还没点痛苦的经历呢,但是自己做的假设,爬也要爬到终点(自己拉的狗屎就得自己收拾)。

  • 网络可靠 (每天都有抽风的时候)
  • 延迟为零 (开什么玩笑,我一个大招还没放出去,人已经挂了)
  • 带宽是无限的 (土豪也没用)
  • 网络是安全的 (总有人在伺机而动)
  • 拓扑不会变化 (世界说变就变)
  • 有一个管理员 (自己从头干到尾,哪有什么管理员)
  • 运输成本为零
  • 网络是同质的

史密斯的练习之路

practise
Paste_Image.png

讨论和反馈

经过一整天的学习和操练,小伙伴们已经有点扛不住了,打住打住,大家开始讨论了,说说自己的感受,以及对活动的反馈。以下整理了讨论中比较集中的一些问题和简短的回复。

  1. 对于老旧遗留系统如何切入并做到微服务落地?
    这个有点难。
  2. SOA vs MicroService
    其实微服务才是对SOA的最好的诠释,厂商所谓的SOA就是在给你下套,绑定你,持续薅羊毛。
  3. 微服务的指导原则是什么?
    后期会有专题。
  4. 好的REST API设计规范是怎样的?
    可以参见amazon和微软的设计准则。
  5. 想推进微服务,如何说服团队接受并开始采纳?
    我们公司现在敏捷咨询不会再去谈敏捷和老的方法论的区别,直接开整,为什么?因为只有客户他们意识到并理解了敏捷才需要专家来做咨询,需要时间,但好的东东值得等待。get到要点了吗?
  6. 现有团队能力和学习曲线陡峭如何克服?
    世界上最苦逼的什么职业?(小伙伴回答:程序员,程序员),有人拿枪逼着你做程序员吗?没有吧,那你为什么要做?学习是一辈子的事情,这是基本能力。没有这个就不要想其他的了。
  7. 微服务拆分是否意味着后期团队的组织结构划分?
    微服务只是一种架构上的设计方法,并不会导致组织结构划分。
  8. 如何合理去界定微服务的边界?
    这就要用到DDD,还有Event Storming方法论了,基于业务。
  9. 微服务对ops团队带来的挑战如何克服?
    简单粗暴,把他们拉下水,当他们看到有rancher,docker,jenkens,ELK这样的好东东在辅佐他时,他就会着迷。

致谢

本次活动由我们Thoughtworks同事黄药师(黄博士)、吴大师(雪峰)发起,美女同事张婷,海侠全程支持,还有我们几个小伙伴现场协助,请大家期待后续大招......

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 一、微服务将变得轻量级 架构需要由人去设计,这些人被称为架构师。或许很多人并未授予架构师的头衔,但自己却从事着架构...
    justmilkrain阅读 5,411评论 10 109
  • “微服务架构”这一术语在前几年横空出世,用于描述这样一种特定的软件设计方法,即以若干组可独立部署的服务的方式进行软...
    ThoughtWorks阅读 16,887评论 1 71
  • 微服务最近非常流行,各大互联网公司纷纷采用微服务架构体系,微服务架构模式正在为敏捷部署以及复杂企业应用实施提供巨大...
    Sting阅读 9,050评论 0 57
  • 系统架构的演变 伴随着互联网的快速发展,Web应用系统从面向企业内部发展到面向市场用户,业务的日趋复杂以及用户量的...
    袁慎建阅读 3,446评论 0 12
  • 作者:禚娴静 这两年,微服务架构火了。在国内,从消费级互联网应用,到企业级应用;从金融领域,到电信领域;从新开发系...
    ThoughtWorks阅读 1,118评论 0 8