技术大佬们, CI/CD(持续集成/持续发布)的方案有哪些
最近公司上级给的一个任务就是去了解研究一下微服务容器化,我自己理解的就是 docker+k8s 。 问了度娘,感觉领导的意思应该就是 CI/CD,网上给的方案是 gitlab + jenkins + docker + k8s, 我这里想问一下还有没有其他在生产环境中用得较多的方案
最近公司上级给的一个任务就是去了解研究一下微服务容器化,我自己理解的就是 docker+k8s 。 问了度娘,感觉领导的意思应该就是 CI/CD,网上给的方案是 gitlab + jenkins + docker + k8s, 我这里想问一下还有没有其他在生产环境中用得较多的方案
Github 是存代码
Codebuild 唯一的用途就是把代码打包成一个 Docker Image
AWS ECR 是存这个镜像
ECS 等同于 k8s
目前建议用我项目的方案,我也准备给公司的项目迁移一下
跟 CI/CD 没有一毛钱关系
1 、os.chdir(todo_path) # 移动到项目目录下
2 、pull_result = os.popen(“git pull “) # 拉取最新代码
3 、build_result = os.popen( f”sudo docker build -t {name}:{tag} .”) #重新编译新镜像
4 、stop_result = os.popen( f”docker stop {container_name} && docker rm {container_name}”) # 停止并删除旧版容器
5 、run_result = os.popen( f”docker run –name {container_name} -d –restart=always {name}:{tag}”) # 启动运行新镜像,更新完成
一般是:
代码托管( azure devops repo )->DevOps Pipeline -> DevOps Realease ->Azure Container Registry – > Azure K8S Service
代码托管( azure devops repo )->DevOps Pipeline -> Azure Container Registry – > DevOps Realease -> Azure K8S Service
1. gerrit + jenkins 做编译检查已经有了.
2. 缺对产出进行嵌入式设备上的自动化测试流程.
看了下 各大厂好像都是自研流程. 商业化的不多. 求指导….
我们最开始容器化的时候,项目负责人执行命令在本地构建和上传镜像。后来用得比较成熟了才部署了 CI 。代码仓库如果是 GitLab 的话,直接用 GitLab CI/CD 。GitHub 就考虑 GitHub Actions 。Drone.io 也可以考虑,本身就是容器化部署,特别方便。
https://github.com/hantsy/spring-reactive-jwt-sample