SREWorks云原生数智运维工程实践-云原生运维实战篇-SREWorks持续交付云原生化:镜像构建(中)

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: SREWorks云原生数智运维工程实践-

二、 架构演进

 

1. Docker build机制

 

按照Docker官方文档给出的架构图,Docker主要分为Client,Host,Registry三个部分。

 

image.png

 

Docker按照C/S架构,通过Client与Host进行通信。Host作为后端,负责处理所有Client请求以及后端模块的调度及管理工作。Registry作为中心化的镜像仓库,存储所有需要保存的镜像。

 

此处,我们主要关注docker build命令。可以看到Host中Docker daemon模块负责接受和处理Client的命令请求。Docker daemon内部架构此处不做详细描述,只需要知道Docker daemon在接受到docker build命令之后,会启动一个create job去执行构建。在构建过程中,可能会需要到远程Regiestry中心镜像仓库拉取基础镜像如果本地不存在的话。在构建完成之后,Host会将构建好的镜像保存在本地的Repository中。

 

Docker daemon作为docker的服务端,由于需要系统的ROOT权限等要求,导致其不能天然地运行在另一个docker容器之中。这也为镜像构建云原生化提出了新的技术问题。

 

2. 初始态:Docker out of K8S

 

在Docker build机制的支持下,在最初阶段是通过在K8S外搭建构建机器做镜像的构建任务,其架构如下:

 

 

 

image.png

 

AppManager:是SREWorks的中心管控服务,负责与K8S底座交互,应用构建发布及生命周期管理等核心功能在初始态,AppManager在需要执行镜像构建时,直接连接部署在K8S之外的某个ECS上Docker daemon来执行镜像构建。依然处于“On-Machine”的发展阶段。

 

这种方式的缺点包括但不限于:

 

安全性差:当这台ECS被劫持之后,恶意程序通过在镜像构建过程中注入非法代码,能够影响所有部署在云上的应用

效率较低:当构建任务过多时,一起抢占ECS机器资源,会引起构建拥塞。

 

3. 过渡态:Docker out of Docker

 

Docker out of Docker,下面简称“DooD”,依然使用docker build机制的远程构建能力,每个执行构建任务的pod都连接到本地node的Docker daemon实现镜像构建。

 

通过DooD的方式,AppManager可以动态的在集群层面拉起pod去执行镜像构建任务,而不用再去跟集群外部服务打交道。镜像构建任务可以均匀的分布到每台node,避免构建拥塞。且DooD通过操作基础设施node节点,实现了一种“伪弹性构建”的能力。

 

image.png

 

DooD的缺点也是显而易见的:

 

实施成本高:需要人工为每台Node节点安装Docker daemon程序,并保证其正确运行

安全性差构建Pod有能力通过node节点Docker daemon进程影响其他Pod

资源浪费由于每台node节点都常置Docker daemon服务进程,不仅没有减少资源消耗,反而加重了资源浪费,这也是为什么称其为“伪弹性构建”。

 

4. 终态:Docker in Docker

 

Docker in Docker,下面简称“DinD”,与DooD是对应的,表示容器内client直接连接容器自身的Docker daemon进程来完成镜像构建任务。其架构如下:

 

image.png

 

DinD的架构,实现了按需拉起执行镜像构建任务的Pod,并在任务完成后及时归还Pod资源。构建任务的Pod也不再感知Node机器,所有管控及调度工作由K8S等云底座统一实现。

 

其优点包括:

 

弹性构建:所有构建Pod所需资源由K8S等云底座统一调度和回收

安全可靠:构建Pod满足所有资源及权限管控要求,更加安全可控

无服务器:Pod是容器化的,不再运行在ECS等机器之上

