目录

DevOps-ACA-云原生与DevOps九

DevOps ACA 云原生与DevOps(九)

文章目录

云原生与DevOps

1. 云原生的基本概念

1. 云原生的定义

“云原生技术有利于各组织在公有云。私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。”

  • 云原生的定义一直在变

    – 不同组织有不同的定义:Pivotal & CNCF

    – 同一个组织在不同时间点有不同的定义

    – 同一个人在不同时间点也有不同的定义云原生的定义未来还会变

  • CNCF最新的定义:版本V1.0

2. 云计算的服务模型

https://i-blog.csdnimg.cn/blog_migrate/10d2b56d76b16c2b3eb485a576866414.png

3. 云原生应用的关注点

  1. 微服务

  2. 容器技术

  3. CI/CD

  4. DevOps

    https://i-blog.csdnimg.cn/blog_migrate/0eb86dfdab3d0d4cb2587c33d8d68d74.png

2. 微服务

1. 微服务架构的演进

https://i-blog.csdnimg.cn/blog_migrate/323fb7dabf4a9a2a1c331b9609c15037.png

2. 微服务的好处

  1. 独立的可拓展性
  • 每个微服务都可以独立进行横向或纵向扩展,根据业务实际增长情况来进行快速扩展;
  1. 独立的可升级性
  • 每个微服务都可以独立进行服务升级、更新,不用依赖于其它服务,结合持续集成工具可以进行持续发布,开发人员就可以独立快速完成服务升级发布流程;
  1. 语言无关性
  • 研发人员可以选用自己最为熟悉的语言和框架来完成他们的微服务项目
  1. 故障和资源的隔离性
  • 在系统中出现不好的资源操作行为时,将仅仅只会影响单个微服务

3. 微服务带来的挑战

  1. 分布式系统的复杂性
  • API数目成倍增加
  • 调试分布式系统很复杂
  • 跨服务的重构会很困难
  • 很难在测试中重建和生产环境一致的环境
  1. 微服务的运维开销更大
  • 多个服务需要多种编程语言运行环境
  • 多个服务需要集群来处理故障转移,负载均衡
  • 需要高质量的服务监控和运维基础设施
  • 对健壮和自动化的部署要求更高
  1. 对团队的要更高
  • 组织结构需要转型到自治的,跨功能的团队
  • 团队的技术能力,技术栈需要扩展
  • 要求团队更高的DevOps水平

3. 容器

1. 什么是容器

  • 与系统其他部分隔离开的一系列进程

  • 容器提供了一种逻辑打包机制,以这种机制打包的应用可以脱离其实际运行的环境

    https://i-blog.csdnimg.cn/blog_migrate/000b5c8653ac06084c4e6f7a254929ac.png

2. Docker基本概念

  1. 容器

  2. 镜像

  3. Docker File

  4. 仓库

    https://i-blog.csdnimg.cn/blog_migrate/9a934624e5e6b7a5bffc5716d7844489.png

3. Docaker工作流

从Docker File —- Build到 —- images —- push到—-容器仓库(ship)

images运行起来就是一个Run

https://i-blog.csdnimg.cn/blog_migrate/746f31cecf799766a98a034a1ad92c35.png

4. CI/CD及DevOps

概念:

CI
Continuous Integration 持续集成
CD
Continuous Deployment 持续部署
DevOps
从字面上直观理解∶开发运维一体化

https://i-blog.csdnimg.cn/blog_migrate/57856766e5fff11d1deaea9661210b74.png

1. CI 持续集成流程

持续集成指的是∶

1.开发人员频繁地向代码库提交代码

2.提交的代码需要经过构建、测试验证并及时得到结果反馈。

https://i-blog.csdnimg.cn/blog_migrate/c4ff988e8d19cff8f65f33575acc52a2.png

2. CD 持续部署/持续交付

CD Continuous Deployment持续部署的主要目标:

  • 持续部署是持续集成的延伸,将集成后的代码部署到生产环境
  • 频繁部署确保可以小批次发布,在发生问题时可以轻松排除故障。

https://i-blog.csdnimg.cn/blog_migrate/1fb3dc97f7f31fb768afb2d689bc40b4.png

3. DevOps的定义

  • 维基百科:是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

  • DevOps经常被描述为“开发团队与运营团队之间更具协作性、更高效的关系”。

    https://i-blog.csdnimg.cn/blog_migrate/cdc1b5907a8d831979969dc023328723.png

4. 阿里云DevOps策略 : 打造一站式DevOps效能平台交付流水线

https://i-blog.csdnimg.cn/blog_migrate/888bb9d14e285427e4dd1b7ab6f58f1e.png