
我们生活在被软件吞噬的世界,而在软件构建领域,几乎每年就会出现一波浪潮。今年,平台工程仿佛成为了一个“新贵”,Gartner 10月发布的2023年十大战略技术趋势中,平台工程就位列其中,它的目的在于为负责构建产品和服务的开发团队提供所依赖的通用共享服务,从而让开发更聚焦于开发,运维聚焦于运维。
平台工程不是第一次尝试解决构建和运行软件方面的普遍难题,也几乎肯定不会是最后一次。之前就有敏捷、DevOps、站点可靠性工程(SRE)和数字化转型,目标宏伟,但结果好坏不一。软件解决方案带来了新问题,许多问题由急切的供应商通过提供带来新问题的解决方案来解决。平台工程试图驾驭创新、采用、碎片化和停滞这个无休止的循环,从而满足不断进步的需求。
支持开发项目需要工具,同时保持工程师的高效工作。期望应用程序开发团队运行所有东西不切实际。因此,很多企业团队选择组装一套第三方服务和开源系统,并添加了其他非开发人员以保持系统运行。无论构建什么样的应用程序,都在一个平台上编写它们。
需要一个起点来构建软件。你可以采用数据库、消息队列、容器编排、操作系统和各种开发者工具等框架和工具来搭建应用程序运行的“堆栈”或环境。但特例和偏好会破坏统一性,导致碎片化。因此需要在易维护性和灵活性之间保持微妙的平衡,从而在保持简单易懂的整体环境的同时又能让每个团队发挥所长。
划分构建和维护软件系统方面任务的简单二分法是分为开发(Dev)和运营(Ops)。开发为客户构建新的特性和功能,运营确保它们在发布后正确运行。
DevOps试图奉行“谁构建,谁运维”的理念,从而消除这种分裂。这种理念认为,通过将运营所有权交给带来软件错误的人(开发者),自然激励会迫使组织正视技术债务,一开始就构建更好的软件。
实践上的挑战在于,DevOps已成为介于Dev和Ops之间的第三个孤岛,处理双方都不想做或不能做的事情。尽管有观点认为“DevOps工程师”一开始就不该存在,但这个角色还是迅速流行起来。它指代这类人:处理搭建持续集成/持续交付(CI/CD)系统、将基础架构配置为代码、为新应用程序配置云环境以及竭力跟上Dev和Ops任何一方面不断出现的变化。
SRE概念理论上听起来不错,在适当规模和类型的组织中非常有效。达到足够的规模和复杂性后,确保可靠性本身就成了一项挑战。这个角色常常处理重复的操作任务,并通过采用或构建新的交付和生产力工具和流程来不断识别和消除“脏活”,从而使公司的整体系统逐渐更具竞争力。
实际上,许多组织在实现SRE的承诺时遇到了挫折。有时只是重新命名运营团队,而不改变技能组合或实施可以减少脏活的项目;或者给SRE团队进行改变的余地太小。费用上升(因为更高技能和分配预防性容量的成本高达四倍),而且投资回报多半值得怀疑。
对于试图在日益网络化的环境下站稳脚跟的老企业来说,数字化转型概念可能是个宏伟的目标,听起来就像将旧的家庭视频转换成MPEG文件,或扫描纸质合同、改用DocuSign。管理顾问乐于领导这些昂贵、缓慢又痛苦的项目,将组织带入云计算时代。代价高昂的数据泄露增添了暂时的动力,与全球系统集成商签署的多年协议也是如此。不过,数字化转型的最大外在驱动力是疫情,这最终迫使每个人都想方设法使用二维码来点菜。
“平台”这个词几乎意味着任何东西。首先,平台意味着可以在其上面构建产品。平台随时可供使用。除非组织可以将平台用于多种用途,否则它只是产品的一部分。平台为应用程序、工作负载、租户、运营商、开发者和客户(间接)提供服务。
大多数软件架构现在以“服务”为导向,这也意味着平台必须为服务而存在。可以说平台为在它上面构建产品的其他团队提供服务。
每当我们试图确定“平台”的确切定义时,会开始听起来像是营销噱头。我们可能谈论“计算平台”、“数字基础设施平台”,甚至是“云平台”。我们谈论的平台涵盖一些既模糊又具体的东西:人员、流程、工具、文档、知识、升级路径、供应商合同、SLA、期望、计划和成本结构,这些使组织持续关注平台。
我建议进行以下测试以确定我们是否到底在谈论平台:
平台通常包括的几类组件如下:
如果你的公司没有一个平台团队,那么你们就还没有平台意识。也许你期望供应商为你做一切工作,或者数字化转型顾问集成这些系统,以便无缝地运行,以降低风险、获得很高的投资回报。
值得注意的是,平台工程师已挺身而出。他们试图将文档编写糟糕的工具、服务、开源项目、巧妙的改动、待办列表和技术债务变成类似产品的东西。目标不是虚幻的(“生产力”或“可靠性”),而是务实的(“不妨构建人们想要使用的产品”)。
贵公司内部的平台好比推向市场的产品。你想构建贵组织想要使用的东西,因此用户会游说管理层,以确保资源持续不断。所以你需要关注负责重大任务的大型团队,你可以帮助他们加快行动、减少失败并高效运行。你必须了解内部客户的优先事项、痛点、建立规模经济的机会以及可持续的商业模式。你需要使平台易于采用,同时还考虑当前情况的实际限制。
平台采用产品理念可带来与采用 DevOps、SRE、数字化转型或敏捷全然不同的结果。现在有了人们想要使用的东西:平台,它可以减轻他们的负担,并让他们专心致志。他们不必担心云提供的所有细节,他们有一个基于平台的限制和决定的受限菜单。当然,没有人会纯粹为了平台而使用平台;团队必须赢得客户的信任和认可,否则他们只能将工作量带回家。
所有权可能根植于人类心理学,也可能是层次化管理结构的产物。在现实世界中,当你尝试运作重大项目时,就要知道谁在做什么,并相信他们会继续做下去。否则,整个组织会分崩离析。一旦没人知道组织结构图,纷争、指责、冷漠和跳槽很快接踵而来。
谷歌的SRE并不负责可靠性,他们大多将自己视为内部可靠性顾问。谷歌SRE试图帮助产品团队在设计系统时做出正确的选择。他们帮助设定服务水平目标(SLO),以确保可靠性目标已明确定义。也许最重要的是,他们推动团队一贯采用来自整个谷歌技术基础架构(可以称之为平台)的标准服务。SRE是平台即产品的客户成功团队。
平台工程潮流越来越盛。LinkedIn和Twitter上将“平台”添加到头衔中的人越来越多。CEO们将平台工程师视为主要客户。
当我试图更好地了解当下的形势时,我问了所有的SRE朋友他们对平台工程有何看法。每个人都会怀疑这是新瓶装旧酒,只是营销噱头。
不止一个SRE告诉我“实际上,我们是平台团队,而不是SRE团队。”我认识的以前在性能工程、安全和数据管理方面工作的朋友和同事都已经向平台工程转型。
我最喜欢平台工程的是所有权,最不喜欢的是平台工程在定义方面的模糊性,诸如在“平台是什么、不是什么”方面缺乏明确性。我对DevOps穷途末路和SRE一败涂地的说法持保留态度。DevOps工程师的工作仍然需要完成,即使换了新名字。想象一下平台团队在你的公司聚在一起,接管其他产品、应用程序和IT团队面临的常见问题,结果会如何。
平台不是一艘更快的船,而是上涨的潮水。
原文链接:
https://dzone.com/articles/the-rising-tide-of-platform-engineering
已经有一个问题回答了如何将“America/Los_Angeles”转换为“PacificTime(US&Canada)”。但是我想将“美国/太平洋”和其他过时的时区转换为RailsTimeZone。我无法在图书馆中找到任何可以帮助我完成此任务的东西。 最佳答案 来自RailsActiveSupport::TimeZonedocs:TheversionofTZInfobundledwithActiveSupportonlyincludesthedefinitionsnecessarytosupportthezonesdefinedb
为什么需要NFT市场?NFTMarketplace允许用户购买、出售、交易、查看或创建自己的NFT,就像他们需要一个市场来购买物理或数字世界中的大多数产品一样。几乎每个人都可以进入NFT市场,但要做到这一点,用户必须满足以下要求:一个NFT市场用户账户,允许您在给定平台上购买NFT。你需要一个与区块链兼容的加密钱包来购买NFT。NFTMarketplace非常重要,因为它连接了买卖双方,并为用户提供了多种工具来快速创建自己的NFT。艺术家可以在市场上列出要出售的NFT,买家可以通过投标过程探索市场并购买物品。NFT市场开发过程解释创建NFT市场是一个耗时的过程,需要编程知识和理解。那么搭建NF
日前,全球著名咨询机构IDC最新MarketScape报告《中国DevOps平台市场厂商评估,2022》正式发布,此报告中对中国主流DevOps云厂商分别从现有能力和未来战略维度两个层面对厂商进行评估,IDC对具有代表性的8家提供商进行了深度研究,他们分别是(按照拼音字母顺序):AWS、阿里云、百度、博云、华为云、京东云、微软、腾讯云(CODING)。华为云、阿里云和腾讯云CODING均在战略和能力两大维度表现强势,成功入席领导者(Leaders)位置。IDC MarketScape:中国DevOps平台市场厂商评估,2022华为云软件开发生产线DevCloud在市场份额和发展战略两大维度均排
在Ruby中是否有一种平台无关的方式将EOF符号写入字符串。在*nix中,我认为符号是^D,但在Windows中是^Z,这就是我问的原因。 最佳答案 EOF不是一个字符,它是一个状态。终端使用控制字符来表示此状态(C-d)。没有这样的事情是“读一个EOF字符”,写一个也是一样的。如果您正在写入文件,请在完成后将其关闭。看这个mailinglistpost:ItsoundslikeyouarethinkingofEOFasanin-bandbutspecialcharactervaluethatmarkstheendoffile.It
近年来,随着信息化时代的到来,三维全景拼接以视频监控领域为代表的智能硬件公司迅速崛起,随后全国各地在视频监控领域进行了大量的建设。但随着摄像头数量的增加,视频监控画面离散、庞杂、关联性差等诸多问题日渐凸显。如何优化现有视频技术,助力管理者或使用者有效、直观、准确地掌控现场实时动态,成为我国信息化前行路上面临的新课题。视频融合技术平台解决方案北京智汇云舟科技有限公司成立于2012年,专注于创新性的“视频孪生(实时实景数字孪生)”技术研发与应用。公司依托自研三维地理信息引擎(3DGIS),融合建筑信息模型(BIM)、视频监控(Video)、人工智能(AI)及物联网(IOT)等多种技术,并在此基础上
我的Rails应用程序通过了测试,但随后显示0%通过。它是一个转换为3.1的Rails3应用程序。5tests,11assertions,0failures,0errors,0pendings,0omissions,0notifications0%passed如果我生成一个新的Rails3.1应用程序,它没有这个“通过”行。1tests,1assertions,0failures,0errors,0skips两者都在1.9.2p290下运行。我尝试删除test-unit但这似乎没有什么不同,我认为没有其他突出的原因会导致它。我猜有些事情正在触发使用不同的测试运行程序。这些是为我的应用安
我正在开发一个只适用于JRuby平台的gem。如何在我的.gemspec中指定它? 最佳答案 你可以简单地输入gemspecspec.platform='java'表示它仅适用于JRuby。具体设置平台可以看一下:RubygemSpecificationReference 关于ruby-如何指定gem仅是JRuby平台?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/189366
对于类似Travian的在线策略游戏,我有一些(我认为)非常棒的想法。有些内容我还没有想通,还有一些我还不知道的挑战。这是一个相当大的项目,对于(还)不是熟练的Web开发人员的人来说可能太重了。我还是想试一试,但我在选择平台时遇到了麻烦。世界上的“规模”最近被抛得一团糟,我看到RubyonRails因规模不佳而受到抨击,所以我来这里是为了得到一些答案。我喜欢RubyonRails,无论是Ruby还是Rails。我当然不是这方面的专家,但我喜欢使用它。我之前也使用过Python+Django,也使用过PHP(我不喜欢它。)理想情况下,假设每个服务器有7000名玩家,大概每秒要处理大量数据
我厌倦了使用:tail-fdevelopment.log跟踪我的Rails日志。相反,我想要在网格中显示信息并允许我对每个日志消息进行排序、过滤和查看堆栈跟踪的东西。有谁知道用于显示Rails日志的GUI工具。理想情况下,我想要一个独立的应用程序(不是Netbeans或Eclipse中的东西) 最佳答案 Splunk,有一个免费版本,限制为500mb,但具有与完整版本相同的所有功能。 关于ruby-on-rails-有谁知道RubyOnRails的任何跨平台GUI日志查看器?,我们在St
在执行bundle安装时出现此错误;谷歌似乎是一个常见问题,但我似乎找不到解决方法(似乎是关于Gemfile.lock的建议,但我将该文件移到了另一个目录)#bundleinstallYourbundleonlysupportsplatforms[]butyourlocalplatformsare["ruby","x86_64-linux"],andthere'snocompatiblematchbetweenthosetwolists.这是我的Gemfile,目录中没有Gemfile.lock。[root@ip-172-30-4-16rails]#gem-v2.6.11[root@i