【Quarkus 技术系列】,Java 高级工程师面试答案大全
Cloud Native(云原生)准确来说也是一种文化,更是一种潮流,它是云计算的一个必然导向,意义在于让云成为云化战略成功的基石,而不是障碍。
Cloud Native(云原生)的特点和方面:
技术(微服务,敏捷基础设施)
管理(DevOps,持续交付,康威定律,重组等)
Cloud Native 也可以说是一系列 Cloud 技术、企业管理方法的集合。
Cloud Native(云原生)的定义和概念
Cloud Native(云原生)是更好的工具、自我修复系统、和自动化系统的集合,可以让应用和基础设施的部署和故障修复更加快速和敏捷,极大的降低企业在云计算方面的部署成本。
目前业界公认的云原生主要包括以下几个层面的内容。
容器,服务网格,微服务,不可变的基础设施,公开的 API 都接近云原生相关概念。
云原生技术可以让系统松耦合,支持弹性伸缩、可管理的、清晰的。
随着容器、kubernetes、Serverless、FaaS 技术的演进,CNCF(Cloud Native Computing Foundation ,云原生计算基金会)把云原生的概念更广泛地定义为“让应用更有弹性、容错性、观测性的基础技术,让应用更容易部署、管理的基础软件、让应用更容易编写、编排的运行框架等”,希望能够让开发者最好的利用云的资源、产品和交付能力。
云原生的发展历程
2004 年 ~ 2007 年,Google 已在内部大规模地使用像 Cgroups 这样的容器技术;
2008 年,Google 将 Cgroups 合并进入了 Linux 内核主干。
2013 年,Docker 项目正式发布。
2014 年,Kubernetes 项目也正式发布。
Kubernetes 项目发布的原因也非常容易理解,因为有了容器和 Docker 之后,就需要有一种方式去帮助大家方便、快速、优雅地管理这些容器,这就是 Kubernetes 项目的初衷。在 Google 和 Redhat 发布了 Kubernetes 之后,这个项目的发展速度非常之快。
2015 年,CNCF 成立。
由 Google、Redhat 以及微软等大型云计算厂商以及一些开源公司共同牵头成立了 CNCF 云原生基金会。CNCF 成立之初,就有 22 个创始会员,而且 Kubernetes 也成为了 CNCF 托管的第一个开源项目。
2017 年,CNCF 达到 170 个成员和 14 个基金项目。
2018 年,CNCF 成立三周年有了 195 个成员,19 个基金会项目和 11 个孵化项目,如此之快的发展速度在整个云计算领域都是非常罕见的。
云原生技术生态现状
因此,如今我们所讨论的云原生技术生态是一个庞大的技术集合。CNCF 有一张云原生全景图,在这个全景图里已经有 200 多个项目和产品了,这些项目和产品也都是和 CNCF 的观点所契合的。所以如果以这张全景图作为背景,加以思考就会发现,
我们今天所讨论的云原生其实主要谈论了以下几点:
云原生基金会 —— CNCF
CNCF 是目前云计算领域最成功的开源基金会之一,是 Kubernetes、 etcd、Envoy 等知名开源项目的托管基金会。
云原生技术社区
比如像 CNCF 目前正式托管的多个项目共同构成了现代云计算生态的基石,其中像 Kubernetes 这样的项目已经成为了世界首屈一指,非常活跃的开源项目;目前从 CNCF 毕业的项目有很多,例如 Kubernetes 、Prometheus、Envoy、CoreDNS、containerd、Fluentd 。
云原生服务架构的原则
高可用架构设计的原则
可观测:可以通过运行状态和数据分析,实现可观测模式下的运行状态和运行数据分析。
可灰度:可以实现蓝绿发布、AB 测试、金丝雀发布机制等,实现数据服务的流量控制。
可回滚:可以实现服务的 fallback 和 reback 回滚方式。
提高架构可用性的设计原则
解耦:消息队列、分布式队列、服务拆分
冗余:异地容灾、多点部署、主从切换
异构:sidercar 模式进行分析和实现
异步:消息队列、异步调用、响应式编程
微服务设计原则
盗用官方图片一个:
评论