(视频)《快速创建网站》 4.1 构建开发运维一体化(DevOps) -

本文是《快速创建网站》系列的第9篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文。访问本系列目录,请点击:

1. 网站管理平台WordPress和云计算平台Azure简介 (6分钟视频 )2.1 在Azure上创建网站及网站运行机制 (13分钟视频)2.2 域名绑定操作和Azure负载均衡机制 (12分钟视频)2.3 WordPress 初始化和网站管理功能 (11分钟视频)3.1 WordPress 数据导入 (12分钟视频)3.2 WordPress 多站点支持和Azure在线代码编辑器 (14分钟视频)3.3 WordPress 多语言支持 Multisite Language Switcher (15分钟视频)3.4 WordPress 主题安装和配置,美化你的网站 (15分钟视频)4.1 Visual Studio Online (VSO)在线开发平台 (11分钟视频)4.2 使用 Visual Studio Online 和 Azure 构建 DevOps环境 (13分钟视频)

经过前三部分的内容(视频),我相信大家对如何使用云计算平台和WordPress来创建一个博客站点已经有了较为完整的认识。在第四部分中,我将为开发人员介绍任何使用Visual Studio Online和Azure来构建一套完整的在线开发平台,让你不需要任何的本地环境就可以完成项目管理,,需求管理,任务管理,代码管理,自动测试和部署;这样的系统在ALM(应用生命周期管理)中叫做开发运维一体化(DevOps)系统。

请配合视频阅读本文

为什么我们需要开发运维一体化(DevOps)系统?

从事软件开发年头越多的人越有这样一个共识,就是软件开发无法依靠前期的计划和完整的需求来保证质量和满足用户。这是软件开发与传统制造业最大的区别。其实,就算是在软件行业内,仍然有很多人对此不认可,觉得开发人员受过专业训练,我们又为项目配备了经验丰富的需求分析人员和项目管理人员,没有理由不成功。都是在制造产品,为什么制造软件不能像制造汽车,电视机一样,依靠详细的生产计划,按照明确的时间表交付呢?

其实,这里面大家忽略了一个最基本的事实。汽车/电视等工业化产品都是一次设计,多次重复生产的产品;在汽车/电视的设计过程中,我们仍然是无法充分预知设计过程的所有细节和交付时间,因为这是一个“探索”过程,需要设计人员和工程师依靠自己的经验和知识创造出一个不存在的产品,而且尽量的预测,确保交付的产品可以满足用户的要求。一旦进入生产过程,这类产品的所有的零件,装配方式都不会再发生改变,这样我们才能快速重复的生产。而软件产品则永远是处于类似汽车/电视机的设计过程,而不存在重复生产过程(也许有,但是你只需要复制/粘贴就可以完成)。所以,按照对汽车这类产品的交付方式来预期软件产品的交付是完全错误,不符合实际的;这就好像每个人都要求大众给每个人单独设计一台独一无二的汽车,还要保证按时交付一个道理。

大家有这样误解的另外一个原因是我们的教育,大学里面的所谓软件工程所教授的都是设计-开发-测试-交付,这样类似流水线(软件工程中叫做瀑布模式)的方式。让我们从离开学校的那一刻起就有这样的误解。

既然我们没有办法预测软件的交付时间,也无法在交付之前预测是否可以满足用户的需求;好像我们就没有必要做软件了。因为按时交付,满足需求是软件存在的价值。我们必须产出这样的价值,否则大家都没饭吃了。怎么办?敏捷,迭代,试错;这些答案都对,只是出于不同人群对这个问题的经验和认知而产出的不同词汇而已。

下图中展示的是使用瀑布模式和敏捷开发模式时,对于复杂项目成功可能性的不同影响。

其实我们只要记住一个字:快!

快速的完成开发,测试,交付给用户使用; 快速的获取用户反馈,并在下一个版本中调整软件功能; 再,快速的完成开发,测试,交付给用户使用;

下图展示的是开发/运维之间的迭代关系,只有加快这个迭代速度,才能让我们的软件产品尽快的接近用户的需求。

这就是为什么我们需要开发运维一体化(DevOps),因为只有把开发系统和运维系统打通,我们才能快起来,我们才能让开发人员直接,准确的获取用户的反馈;这些反馈可能是运维系统提供的监控数据,也可能是客户直接反馈的问题,或者是其他社交网络/论坛上的消息,总之任何可以帮助开发人员判断用户需求的信息都是需要反馈的内容。

从这个角度来说:其实我们应该叫它 开发运营一体化,但是能过做到这一点可能太困难了,我们暂且还是谈开发运维一体化吧。

Visual Studio Online在线开发平台

VSO的前身是tfspreview.com,也就是在线的Team Foundation Server (TFS)版本,由微软运营,提供云端的开发管理能力。VSO上主要包括以下功能:

以上可以看到,这些功能基本上涵盖了我们在开发过程中需要的所有功能。另外,VSO还对主流的IDE提供了很好的集成,如 Visual Studio和Eclipse。

跨平台支持

对于Visual Studio的集成当然是毋庸置疑的,所以以下我仅列出对Eclipse的Java项目支持

你可以看到,使用Team Explorer Everywhere (TEE)(点击下载)插件,你可以使用Eclipse连接到VSO的项目,使用Git代码库,访问工作项,也可以配置云端的自动化编译和打包。

具体操作演示大家可以参考这段视频:

对于使用Mac进行iOS开发的同学来说,你也可以使用XCode里面所提供的Git集成,来配合VSO进行源代码管理,具体操作请看这里:https://www.visualstudio.com/en-us/get-started/share-your-xcode-projects-vs.aspx

后续我也会单独对这些功能录制一些视频供大家学习。

敏捷开发支持

敏捷开发已经是软件开发行业不可逆转的趋势,在VSO也对敏捷开发提供了很好的支持。比如下面的Kanban和Sprint白斑的支持。

这是我用来规划本博客内容和后台开发的Kanban。

这是之前的工作项跟踪出来的累计流图

这是本博客当前迭代的Sprint白板(你可以看到当前这篇博客正处于进行中状态)

当然,以上只是VSO中对于敏捷开发支持的冰山一角,后续我会在专门介绍ALM的文章中详细介绍。

最可怕的敌人,就是没有坚强的信念。

(视频)《快速创建网站》 4.1 构建开发运维一体化(DevOps) -

相关文章:

你感兴趣的文章:

标签云: