云原生
Posted liufei1983
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生相关的知识,希望对你有一定的参考价值。
软件 -》 开源 -》云
1.1 互联网架构变迁
1.1.1 互联网架构的核心问题
海量用户:
产品迅速迭代:敏捷的探知市场需求,快速的推陈出新。
7 * 24小时不间断服务:尽量缩短宕机时间。
流量突增:比如双11,促销,热点事件等。
业务组合复杂:
1.1.2 从集中式架构到分布式架构
传统的三层架构:
集中式架构分为标准的三层:数据访问层、服务层和web层。
服务层是核心,提供公开的API,也可以通过Web层提供API。
分布式架构、SOA和服务化:
垂直伸缩:集中式架构为了提升吞吐量,只能通过增加服务器的配置来提升处理能力。
水平伸缩:仅通过增加服务器的数量提升系统的吞吐量。
分布式系统的引入,解决了吞吐量的问题,但是也带来了额外的负担。
CAP定理: 分布式系统的一致性(Consistency)、可用性(Availability)、分区容忍性(Partition tolerance),三者不能兼有。
分区容忍性是必需的,所以要在一致性和可用性之间做选择。
SOA(面向服务架构)可以理解为:模块化开发 + 分布式计算。
分布式系统十分复杂,产生了大量的简化分布式开发的中间件和分布式数据库,服务化的架构设计理念被认同。
2011年,阿里开源的Dubbo框架是一个影响深远的分布式服务框架。
自动化运维:
分布式系统的手工运维产生瓶颈。催生了自动化运维工具(两种):
监控自动化工具:对服务的CPU、内存、磁盘I/O、网络I/O进行主动探测,并预警。
流程自动化工具:应用上线、部署等操作。
解放交付的DevOps:
DevOps的出现,开发和运维之间的鸿沟才渐渐消失。
1.1.3 从分布式架构到云原生架构
随着虚拟化技术的成熟和分布式架构的普及,用来部署、管理和运行应用的云平台被越来越多的提及。IaaS、PaaS、SaaS是云计算的三种
基本服务类型。容器的出现,使得原来基于虚拟机的云主机应用,彻底转变为更加灵活和轻量的“容器 + 编排调度”的云平台应用。
新纪元的分水岭-容器技术:
容器可以解决运行时环境不同的问题。Docker提供了可以将应用和依赖封装到一个可移植的容器的能力。Docker提供了集装箱式的封 装方式。
新纪元的编排与调度系统:
Kubernetes - docker编排工具。
架构设计的变革-微服务:
微服务的特点:
配置管理:集中式架构使用属性配置文件;微服务倾向于集中化的配置中心配置数据,而且要高可能,并且配置想及时生效,还能推送配置变更。
服务发现:
负载均衡:
弹性扩容:
分布式调用追踪:
日志中心:
自愈能力:
1.2 什么是云原生
Pivotal公司先后开源了云原生的Java开发框架Spring Boot和Spring Cloud。 随后,Google在2015年成立了CNCF(Cloud Native Computing Foundation)。
1.2.1 概述
云:一个提供资源的平台,云计算的本质是按需分配资源和弹性计算。
云原生应用:专门在云平台部署和运行而设计的应用。云原生应用的设计模式可以优化和改进传统应用模式,使得应用更加适合在云上运行
传统的应用可以部署和运行在云平台上,但是无法充分运用云平台的能力的。
让应用能利用云平台实现资源的按需分配和弹性伸缩,是云原生被重点关注的地方。
云原生:是一种设计模式,它要求云原生应用具备可用性和伸缩性,以及自动化部署和管理能力,可随处运行,并且能够通过持续集成、持续交付工具提升研发、测试与发布的效率。
1.2.2 云原生与十二要素
1.2.3 十二要素进阶
1.2.4 云原生与CNCF
以上是关于云原生的主要内容,如果未能解决你的问题,请参考以下文章