全国客服热线:4006-880844

处理网站开发变更

- 编辑:admin -

随着开发运维概念的出现,软件工程师和运维工程师将具有相似的能力,而且他们的技术集合也更加接近。系统管理员必须像专业软件开发人员一样知道如何编写应用程序。这是因为,这两个团队都需要使用同一种语言,软件工程师必须了解运维人员的操作方式,理解系统管理员反对变化的心态;运维人员必须学习如何接受快速变更,然后学习如何创建能够适应这种变更的系统,降低风险并提早发现问题,而不是试图限制变更。

随着开发运维概念的出现,软件工程师和运维工程师将具有相似的能力,而且他们的技术集合也更加接近。系统管理员必须像专业软件开发人员一样知道如何编写应用程序。这是因为,这两个团队都需要使用同一种语言,软件工程师必须了解运维人员的操作方式,理解系统管理员反对变化的心态;运维人员必须学习如何接受快速变更,然后学习如何创建能够适应这种变更的系统,降低风险并提早发现问题,而不是试图限制变更。


 
以往,软件工程师和系统管理员隶属于两个完全不同的部门,他们互相之间几乎没有互动。这可以追溯到盒装软件开发的时期,那时产品都采用瀑布方式开发,然后通过物理介质交付给客户。USENIX ;login杂志主编Rik Farrow介绍了Web开发出现之前的系统管理员工作。
 
我曾经加入到一个开发团队中,我的系统管理工作主要包括创建各种不同的工作站,帮助他们将软件安装到这些工作站上。我只需要支持从工作站供应商获取的软件包,不需要支持其他软件包。
 
当我从事系统管理咨询工作时,情况也是完全一样的。我的工作就是让Unix系统保持正常运行,完全不需要理会已安装的软件。由于我是一位“雇佣枪手”,所以我需要解决各种难题,而且他们没有使用任何商业软件。
 
话虽如此,但是我负责的Unix是一个非常有用的软件平台,它适合运行那些要求支持多用户或连网协作的软件。例如,牙科诊所广泛使用SCO作为监控系统。不过,他们自己几乎都不知道自己使用的是一种Unix。
 
数据库也运行在Unix上,同样是要求支持多用户访问。另一个例子是出版软件,如FrameMaker。在所有的应用中,从没有人要求我简化底层系统的管理,我自己也从没有想过这件事情。我只是努力保证系统能够可靠运行。
 
当Windows NT出现之后,我曾经合作过的许多系统用户都抛弃了Unix系统,他们认为Windows更容易管理。如果“更容易管理”指的是用户界面(GUI),那么确实是这样的。用户界面隐藏了复杂性,但是如果要执行一些用户界面不支持的操作,那么我们一样会遇到困难。据我所知,在使用Windows系统后,没人会向“工作组管理员”询问关于软件设计的问题。不过,那是上世纪90年代末的事情了,所以我在这里介绍的经历也只是传闻。
 
开发运维是一个新概念。像Facebook那样,由于需要每周发布一次或两次新版本,所以开发人员最好与系统管理员协作,否则新版本上线对于他们而言就是一种灾难。过去,人们购买的软件可以使用很长时间。例如,始于上世纪90年代的USENIX数据库就是这样(确实很恐怖)。自Web应用出现之后,其使用模式和功能每天都会发生变化,如果开发人员不与系统管理员沟通,就擅自执行较大变更,那么他们的新系统可能就会出错,因为他们还不知道新的变更是否能够得到支持。当然,试验性上线会有一定的帮助,但是,这种活动也必须与系统管理员合作才能完成。
 
互联网完全改变了软件的使用方式。在出现USENET之后,人们开始通过连网的计算机共享文件和信息。随后,万维网面世。Web是第一种成功的软件即服务。随着Web技术的成熟,Web 标准和浏览器开始提供越来越多模拟桌面应用的功能。随着HTML5、 CSS3、JavaScript 和Flash这些技术得以运用,现在的许多Web应用都实现了以前桌面应用才有的相同特性。以前仅限于在桌面上使用的应用,现在都可以在Web上实现,这其中包括了金融、银行、出版、通信方面的应用,甚至连图形图像处理与设计都可以在Web上实现了。
 
这意味着,对于将网站(通常是一个复杂Web应用)作为业务主要入口的公司而言,他们现在不需要向成百上千的客户包装和运送软件,软件更新周期也不需要以年为单位,应用程序的修改可以在一周、一天或几小时内完成。现在代码的更新速度远远快于20世纪90年代,甚至也比本世纪初都快很多。敏捷开发逐渐成长起来并替代了盒装软件的瀑布开发方法,因为后者已经不适用于Web开发了,Web现在已经成为开展商务与共享信息的事实载体。Web开发团队必须调整他们的流程,适应Web增长,这样才能根据客户要求快速发布新产品(即新网站)。
 
敏捷宣言规定,团队应该自我组织,因此要开始打破开发与运维之间的壁垒。开发与运维团队必须开始协作,才能实现他们的共同目标支持越来越大和越来越复杂的Web应用,其中包括保证系统的一致性、稳定性和可用性。这是一种新的工作方式,但是和许多文化转变一样,这个过程需要多年时间才能完成。
 
网站建设开发运维代表了一种新的文化视点,它促使开发人员与运维工程师展开协作,共同支持网站与Web应用中更快速和更复杂的变化一当然,这些原则也适用于盒装或非Web软件。公司现在能够以惊人的速度发布新产品,这种加速是由软件开发团队实现的。运维人员必须保证系统能够可靠地运行和很好地扩展,并且要通过使用自动化、配置管理,以及其他工具与实现方法,尽可能加快软件开发周期。