当前位置: 首页 > news >正文

结合DevOps实践:使用Huawei CodeArts和CCE进行自动化Kubernetes集群部署

文章目录

    • 引言
    • DevOps的价值
    • 高效工作流程
    • 结束语

引言

在当今企业环境里,DevOps已经成为了实现敏捷、持续集成(CI)和持续交付(CD)的关键。这篇博客我们将分享如何使用华为的CodeArts与CCE(Cloud Container Engine)打造一个自动化的CI/CD环境,并将其实践于Kubernetes集群的部署中。我们将细致解释如何将编译后的应用部署到具有公网IP的机器,并且使其自动发布到本地Kubernetes集群。

DevOps的价值

在传统的软件开发模型中,开发和运维是两个独立且相互隔离的岗位。然而,这种缺乏沟通和协作的方式无法满足当前快速交付、高质量代码的商业要求。而DevOps,就是一种提高业务敏捷性,促进开发、运营和质量合作的哲学。为了进一步实现这些目标,我们将DevOps思想融入了我们下面要介绍的工作流程。你可以在Atlassian 的 DevOps 指南找到更多关于DevOps的原理和实战案例。

高效工作流程

  1. 购买并部署CCE机器 我们首先购买了一台CCE机器,CCE 是华为云提供的高效、弹性、安全的Kubernetes托管服务。然后在这个机器上部署了frp(Fast Reverse Proxy)服务。frp是一款高效、可靠的内网穿透反向代理软件,可以帮助我们将内网服务暴露给外网。
    我们的工作流程构建于DevOps的核心理念之上,主要包括以下步骤:
[common]
# frp server的地址
server_addr = x.x.x.x
server_port = 7000
[web]
# frp的代理类型,这里使用的是http
type = http
# frp要代理的本地端口
local_port = 80# 要映射到的子域名
subdomain = test
  1. 在华为CodeArts实现代码的CI 代码的集成是持续交付的一个重要步骤。我们选择了华为平台的CodeArts,并在这个平台实现了代码上传、静态检查和编译构建。具体来说,每当我们进行git提交并推送到远程仓库时,CodeArts就会自动捕获这个事件,然后触发构建和测试过程。具体步骤如下:
  • 代码上传:我们首先在CodeArts创建一个项目,然后把代码上传到这个项目的仓库中。
  • 代码检查:提交代码后,我们运行静态代码分析,以检测代码中可能存在的错误和不规范的编程实践。
  • 编译构建:静态代码分析通过后,我们运行编译脚本,将源代码转化为可执行代码。
version: "3"
services:
build:image: 'registry.huaweicloud.com/devcloud-java/mvn3.6-jdk8:latest'script: - 'mvn clean package -Dmaven.test.skip=true'output:- target/*.jar
output:
- target/*.jar
  1. 利用CCE远程交付构建的应用 当我们在CodeArts完成代码构建后,立即通过SSH隧道和frp服务,将应用部署到我们的CCE机器上。这一步骤实现的就是持续交付的核心思想:快速、准确、可靠地将新的或更新的版本发布到生产环境。
  2. 通过Kubernetes集群持续部署应用 当构建的应用被送达到CCE机器之后,我们的本地Kubernetes集群便会根据新的镜像进行更新并运行新的应用。在这个过程中,我们使用了Ingress进行服务路由管理,让我们可以通过统一的入口访问我们的服务。关于如何搭建Kubernetes集群和配置Ingress,你可以参考Kubernetes的官方文档。
apiVersion: apps/v1
kind: Deployment
metadata:name: myapp-deployment
spec:replicas: 3selector:matchLabels:app: myapptemplate:metadata:labels:app: myappspec:containers:- name: myappimage: my_docker_registry/myapp_image:latestports:- containerPort: 8080
---
kind: Service
apiVersion: v1
metadata:name: myapp-service
spec:selector:app: myappports:- protocol: TCPport: 80targetPort: 8080
  1. DevOps实践:迭代优化 DevOps的目标之一是打造一个流动效率高且反馈快速的环境,任何一个环节的问题都可以快速发现并且在下一个迭代中改进。在我们的流程中,我们坚持迭代思想,持续优化各个环节以提高效率。
    经济性与效率
    通过整合CodeArts和CCE,我们打破了部署和发布的边界,实现了自动部署。这不仅节省了大量人工介入的时间和努力,也大大地优化了集群资源的使用。这种高效的CI/CD流程对于企业来说具有很高经济性,因为它不仅缩短了产品上线的周期,还增加了团队开发效率,并且可以更灵活地适应业务需求变化。

结束语

以DevOps理念为指引,结合华为Cloud Container Engine和CodeArts为工具,我们成功地实现了一个敏捷、高效的CI/CD环境。与不断改进和优化的精神相符,这个过程将不断迭代和进步。我们邀请所有的读者一同探索和享受DevOps带来的便利,参与到这个不断改进的过程中来

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 3. List
  • 微服务之Eureka
  • 集简云平台助力无代码开发,实现平安银行与电商平台、CRM系统的快速连接
  • 每日汇评:黄金正在期待鲍威尔的讲话以获取新的方向动力
  • Linux 内核中根据文件inode号获取其对应的struct inode
  • 【计算机网络实验/wireshark】tcp建立和释放
  • PTA 哈利·波特的考试(floyd算法)
  • 【沐风老师】3dMax快速平铺纹理插件QuickTiles教程
  • 手握“发展密钥”,TCL科技或迎价值重估?
  • 【MongoDB-Redis-MySQL-Elasticsearch-Kibana-RabbitMQ-MinIO】Java全栈开发软件一网打尽
  • 用java代码实现security
  • 使用Scrapy的调试工具和日志系统定位并解决爬虫问题
  • Spring的缓存机制-循环依赖
  • CentOS/RHEL7环境下更改网卡名称为CentOS6的传统命名规则
  • 软件设计模式原则(二)开闭原则
  • Google 是如何开发 Web 框架的
  • 2017 年终总结 —— 在路上
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CentOS 7 修改主机名
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • HTTP中GET与POST的区别 99%的错误认识
  • java2019面试题北京
  • js递归,无限分级树形折叠菜单
  • npx命令介绍
  • 从零搭建Koa2 Server
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 看域名解析域名安全对SEO的影响
  • 配置 PM2 实现代码自动发布
  • 前端存储 - localStorage
  • 前端攻城师
  • 区块链共识机制优缺点对比都是什么
  • 三栏布局总结
  • 深入浏览器事件循环的本质
  • 一个JAVA程序员成长之路分享
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 国内开源镜像站点
  • 整理一些计算机基础知识!
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (04)odoo视图操作
  • (C#)获取字符编码的类
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (zhuan) 一些RL的文献(及笔记)
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (译)2019年前端性能优化清单 — 下篇
  • (转)socket Aio demo
  • . NET自动找可写目录
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET CF命令行调试器MDbg入门(一)
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证