假设我们有一个多人游戏网站,其中的一个服务器群包含大量的应用程序和消息服务器,它们负责支持各个玩家在多人游戏中的交流,以及生成玩家在太空射击游戏中使用的可视化Web界面。...
在分析哪些方面需要实现自动化时,人们往往希望将所有软件都自动化。可问题在于,自动化会在构建、配置、管理和修复网站软件组件的层次上,再增加一层抽象。自动化只在最顶层再增加一层或多层抽象。...
这似乎是很显然的,但是在计划如何实现系统自动化之前,我们需要获得所有利益相关者的信息,其中包括业务和执行管理人员。对于组织中参与一个特定网站的所有团队来说,他们都会特别关注于自己的部门,而这种关注可能与其他团队发生冲突。在创建和管理Web基础架构自动化的过程中,无论各自团队的目标是什么(节约成本、节约时间和确定业务优先级等),他们都应该达成一致协议。...
假设一家公司已经有一些基础架构,需要安装新版本操作系统、新的应用服务器程序和新的代码库,并且有400个应用程序需要重新安装。根据表5-1度量标准来看,如果以人工方式执行所有任务,那么为每台服务器安装和配置操作系统需要花费1小时,更新Web服务器需要10分钟,安装 Hadoop节点需要1小时,安装 Rails)应用程序需要30分钟。此外,我们还可以从这些度量标准计算出自动化可以节省的时间。...
在大型网站基础架构上,我们希望尽可能地保持系统的一致性。我们希望在整个基础架构上使用相同的硬件、软件和功能。然而,系统维护通常会慢慢变成一种人工操作过程或自动化程度较低的过程,这意味着软件和功能会经常出现不一致性,或许只有在稍后报告给系统管理团队或开发团队时,这些问题才会暴露出来。随着网站访客的增多,出错的可能性也会进一步增加。...
在一个拥有大量服务器的大规模网站中,安装新的应用服务器程序部署新代码或检査系统配置一致性等任务都非常耗费时间。假如要在数百甚至上千台服务器上安装应用服务器程序,一次只安装一台,那么这种庞大的任务量显然需要另辟蹊径才行:编写一个 Shell a脚本,实现在中央数据存储区上仅通过一个指令就可以安装好应用服务器程序。...
即使在一些有着稳健和健康的文档编写文化的组织中,应用的进化和修改速度也会远远快于文档编写速度。现实情况是软件变化速度远远快于文档编写速度,即使有自动化文档系统,有时候我们仍然需要人工编写一些文档。这种文档需要通过一定的技术转换,方能提供给在特殊阅读环境中的读者阅读,因此无法通过自动化方法维护。...
一个组织不可能只有高级软件工程师或系统管理员,所以,只有基于特定规范的文档就意味着只有高级技术人员才能阅读这些文档。这是一种机能障碍问题。当然,这些文档也是必要和重要的,这已经比只有阅读代码才能了解应用程序的情况好很多了。然而,这并不是一种完整的文档战略与文化。...
最好的Web开发人员总是可以写出带有好注释的漂亮代码,但是,他们一般也不会编写专门给非开发人员阅读的文档。最好的工程师愿意疯狂地开发应用程序,但是不愿意花一点时间去编写文档或向其他人说明应用程序。他们认为,代码就是文档,而且有技术的人都能够理解代码,所以编写额外的文档是在浪费时间。...
一旦在Web组织中逐步培养起编写文档的文化,那么员工就会越来越依赖于这种实践方法。这种文化还有一个十分重要的优点,即如果出现人员流失和变动,那么良好的文档可以缩短新人的“交接”时间。此外,除了构成一般软件开发过程的标准代码注释、跟踪和源代码控制过程,编写文档也是一种审查方法。在一些开发专用软件的公司中,文档显得尤为重要,因为新员工一般很难理解复杂的定制应用程序,以及各个应用又是如何组成客户所访问的网站。如果文档成为这一过程的组成部分,人们就一定会对软件构建方式进行交流,工程师...