译: 进化的系统需要进化的系统工程

简介: > By James TurnbullInes Sombra March 20, 2018 > https://www.oreilly.com/ideas/the-evolution-of-systems-requires-an-evolution-of-systems-engineers 在过去的几周,我们一直在反馈从我们第一次站在职场时就在变化的工业技术。我们在寻找在两个不同的但是重叠

By James TurnbullInes Sombra March 20, 2018
https://www.oreilly.com/ideas/the-evolution-of-systems-requires-an-evolution-of-systems-engineers

在过去的几周,我们一直在反馈从我们第一次站在职场时就在变化的工业技术。我们在寻找在两个不同的但是重叠领域的变化:技术的变化与方法学的变化。我们大部分人第一次接触的系统是第一代的CS应用。它与它的上一代系统有很大不同:其通过控制台连接到一个运行在大型机或中型机的中心化应用。工程师像增强服务器一样学习它的客户端逻辑。连接性,传输的数据,安全,延迟与性能,客户端与服务器间的状态同步成为管理系统时需要考虑的问题。

复杂性的提高需要其对应的管理这些系统的方法与技能的提高。新类型的系统意味着新技能,理解新工具,框架,与编程语言。我们可以发现现在很多以前集中在一个角色的技能开始分散:前端工程师,后端工程师,数据科学家,设计师,UX/UI专家,还有其他专家。我们可以发现这个阶段建立了很多孤岛功能并且在转换这些孤岛间的复杂性。DevOps与SRE社区在试图消灭以上的孤岛。

从第一代CS系统,我们可以看到很大的变化。大部分是由于技术对于做生意至关重要-对所有行业的任何生意都是这样。这与客户要求快速在不同地理区域的设备上部署结合。举个例子,从街角录像带店租赁录像进化为在Netflix与Hulu上的流媒体。我们期望分发内容的延迟从小时或分钟降低到秒。我们期望内容分发可以24 7 365 天在我们所有地区的设备上:从我们的家和办公室到移动中。我们作为客户,不需要关心基础设施或系统达到此目的的复杂性:我们只想看新赛季的比赛。

每次进化都需要我们打造与管理所需的技术需要的技术,系统,技能变化。在大多数时候,这些变化引入了更多的复杂性:我们曾经管理CS系统需要的技能与知识与现代分布式系统需要的弹性,低延迟,高可用的需求有很大不同。所以,我们需要知道哪些我们之前不知道的呢?

重定义最小可用产品

作为从业者,我们要做得更好。由于可用性与弹性已经是主要考虑的问题,应用程序的最小可用产品需要被重定义。好的设计目标现在需要把包括基本的对于运维性,安全,性能与可观察性的架构目标。每个工程师,从在React组件上工作的前端工程师到在构建一个分布式数据集的后端工程师,需要考虑他们系统的小部分是如何影响整个系统的。

用户对性能的需要已经对计算模型与状态管理策略产生了新的限制。计算模型开始转向Serverless与边缘计算架构,期望能降低用户延迟。这是我们学到的新一课:计算节点越靠近用户越有效率。

对于状态管理也是这样。应用正在从最开始的分布式状态,共享存储,甚至数据迁移从中心存储向边缘或云计算升级。接近最终用户可以保证更快速的决策,但大大增加我们应用的复杂性。

每一处约束都代表工程师需要理解他们自己维护的部分与其他部分的变化可能对宏观系统造成的影响。当这些内容由于复杂性或缺乏对系统的深刻理解不能在心里建模掌握时,就需要用程序的方式来建模,如观察,插桩,追踪,测试。

我们现在已经不能使用简单的方式来监测故障或使用简单的方式来调试故障。复杂架构与分布式的应用,看起来很适合用探针,但可能对终端用户无法实现良好的性能。就算在观测事件与指标,由于不同系统间的相关性与平衡性,而且计算延迟在分布式系统中也不够精确,我们很难用传统方式获得一张全图。

应用的instrumentation在开发过程中已经是一个必选项而不是一种事后行为了。每个工程师都需要考虑如何清楚的表示他们系统的状态,性能与可观测性。这需要工程师学习与适应新技术来交付这些新的能力。

进化的技术生态

新的框架,架构,过程,一个成长的工具生态帮我们完成这些挑战。他们有些还处于孵化阶段,但会快速变成熟。我们已经看到了这种变革:只花了四年容器已经成为了主流技术,并且我们正在致力于使用类似kubernetes工具来支持复杂应用级别的抽象。部署上也有类似的变更正在发生,serverless,边缘计算技术,安全,性能与系统可观测性。

