大火的云原生是什么?从docker到Devops搞懂它

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 大火的云原生是什么?从docker到Devops搞懂它

Devops开发模式的诞生

下图展示了开发模式的演变:

网络异常,图片无法展示
|

早期,互联网行业用户关注产品的功能,能解决什么问题。因此产品的需求在开发时基本确定,不会频繁变更,此时一般是采用瀑布式开发模式。

但是现在,互联网行业快速发展,用户不仅关注产品功能,并且关注产品是否好用好看,为了快速获得现金流,产品就需要快速交付市场,及时获得市场反馈,同时做出调整。也就是说,在产品开发前期,需求是不明确的,需要在获得市场反馈过程中不断补充完善,这就造成需求频繁更改,也要求快速开发。敏捷开发模式就是在用户需求快速增加和产品迭代周期不断压缩的背景下产生的。

虽然敏捷开发使得开发人员提高软件开发效率和版本更新速度,但是,由于每次产品上线都需要运维进行部署,频繁的更新对于运维人员来说是比较痛苦的。为了实现持续迭代和运维自动化,便有了Devops的概念。

Docker

Docker类似于一个轻量的虚拟机。在以前,我们测试时,经常需要虚拟机模拟多个浏览器环境,这就需要我们在自己的电脑上安装虚拟机软件,再在虚拟机里创建虚拟的操作系统。这些虚拟的操作系统不仅占容量,启动也慢。但是Docker确没有这些问题。它不需要虚拟出整个操作系统,并且启动快,所占空间小。

关于Docker有三个核心概念:

  • 镜像(Image)
  • 仓库(Repository)
  • 容器(Container)

网络异常,图片无法展示
|
举个🌰:

假设我建了一个房子,此时我需要搬家,这就意味着房子里的装修、家具等都需要再重新布置一遍。此时我就可以将我的房子复制一份,做成一个“镜像”,然后放进我的背包里带走,到了新的地方再拿出“镜像”,复制出新的房子。仓库就相当于这里的背包,而容器具相当于新建好的房子。

Tips:仓库提供一个集中的存储、分发镜像的服务。一个仓库会包含同一个软件不同版本的镜像。镜像(tag)就常对应软件的不同版本。

kubernetes(K8S)

K8S:基于容器的集群管理平台,负责对Docker镜像进行管理,编排、管理和调度

下面给出了K8S的设计架构图:

网络异常,图片无法展示
|

首先,一个K8S系统就是一个K8S集群。集群通常由两个核心部分组成:一个Master节点和一群Node节点。Master主节点主要负责集群管理和控制Node节点,Node节点是物理机或虚拟机的主机节点,每个Node节点提供Pod运行的必要服务。

集群中的基本对象

  • Pod:基本对象
  • Service:解决如何访问Pod内部服务问题
  • Volunme:存储卷
  • Namespace:命名空间

Master节点

Master主节点提供了4个部分:

  • API Server:负责处理用户的请求,对外提供RESTful接口,包括集群状态的查改请求。是唯一一个与etcd集群通信的组件
  • Controller Manager:所有资源的自动化管理控制中心。在主节点上运行控制器的组件,从逻辑上讲,每个控制器都是独立的进程,但是为了降低复杂性,它们都被编译到同一个可执行文件,并在一个进程中运行
  • Scheduler:负责Pod在各个Node节点上的分配和调度,并提供多种Pod调度策略(预选和优选策略)
  • etcd:负责存储持久性状态,保存集群所有数据

Node节点

  • Pod:K8S部署的最小对象,内含1~n个容器和存储卷,所有容器都是一个业务。(重点:Pod是短暂的,不是持续性实体;同一个Pod的容器在一个命名空间里)
  • kubelet:负责管理Pod的生命周期以及Pod的容器、镜像等。并根据从数据库获取的信息来管理容器,上报pod运行状态
  • kube-proxy:负责讲访问到某个服务的请求具体分配给工作节点上同一类标签的pod。提供pod之间的网络代理通讯和负载均衡。
  • Docker:容器应用引擎
  • Fluentd:负责日志收集、存储与查询
  • Container Runtime:负责镜像管理以及Pod和容器的真正运行。

CI/CD

持续集成和持续部署 (CI/CD) 通过 Docker 加速应用管道自动化和应用部署。CI/CD 就是 DevOps 的重要实践成果。

