写点什么

O’Reilly 软件架构大会第二天要点概述

  • 2016-04-22
  • 本文字数:2591 字

    阅读完需:约 9 分钟

O’Reilly 软件架构大会的第二天从 The Home Depot 高级架构师 Christopher Grant 的主题演讲开始,他演讲的题目是“走向微服务:HomeDepot.com 如何转变”。The Home Depot 第一个面向客户的 Web 页面是在 1996 年部署的,自此以后,他们的 Web 网站和软件应用资产已经实现了大幅的增长。新老技术 & 应用程序的整合导致了日益延长的提前期和脆弱的部署。他们转而采用一种敏捷的工作方法,定义职责的“领域空间”,利用持续集成实践极大地减少了冲突。2015 年,The Home Depot 技术团队全面采用了云和微服务,那对架构提出了新的挑战。

为成功实施重大架构调整,Grant 提出了四条建议:制定规划、了解目标、选取重点、分步实施。进一步的建议包括:“分析和定义边界”——清楚定义业务产品和领域(及相应的数据模型和人员结构),绘制责任地图;“架构设计要考虑变更”——设法预见未来的变化(在可能的情况下),预计(但要最小化)未来的工作;“落实安全措施”——尽早自动化,根据情况尝试就地升级和全新的做法(没有哪种方法适合所有情况)。最后的建议是 Grant 从实际的工作中学到的,包括利用功能开关和流量阀门限制和控制问题,鼓励团队之间互相独立——不要过分依赖集中指挥。

在实施重大架构调整时:制定规划、了解目标、选取重点、分步实施。

Chip Childers 是 Cloud Foundry Foundation 的技术副总裁,他做了上午的第二场主题演讲,题目是“迈向云原生:这需要一个平台”,他认为,采用一个“平台”是创建“云原生”和基于微服务的应用程序的关键。平台应该简化软件开发的流程,提供开发模式和流程,管理横切关注点,如安全和日志,高度自动化,并易于扩展。那些已经按照“十二要素应用”原则设计,或者作为微服务系统构建,或者已经打包在容器中的应用程序特别适合如今的平台即服务(PaaS)产品,比如 Cloud Foundry Heroku OpenShift

Childers 表示,他建议使用一个平台,“不只是跟技术有关”——经济上也经过了充分的论证。恰当的平台有助于“工业化软件开发工艺”,他还讨论了“节拍时间( Takt time )”的概念,这与使用平台标准化特定的操作(比如部署)所带来的好处有关。节拍时间来源于德语词汇 Taktzeit,是指“开始生产一个单位到开始生产下一个单之间的平均时间,这些生产起点的设置与客户需求的速度相匹配”。Childers 在总结中讲到,平台约束了软件系统,但“恰当的约束在最重要的地方释放了我们的创造力”。

在最后题为“让痛点可见”的开幕主题演讲中,New Iron 首席技术官兼 Open Mastery 创始人 Janelle Klein 介绍了“Idea Flow”学习框架,该框架提供了一种度量开发者冲突的策略,可以让问题可见。Klein 指出,传统的软件开发过程常常遵循一种在各组织中普通存在的消极重复模式,从“各类问题,到痛苦的发布,再到系统抖动,最终项目崩溃”。显然,必须改变使用的策略,必须让软件开发的“痛点”更加可见。不过,这里有两个主要的障碍——第一个是“管理层”通常说一种与“工程师”不同的语言(即管理层和开发团队之间的“无明墙”),第二个是开发人员所做的改进经常毫无作用。

Klein 指出,在软件开发过程中,导致大多数痛苦和“冲突”的问题通常是“人的因素”,而不是人们常常怀疑技术债务。

可以说,软件开发最困难的部分是“准确确定需要解决的问题”,但许多组织都没有一种有效的方法来处理这个问题。 Richard P Rumelt 曾经说过,“一个良好的策略是对发展阻力的一种明确而一致的反应(和克服方法)”,Klein 问与会者,我们现在使用的策略,在识别和消除由“高质量代码、低技术债务、易维护的代码和良好的代码覆盖率”所带来的冲突和痛苦时,是最好的吗?他在演讲结束时发出呼吁,在让软件开发的痛点更加可见(和可控)方面,“作为一个行业整体,我们要一起学习和分享”。关于他在演讲中提到的想法,可以查看 Leanpub 图书“ Idea Flow:如何度量软件开发之痛”来了解更多信息。

Mark Bates 是 Meta42 Labs 的创始人兼首席架构师,他介绍了“微服务的反面”,并详述了他的经历,从使用基于 Go 的微服务和 Angular.js UI 为一家创业公司构建一个全新的 Web 应用程序,到最终将整个代码库改造成一个 Ruby on Rails 单体应用。他向软件开发团队传递的关键信息有助于企业寻找合适的产品市场组合,然后尽可能做最简单的事。Ego 可能会驱使开发人员选择“最新最好”的技术和架构风格,比如微服务,但 Bates 发现,对他而言,最小化开发应用程序所需的认知“范围”是最重要的价值,因为他业余时间要忙于创业公司的工作。采用基于 ROR 的单体架构,可以最小化所需的活动组件和编排。

由于我是兼职做软件开发,所以我希望最小化变更所需的 [认知] 范围。在这种情况下,RoR 单体架构是最好的选择。

