文章目录
- 1.什么是云原生
- 2.云原生概述
- 2.1 微服务
- 2.2 容器云
- 2.3 serverless无服务器
- 2.4 DevOps
- 2.5 持续集成和持续交付
- 2.6 openStack
1.什么是云原生
按照自己的理解,可以将云原生拆分成云+原生,云就是上一节中的云计算的云;原生即为诞生的环境。而云原生又是在云计算的基础上发展起来的。
可以解释:云原生是基于微服务的架构而开发的应用业务,在开发的最开始就按照微服务架构进行开发和部署,即以容器的方式进行打包、上云,并由云基础设施进行调度和管理。
云原生架构有两个核心:一是应用要以微服务方式构建;二是在应用要面向容器部署。
2.云原生概述
2.1 微服务
微服务将原有业务功能分解成多个小的服务,每个服务运行在其独立的容器中,服务于服务间采用轻量级的通信机制(通常是REST api),每个服务都围绕具体业务进行构建,并且能够被独立部署到生产环境。
微服务的特点
- 将复杂的业务逻辑剥离成小而专一、耦合度低并且高度自治的一组服务,每个服务都是很小的应用。
- 微服务有独立性。在微服务架构中,每个服务都是独立的业务单元,这个业务单元在部署形态上,是独立的业务进程。对于每个微服务都是独立的代码库,该微服务的代码修改不会影响其他的微服务
- 从通信效率将,应选择轻量级的通信机制,比如REST API
- 微服务间松耦合,多个微服务之间没有部署先后顺序的依赖
微服务的典型架构
将一个大型的单个应用或服务拆分为数个乃至数十个微服务之后,为了便于微服务的查找、配置和服务间的通信,通常需要配置统一的服务注册中心和服务配置中心。另外拆分微服务后,会出现大量服务和接口,因此微服务的调用需要通过统一的服务网关进行,用于权限校验等。
2.2 容器云
典型的容器就是docker,docker作为一个资源隔离的技术,在比虚拟机轻量级的同时,也能提供较好的隔离机制。在docker基础之上,配合kubernetes,可以做到容器集群的统一管理。
2.3 serverless无服务器
让开发者不需要过多考虑服务器的问题,只需要依赖第三方资源服务器后端。
- BaaS:后端即服务,它的应用框架由大量的第三方云服务器和API来提供,只需要调用服务器提供商提供的API即可完成相应的功能。
2.4 DevOps
个人将其理解为一种开发方法或者开发过程。可以促进开发人员和运维人员之间的沟通合作,通过自动化的流程来达到项目的持续集成和持续交付。
2.5 持续集成和持续交付
一个软件在其团队开发周期中,通常有一个master主分支,而新添加的功能都是编写好集成到主分支上,如果集成的频率不高,而主分支发展的又快,那么很有可能写好子功能后集成不到主分支上或者集成上之后会出现很多bug。持续集成就是一种软件工程方法,加快子功能集成到主分支上的频率,可以更快的发现和定位bug。
交付对于不同的团队有不同的含义。对于开发人员来说,开发出需求的功能即可交付;对于部署人员来说,将项目部署好即为交付;对甲方来说,上线新功能可以使用即为交付。持续交付也是一种软件工程的方法,加快软件开发过程中的交付,缩短软件开发周期。
2.6 openStack
openstack是一个云平台管理的开源项目,用户可以通过它快速的部署和管理云基础架构。