传统单体应用架构的弊端
随着数字化时代的到来,企业原本采用的单体架构部署的各类应用程序迅速的膨胀,慢慢的,单体应用变得越来越臃肿,一系列的问题也逐渐凸显出来,由于单体应用架构使用一个归档包(例如war包格式)将所有功能打包在一起,这样程序运行在一个进程内,往往我们修改了一个很小的功能,为了部署上线,会影响到其他业务的功能。并且,单体应用中的各个功能模块的使用场景,并发量,消耗的资源类型各有不同,对于资源的利用又互相影响,这样使得我们对于各个业务模块的系统容量很难给出较为准确的评估。所以单体系统虽然在初期可以方便的进行开发和使用,但是随着系统的发展,可维护性和灵活性逐渐降低,维护成本也越来越高,且难以控制。
如何解决
为了解决单体架构应用的各种问题,微服务架构诞生了。我们将系统中不同的功能模块拆分为多个不同的服务,这些服务都能够独立的部署和扩展。由于每个服务都运行在自己的进程内,在部署上有稳固的边界,这样,每个服务的更新都不会影响其他服务的运行,同时,由于是独立部署的,我们可以更准确的为每个服务评估性能容量,通过配合服务之间的协作流程,可以更容易发现系统的瓶颈位置,以及给出较为准确的系统性能容量评估。
引发的问题
相对于传统的单体应用架构相比,微服务有着易于开发、启动速度快、技术栈不受限、按需伸缩等诸多优点,但是,也因为服务的拆分引发了诸多原本在单体应用中没有的问题。
♦运维的新挑战:在微服务架构中,运维人员需要维护的进程数会大大增加,有条不紊的将这些进程编排和组织起来不是一件容易的事情,运维过程中需要更多的自动化,这要求运维人员具备一定的开发能力,来编排运维过程,并让它们能够自动运行起来
♦接口的一致性:虽然我们拆分了服务,但是业务逻辑的依赖并没有消除,只是从单体应用中的代码依赖变成了服务之间的通讯依赖,而当我们对原有接口进行了一些修改,那么交互方式也需要协调这样的改编来进行发布,以保证正确的调用。这就在需要更完善的接口和版本管理,或者严格地遵循开闭原则。
♦分布式的复杂性:由于拆分后的各个微服务都是独立部署并运行在各自的的进程内,他们只能通过通讯来进行协作,所以分布式环境的问题都将是微服务架构需要考虑的因素,比如网络延迟、分布式事务、异步消息等等。
PAAS的重要性和WNCF
除此之外,在传统的IT建设上,每个新的应用上系统,都必须重新部署硬件(服务器,存储、网络)以及操作系统。基于传统的IT环境,难以在软件系统之间实现资源的共享和迁移。后来通过Iaas平台建设,才有了软件系统与物理设备之间的解耦。
但是基于虚机的部署还存在以下问题,开发及维护人员需要面向环境各异的部署环境,例如软件间、数据库等。应用间的环境无法共享,统一,往往应用从一个环境迁移到另外一个环境就无法运行。
PaaS平台就是为了模糊中间件,数据库,操作系统等运行环境界面。对于开发者来说,只关心应用代码的实现,不需要关心复杂的系统软件依赖关系,PaaS平台可以在不同的IaaS云上部署,对于用户来说,迁移一个应用只是在不同的云上传代码,而不是迁移整个虚拟机来确保原有依赖关系保持不变。
WNCF(WNtime Cloud Foundry)是领先的企业级PaaS平台,以开源CloudFoundry作为动力。它为在公有云和私有云上扩展和更新PaaS提供了交钥匙模式的体验,不再有停机时间。WNCF使开发人员能够在一个统一的平台上,配置和绑定应用程序和数据服务。它使企业能够以极快的速度和极大的扩展能力来交付应用程序并进行最新特性的更新,而这种平台能力以往只有互联网巨头才可以拥有。因此,企业能够以极快的速度来进行创新。
WNCF的重要性和特性
WNCF的出现不仅可以解决应用层单一架构向微服务转变的难题,还可以解决服务层资源自动分配以及自动化运维的难题。主要归功于一下WNCF的特性:
♦一键部署:开发人员通过命令“CF push”即可完成源代码的上传和部署,完全不用考虑环境准备、资源分配、服务连接、SSL设置、负载均衡等问题。
♦持续集成/持续部署:全栈支持CI/CD链条,快速,高质量的交付软件应用和产品。
♦微服务的支持:自带微服务所需要的,服务注册发现,断路器,负载均衡、全链路跟踪,智能路由等功能。
♦自服务:平台内部集成了Mysql、redis、rabbitMq、session共享、Single sign on服务、以及Spring Cloud 所需的所有服务功能。
♦多租户:设置ORG以及Space两种空间管理的9种权限,来进行相应级别的安全隔离,并且支持物理隔离。
♦监控:提供了完善的日志流式服务,人性化的图形化监控界面,从应用监控,到服务组件监控,到Paas平台自身的监控。
♦4重高可用:包括应用实例高可用、进程高可用、虚拟机高可用和可用区的高可用,从各个层次实现监控和自愈,保证了从应用到整个平台的高可用性。
♦跨云迁移/可扩展:支持多种市场常见开源云平台,支持多语言的可定制化的运行环境,自带多种内置服务,并可以做定制化外接服务。
♦弹性伸缩:可根据应用访问量和负载情况,自动扩展收缩应用实例数,用户也可以自定义扩展规则。因可横向扩展,理论上性能可线性增长。实测可支撑百万级用户数,最大并发数可达10万。
♦在线升级:支持应用灰度发布,容器蓝绿部署,以及操作系统的无感化升级。
服务内容
微诺时代(北京)科技股份有限公司凭借长期服务于各行业客户的IT系统建设经验,通过为客户提供PaaS平台建设、咨询等服务,解决客户IT系统转型升级的业务需求。
服务内容包括:
1.PaaS平台建设的咨询服务
2.传统应用微服务改造的咨询服务
3.构建基于WNtime Cloud Foundry的PaaS平台实施方案。
4.WNtime Cloud Foundry平台的部署与实施。
5.旧系统单一架构应用微服务化的迁移。