云原生 Dev0ps 实践

Posted 梯度科技

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生 Dev0ps 实践相关的知识,希望对你有一定的参考价值。

云原生 DevOps 落地实践过程中,从手工、工具化、自动化进而到全链路自运维体系,这种自动化的DevOps 可以实现更短的业务迭代周期、更稳固的交付质量、更优化的资源成本、更好的用户体验。云原生 DevOps 的步骤建议:

1)架构升级Service Mesh 化尝试

需要综合评估自身的架构特性,选择合适的业务和应用进行架构升级,并进行 Service Mesh 化的初步尝试。将更多的服务治理下沉到Service Mesh,比如日志采集、监控埋点、链路追踪等,这个过程中Sidecar和容器通过不同的进程部署在Pod中,在下沉Sidecar 的过程,可以循序渐进,逐步将应用进行精简。

2)架构升级逐步解耦CI/CD过程

一个微服务的构建过程包括多个环节,比如开发、测试、构建、发布、运维等,而云原生的本质是让这个过程尽量更快,尽量让业务应用来独立操作整个过程,提高研发效率。如果这个过程依赖其他业务应用的改动,则会使得整个过程的集成测试和沟通协同成本变高,解决这个问题可以从业务和技术两方面进行尝试。一方面,从技术角度可以从进程通信来入手,比如同一个容器同一进程中,通过函数调用通信;同一个Pod中不同容器,通过IPC 通信;同一个网络中,通过 RPC 通信。另一方面,从业务角度需要从业务架构和应用架构着手,让应用和服务的划分更合理,减少它们之间的耦合和依赖。

3)运维升级laC 和 Git0ps

从运维角度,在 DevOps 中需要考虑很多针对业务的不同配置,这些配置的维护和管理通常比较棘手,传统的基于控制台方式的维护成本很高。在云原生中,laC 和 GitOps 是非常好的解决方法,每个应用有一个 laC 仓库,保存应用镜像及所有相关的配置信息,GitOps 自动检测 IaC 的变化,自动翻译为符合 0AM 规范的配置,然后推到对应的环境上。同时,开发和运维人员可以以 laC 代码为契约,来明确每次发布的一致性和完整性。

4)资源升级Serverless 尝试

在企业应用上云后,使用的资源种类越来越多,操作和维护成本也变得越来越高。

在云原生中,可以利用自动分配、声明式描述、按需使用等原则,我们需要进一步简化应用资源的使用。这个过程可以结合 laC 中资源的定义,以及使用 Serverless 相关的特性,实现资源的智能管理和按需使用,并通过一些弹性策略来通过一些通用的标准协议,提高自动化资源弹性的申请和分配。

5)Dev0ps 进阶全流程自动化

从 DevOps 全流程角度,进行自动化的端到端尝试,进一步通过 CI/CD 的各种技术来简化整个流水线过程,并进一步构建企业特有的 DevOps 体系。在这个过程中,可以进一步规范化和自动化,全流程自动化 DevOps 进阶如下图所示:

云原生

●研发侧∶面向应用的,结合应用架构及企业组织协同文化,构建环境管理、代码扫描、提交工作流等方面的自动化。

● 测试侧∶需要基于自动化测试的理念,从用例构建、集成测试、性能测试、用例回放、智能测试能力方面进行自动化建设。

● 发布侧∶需要对各种开发、测试、生产环境进行自动化管理,同时针对相应的版本管理、灰度能力、回滚能力、自动发布能力进行重点建设。

● 运维侧∶需要结合云原生的自动化运维体系,在问题自动定位、容灾切流、自动恢复、热修复、APM,并结合传统的 Metrics、Tracing、Logging 的基础之上,构建成熟的故障发现、定位、处理的稳定性体系。

●运营侧∶为了完成 Dev0ps 的能力闭环,需要关注最终用户的反馈,用户行为数据采集、自动终端埋点、相关的售后体系、基于业务的可视化分析度量等都是运营阶段要思考的问题。



以上是关于云原生 Dev0ps 实践的主要内容,如果未能解决你的问题,请参考以下文章

云原生应用安全云原生应用安全风险思考

传统银行如何拥抱云原生?

数千台服务器,千万用户量:居然之家两年云原生改造历程

云原生演进趋势下传统数据库升级实践

云原生演进趋势下传统数据库升级实践

关于云原生应用,这些安全风险了解一下