最后,没有变化能存在在人与组织之外。我们需要开发必须的领导技能去构建跨功能团队,并保证够构建这些系统所需的快速迭代。我们需要继续投入在DevOps与SRE社区来打破估到,无缝改造团队并提高开发效率。围绕快速交付高质量,安全与高性能应用的团队组织可以创造高创新性的产品与组织。

对于刚开始或正在路上的组织和行业从业者, O'Reilly's Velocity会议有一系列计划来帮助公司处理这些现代复杂性。来自于Google,Netflix,Microsoft,Amazon,Twitter,Nordstorm,Slack,Fastly的开发者与工程师会来分享他们的在构建,伸缩,加固分布式系统的成功与失败的经验。你会有机会学习,社交,欢笑,并与观众和行业领袖进行分享。

目录
相关文章
|
2天前
|
机器学习/深度学习 人工智能 监控
拥抱不确定性:在技术实践中培养适应性思维
【4月更文挑战第23天】 在快速变化的技术世界中,不确定性已成为常态。本文探讨了为何传统的、以确定性为中心的思维模式在现代技术环境中变得不再适用,并强调了适应性思维的重要性。通过分析多个技术领域的案例,文章揭示了如何在日常工作中培养对不确定性的接受能力,并提出了一种基于探索、学习和迭代的方法来增强技术人员的适应性。
14 5
|
8天前
|
消息中间件 前端开发 Java
从技术开始-技术路线选择
软件企业的核心是干开发,就得选好技术路线。现在开发语言那么多、技术框架也多如牛毛,需要根据业务范围、发展趋势限定一下
|
1月前
|
人工智能 量子技术 云计算
拥抱不确定性:技术演进中的适应性思维
在技术的不断迭代与演进中,不确定性是一个常驻的因素。本文通过探讨技术发展过程中的不确定性特征,强调适应性思维的重要性,并提出一系列策略以促进个人和组织在面对技术变革时的心理和技术准备。文章基于实际案例分析,阐述了如何在快速变化的技术领域中保持灵活性和竞争力,并给出了对未来技术趋势预判的见解。
|
6月前
|
存储 数据采集 机器学习/深度学习
克服大数据障碍的三种方法
克服大数据障碍的三种方法
|
8月前
|
运维 分布式计算 监控
蚁群智能进化:文档管理软件中蚁群算法的革命性应用
蚁群算法在文档管理软件中的运用主要体现在以下两个方面: 1. 蚁群算法在异常检测方面的应用:在文档管理软件中,需要实时监测和检测系统中的异常情况,例如突发的网络流量、CPU负载过高等问题。使用蚁群算法可以在复杂的监控数据中,快速地发现异常情况,并提供及时的预警和处理建议……
94 0
|
11月前
|
机器学习/深度学习 传感器 人工智能
第四范式陈雨强:企业智能决策的下一代技术「强化学习 + 环境学习」
第四范式陈雨强:企业智能决策的下一代技术「强化学习 + 环境学习」
159 0
|
存储 缓存 架构师
揭秘大型网站架构进化之路
揭秘大型网站架构进化之路
200 0
揭秘大型网站架构进化之路
|
存储 数据采集 SQL
企业利用所有数据必须克服的五大挑战
企业利用所有数据必须克服的五大挑战
116 0
|
供应链 搜索推荐 数据管理
【观点】传统企业如何在数字化时代实现进化?
我们看到的数字化的大多数场景集中于日常商业消费活动,背后其实是超越个体行为的场景变革。 究竟是谁在承载这个时代一步步走进数字化场景?又是谁通过数字化技术与解决方案帮助他们实现场景变革?这个过程是什么样的?
15575 0
【观点】传统企业如何在数字化时代实现进化?
|
机器学习/深度学习 存储 数据采集
3个因素看透 AI 技术架构方案的可行性
人工智能这几年发展的如火如荼,不仅在计算机视觉和自然语言处理领域发生了翻天覆地的变革,在其他领域也掀起了技术革新的浪潮。无论是在新业务上的尝试,还是对旧有业务对改造升级,AI 这个奔涌了 60 多年的“后浪”,正潜移默化的影响着我们传统的技术架构观念。
768 0
3个因素看透 AI 技术架构方案的可行性