草庐IT

云计算的成功有赖于IT的转型

计算机世界 2023-03-28 原文
当身为 CIO 的 Neil Holden 将他所在的 Halfords Group 公司进一步推向云端时,他所要做的不仅仅是简单的将IT运营进行“ lift-and-shift ”而已。

相反,像大多数 CIO 一样,Holden 希望自己越来越多地应用云来实现和塑造公司的转型规划。为了成功实现这一目标,他知道他不仅要改造技术,还要改造自己的 IT 部门。

他说:“无论采用何种云技术,你都必须审视自己的 IT(部门)结构。IT 现在必须以非常不同的方式运营,这不仅仅是因为云,而是因为云对业务的意义。”

因此,自 2017 年起担任英国最大的汽车和自行车产品及服务零售商 Halfords 公司 CIO 的 Holden,制定了一项重组技术团队的战略。他在设计公司的整体云战略时就已经这样付诸实施。他认为这是确保员工能够抓住云提供的能力和云带来的商机的最佳方式。

他说:"你必须有一个合适的团队来实现这个目标,因为如果你只是把你的东西塞进云里,你就不能最充分地利用这些投资。”

CIO 与研究人员、咨询人员和顾问们一致认为,如果想从云计算中收益最大化,IT 部门必须改变自己,也就是改变自己的工作方式和团队成员的组织方式。否则,IT 部门只是把服务器的位置从自己的数据中心移到了别人的数据中心,就有可能错过云计算所带来的创新、转型和快速进入市场的机会。

Tata Consultancy Services 负责云转型的副总裁兼北美主管 Sushant Tripathi 表示:“你不可能带着同样的技术、不变的团队内直接迁移到云上。这么做其实就是你失败的开始。相反,为了利用云计算提供的所有功能,CIO 需要重新培训并重组 IT 部门。”

下面有四位 IT 领袖详细介绍了他们在这方面采取的行动。

抛开线性流程

Holden 的重组部分侧重于消除线性软件开发、线性项目过程和适应线性方法完成工作的部门团队结构。他说:“我们彻底改变了我们的结构。”

以前,Halfords Group 的 IT 职能部门是按照惯例组织的,其结构是由业务分析、解决方案设计、基础设施等独立团队组成。在这种组织下,工作从一个团队转移到下一个团队。

他解释说:“有人会和业务部门交谈,把需求交给设计团队,然后再移交给交付和基础设施团队。这些团队独立工作,他们之间要达成协议,明确每个团队的交付成果和时间表。现在,所有这些工作都发生在一个迭代交付的敏捷循环里,所以线性过程都被打破了。”

Holden 聘请了云计算架构师,他们为 Holden 采纳的敏捷方法带来了云计算集成经验和培训。他还对现有员工进行了云技能和敏捷方法的培训,还聘请了敏捷教练来与他的 IT 团队合作。然后,他将这些不同的独立团队打散,创建了由产品所有者、业务分析师、解决方案架构师、前端开发人员、后端开发人员和测试人员组成的 Scrum 团队。

新的 Scrum 团队以迭代方式工作,而不是以线性方式工作,以加快新功能和特性的交付,使 IT 部门乃至整个企业能够充分利用公司的云投资。

Holden 表示:“这种变化的一个重要环节不仅仅是云本面,而是改变人们的心态和思想。因此,我们在培训方面投入了大量的精力。”他在 2021 年下半年做了一次干净彻底的转变。

Holden 认为这次变化的价值在于他的团队有能力更迅速地进行重组。他做过计算,如果一个项目由他改造后的IT团队在 42 天内创建和部署,而旧的 IT 部门则需要 152 天才能完成。

解锁云计算人才的核心

为能更好地抓住云计算提供的机会,Lev Gonick 作为 Arizona State University 的 CIO 也同样重新配置了他的 IT 团队。

Gonick 说,这种重新配置并不是一蹴而就的。十年前,Arizona State University 开始了它的云计算之旅,在 Gonick 于 2017 年成为 CIO 后,它对云计算的采用变得更具战略性和积极性。ASU 现在有大约 85%的工作负载都在云端。

Gonick 说,如果他的团队需要足够的灵活性来跟上业务需求的步伐,并随着大学的发展而扩大规模,就必须做出改变。Gonick 的解决方案是 “从根本上使组织扁平化”。

在疫情早期阶段他就决定进行变革。他说:“这对我来说是一场高风险的赌博。我们所做的不是打造垂直管理的团队,而是创建了一系列的‘核心’,这是大型软件开发商的模式。”

Gonick 说,这些核心代表了 “可迅速重新配置的人才库”,每个核心都专注于五个特定领域。他说,大多数团队和他们的工作是围绕着五个核心组织的,这些核心是围绕着一个共同的实践的专业发展社区。五个核心里有四个技术核心:工程、服务交付、产品和项目以及数据和分析。而第五个核心与学习经验有关。

产品和项目核心的管理人员将合适的人才组合在一起,在各项目组中工作,比如工程项目组就有 30 个。他表示:“我们这样做是为了确保我们的团队组织与云计算赋予我们的机会能保持一致。”他认为这种组织结构可以让 IT 专业人员通过在不同的项目上工作来拓展并锻炼他们的才能,“而不是日复一日地用同一套工具重复工作”。

他补充指出:“这确实事关如何释放人的才能。但大多数企业的技术团队都沉浸在等级森严的组织中,扼杀太多的人才。大多数专业人士拥有广泛的知识,但他们很少有机会去探索、分享并创建成果。我们的团队有机会作为一个专业社区成长,并高度参与其中。这个参与不仅是局限在技术人员间,而且是在与业务的互动上。”

集中团队实现云计算的成功

集中团队实现云计算的成功

与 ASU 一样,Liberty Mutual Insurance 在过去的 10 年中一直走在云计算的旅途上。从开始的试点尝试到 6 年前的全面投入。Monica Caldas 自 2018 年以来在公司担任其他两个 IT 主管职位,并于今年 1 月成为 Liberty Mutual 的执行副总裁兼全球 CIO。她指出说转移到云,因为它能够 “让我们快速进入市场,降低成本,并给我们灵活地开启和关闭功能的空间。”

Caldas 表示,在 Liberty Mutual 的整个云旅程中,IT 领导层一直致力于培养从内部环境转变为主要在云环境所需的人才和技能。“这是一场大规模的变革,每个人都有自己的角色。”

作为这一点的一部分,Liberty Mutual 的基础设施团队需要重塑,因为它不再需要维护多年来管理的大量硬件。相反,基础设施团队被转变为一个集中的数字服务部门,其全球使命是在整个公司内利用云功能。

Caldas 说,基础设施专业人员以前一直专注于与公司的业务部门合作并为其提供支持,“但他们没有一套完整的战略,没有一个关于他们发展方向的路线图”。在新的结构下,新的数字服务团队拥有全球性的任务。他们正在创建整个公司可以轻松访问和使用的可重复流程,这“给交付速度上带来了大大提升”。

此外,数字服务团队是集中式的,所以工作起来更有效率,并且可以节省成本。团队能够更有效地做到这一点,因为团队成员能够磨练他们的技能,完善流程,从而交付高质量的结果。

Caldas 表示:“我们的全球数字服务(GDS)团队是一个集中的职能部门,确保关键业务应用程序始终可用。Liberty Mutual 70% 以上的应用程序和基础设施都在公共云中运行,GDS 负责监督公司的全球云和 DevOps 架构和运营,帮助公司更快地工作。”同时,其他IT团队则专注于为业务需求提供解决方案。

Caldas 解释道:“我们的技术团队也专注于推动核心业务部门的成果,其使命是为客户、代理商、客户和合作伙伴提供与众不同的服务能力。”

类似地,Liberty Mutual IT 领导人还成立了一个集中的网络安全和运营弹性团队,该团队专注于确保“安全、稳定的系统”的全球任务

Caldas 补充道:“今天,我们作为一个全球组织,围绕着一系列战略、路线图和关于我们未来发展方向的愿景声明而团结一致。对于我们的客户、代理商、客户和合作伙伴来说,一切都是数字化的,我们的云之旅在如何将技术作为竞争推动者方面带来了全方位的发展。”

巩固团队,改善安全运营

Brad Stone 是 Booz Allen Hamilton 公司的 CIO。对于他来说,云能够快速提供所需的功能,并支持业务创新和转型。

他说:“我们已经组织好了自己,以确保我们能够利用这一点。”

这包括他如何对待他的安全战略,Stone 认为这个领域需要转型,以确保 Booz Allen 从其云计算投资中获得成功。

他说:“你必须在你的网络安全和你的IT运营团队之间打造牢固的基础。”他强调整个企业一致的安全运营有助于识别和减少风险。

Stone 同时还负责安全工作。他指出 Booz Allen 公司的安全运营以前是由三个基于基础设施的单位组成的:一个支持企业内部的基础设施,另一个支持云,还有一个支持公司的软件即服务平台。

