58

谈DevOps支撑平台实施收益和价值03(10.22)

 4 years ago
source link: https://www.tuicool.com/articles/jIjEB3F
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

eYBBZzu.jpg!web

今天谈下DevOps实施带来的另外一个关键价值,就是企业信息化的云迁移和乃至全面云化。

如何来理解,对于IaaS云平台大家都比较清楚已经发展了很多年,而且也相当成熟,但是对于大部分企业的理解来所,还是停留在申请云主机,申请存储,然后将自家开发的软件部署到互联网云平台上面,企业也不用单独在建设机房和数据中心。由于IaaS云更多的是停留在资源层面,因此我们也看到:

1. 对于企业内部软件应用的开发和资源层的对接之间是存在断点的,或需要人为处理

2. 开发,测试和生产各种环境之间的迁移没有办法兼顾,或者开发测试更多是在本地环境进行

既然有开发测试仍然是在本地进行,那么可以看到企业本身还是需要购买服务器资源来配置开发和测试环境,同时对于测试通过的应用还需要考虑如何迁移到和部署到云数据中心。或者说考虑购买的云主机上各类数据库,应用服务器中间件的安装配置,考虑基础数据的同步和导入等。

而里面真正的关键点就在于应用和资源之间还有一个关键的平台服务层,即我们说的PaaS层,PaaS层要解决的问题就是将资源层细节对最终客户屏蔽掉,而以服务的方式来进行提供。也就是我们常说的必须具备最基本的应用托管能力,资源动态扩展能力。

或者说PaaS层是解决应用开发和资源层部署之间断点的一个关键,也是我们常说的DevOps实践中持续集成的一个关键,这些都需要PaaS层能力来衔接最终的应用层和资源层。

再来看下我们当前的DevOps支撑平台,为了满足DevOps中的持续交付最佳实践,整个平台已经基于Docker容器和K8s实现了关键的应用托管和资源动态调度能力。而且这个能力本身不依赖于任何IaaS云平台,也就是说整个DevOps支撑平台本身和你选择哪个开放IaaS云平台没有关系,既可以部署在阿里云,也可以部署在华为云或腾讯云。

对于企业的云迁移不仅仅是将生产环境迁移到IaaS云,更加重要的是将测试环境,用户UAT环境等都迁移到云环境,同时也实现云端测试,生产各个环境间的自动化迁移和同步。那么这样做的收益究竟在哪里?

1. 企业不需要在考虑任何服务器资源的投入,也不需要有专门的本地机房运维人员

2. 由于在公有云,可以更加快速的实现和用户间协同,企业内部多个团队之间的异地化协同

举个简单例子来说,传统我们做要给软件项目,我们的客户在北京,而我们的开发在武汉,客户提交了一个需求变更后,我们要在武汉开发,开发完成后再武汉本地环境部署测试环境供测试人员测试。测试人员测试通过后,开发人员还需要将部署包部署到客户现场再由客户进行UAT测试,整个过程相当的繁琐,开发和测试间的协同也很频繁。但是我们看到如何全部迁移到云端后相关问题很容易解决。

即我们可以在云端部署一个SIT环境和一个UAT环境,我们的开发在本地进行,但是开发完成后的持续集成构建则直接在公有云SIT环境完成,完成后测试人员进行测试,测试通过后自动化的迁移部署到UAT环境供用户测试,整个后续过程不需要开发人员再进行干预,全部自动化流水线执行。

而这些如何完成?

就是前面我们谈到的DevOps平台提供的持续集成和交付能力,以及在这个能力背后的应用托管,灰度发布和资源动态调度等能力。正是因为有了这些能力,开发和测试协同更加简单了,应用开发到最终生产的交付也简单了,而且关键是可持续了。

DevOps最基础的一定是要实现持续集成,而持续集成在和scrum敏捷方法论实践相结合的时候,才真正将我们能够感受到在短周期迭代开发中的功能持续可见,可测和可验证。

同时在我们开发测试迁移到云端后带来第二个关键好处,就是整个团的异地开发协同方便了,两个异地的开发团队不再需要在本地建立开发测试环境,而所有测试环境都在云平台上面,每个开发团队只需要每日检入自己在本地编译构建和自测通过的代码即可,即使有合并冲突,我们也可以及时的发现和纠正。

即持续集成一定是方便你及时的纠正软件开发过程中的小问题,小错误,避免最后酿成大错。最后再总结下企业全部基于DevOps平台来实现全部的云迁移后带来的价值。

1. 方便企业开发团队的异地化协同,方便企业和最终用户间的快速协同和交付

2. 软件即服务,减少企业服务器等硬件资源购买,真正全部从资源转到服务

3. 软件开发过程资产持续集成在云端,充分利用云平台提供的异地容灾备份等能力,确保安全性

4. 如果本身是做SaaS应用服务的厂商来说,将进一步提升面向客户的敏捷快速交付能力


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK