什么是云原生架构

本文简要介绍了云原生架构的定义和我的对云原生架构的理解。
我的认为,云原生架构应该包括两大部分:云原平生台和云原生应用。架构

从业务角度看,云原生是一种针对IT资源的按需付费的商业模式;
从技术角度看,云原生分两大部分,一部分是遵循微服务化和容器化原则的云原生应用,另外一个部分是用于构建和运行云原生应用的云原平生台。
云原生应用和云原平生台,共同构成了一个云原生的完总体系,在这个体系上,能够实践敏捷开发、DevOps、容器编排,微服务和容器化等理论和方法。框架

云原平生台

敏捷开发

一种小规模团队的、全栈式的开发方法,要求团队具有快速响应变化,快速迭代开发的能力。运维

最佳实践微服务

  • scrum
  • xp

DevOps

开发和运维之间保持流程连续的协做方法,目标是快速、频繁且更可靠地构建、测试和发布软件。工具

最佳实践测试

  • Jenkins
  • GitLab

容器编排

一种容器资源的管理方法,目标是管理容器集群和调度容器化应用。操作系统

最佳实践blog

  • Kubernetes
  • Docker Swarm
  • Mesos

云原生应用

微服务

是将大型应用做为小型服务集合进行开发的架构方法,其中每一个服务均可实现业务功能,在本身的流程中运行并经过 HTTP API 进行通讯。每一个微服务均可以独立于其它服务进行部署、升级、扩展和从新启动,一般做为自动化系统的一部分运行,能够在不影响最终客户的状况下频繁更新正在使用中的应用。ip

最佳实践资源

  • Spring Boot
  • Spring Cloud
  • Jhipster

容器化

与虚拟机相比,容器能同时提供更好的效率和启动速度。每一个容器都具备惟一的可写文件系统和资源配额。建立和删除容器的开销较低,在单个虚拟机上能经过容器化充分利用物力资源,这使的容器成为部署微服务的完美工具。

最佳实践

  • Docker Image
  • OCI

云原生应用与传统应用

云原生应用 传统应用
可预测。 云原生应用符合旨在经过可预测行为最大限度提升弹性的框架或“合同”。 不可预测。 一般构建时间更长,大批量发布,只能逐渐扩展,而且会发生更多的单点故障
操做系统抽象化。 依赖操做系统。
资源调度有弹性。 资源冗余较多,缺少扩展能力
团队借助DevOps更容易达成协做。 部门墙致使团队彼此孤立。
敏捷开发。 瀑布式开发。
微服务各自独立,高内聚,低耦合。 单体服务耦合严重。
自动化运维能力。 手动运维。
快速恢复。 恢复缓慢。

参考资料

https://pivotal.io/cn/cloud-native

相关文章
相关标签/搜索