在经济学中,稀缺的根本问题“具有人类[有] ...无限的希望和资源有限的世界需求”(见相关主题 )。 当资源稀缺时,人们就会争夺资源。 当人们可以访问传统软件项目上的环境时,对资源的竞争显而易见。

优点在于,由于硬件商品化,虚​​拟化和云计算,当在项目上使用适当的模式和实践(例如临时环境)时,这种竞争可以大大减少。 瞬态环境是寿命很短的环境,经常会终止。 需要明确的是,稀缺性永远不会消失,但是您会体验到无限容量的幻想 。 应用瞬态环境模式时,您会开始忘记它甚至是一种幻想。

关于本系列

开发人员可以从操作中学到很多,操作可以从开发人员中学到很多。 本系列文章致力于探索将操作思维方式应用于开发(反之亦然)的实际用途,以及将软件产品视为可以以比以往任何时候都更高的敏捷性和频率交付的整体实体。

有时,您会听到其他名称所指的这些类型的环境,包括短暂的 , 暂时的 , 临时的和一次性的 。 所有这些本质上是同一回事–非生产环境的寿命尽可能短。 最近,我的公司一直建议它们持续不超过72小时-这是高端的。

动机

当团队拥有固定的实例,其他任何人都无法更改时,就会发生软件开发中最具挑战性的问题之一。 通常,发生这种情况是因为配置环境需要几天,几周或几个月的时间。 这是一种反模式,因为没有人花时间编写环境脚本。 因此,环境是稀缺资源,因此对它们的竞争非常激烈。 当确实存在环境租赁政策时,通常会忽略它们,或者将租赁期限延长多次。

什么是环境?

环境不仅仅是(物理或虚拟)计算机的别称。 环境是系统资源的集合,包括但不限于实例(物理,虚拟或机器抽象),网络配置,软件服务器和配置(针对每个实例),负载均衡器以及其他资源。视为逻辑单元。 您可以根据模板或其他配置实例化环境。

我见过的大多数项目都没有环境租赁政策,或者它们定义得很松散,经常被违反。 对于确实具有租赁策略的环境,环境需要在创建环境后手动安装工具,数据和配置。 这使得每个环境都是唯一的 ,因此更难管理,因为可能会在大型企业项目中配置数百个环境。 在这种情况下,没有简单的方法可以返回到环境基准。 而且,没有团队成员知道如何将其恢复到该基线状态。 结果,团队成员不愿意终止(甚至修改)这些环境。 这种反模式使创建和终止环境的成本高得惊人。

特征

对于瞬态环境,除了生产之外,所有环境都是短暂的(尽管也有使生产环境短暂的有效方法)。 尽管这可能会因项目而异,但启发式方法是,这些环境仅存在足够的时间才能通过一套自动化和探索性测试运行。 临时环境的关键先决条件是对它们进行脚本编写 , 测试和版本控制 。 理想情况下,您应该使用基础架构自动化工具,例如我在“ 敏捷DevOps:基础架构自动化 ”中讨论的工具。

构成瞬态环境的关键功能是:

  • 脚本化环境 :它们是完全脚本化,版本化和测试的。
  • 自助环境 :团队中的任何授权人员都可以启动新环境。
  • 自动终止 :根据团队策略自动终止环境。 团队成员无权覆盖该策略。

拥有完全脚本化的环境后,您可以使授权的团队成员以自助方式获取它。 自由地根据需要简单地启动和终止环境是责任。 通过定义终止策略并通过定期终止环境的自动化过程来实施这些策略,可以加强这种责任。 (我将在本系列的后续文章中介绍测试驱动的基础结构和版本控制)。

好处

参与其中

developerWorks 敏捷转换提供新闻,讨论和培训,以帮助您和您的组织在敏捷开发原则上建立基础。

通过定义瞬态环境策略并自动在项目中执行这些策略,您可以减少独特环境的扩散,支持自助服务部署,提高环境实例化的自动化,朝着将环境转变为商品的文化,进行测试隔离,并大大减少了针对特定环境问题的故障排除量。 一些主要好处是:

  • 减少环境依赖性 :通过提供随意启动和终止它们的功能,减少团队对任何一种特定环境的依赖性。
  • 更好地利用资源 :通过终止不再使用的环境,可以为其他人释放容量。
  • 知识转移 :当团队成员知道他们的环境将在特定时间终止时,自动化将成为有关如何配置环境的机构知识的唯一解决方案。

这个怎么运作