快速交付:在集群层面完成构建任务调度,更加及时且可扩展

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4天前
|
运维 Cloud Native 持续交付
构建未来:云原生技术在企业数字化转型中的关键作用
【4月更文挑战第21天】 随着企业逐渐转向数字化运营,云原生技术以其独特的优势成为了推动转型的核心力量。本文将探讨云原生技术如何通过提供灵活、可扩展的解决方案来帮助企业应对不断变化的市场需求,同时确保系统的可靠性和安全性。我们将深入分析容器化、微服务架构、持续集成与持续部署(CI/CD)等关键技术,并讨论它们如何共同作用于企业的云原生旅程。
19 5
|
1天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第24天】 随着企业加速其数字化转型之旅,云原生架构已成为实现敏捷性、可扩展性和持续创新的关键推动力。本文将探讨云原生技术如何助力企业构建灵活的IT环境,支持快速部署新服务,并提高整体业务效率。通过分析微服务、容器化、DevOps和持续集成/持续部署(CI/CD)等关键技术的实践应用,我们将揭示这些元素如何共同塑造出一个响应迅速且高效的企业架构模型。
|
5天前
|
Cloud Native API 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第21天】 随着企业加速其数字化转型的步伐,云原生技术已迅速成为推动创新和实现敏捷性的基石。本文深入探讨了云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及声明式API。通过分析这些技术的协同效应,揭示了它们如何共同促进系统的可伸缩性、弹性和维护性,进而支持企业在不断变化的市场环境中保持竞争力。
10 1
|
5天前
|
敏捷开发 Cloud Native 持续交付
构建未来:云原生架构的进化之路
【4月更文挑战第21天】随着数字化转型的深入,企业对IT基础设施的要求日益提高。云原生技术以其灵活性、可扩展性和敏捷性成为推动创新的重要力量。本文将探讨云原生架构的核心组件,分析其如何助力企业实现快速迭代和高效运营,并预测云原生技术的发展趋势。
|
7天前
|
Cloud Native Devops 持续交付
构建未来:云原生技术在企业数字化转型中的关键角色
【4月更文挑战第18天】 随着企业加速其数字化转型的步伐,云原生技术已成为推动创新与维护企业敏捷性的基石。本文将深入探讨云原生的概念、核心技术以及如何在企业环境中实现有效部署。我们将剖析容器化、微服务架构、DevOps和持续集成/持续部署(CI/CD)等关键技术,并讨论它们如何共同塑造一个灵活、可扩展且高效的云环境。文章还将展示通过采用云原生实践,企业能够如何优化资源利用、加快产品上市时间,并提供一流的客户体验。
|
8天前
|
Cloud Native 持续交付 云计算
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第18天】 随着企业加速迈向数字化,云原生架构成为推动创新与效率的催化剂。本文深入探讨了云原生技术如何助力企业实现敏捷开发、自动化运维和无缝可扩展性,以及它如何塑造着云计算的未来。我们将通过具体案例分析,揭示云原生架构在处理复杂系统时的灵活性和可靠性,并展望其对业务连续性和安全性的积极影响。
13 1
|
10天前
|
Cloud Native 持续交付 API
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第15天】 随着企业加速其数字化转型的步伐,云原生架构已经成为推动创新和实现敏捷性的关键技术。本文深入探讨了云原生技术如何助力企业在竞争激烈的市场中保持领先地位,包括它的核心组件、实施策略以及面临的挑战。通过实际案例分析,我们揭示了企业如何利用云原生架构来优化资源使用、提高开发效率和加强系统的稳定性与安全性。
|
10天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。
|
11天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第14天】 随着企业加速迈向数字化,云原生架构成为支撑其转型战略的核心技术之一。该文章深入探讨了云原生技术如何通过提供灵活、可扩展的解决方案来满足现代业务需求。分析了容器化、微服务、持续集成和持续部署(CI/CD)以及DevOps文化对于构建和维护高效、可靠的云基础设施的重要性。同时,讨论了企业在采用云原生架构时可能面临的挑战,并提出相应的策略以克服这些障碍。
|
12天前
|
人工智能 运维 监控
构建高效自动化运维体系的实践与思考
【4月更文挑战第14天】在数字化转型的浪潮中,自动化运维作为提升系统稳定性和效率的关键手段,受到了企业的广泛关注。本文将深入探讨如何构建一个高效的自动化运维体系,涵盖从基础设施的搭建到流程的优化等多个方面。通过分析当前自动化运维的挑战及解决方案,文章旨在为读者提供一套实用的策略框架,帮助企业实现运维工作的高效化、标准化和智能化。

热门文章

最新文章