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

简介: > 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的开发者与工程师会来分享他们的在构建,伸缩,加固分布式系统的成功与失败的经验。你会有机会学习,社交,欢笑,并与观众和行业领袖进行分享。

目录
相关文章
|
23天前
|
人工智能 自然语言处理 自动驾驶
AutoGLM的一小步,人机交互进化的一大步
55年前,阿姆斯特朗登月时说:“这是个人的一小步,却是人类的一大步。”如今,这句话被用来形容智谱的AutoGLM。11月29日,智谱发布了AutoGLM Web、GLM-PC等产品,标志着AI从对话机器人进化为能自主执行复杂任务的智能体。AutoGLM能跨应用操作、执行超长任务,甚至支持“无人驾驶”上网,预示着人机交互新时代的到来。
|
1月前
|
传感器 供应链 数据挖掘
量子计算与环境保护:可持续发展的工具
量子计算作为21世纪的前沿技术,不仅在信息技术领域引发革命,还在环境保护和可持续发展方面展现了巨大潜力。本文探讨了量子计算在模拟复杂环境系统、优化能源利用、监测环境变化等方面的应用,以及面临的挑战和未来展望,揭示了量子计算在推动绿色转型中的关键作用。
|
3月前
|
机器学习/深度学习 物联网 大数据
软件测试的演变与未来:从传统方法到自动化革命
在数字化时代的浪潮下,软件测试作为保障软件质量的重要环节,其方法和工具经历了翻天覆地的变化。本文将带领读者穿梭时光隧道,探索软件测试的发展历程,从手工测试的繁琐与局限性,到自动化测试的高效与精准,再到未来可能迎来的智能化与集成化趋势。通过深入浅出的分析,我们将揭示如何通过不断进化的软件测试技术,提升软件开发的效率和质量,确保在这个快速变化的时代中,软件产品能够稳健前行。
|
4月前
|
机器学习/深度学习 边缘计算 人工智能
软件测试的演化之路:从手动到智能化
【8月更文挑战第6天】在数字化浪潮不断推进的今天,软件测试作为保障软件质量的重要环节,经历了从原始的手动测试到现在的智能化测试的转变。本文将探讨这一演变过程,分析其背后的驱动力和未来趋势,以及这些变化给软件产业带来的深远影响。
|
7月前
|
敏捷开发 持续交付 项目管理
【软件工程】走近演化过程模型:软件开发的不断进化之路
【软件工程】走近演化过程模型:软件开发的不断进化之路
|
5月前
|
敏捷开发 算法 搜索推荐
软件测试的演变:从传统方法到敏捷实践
本文深入探讨了软件测试领域的发展轨迹,从早期以代码为中心的测试方法,到今日强调快速迭代和持续集成的敏捷测试实践。文章通过分析历史数据、行业报告以及权威研究,揭示了测试自动化、跨功能团队合作以及质量保证在现代软件开发中的重要性。进一步地,本文还讨论了如何将科学严谨性融入测试过程,包括采用基于证据的测试策略、利用统计方法评估软件质量,并提出了逻辑严密的测试案例设计原则。
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
构建未来:人工智能在持续学习系统中的进化之路
【5月更文挑战第15天】 随着技术的不断进步,人工智能(AI)已成为推动现代科技革新的核心动力。特别是在机器学习领域,AI系统的能力正通过持续学习机制得到显著增强。本文深入探讨了AI技术在实现自我进化方面的最新进展,分析了持续学习系统的关键组成部分,包括数据获取、模型适应性以及算法优化等方面。同时,文章还着重讨论了在设计这些系统时所面临的挑战,如数据偏差、计算资源限制和伦理问题,并提出了可能的解决方案。
113 3
|
6月前
|
机器学习/深度学习 人工智能 jenkins
从传统到自动化:软件测试的进化与实践
在数字化转型的浪潮中,软件测试经历了从手工测试到自动化测试的重大变革。本文将探讨这种转变的背景、具体方法和实践应用,并展望未来可能的发展方向。通过实际案例和技术分析,揭示为何自动化测试成为现代软件开发不可或缺的一部分。
|
7月前
|
机器学习/深度学习 存储 人工智能
构建未来:人工智能在持续学习系统中的进化
【5月更文挑战第29天】 随着人工智能(AI)技术的蓬勃发展,机器学习模型正变得越来越复杂。然而,真正的智能不仅仅体现在完成任务的能力上,更在于不断学习和适应新环境的能力。本文将探讨如何通过创新的学习算法和系统设计,实现AI的持续学习,并分析这一进化对技术未来的意义。
|
7月前
|
人工智能 量子技术 云计算
拥抱不确定性:技术演进中的适应性思维
在技术的不断迭代与演进中,不确定性是一个常驻的因素。本文通过探讨技术发展过程中的不确定性特征,强调适应性思维的重要性,并提出一系列策略以促进个人和组织在面对技术变革时的心理和技术准备。文章基于实际案例分析,阐述了如何在快速变化的技术领域中保持灵活性和竞争力,并给出了对未来技术趋势预判的见解。
119 4
下一篇
DataWorks