关于瞬态环境的好处是,一旦对环境进行了完整的脚本编写,版本控制和测试,这是一种非常简单的实施模式。 此时,您需要执行三个主要任务:

  • 创建团队策略 :与团队成员协作,根据项目要求确定团队策略。 我建议积极开始并定期将这些环境的运行时间减少到大约72小时。
  • 自动终止环境 :编写一个脚本来终止超出团队租赁策略的所有环境。
  • 计划环境终止 :计划要定期运行的进程,该进程执行环境终止脚本。

将团队策略基于运行所有必需测试所需的时间。

要计划终止环境,可以使用cron的计划程序或(如果使用Java,则是Quartz)开始(请参阅参考资料 )。 您也可以使用Continuous Integration服务器提供的调度程序来每天定期运行作业。 此示例显示了一个简单的cron表达式,该表达式每天凌晨2:15运行一次脚本

0 15 02 * * /usr/bin/delete_envs.sh

下一个示例使用Amazon Web Services(AWS)CloudFormation提供的命令行界面终止CloudFormation堆栈定义的环境:

/opt/aws/apitools/cfn/bin/cfn-delete-stack --access-key-id $AWS_ACCESS_KEY \
--secret-key $AWS_SECRET_ACCESS_KEY --stack-name $current_stack_name --force

可以将此类脚本扩展为在环境目录中循环并终止所有关联的资源。

通过定义积极的团队策略,安排流程并自动终止环境,您的团队可以主动管理资源,并减少项目依赖的环境存在数周或数月的机会。

故障排除

通常在大多数项目中如何进行环境故障排除? 以我的经验,这是确定更改内容,更改人员以及更改原因的痛苦尝试。 通常,有几个人调查问题以确定适当的补救措施。 由于每个环境都是唯一的,因此通常会重复出现该问题,因为在运行数周或数月时会对它进行了独特的修改。

另外,通过基于脚本,版本和测试环境的瞬态环境策略,您可以使环境进入已知状态。 为此,您启动一​​个新环境并应用更改以确定其效果。 然后,编写自动化测试和脚本,然后对更改进行版本控制。 因为有效的变更管理已经到位,所以您总是可以回到已知状态进行变更,而不用浪费数小时或数天来确定在由无数用户修改的动态环境中进行了哪些变更。 这是拥有规范环境的本质。

短暂停留

在本文中,您了解了敏捷的DevOps环境是尽可能短的-最少几个小时又几天。 通过定义策略并安排环境的自动终止,您可以减少对有限数量的唯一环境的依赖,更好地利用资源,并鼓励自动化,以便可以根据需要启动和终止环境。

在下一期敏捷DevOps中 ,您将学习如何创建一个不断失败的环境,这是自相矛盾的,目的是防止失败。 在其中,我将介绍由Netflix技术团队开发的工具Chaos Monkey,该工具有意且随机但有规律地终止了Netflix生产基础设施中的实例,以确保系统在发生故障时能够继续运行。


翻译自: https://www.ibm.com/developerworks/java/library/a-devops3/index.html

