目录

一、k8s 助力 DevOps 在企业落地实践

1.1 传统方式部署项目为什么发布慢,效率低?

1.2 上线一个功能,有多少时间被浪费了?

1.3 如何解决发布慢,效率低的问题呢?

1.4 什么是 DevOps?

1.4.1 敏捷开发

1.4.2 持续集成(CI)

1.5.3 持续交付

1.5.4 持续部署

​二、为什么大厂都在用 DevOps?

2.1 传统软件服务企业的痛点

2.2 DevOps 在金融行业的应用

​2.3 哪些企业在用 DevOps?

2.4 DevOps 在 5G 领域的的展望

三、K8s 在 DevOps 中的核心作用

3.1 自动化

3.2 多集群管理

3.3 多环境一致性

3.4 实时反馈和智能化报表

四、基于 Jenkins+K8s+Harbor+Git 等技术链助力 DevOps 在企业落地实践案例

4.1 神州泰岳 k8s+DevOps+微服务生态体系建设与实践

4.2 百度:基于 k8s 构建亿级 PV 流量的 DevOps 平台


扩展链接:一分钟看懂云计算是啥!

一、k8s 助力 DevOps 在企业落地实践

1.1 传统方式部署项目为什么发布慢,效率低?

1.2 上线一个功能,有多少时间被浪费了?

1.3 如何解决发布慢,效率低的问题呢?

1.4 什么是 DevOps?

  • 亚马逊的定义:https://aws.amazon.com/devops/what-is-devops/

  • 谷歌的定义:https://cloud.google.com/devops#section-2

  • 微软的定义:https://azure.microsoft.com/en-gb/overview/what-is-devops/#devops-overview

  • Atlassian 的定义:https://www.atlassian.com/devops/what-is-devops/benefits-of-devops

1.4.1 敏捷开发

提高开发效率,及时跟进用户需求,缩短开发周期。 敏捷开发包括编写代码和构建代码两个阶段,可以使用 git 或者 svn 来管理代码,用 maven 对代码进行构建。

1.4.2 持续集成(CI)

持续集成强调开发人员提交了新代码之后,立刻自动的进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。持续集成过程中很重视自动化测试验证结果,对可能出现的一些问题进行预警,以保障最终合并的代码没有问题。

常见的持续集成工具:

  1. Jenkins:Jenkins 是用 Java 语言编写的,是目前使用最多和最受欢迎的持续集成工具,使用 Jenkins,可以自动监测到 git 或者 svn 存储库代码的更新,基于最新的代码进行构建,把构建好的源码或者镜像发布到生产环境。Jenkins 还有个非常好的功能:它可以在多台机器上进行分布式地构建和负载测试。

  2. TeamCity

  3. Travis CI

  4. Go CD

  5. Bamboo

  6. GitLab CI

  7. Codeship

它的好处主要有以下几点:

  1. 较早的发现问题:每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,哪个环节出现问题都可以较早的发现。

  2. 快速的发现错误:每完成一部分代码的更新,就会把代码集成到主干中,这样就可以快速的发现错误,比较容易的定位错误。

  3. 提升团队绩效:持续集成中代码更新速度快,能及时发现小问题并进行修改,使团队能创造出更好的产品。

  4. 防止分支过多的偏离主干:经常持续集成,会使分支代码经常向主干更新,当单元测试失败或者出现bug,如果开发者需要在没有调试的情况下恢复仓库的代码到没有bug的状态,只有很小部分的代码会丢失。

持续集成的目的是提高代码质量,让产品快速的更新迭代。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

Martin Fowler说过,"持续集成并不能消除 Bug,而是让它们非常容易发现和改正。"

1.5.3 持续交付

持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。

如果所有的代码完成之后一起交付,会导致很多问题爆发出来,解决起来很麻烦,所以持续集成,也就是没更新一次代码,都向下交付一次,这样可以及时发现问题,及时解决,防止问题大量堆积。

1.5.4 持续部署

持续部署是指当交付的代码通过评审之后,自动部署到生产环境中。持续部署是持续交付的最高阶段。