最老牌最成熟的CI/CD平台自然是Jenkins。

云原生

Pivotal官网对云原生概括为4个要点:DevOps+持续交付+微服务+容器

网络异常,图片无法展示
|
符合云原生架构的应用程序应该是:采用开源堆栈(K8S+Docker)进行容器化,基于微服务架构提高灵活性和可维护性,借助敏捷方法、DevOps支持持续迭代和运维自动化,利用云平台设施实现弹性伸缩、动态调度、优化资源利用率。

相关链接:

10分钟看懂Docker和K8S

强推!2019年最火的容器、K8S和DevOps入门都在这了DevOps和CI/CD

最详细的 K8S 学习笔记总结(2021最新版)

什么是云原生?这回终于有人讲明白了

2021年DevOps工程师的必备技能

如何基于 K8s 构建下一代 DevOps 平台?

CICD之DevOps简介

CICD DevOps 绝对会让你看懂,教育面试官。他俩的 区别



相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
6天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
28 2
|
4天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
1月前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【10月更文挑战第2天】本文将带你走进云原生的世界,从基础的Docker容器技术开始,逐步深入到Kubernetes集群管理。我们将通过实际代码示例,探索如何利用这些工具构建、部署和管理现代云应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,让你在云原生领域迈出坚实的一步。
84 5
|
22天前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
33 3
|
26天前
|
Kubernetes 持续交付 Docker
探索DevOps实践:利用Docker与Kubernetes实现微服务架构的自动化部署
【10月更文挑战第18天】探索DevOps实践:利用Docker与Kubernetes实现微服务架构的自动化部署
74 2
|
28天前
|
Kubernetes Cloud Native 开发者
探秘云原生计算:Kubernetes与Docker的协同进化
在这个快节奏的数字时代,云原生技术以其灵活性和可扩展性成为了开发者们的新宠。本文将带你深入了解Kubernetes和Docker如何共同塑造现代云计算的架构,以及它们如何帮助企业构建更加敏捷和高效的IT基础设施。
|
1月前
|
安全 Cloud Native Shell
云上攻防:云原生篇&Docker容器逃逸
本文介绍了Docker的基本概念及其对渗透测试的影响,重点讲解了容器逃逸的方法。Docker是一种轻量级的容器技术,与虚拟机相比,具有更高的便携性和资源利用率。然而,这也带来了安全风险,特别是容器逃逸问题。文章详细描述了三种常见的容器逃逸方法:不安全的配置、相关程序漏洞和内核漏洞,并提供了具体的检测和利用方法。此外,还介绍了几种特定的漏洞(如CVE-2019-5736和CVE-2020-15257)及其复现步骤,帮助读者更好地理解和应对这些安全威胁。
云上攻防:云原生篇&Docker容器逃逸
|
1月前
|
Kubernetes Cloud Native Docker
云原生入门:Kubernetes和Docker的协同之旅
【10月更文挑战第4天】在这篇文章中,我们将通过一次虚拟的旅行来探索云原生技术的核心——Kubernetes和Docker。就像乘坐一艘由Docker驱动的小船启航,随着波浪(代码示例)起伏,最终抵达由Kubernetes指挥的宏伟舰队。这不仅是一段技术上的旅程,也是理解现代云架构如何支撑数字世界的冒险。让我们扬帆起航,一探究竟!
|
1月前
|
Kubernetes Cloud Native 持续交付
云原生之旅:Docker容器化与Kubernetes集群管理
【9月更文挑战第33天】在数字化转型的浪潮中,云原生技术如同一艘航船,带领企业乘风破浪。本篇文章将作为你的航海指南,从Docker容器化的基础讲起,直至Kubernetes集群的高级管理,我们将一起探索云原生的奥秘。你将学习到如何封装应用、实现环境隔离,以及如何在Kubernetes集群中部署、监控和扩展你的服务。让我们启航,驶向灵活、可伸缩的云原生未来。
|
1月前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker与Kubernetes入门
【9月更文挑战第30天】在云计算的浪潮中,云原生技术正以前所未有的速度重塑着软件开发和运维领域。本文将通过深入浅出的方式,带你了解云原生的核心组件——Docker容器和Kubernetes集群,并探索它们如何助力现代应用的构建、部署和管理。从Docker的基本命令到Kubernetes的资源调度,我们将一起开启云原生技术的奇妙之旅。