中小团队的云原生DevOps之路
主要内容
-
DevOps的四个组成部分:
- 开发人员无需关心基础架构,专注于代码功能开发。
- 运维人员从各种琐碎的手工配置中解脱出来,专注于基础架构的自动化,软件交付的自动化。
- DevOps的工具帮助开发人员与运维人员共同关注线上问题,快速定位与修复线上的bug。
-
云原生与DevOps的关系:
- 云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。
- 云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
-
案例详解:
案例一:如何管理微服务中的数据库
- 业务中会使用到多种数据库,每种数据库特点不同。
- 每个微服务需要一个数据库,不同的环境数据生命周期不同。
- 数据库数量指数级别增长,脚本式管理挑战巨大。
- 使用Kubernetes Operator管理数据库,将运维人员的操作代码化,并利用Kubernetes的强大抽象来管理大规模的软件应用。
- 常见的数据库类型包括Redis、MongoDB、Elasticsearch、MySQL、PostgreSQL、Kafka、RabbitMQ和Nats。
- 数据库需求配置化,与应用打包在一个Helm Chart中。
- 不同环境的数据生命周期管理:测试环境清空,准生产环境保留,生产环境保留且备份。
- 图形化数据库查询工具用于开发人员,避免直接连接数据库,使用Vault管理密码。
案例二:四个关键指标
- 云原生技术栈很多,团队如何将这些技术串联起来。
- 开发人员只需向Git中提交代码,无需关心基础架构。
- 运维人员通过云原生方式提供了测试和生产一致的基础架构环境。
- 完善的监控体系帮助开发与运维人员快速定位与解决线上问题。
- 通过四大指标提升DevOps的运作效率:部署频率、变更前置时间、变更失败率、恢复服务时间。
关键数据
-
DevOps评估标准:
-
云原生技术:
- 容器
- 服务网格
- 微服务
- 不可变基础设施
- 声明式API
-
数据库管理:
- Redis
- MongoDB
- Elasticsearch
- MySQL
- PostgreSQL
- Kafka
- RabbitMQ
- Nats
总结
通过引入云原生技术和DevOps方法,中小团队可以在公有云、私有云和混合云环境中构建和运行可弹性扩展的应用。Kubernetes Operator和Helm Chart等工具帮助实现数据库的自动化管理,提升资源利用率和安全性。完善的监控体系和四大关键指标进一步优化了DevOps的运作效率,加速了软件开发与交付速度。