基于华为云的一个典型的持续部署方案

云社区 博客 博客详情

基于华为云的一个典型的持续部署方案

【摘要】 华为云迄今为止已经有14大类超过100种服务了,可以做很多有用和好玩的方案。

基于华为云的一个典型的持续部署方案:FunctionStage(Serverless)+(Monocular+)Helm Chart + CCE(Kubernetes+Docker)

 

摘要:华为云迄今为止已经有14大类超过100种服务了,可以做很多有用和好玩的方案。本文以一个实际的案例,讲述如何使用华为云上的相关服务(主要是FuctionStage和CCE)完成自动化持续部署(CD,Continuous Deployment);并且通过Monucular手动部署Helm Charts打包的Kubernetes应用。这充分说明了华为云云容器引擎CCE支持和兼容开源生态Kubernetes以及在DevOps的强大能力,以及华为云支持业界主流自动化部署工具的能力。

1. 关于持续集成(CI)和持续部署(CD)

在软件开发和运维领域,我们经常会听到很多概念,比如DevOps,持续集成(CI,Continuous Integration),持续交付(CD,Continuous Delivery),持续部署(CD,Continuous Deployment)等等。这些新的概念、方法论和工具的出现,主要是为了应对目前业务的挑战。主要是要求业务推出和运维即“快”又“稳”:

  • 快:比竞争对手更快的创新、试验和部署业务的能力。快速推出业务、快速获取反馈、快速迭代、快速试错。

  • 稳:快速、频繁地特性发布,同时保证业务和系统的稳定性、可用性和持久性。

下面我们稍微解释一下持续集成(CI,Continuous Integration),持续交付(CD,Continuous Delivery),持续部署(CD,Continuous Deployment)的概念,可以去参考:持续集成是什么?

  • 持续集成(CI,Continuous Integration):持续集成指的是,频繁地(一天多次)将代码集成到主干。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。

  • 持续交付(CD,Continuous Delivery):持续交付指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。

  • 持续部署(CD,Continuous Deployment):持续部署是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。

在本文的场景中,主要讲述的是基于华为云的持续部署(CD,Continuous Deployment)。

2. 一个华为云上的持续部署方案

前期在支撑某客户在华为云上的概念验证(PoC,Proof of Concept)中,有一个很重要的测试场景:自动化CI/CD。具体场景是:客户在私有云中完成持续集成(CI),CI采用自建的工具链;生成结果自动在华为云上完成持续部署(CD),部署在Docker容器中。

客户采用Helm charts脚本部署容器应用,因此在客户的CCE(Cloud Container Engine)容器集群所在的VPC中,我们部署了一台服务器安装了Helm client,通过Helm client连接CCE集群的Kubernetes Master完成Docker容器应用部署。

客户部署的容器应用中,其中有一个很重要的容器应用是一个job类应用,它的主要工作是:使用一些自动化部署工具完成应用所需资源的创建,应用环境的初始化等等。完成之后即停止。

我们采用了:FunctionStage(Serverless)+(Monocular+)Helm Chart + CCE(Kubernetes+Docker)的方案完成持续部署。演示效果良好。具体如下图所示:

145007ov5ftfgxyrduqvkk.png

描述如下:

  • 客户在私有云中完成持续集成(CI),CI采用自建的工具链。CI的结果是:

    • 应用容器镜像上传到华为云容器镜像仓库(SWR, SoftWare Repository for Container)

    • 应用部署脚本(例如Helm Chart.yaml, values.yaml)等以约定的打包方式,上传到华为云对象存储服务(OBS, Object Storage Service)的指定桶(Bucket)的相应目录下

  • 因为华为云的FunctionStage(Serverless)和OBS有集成,事先在FunctionStage中配置触发器(Trigger),当指定桶(Bucket)的相应应用目录下有文件更新时(PUT/POST操作,即用户上传了应用部署脚本),自动触发一个Python程序的执行。

  • 这个Python程序会ssh到Helm client,执行一个自动化部署的脚本。此自动化部署脚本会执行资源清理、helm install等动作完成容器应用的部署。

  • 部署的容器应用中,其中有一个很重要的容器应用是一个job类应用,它的主要工作是:使用一些自动化部署工具完成应用所需资源的创建,应用环境的初始化等等。完成之后即停止。

  • 最后的结果是:应用通过helm client部署在CCE容器集群中,该创建的资源(例如RDS-MySQL)成功创建并初始化,资源和应用运行正常。

  • 当然,我们也安装了一个Monocular(Monocular is a web-based UI for managing Kubernetes applications packaged as Helm Charts),允许用户手动部署Helm Charts打包的Kubernetes应用。

3. 部署截图

一些部署的截图如下。请注意:这个截图是我手动部署的截图,跟自动化部署的截图是类似的,但更能说明部署过程。

  • 通过Helm client部署容器应用到CCE集群

092312of8vqw7ozuwt8jhf.png

执行kubectl get pods可以看到应用pod(容器)处于Running状态。

  • 部署过程中通过自动化部署工具创建和初始化的华为云RDS-MySQL资源

092324tg51bgcbej779zt8.png

### 华为云上的应用开发教程与平台服务 #### 1. 开发基础:华为云IoT Android应用开发 通过学习华为云物联网平台的Android应用开发,可以掌握基本的操作流程。开发者可以在官方提供的详细教程中找到具体指导[^1]。如果需要实际案例支持,可以通过指定渠道获取实例Demo,并按照指引在`HuaweiIOT`类文件中配置参数并运行。 #### 2. AI开发平台:ModelArts功能概述 对于希望利用人工智能技术的应用开发者来说,华为云提供了强大的AI开发平台——ModelArts。该平台具有以下特点: - **零门槛建模**:即使是没有编程经验的新手用户也可以借助拖拽式的可视化界面快速构建模型[^5]。 - **内置优化算法**:ModelArts预置了丰富的机器学习和深度学习算法,覆盖从数据处理到模型发布的整个生命周期。 - **资源高效管理**:无需额外购置硬件或安装复杂软件,只需一键开通即可享受全面的服务支持。 - **灵活扩展能力**:支持多种开源框架以及交互式Notebook环境,方便高级用户深入定制化需求。 #### 3. Flexus云服务器X实例介绍及其应用场景 针对云计算基础设施的需求,华为推出了Flexus云服务器X实例作为解决方案之一。这款产品特别适合中小型企业及独立开发者使用,因为它能够自动调整计算资源以适应不同的业务负荷情况[^3]。下面列举了一些典型用途: - 构建电子商务网站或者在线教育平台; - 创建游戏后台架构或是多媒体播放器; - 实现持续集成/持续交付(CI/CD)流水线建设等等。 此外,在特定操作系统环境下(比如OpenEuler),还可以进一步探索如何部署常见的Web应用程序,例如Wordpress博客系统。这通常涉及设置完整的LAMP栈结构,包括Linux操作系统、Apache HTTP Server、MariaDB数据库管理系统以及PHP脚本解释引擎等组件组合在一起形成稳定可靠的网络服务平台[^4]。 ```bash sudo yum install httpd mariadb-server php php-mysqlnd -y sudo systemctl start httpd.service sudo mysql_secure_installation wget https://wordpress.org/latest-zh_CN.tar.gz tar -xzvf latest-zh_CN.tar.gz cp -r wordpress/* /var/www/html/ chown -R apache:apache /var/www/html/ ``` 以上命令展示了基于CentOS/RHEL系列发行版下的标准lamp堆栈初始化过程的一部分片段,当然每一步都需要仔细校验执行结果才能确保最终目标达成无误。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值