使用 Rainbond 作为智慧城市底座之后,给我们带来了成倍的运维效率提升。
—— 咸阳市大数据管理局 熊礼智
咸阳市大数据管理局负责全市信息共享工作的组织领导,协调解决与*信息共享有关的重大问题,研究拟订并组织实施全市大数据战略、规划和政策措施,引导和推动大数据研究和应用工作,建立全市统一的数据服务中心和信息共享机制。通过“端-边-网-云-智” 的全新技术架构,实现管理高效、服务便民、产业发展、生态和谐的目标效用,达成新一代信息技术与城市现代化深度融合,迭代演进的新模式、新理念。
智慧城市的建设中,对智慧城市应用的管理是个很基础的问题。传统的情况下,服务于民生的各类应用系统,都是由相应的*部门各自部署管辖,这造成了一些困扰。各个城市部门往往各自为政,彼此之间形成数据孤岛,很难互通互联。无论是数据还是应用,都很难统一管理起来。
在咸阳智慧城市建设工作中重点建设数据交换共享平台和应用管理平台。数据交换共享平台负责打通城市各个部门的数据孤岛,进行数据清理和规约之后,最后达成所有城市部门的 IT 应用之间互联互通的效果。
在建设咸阳市智慧城市期间,我们在智慧城市应用管理领域遭遇了很多棘手的问题。为了解决这些痛点,我们借助 Rainbond 这款产品,建设起了可以提供自动化运维能力的应用管理平台。我从四个部分分享解决难题的整个过程:
痛点:回顾智慧城市应用,在部署实施以及后期运维上的难点痛点。
定位:我们如何定位智慧城市应用管理平台,以及希望通过它解决什么样的问题。
落地:简要阐述智慧城市应用管理平台的选型过程,以及部署落地的过程。
实战:讲一个真实的案例,来说明引入应用管理平台后,快速开发落地一个智慧城市应用的全过程。
传统模式下的痛点
我将痛点归纳如下:
- 缺乏统一管理:以往各个城市部门的应用系统的部署是杂乱无章的。每家单位都在建设自己的 IT 系统,没有统一的管理可言。
- 遗留系统多:很多城市部门的应用系统使用的时间都很久了,有的系统甚至已经失去了厂家的支持。而有的系统采用的技术已经过时,无法方便的迁移到可以被集中管理的环境中去,也没有办法很好的将它们监控起来,获得其实时的状态。
- 资源分配不合理:每家单位都在进行 IT 系统的建设,这必然导致做了很多重复性的建设工作,资源浪费随之而来。而且在缺乏资源监控的情况下,没有谁能说清楚各自的应用系统到底应该使用多少资源。访问量不论多少,都分配了同样的资源,缺乏合理性。
- 运维困难:每家单位建设 IT 系统的方式方法五花八门。而这些单位自身往往缺乏相应的技术人才来维护这些系统,一旦出了问题,每套业务系统的维护方式都不一样。
- 缺乏可观测性:以往的 IT 系统建设,往往仅仅关注应用程序本身,而忽略了可观测性的建设。无法做到问题快速发现,往往 IT 系统的失灵,是由用户反馈而来的。
对应用管理平台的定位
应用管理平台负责承载和管理所有智慧城市下属的应用系统,包括新建设起来的数据交换共享平台。后续所有新开发的智慧城市应用会直接基于应用管理平台部署,以往老旧的遗留系统也会随着迭代更新不断迁移到应用管理平台。这么做的目的就是为了能够逐步整合各个城市部门的数据与应用,统一管理。
建设智慧城市的过程中,必然会不断涌现出大批新的城市部门应用系统,如何在建设过程中不重走老路很重要。智慧城市应用管理平台在这个过程中扮演的角色是GPaaS 平台,数据交换共享平台是VPaaS 的一部分。二者相结合,可以将海量城市数据在云端实现汇集融通计算,在提高城市智慧体运行速度的同时也大大降低了运行成本。我将应用管理平台和数据交换共享平台的定位总结如下:
- 应用管理平台向下统一纳管所有计算资源。实现计算资源统一分配调度。这些计算资源以多个机房内托管的虚拟机或者物理机的形式提供。应用管理平台应提供资源监控面板,并在底层计算资源出现问题时发送报警信息。
- 应用管理平台向上承载包括数据交换共享平台在内的所有智慧城市应用系统。提供统一风格的管理面板,以及丰富的自动化运维能力,最大程度降低应用运维管理的难度。智慧城市应用可以以极低的代价迁移到应用管理平台上来,能够实时统计应用的访问流量和资源占用情况,实现计算资源面向应用按需分配,自动调整。
- 应用管理平台横向延伸到各个城市部门。数据交换共享平台需要借助应用管理平台的这一能力,与城市部门现有 IT 系统接驳。
- 应用管理平台可以接纳老旧遗留系统。对于无法直接迁移到应用管理平台的各类老旧遗留系统,比如 Windows 应用等,应可以至少做到逻辑层面的接入,能够以统一风格的面板进行简单管理,以及健康检测等监控能力。
落地过程与价值体现
我们选型并对比了多款 PaaS 平台类产品,最终选择了 Rainbond 。回顾当时的选型过程,以及系统建成到现在的使用体验,我将其优势总结如下:
- 易用性好:Rainbond 是多家选型产品中,易用性做的最好的一款产品。一站式的产品化体验让我们在智慧城市应用的开发部署,乃至后期的运行维护工作中都大大降低了学习成本。数据交换共享平台这个核心应用,仅用不到一周的时间,就完成了向云端的迁移。
- 强大的自动化运维能力:在运维管理方面,其自动化运维能力非常优秀,节省了大量运维成本,使运维效率成倍提升。
- 可观测性:Rainbond 提供了全面的监控报警系统,无论是计算资源还是上层的应用系统,一旦出现问题都可以很快暴露出来。结合自动化运维能力,问题应用系统可以做到自愈自恢复。而通过观察应用系统访问量和资源消耗情况,可以更合理的进行资源分配工作。
- 开源生态:Rainbond 本身是个开源产品,也拥抱开源社区生态。其内部的应用商店系统,提供了大量我们需要的第三方中间件,这些中间件可以一键部署到应用管理平台上去,这节约了大量的时间和精力。否则基于服务器从零搭建这些中间件系统非常耗时耗力。
基于 Rainbond 建设的应用管理平台于 2019年11月落地交付使用。这套应用管理平台底层对接了3个不同的集群,分别是开发测试环境、普通生产环境和涉密生产环境。时至今日,其上部署的各类城市应用已经超过了 100 套,组件数量超过500个。
最先被迁移到应用管理平台上的数据交换共享平台。向开发测试环境迁移的过程比较轻松,我们投入了两名开发人员、两名运维人员,在好雨科技交付工程师的配合下,基于源代码就将所有的组件部署到了应用管理平台上。所有的学习和迁移工作只持续了一周左右就完成了。接下来要考虑的,是在生产环境中部署这套应用系统。我们在这里借助了 Rainbond 内部组件库提供的能力,将开发测试环境中的数据交换共享平台,发布到了内部组件库中,在生产环境中就可以一键部署了。后续的升级操作也都借由应用模版配套的版本管理功能完成,这极大的节约了部署升级成本。
数据交换共享平台需要借助平台能力,延伸到各个城市部门接驳其已有的 IT 系统。最开始 Rainbond 并不支持这个特殊的需求,最终定制了特制的网关,使数据交换共享平台可以通过网关和城市部门已有的 IT 系统交互。
数据交换共享平台部署形态:
在应用的运维管理方面,最让我们觉得好用的,是 Rainbond 提供的统一网关配置功能。通过非常简单的配置,就可以将平台上部署的应用系统对外暴露服务地址。而且经过了定制,我们使用的 Rainbond 网关支持了国密证书,使得我们在安可方面的要求也得到了满足。
经过长时间的考验,基于 Rainbond 建设的应用管理平台的稳定性得到了肯定。尤其是在2020年新冠疫情爆发时,短时间开发部署的外来人口统计系统,也在应用管理平台的支持下,经受住了大并发考验,完成了统计任务。
实战应对疫情考验
2020年2月,由于复工返岗高峰的到来,大规模的人口流动重新启动,为遏制疫情蔓延扩散,做好外来返工人员的防控和服务工作,咸阳市需要用最短的时候完成咸阳市外来人口登记系统的开发和上线,并在3天内完成整个咸阳市130万人信息上报和管控服务。
咸阳市外来人口登记业务是一个前后端分离的业务系统。主要包含了前端页面、后台服务、缓存、数据库、短信业务5个服务组件。
此时,应用管理平台已经落地了半年,我们已经能够非常熟练的基于 Rainbond 进行开发和部署,所以业务的开发上线并没有遇到阻碍,我们很快就完成了业务的上线。
Rainbond提供服务组件的伸缩功能,只需要一键,就可以为当前服务组件快速伸缩出多个实例,并且自动提供负载均衡。为了能够让业务流量过大时,可以自动扩展实例数量,我们还设置了基于内存使用率来触发的自动伸缩功能。在运维层面更加自动化。这将大幅度降低单个实例处理业务的压力。
在咸阳市外来人口登记业务的所有组件中,我们为前端页面、后台服务这两个服务组件都伸缩了最多5个实例,这两个服务组件也是经常进行实时更新的组件,基于多个实例,Rainbond提供滚动更新的功能,使业务的升级不会影响到线上的业务运行。
为了更好的监控“咸阳市外来人口登记业务”各个服务组件的压力情况,我们为前端页面、后台服务、数据库分别安装了Rainbond自带的服务实时性能分析插件。业务运行期间,这个插件为我们带来很多的有用信息,多次帮助开发人员发现业务系统的不足之处,使开发人员可以在业务雪崩宕机之前修正代码并上线。
对于前端页面、后台服务这样的基于Http协议提供服务的组件,插件将提供平均响应时间、吞吐率、在线人数三项实时数据,以及最近5分钟耗时URL排行、历史数据等持续性数据。
整个填报期间,4套业务系统平均在线人数保持在4000人以上,峰值达到5000+,经由统一网关负载的总流量超过 20000。
总结和期待
Rainbond 满足了咸阳市大数据管理局对应用管理平台的预期,运行至今非常稳定。但是,当管理应用系统上百套后后,我们对应用整体监控提出更高要求,需要从更高维度了解所有应用系统运行情况,我了解到他们有更高维度的大屏产品,希望在二期建设过程中,能解决这个问题。
关于Rainbond
Rainbond是一个开源的云原生应用管理平台,使用简单,不需要懂容器和Kubernetes,支持管理多个Kubernetes集群,提供企业级应用的全生命周期管理,功能包括应用开发环境、应用市场、微服务架构、应用持续交付、应用运维、应用级多云管理等。
已有上百家企业使用Rainbond管理关键业务场景,涵盖制造、能源、高校、*、*、交通、军工等十几个行业。客户有 京东方、百胜中国、中航信、中公高科等大型企业。