Puppet,SaltStack 和 Ansible 是这个阶段使用的流行工具。容器化工具在部署阶段也发挥着重要作用。 Docker 和 k8s 是流行的工具,有助于在开发,测试和生产环境中实现一致性。 除此之外,k8s 还可以实现自动扩容缩容等功能。

二、为什么大厂都在用 DevOps?

2.1 传统软件服务企业的痛点

解决之道:DevOps

本图摘自:张乐-《DevOps道法术器》

2.2 DevOps 在金融行业的应用

标准的敏捷开发流程:

2.3 哪些企业在用 DevOps?

2.4 DevOps 在 5G 领域的的展望

三、K8s 在 DevOps 中的核心作用

Docker 和 K8s 的出现使 DevOps 变得更加普及,更加容易实现。在传统运维中我们服务时需要针对不同的环境去安装不同的版本,部署方式也杂、多。那么有了 docker 之后,一次构建、到处运行,我们只需要要构建一次镜像,那么只要有 docker 的主机,就可以基于镜像把应用跑起来。

docker 可以实现 DevOps 的这个思想,但是存在一个问题,什么问题呢?

在众多微服务中,我们每天可能需要去处理各种服务的崩溃,而服务间的依赖调用关系也及其复杂,这对我们解决问题带来了很大的复杂度。要很好的解决这个问题。我们就需要用到容器编排工具。

Kubernetes 的出现主宰了容器编排的市场,也进化了过去的运维方式,将开发与运维联系的更加紧密。而且让 DevOps 这一角色变得更加清晰,它是目前可用的很流行的容器解决方案之一。

3.1 自动化

敏捷开发 -> 持续集成 -> 持续交付 -> 持续部署

3.2 多集群管理

可以根据客户需求对开发、测试、生产环境部署多套 kubernetes 集群,每个环境使用独立的物理资源,相互之间避免影响。

3.3 多环境一致性

        Kubernetes 是基于 docker 的容器编排工具,因为容器的镜像是不可变的,所以镜像把 OS、业务代码、运行环境、程序库、目录结构都包含在内,镜像保存在我们的私有仓库,只要用户从我们提供的私有仓库拉取镜像,就能保证环境的一致性。

3.4 实时反馈和智能化报表

        每次集成或交付,都会第一时间将结果通过多途径的方式反馈给你,也可以定制适合企业专用的报表平台。

四、基于 Jenkins+K8s+Harbor+Git 等技术链助力 DevOps 在企业落地实践案例

4.1 神州泰岳 k8s+DevOps+微服务生态体系建设与实践

开发代码 -> 提交代码到代码仓库 -> Jenkins 调 k8s API -> 动态生成 Jenkins Slave Pod -> Slave Pod 拉取 git 上的代码 -> 编译代码 -> 打包镜像 -> 推送镜像到镜像仓库 harbor 或者 docker hub -> 通过 k8s 编排服务发布到测试、生产平台 -> Slave Pod 工作完成之后自动删除 > 通过 Ingress 发布服务

4.2 百度:基于 k8s 构建亿级 PV 流量的 DevOps 平台

功能图:

架构图:

发布应用到测试环境

发布应用到生产环境:

整个 DevOps 流程图:

上一篇文章:【Kubernetes 企业项目实战】05、基于云原生分布式存储 Ceph 实现 K8s 数据持久化(下)_Stars.Sky的博客-CSDN博客

下一篇文章:【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(中)_Stars.Sky的博客-CSDN博客

