InfoQ Geekathon 大模型技术应用创新大赛 了解详情
写点什么

Kief Morris: 实现基础设施即代码

  • 2016-06-19
  • 本文字数:1171 字

    阅读完需:约 4 分钟

将应用程序迁移至云端在不知不觉中已经走向普及化、商品化,不仅仅是大企业可以实现,对于注重应用程序灵活性和资源应用的小企业,这也是一项很好的选择。在 QCon New York 2016 大会上,ThoughWorks 公司云实践领导人 Kief Morris 给出了题为“实现基础设施即代码”的演说,他分享了如何充分利用基于云端的基础设施的一些关键原则和建议。

为了引出后面的讨论,Morris 首先阐述了使用云基础设施的动机和挑战。通常情况下,公司会着重于速度——用最快速度获得一个最小化可行的产品投放于市场,之后再慢慢改进它。云技术为这种做法扫除了很多障碍,但与此同时仍然存在一些风险,比如在安全性、性能或是稳定性方面的风险值得大家注意。

总体目标必须在提高速度的同时,仍有所保留。需要快速修复一切会影响产品质量的东西,而不是在故障发生之后再进行修复,并且在最后拿出的是总体质量很高的产品。

Morris 接着提出了,仅仅用鼠标点击搭建服务器还是远远不够的。这往往会导致产生大量服务器,并造成配置漂移。由于不一致的服务器很难自动化维护,要维护这些服务器需要手动完成,这就会造成更多的不一致。

基础设施即代码就是在这种环境下引入的,它可以解决这些问题,并搭建严格定义的服务器:使用类似 Puppet 或者 Chef 工具的“无人自动化”模式。这些工具可以按进度自己运行,而不需要人工介入做出修改。在底层模板和配置,即使是很小的问题也需要得到妥善修复,最后才能产生不变的或是高度集成化的服务器,而不需要手动维护。在不同环境下搭建服务器的时候也必须借鉴这个方法。尽可能多地在不同阶段重复使用模板和配置。

自动化操作节约了大量人力劳动,Morris 还提到了使用持续交付对于软件质量保证起到很大的作用。通过自动化交付,引入管道化步骤检验服务器配置的正确性,保证每一个安全要求都得到满足,所以在最终产生产品之前,每一个变化都会在不同阶段进行测试。通过使用自动化手段,可以有效地管理过程。

Morris 讲述了更多的优势,但是它还是有一些缺点缺陷的。正如在其他被多个团队开发和维护的系统一样,你必须关注到其中的整合点、瓶颈以及相互之间的依赖。比如说,你需要提供为服务测试实例并利用消费者或是合同来促进测试,这可以确保所有服务按照计划合作工作。如果部分的模板或是配置像共享库一样使用,在交给其他团队之前还需要进行彻底测试。

Morris 在最后还是强调了人们从自动化开发系统中可以获得的根本利益:

  • 快速发展和准备
  • 毫不费力地修复错误
  • 保持服务器一致性
  • 专注于创造的价值

请注意,很多 QCon 大会的演说会在会后几周内在 InfoQ 网站上免费提供。

查看英文原文 Kief Morris: Implementing Infrastructure as Code


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2016-06-19 19:001282
用户头像

发布了 218 篇内容, 共 62.6 次阅读, 收获喜欢 73 次。

关注

评论

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

如何提升Hadoop访问对象存储US3的效率?我们做了这些技术实践

UCloud技术

大数据 hadoop

架构实战营模块4作业

Vic

架构实战营

如何将BSP应用配置成Fiori Launchpad上的一个tile

Jerry Wang

SAP abap Fiori SAP UI5 bsp

架构实战营-作业四

大可

如何根据日志来了解一个请求经历了什么?

我爱娃哈哈😍

软件架构 架构设计 架构实战

☕【Java技术之旅】从底层角度去认识线程的原理

洛神灬殇

Java 线程 Thread 线程协作 5月日更

SAP Fiori Launchpad Tile点击后跳转的调试技巧

Jerry Wang

JavaScript SAP Fiori SAP UI5

双峰哲学 - 一种深度工作的哲学

石云升

学习 职场经验 5月日更

Python 持久化 - 文件

若尘

文件 持久化 持久化存储 5月日更

SAP 不同 ABAP 系统里同一 Customizing activity 的显示差异分析

Jerry Wang

CRM SAP ERP abap 定制化

开发中Docker常用容器记录

Docker

模块四-千万级学生管理系统试卷存储方案

华仔架构训练营

自我复盘

lenka

5月日更

基于Mac的手动搭建WordPress个人站点的方法

三掌柜

5月日更

Shell脚本-简单爬虫

追风的少年

Go 并发编程-goroutine 初体验

Rayjun

Go 语言 goroutine

C4C Cloud Application Studio做ABSL开发的一些性能方面的最佳实践

Jerry Wang

Cloud CRM SAP C4C

如何在SAP CRM WebClient UI里创建HANA Live Report

Jerry Wang

CRM SAP WebClient UI

找出 SAP OData service出错根源的小技巧

Jerry Wang

SAP Fiori SAP UI5 OData

ORACLE数据库应用开发三十忌

老猿Python

数据库 oracle 程序开发 数据库应用开发

MySQL主从网络延迟解决方案

运维研习社

MySQL 运维 主从同步 5月日更

和另一半过不一样的520

小英

520单身福利 520 单身福利

SAP Fiori 应用 Footerbar 区域按钮的高亮显示逻辑

Jerry Wang

JavaScript SAP Fiori SAP UI5

编辑器的江湖

ES_her0

5月日更

架构学习笔记:读写分离

风翱

架构 5月日更

高性能 JavaScriptの五 -- 快响应用户界面

空城机

JavaScript 大前端 5月日更

Go 并发编程 — 深入浅出 sync.Pool ,围观最全的使用姿势,理解最深刻的原理

奇伢云存储

并发编程 云存储 Go 语言

再谈前端性能监控及4个最佳工具分享

devpoint

大前端 sentry

Inner Join, Left Outer Join和Association的区别

Jerry Wang

SAP abap ST05

🚄【Redis 干货领域】帮你完全搞定 Cluster 原理(实践篇)

洛神灬殇

redis redis集群 redis cluster 5月日更 redis架构

设计千万级学生管理系统的考试试卷存储方案

9527

  • 扫码添加小助手
    领取最新资料包
Kief Morris:实现基础设施即代码_DevOps & 平台工程_Ralph Winzinger_InfoQ精选文章