## 提高部署效率

通过编写程序实现自动化部署，可提高部署效率，降低运维成本。在容器化、K8s 等技术的加持下，部署进一步标准化，集群管理更加便捷。

GitLab 支持两种自动化部署方式：

1.  CI/CD 流水线
2.  GitOps

「CI/CD 流水线」由业务代码驱动部署，当业务代码变化时，流水线生成制品，并且将制品或制品库链接（如 Docker）传递给 CD 流水线，执行自定义的命令行程序（如 kubectl patch、scp），可部署到 K8s、对象存储、Linux/Windows/macOS 服务器、Serverless 等各种架构。缺点是：无法修改服务器配置等基础设施。

GitOps 由基础设施代码驱动部署，遵循「基础设施即代码」的理念，将基础设施配置文件（如 Terraform 和 K8s yaml）放在 Git 中，变化时触发流水线推送（如执行 kubectl apply）或等待 GitLab agent（客户端）持续拉取，实现部署。