【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(上)相关推荐

  1. Django项目实战:CMDB资产扫描和DevOPS自动化运维

    文章目录 项目实战:CMDB自动化资产扫描和自动化运维 1.项目介绍 2.项目技术分析 运维自动化难点和痛点 项目技术难点 整体工程设计 3.项目环境搭建 项目环境要求 项目环境的搭建 项目目录的配置 ...

  2. 【Kubernetes 企业项目实战】05、基于云原生分布式存储 Ceph 实现 K8s 数据持久化(下)

    目录 一.K8s 对接 ceph rbd 实现数据持久化 1.1 k8s 安装 ceph 1.2 创建 pod 挂载 ceph rbd 二.基于 ceph rbd 生成 pv 2.1 创建 ceph- ...

  3. 如何使用众安科技智能化运维管理平台提高企业效率

    数字化时代企业对于运维管理的需求越来越迫切.传统的手动运维方式已经无法满足企业对高效.可靠的运维管理的需求.众安科技作为一家科技公司,提供智能化运维管理平台,为企业提供全面的运维解决方案.本文将详细介 ...

  4. 【Kubernetes 企业项目实战】03、基于 Alertmanager 发送报警到多个接收方(下)

    目录 一.promethues 采集 tomcat 监控数据 1.1 制作 tomcat 镜像 1.2 基于上面的镜像创建一个 tomcat 实例 1.3 采集数据 二.promethues 采集 r ...

  5. 【Kubernetes 企业项目实战】09、Rancher 2.6 管理 k8s-v1.23 及以上版本高可用集群

    目录 一.Rancher 介绍 1.1Rancher简介 1.2 Rancher 和 k8s 的区别 1.3 Rancher 企业使用案例 二.安装 Rancher 2.1 初始化环境 2.2 安装 ...

  6. 【Kubernetes 企业项目实战】07、最新一代微服务网格 Istio 入门到企业实战(下)

    目录 一.istio 核心资源解读 1.1 Gateway 总结: 1.2 VirtualService 1.2.1 VirtualService 主要由以下部分组成 1.2.2 virtualser ...

  7. 基于Django实现Linux运维管理平台的整个实现过程和各种API接口调用以及Echarts绘图项目介绍(一)记录点滴生活

    基于Django实现Linux运维管理平台整个实现过程和各种API接口调用以及Echarts绘图的使用介绍 项目内容涉及技术直通车: 我的项目仓库:MyGitHub https://github.co ...

  8. 基于ZTMap3D建设智慧楼宇建筑数字孪生运维管理平台

    近几年随着智慧楼宇概念的深入,尤其是在"十四五规划""新基建""数字经济"等相关战略和政策的引导下,智慧楼宇也迎来了快速发展期,对推动智慧城 ...

  9. Android项目实战系列—基于博学谷(四)我的模块(上)

    由于这个模块内容较多,篇幅较长,请耐心阅读. "我"的模块分为四个部分 我的界面 设置界面 修改密码界面 设置密保和找回密码 一."我"的界面 1.底部导航栏 ...

最新文章

  1. 文本分类从入门到精通
  2. 以交互方式安装ESXi 6.0
  3. sublimeformaya
  4. 如何知道iframe文件下载download完成
  5. 动态规划经典算法--最长公共子序列 LCS
  6. String有两种赋值方式
  7. vue企业网站模板_模板网站VS定制网站,企业如何选择?
  8. [深度学习-实践]Transformer模型训练IMDB-tensorflow2 keras
  9. LeetCode002-两数相加(Add Two Numbers)-Rust语言实现
  10. android编译终止,android - Android NDK-没有此类文件或目录编译终止-头文件导出问题 - 堆栈内存溢出...
  11. struts2 获得前端数据:
  12. 解密常见的社会工程学攻击
  13. springCloud微服务生态圈囊括—— 服务注册,服务调用,服务降级,熔断。(1)
  14. m4a转mp3方法,m4a转mp3步骤
  15. ROS基础---ros通信、ros发布者publisher、publisher.cpp、Talker.cpp
  16. 第一篇:个人感悟----懒惰是人类最大的敌人
  17. 【完整流程】在Windows系统中安装Python
  18. 多线程和虚拟机的宏观理解
  19. 那些工作后补过的大学知识
  20. gis实验——数字地形分析

热门文章

  1. 农产品溯源和农业数字化转型如何同步进行?
  2. java-----static修饰符
  3. android开发Enum (枚举)的更轻量级的替代方案 —— @IntDef的使用
  4. 解题报告 Punch
  5. 【PaaS】成就若干个独角兽,炎黄盈动BPM PaaS重塑企业应用生态价值
  6. 罗森便利店3000家店铺数据分析,只要铺店够快,黑马就追不上来
  7. IQ 对 LDO 低功耗性能的影响
  8. LPCOpen_LPC5411x学习笔记 ch1 + ch2
  9. golang各种int最大值
  10. 致我们一起共同走过的青春