写点什么

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:002145
用户头像

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

关注

评论

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

28天读完349页,这份Alibaba面试通关手册,助我

Java 程序员 后端

4个实验,彻底搞懂TCP连接的断开,实战nginx张宴

Java 程序员 后端

avatar Logo,nginx负载均衡算法及原理

Java 程序员 后端

CentOS部署Harbor镜像仓库,java进阶训练营百度网盘

Java 程序员 后端

6月GitHub上最牛逼的10个Java开源项目,号称“Star收割机

Java 程序员 后端

BAT大厂Java面试必备:20道最新JVM面试题(含答案

Java 程序员 后端

Binder源码阅读指南之java层,Java程序员如何有效提升学习效率

Java 程序员 后端

MacBook M1 搭建OpenVINO环境

IT蜗壳-Tango

OpenVINO MacBook M1 10月月更

6年拉力工作经验,学了阿里P8级架构师的7+1,java基础学习百度云

Java 程序员 后端

95% 的算法都是基于这 6 种算法思想,大厂Java面试必考点

Java 程序员 后端

apiserver源码分析——启动流程,java工程师技术栈

Java 程序员 后端

apollo在Spring boot加载过程解析,redis单线程原理

Java 程序员 后端

30张图带你分析:spring事务源码,mysql基础教程视频

Java 程序员 后端

5种可能在10年后消失的开发语言,java消息队列面试题

Java 程序员 后端

985应届进大厂,后端开发两年被裁,对前路迷茫的我

Java 程序员 后端

as-if-serial规则和happens-before规则的区别

Java 程序员 后端

CDH+Kylin三部曲之二:部署和设置,java项目百度网盘

Java 程序员 后端

21道Java基础面试题及答案(1),linux系统管理技术手册

Java 程序员 后端

30岁程序员裸辞,闭关三月,拿下阿里字节百度等12家offer

Java 程序员 后端

97 道大厂 Java 核心面试题出炉,来试试看你会几道题?

Java 程序员 后端

架构实战营模块二作业

随风King

「架构实战营」

7年Java开发经验,面试20多家公司,砍下16个Offer

Java 程序员 后端

【架构实战营】模块二作业

liu🍊

20年IT农民工终于分享出了SpringCloud微服务架构实战文档,太强了!

Java 程序员 后端

浅谈如何实现自定义的 iterator 之二

hedzr

c++ stl Iterator 迭代器

4年Java开发经验,从传统公司裸辞之后足足准备了3个月,终于拿到美团

Java 程序员 后端

6 种事件驱动的架构模式,springboot入门书籍

Java 程序员 后端

CAS都不了解,你还怎么看J-U-C,下载量瞬秒百万

Java 程序员 后端

21道Java基础面试题及答案,Dubbo SPI及自适应扩展原理

Java 程序员 后端

90行代码,15个元素实现无限滚动,吃透这份Java高级工程师面试497题解析

Java 程序员 后端

Alibaba内部流行的“Java突击宝典”,springboot模块化架构

Java 程序员 后端

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