Stone 说,尽管这三个团队都向一个领导汇报,但每个团队都在为自己进行优化,导致了各自为政和技术上的低效率。此外,每个平台之间的差异也意味着安全团队需要做更多的工作来管理和减轻风险。事实上,它培养了 “一种传统的思维方式”,以及一种支离破碎的安全思想。安全部门认为自己需要某些工具用于 on-prem,其他工具用于 SaaS,还有其他工具用于商业云。

Stone 说:“我们在共同性和共同的可见性方面遇到了困难,我们的客户流失太多。”因此,他将三个基础设施团队整合为一个综合的基础设施和计算团队,因此“这不是内部部署与云计算对立的问题了”,而是“使之成为一项团队工作”。原来三个团队的工作人员接受交叉培训,以打破孤岛,作为一个能够支持 Booz Allen 公司现有的各种类型的基础设施有凝聚力的新团队共同工作。

这项整合工作花了大约 8 个月的时间,开始于 2021 年一直持续到 2022 年。整合后的基础设施和计算团队使 Stone 能够实现安全操作的现代化,以更好地适应公司的混合技术环境。

Stone 表示:“我们的安全团队可以更好地整合,”他说。因此,它可以解决整个基础设施环境中的三个问题,而不是针对每个单独理台的可用性、可靠性和保密性要求的安全操作。这使安全更加有效和高效。比如,假设你有一个开源软件的关键漏洞。当你让不同的基础设施单独运行,并且在它们之间创建了一些通道时,你就很难以有效的速度反应,发现和补救。”

但是,通过将这三者合并为一个综合的基础设施团队,安全部门就能够在整个系统中使用通用工具、单一的IT服务管理解决方案和统一的配置管理数据库,从而提高了及时发现和应对安全问题的能力。


有关云计算的成功有赖于IT的转型的更多相关文章

  1. ruby-on-rails - rails : save file from URL and save it to Amazon S3 - 2

    从给定URL下载文件并立即将其上传到AmazonS3的更直接的方法是什么(+将有关文件的一些信息保存到数据库中,例如名称、大小等)?现在,我既不使用Paperclip,也不使用Carrierwave。谢谢 最佳答案 简单明了:require'open-uri'require's3'amazon=S3::Service.new(access_key_id:'KEY',secret_access_key:'KEY')bucket=amazon.buckets.find('image_storage')url='http://www.ex

  2. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  3. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  4. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  5. ruby - 如何计算 Liquid 中的变量 +1 - 2

    我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我

  6. ruby - 使用 Ruby,计算 n x m 数组的每一列中有多少个 true 的简单方法是什么? - 2

    给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in

  7. ruby - 你会如何在 Ruby 中表达成语 "with this object, if it exists, do this"? - 2

    在Ruby(尤其是Rails)中,您经常需要检查某物是否存在,然后对其执行操作,例如:if@objects.any?puts"Wehavetheseobjects:"@objects.each{|o|puts"hello:#{o}"end这是最短的,一切都很好,但是如果你有@objects.some_association.something.hit_database.process而不是@objects呢?我将不得不在if表达式中重复两次,如果我不知道实现细节并且方法调用很昂贵怎么办?显而易见的选择是创建一个变量,然后测试它,然后处理它,但是你必须想出一个变量名(呃),它也会在内存中

  8. arrays - 计算数组中的匹配元素 - 2

    给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at

  9. ruby - Chef : Read variable from file and use it in one converge - 2

    我有以下代码,它下载一个文件,然后将文件的内容读入一个变量。使用该变量,它执行一个命令。这个配方不会收敛,因为/root/foo在编译阶段不存在。我可以通过多个聚合和一个来解决这个问题ifFile.exist但我想用一个收敛来完成它。关于如何做到这一点有什么想法吗?execute'download_joiner'docommand"awss3cps3://bucket/foo/root/foo"not_if{::File.exist?('/root/foo')}endpassword=::File.read('/root/foo').chompexecute'join_domain'd

  10. ruby-on-rails - 如何计算 Ruby/Rails 中 JSON 对象的数量 - 2

    Ruby中如何“一般地”计算以下格式(有根、无根)的JSON对象的数量?一般来说,我的意思是元素可能不同(例如“标题”被称为其他东西)。没有根:{[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]}根包裹:{"posts":[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]} 最佳答案 首先,withoutroot代码不是有效的json格式。它将没有包

随机推荐