fluent瞬态_瞬态环境相关推荐

  1. 【Fluent】导出瞬态计算过程每一秒或每一个时间步的各个坐标/节点的物理量-温度场-压力场,TUI命令/file/export和/file/transient-export

    一.功能需求 如果你进行的是稳态计算,你需要将物理场中的每一个节点上的物理量数据(例如温度.压力)导出成类似txt或Excel表格的文件. 文件里的内容形式是:每一行中有节点ID.节点的XYZ坐标.物 ...

  2. 代驾APP_第一章_项目环境搭建_第一节

    代驾APP_第一章_项目环境搭建 文章目录 代驾APP_第一章_项目环境搭建 1-1 创建根项目 一.创建SpringBoot项目 二.覆盖pom.xml文件 1-2 创建根项目 一.创建公共模块 二 ...

  3. 代驾APP_第一章_项目环境搭建_第二节

    代驾APP_第一章_项目环境搭建_第二节 文章目录 代驾APP_第一章_项目环境搭建_第二节 1-11 创建bff-driver服务 一.创建项目 二.配置pom.xml文件 三.编写YML配置文件 ...

  4. static和瞬态_具有瞬态属性的视图对象的钝化和激活

    static和瞬态 在应用程序模块的钝化/激活周期内,框架也将钝化并激活视图对象. 通常,框架保存有关VO状态,当前行,绑定变量值等的信息. 但是没有数据. 激活视图对象后,将重新执行VO的查询,并重 ...

  5. 1188_什么是TVS管_瞬态抑制二极管

    全部学习汇总: https://github.com/GreyZhang/g_hardware_basic 以下截图信息来自于搜狗百科. 知识点: 1. TVS管是一种特殊的二极管: 2. 在遇到反向 ...

  6. java web方面杂志_环境方面比较好发的期刊_全球环境类最好的期刊_环境领域top期刊...

    环境的师兄师姐们,环境领域的比较好的期刊有哪些 环境科学,环境科学学报,环境科学研究,中国环境科学,生态学报,应用生态学报,土壤通报都是可以的.偏冶金方面的还有中国有色金属学报.这个是国内.国外的话, ...

  7. java生产问题快速定位_生产环境如何快速跟踪、分析、定位问题-Java

    我相信做技术的都会遇到过这样的问题,生产环境服务遇到宕机的情况下如何去分析问题?比如说JVM内存爆掉.CPU持续高位运行.线程被夯住或线程deadlocks,面对这样的问题,如何在生产环境第一时间跟踪 ...

  8. Mysql生产环境表更新方案_生产环境中,数据库升级维护的最佳解决方案flyway

    官网:https://flywaydb.org/ 转载:http://casheen.iteye.com/blog/1749916 1.  引言 想到要管理数据库的版本,是在实际产品中遇到问题后想到的 ...

  9. 千赫重复率固体激光器 半导体泵浦固体激光器 半导体激光二极管 半导体激光器 吸收光谱仪 固体激光器 激光二极管系统 皮秒激光器 瞬态吸收 瞬态吸收光谱 纳秒脉冲激光器 荧光上转换光谱仪 荧光光谱仪

    荧光上转换光谱仪,飞秒荧光上转换系统,上转换荧光光谱仪 FluoMax是一个交钥匙系统,用于研究溶液.固体样品和薄膜中的荧光动力学. 它有一个长达4ns的时间窗口,具有亚100fs的内在时间分辨率.该 ...

  10. fluent中配置UDF环境变量

    方法一: 这种方式最简便,首选这种,但是有时会因为不明原因而不好使,我自己电脑刚开始用这种方式是行得通的,但是后来中途装过很多乱七八糟的软件,估计环境变量改乱了,这时候只能用第二种或者第三种方法.先说 ...

最新文章

  1. PostgreSql与sqlserver对比杂记
  2. centos下使用mysql,centos下使用mysql的一些问题和解决方法
  3. 24c04硬件地址位_一文读懂IP地址和MAC地址有什么区别和联系
  4. vue 添加完数据后刷新页面_vue form 表单提交后刷新页面的方法
  5. 物联网产业迎资本热潮 孤岛困局亟待打破
  6. Apache不记录制定文件类型日志
  7. java 4种跟踪会话技术_会话跟踪技术
  8. 2019快手内容报告重磅发布:日活突破3亿 点赞量超3500亿
  9. 收藏的一些github开源项目,在这里记录一下
  10. mysql如何进行宿舍分配_手把手教你做一个Jsp Servlet Mysql实现的学生宿舍管理系统...
  11. 递推 hdu 1330
  12. 最好用的HDR图像处理器——Photomatix Pro新功能介绍及使用教程
  13. Apache下如何安装ssl证书?PHPWAMP如何开启SSL
  14. Python人工智能学习路线(长篇干货)
  15. 计算机信息计量单位kgm,工程单位换算表.pdf
  16. win10计算机禁用用户账户控制,win10系统在关闭了用户账户控制的情况下无法打开... 的解决方法...
  17. 【EXLIBRIS】纸版书目整理 -- 小书架 上 01 【166 种】【203册】
  18. python小程序——视频篇
  19. 如何针对时间片论法进行优化
  20. 研发内部控制浅谈(三)(转)

热门文章

  1. css显示苹方字体,苹方字体的使用
  2. 一键卸载MSSQL_1.2 Beta版
  3. eviews7.2pojie版-eviews7.2附使用教程
  4. ITIL4考试练习题
  5. 综合能源管理服务认证是什么 , 综合能源服务认证有什么要求?
  6. 芯片AD库导入(贸泽)
  7. 信息安全-工控安全需求分析与安全保护工程
  8. access mysql连接字符串_access 数据库连接字符串
  9. 智能手机的硬件组成部分及结构图
  10. EasyUI 1.5.1 美化主题大包 Insdep Theme 1.0.3 已发布,开源下载