- 文献综述(或调研报告):
1.SOA与微服务
随着我国社会的快速发展,各行各业的信息量的规模在不断增加,企业在信息化过程中所采用的的软件伴随业务复杂度和用户规模的正向变化,也愈发复杂[1]。一些比较热门的互联网应用,在高峰时期可以达到数千万的瞬时访问量,比如我们熟悉的双十一时期的天猫和每年春运时期的12306,其用户量和业务的复杂性,是以前软件设计人员不会面临的。因此如果继续采用传统的垂直应用架构,就很难以应对业务快速复杂化和访问高并发带来的巨大挑战。
其实谈到微服务,就不得不提到SOA,即面向服务的体系结构,[2][3]可以说是微服务架构的前身。1996年,Gartner最早提出SOA,并认为在10年之后,SOA将成为占有绝对优势的软件工程实践方法。SOA到现在来看并不是一个新事物,各种IT组织已经成功建立并实施SOA应用软件许多年了。从概念上讲,SOA不是特指某一种技术,而是一种分布式的软件设计方法,即软件的部分组件(调用者),可以透过网络上的通用协议调用另一个应用软件组件运行,以获得服务。 SOA所要解决的问题主要是企业应用系统集成和数据集成的需求,早期的ERP、CRM、OA 之类的信息系统都是一套套部署起来的,不同系统往往由不同的供应商分别开发的,技术差别也很大,各个系统孤零零的。在SOA中,各个系统对外提供粗粒度的服务供外部系统访问,所有的服务都集中在一个 ESB 上,以进行系统之间的交流[4]。
可以说SOA的提出为企业的信息系统集成提供了一套可行的方案,而微服务架构,正如它的提出者Martin Fowler所言,是SOA的一个子集,其所解决的是当前互联网快速发展时代,互联网业务规模增长快,变更多且频繁这样一个现实的问题,尤其是为了契合当前互联网软件开发持续交付和DevOps的理念,可以非常明确的说,微服务与SOA解决的问题是处于不同层次的[5]。
微服务专注于单一责任与功能的小型功能区块为基础,即服务,每个服务都可以部署在不同的平台上,并在属于自己的进程中运行,各服务使用与语言无关的API集相互通讯[6]。微服务目前在世界主流互联网公司如亚马逊、Netflix和Facebook等都得到了应用。以Netflix为例,在一次全站瘫痪几天之后,痛下决心决定改造架构,经过了从08年到18年近10年的努力,将之前的单体架构变迁为微服务全球化,满足了其业务近千倍的增长。
2.云迁移与云原生架构
近年来,随着云计算的兴起与发展,许多大中小企业都将云端环境作为自己应用迁移的目标平台,[7]虽然有着迁移云端的动机,不过要想真正从云环境中获利,需要一定的软件体系架构的支持。云环境的主要特征是不确定性,即故障随时可能发生,在这种环境下的应用应该具有能够抵抗这种不确定性的体系结构。此外,应用的可伸缩性也是一个非常重要的方面。基于云迁移,诞生出云原生架构这个概念,毫无疑问,迁移的应用要想在云端具有良好的可用性与可伸缩性,离不开云原生架构。
微服务架构就是符合条件的云原生架构,它的本质就是可用性与可伸缩性,能够帮助企业迁移当前应用并转变现有架构以适应云环境,从而充分受益于云环境。
3.Spring Cloud
Spring框架本身就是Java EE的龙头老大,而近年以来Spring Boot的出现使得开发人员可以更加敏捷地实现Spring应用程序[8],而Spring Cloud正是在Spring Cloud基础上构建的,用于快速构建分布式微服务系统的工具集。使用Spring Cloud开发的应用程序非常适合在Docker或者PaaS上部署,所以又叫云原生应用[9]。
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。