James Stewart 是 UK Government Digital Service 的技术架构主管,他演讲的题是“作为教练的架构师”。他在演讲开始时断言,“大 IT”的时代已经结束,如今的架构师和开发人员(而不是供应商)有很大的权力,他们必须负责任地行使这种权力。Stewart 认为,由于全部公共和私人部门的技术所普遍具有的特性,“软件现在就是政治”,相应地,架构决策会产生广泛的影响。Stewart 提出了一个问题,就是作为组织的“高级技术负责人”意味着什么,对此,他表示,你的职责范围通常不限于培训,该角色的职责一般是纵观全局,推动组织沿着正确的方向变革。这个职位的一项关键技能是,对于组织的方方面面,知道提出什么问题,而且要明白,没有高层的支持,变革目标无法实现。

下面是贯穿整场的 7 个推动变革的关键点:

  • 了解受你影响的人;
  • 影响有影响力的人——大多数高层领导通常都非常忙,很难接近并影响他们。不过,他们一般由一个团队协助,这些人比较容易接近和影响;
  • 提早交付价值,并理解这样做的价值——争取快速反馈;
  • 找出共同的参考点和原则;
  • 说他们的语言——理解高层领导,并务必使用与他们相同的词汇和术语描述问题;
  • 要接受变革需要时间的现实,不能自以为是;
  • 让团队同你站在一起。

关于在纽约举行的O’Reilly 软件架构大会的更多细节,可以在大会网站上找到。 O’Reilly 软件架构大会的其他活动将于 2016 年 10 月 18~21 日(提案征集截止日期5 月2 日)和11 月13~16 日(提案征集截止日期6 月1 日)分别在伦敦旧金山举办,相应提案征集页面现在已经可以使用了。

查看英文原文: Key Takeaways from the O’Reilly Software Architecture Conference: Day Two

2016-04-22 19:001475
用户头像

发布了 1008 篇内容, 共 387.9 次阅读, 收获喜欢 344 次。

关注

评论

发布
暂无评论
发现更多内容

“天翼云杯”厦门软件开发大赛开赛 为开发者提供“沃土”

Geek_2d6073

一步一图带你深入理解 Linux 物理内存管理

bin的技术小屋

内存 内存管理 Linux Kenel 内核 内核源码

南京等保测评公司有哪些?一共有几家?

行云管家

等保测评 等保备案 等保整改 南京等保测评

行业首个测试开发技术大赛开始报名啦~ 10万现金奖励等你来挑战

霍格沃兹测试开发学社

源自双11混部实战,Koordinator 如何保障应用服务质量?

阿里技术

云原生 混部技术

当Kubernetes遇见Macvlan——网络互通

陆云

【C语言】return 关键字

謓泽

11月月更

背完这3套Java面试题,年后offer接不停

钟奕礼

Java java面试 java编程 程序员java

栈简介、手撸顺序栈、手撸链栈和栈的应用

C++后台开发

数据结构 后端开发 linux开发 C++开发

中国互联网大会天翼云展区大揭秘!

天翼云开发者社区

瓴羊Quick BI在线电子表格,数据分析人员高效工作“神器”

巷子

【iOS逆向与安全】frida-trace命令大全

小陈

iOS逆向 ios安全 Frida ios 开发

二面美团,有惊无险已拿offer,不得不说“太难了”

钟奕礼

Java 程序员 java编程 Java 面试题

Jenkins + Docker 一键自动化部署 Spring Boot 项目

小小怪下士

Java Docker jenkins springboot

java面试之经典算法篇

钟奕礼

Java java面试 java编程 程序员 java

涨薪跳槽利器!清华大佬总结的Java核心突击讲,一应俱全

钟奕礼

Java java程序员 java面试 java编程

Docker搭建harbor私有镜像仓库(命令行模式)

A-刘晨阳

Docker Linux 运维 11月月更

Linux中安装/部署docker-compose

A-刘晨阳

Docker Linux 运维 Docker-compose 11月月更

鲲鹏开发者创享日杭州站:你想知道的所有精彩都在这里了

Geek_2d6073

腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

钟奕礼

Java 程序员 java面试 java编程

Serverless 架构下的 AI 应用开发

阿里巴巴云原生

阿里云 Serverless 云原生

如何平衡客户和用户的诉求冲突?

QualityFocus

产品经理 需求 产品需求

2022年中国母婴新消费市场专题分析

易观分析

母婴 消费市场

把Mybatis Generator生成的代码加上想要的注释

京东科技开发者

maven IDEA 代码注释 MyBatis标签 Generator

从 NASL 说开:低代码编程语言能饭否

石臻臻的杂货铺

11月月更

Linux中基于Docker搭建harbor私有镜像仓库(超级详细)

A-刘晨阳

Docker Linux 运维 Harbor 11月月更

数字先锋| 随时随地云端阅片,“云胶片”时代来啦!

天翼云开发者社区

AI机器学习模型部署的典型策略

Baihai IDP

人工智能 AI MLOps 模型部署

LeetCode题解:938. 二叉搜索树的范围和,递归,JavaScript,详细注释

Lee Chen

JavaScript 算法 LeetCode

双机热备与集群的区别分析-行云管家

行云管家

高可用 双机热备 双机

PID和TID的区别

源字节1号

APP开发 低代码开发 小程序开发 网站开发

O’Reilly软件架构大会第二天要点概述_架构_Daniel Bryant_InfoQ精选文章