Cloud Native Phase 1 - 云上微服务开发端到端

作者:关耳山石

整个端到端CloudNative产品落地,计划分为四个阶段展开:

Cloud Native Phase 1 - 云上微服务开发端到端

Cloud Native Phase 2 - 云上DevOps

Cloud Native Phase 3 - 云原生应用AutoConfig

Cloud Native Phase 3 - 云上弹性伸缩和熔断限流 (未完成)

Cloud Native Phase 4 - 云上权限管理和网络安全 (未完成)

本文为第一章即Cloud Native Phase 1 - 云上微服务开发端到端

1. 开通华为云账号

参考《帮助中心——账号注册》

2. 登录华为云

参考《帮助中心——账号登录》

3. 开发框架选型

SpringCloud是目前非常流行的一种微服务技术架构,因此选用了华为云ServiceStage作为微服务的管理工具,使用SpringCloud-Huawei作为SpringCloud与ServiceComb Java Chassis基础设施的兼容适配,即能够使用ServiceStage的托管和监控能力,又不用改造代码和编码习惯。

详情可以查看:

4. 代码仓库创建和代码提交

代码仓库使用的是华为云DevCloud的CodeHub,华为云DevCloud是集华为研发实践、前沿研发理念、先进研发工具为一体的DevOps平台。

首先通过控制台,进入DevCloud的CodeHub。

进入DevCloud

选择右上角的立即使用”,即可进入华为云DevCloud。

创建新项目

进入华为云DevCloud之后点右上角的“创建项目”,即可进入创建页面,

选择Scrum模板,起个名字,比如“CabgOne”,即完成了项目创建。

创建代码仓库

点击顶部菜单的“代码”-》“代码托管”,即可进入CodeHub界面。

然后点击“普通新建”,创建GIT仓库。本操作没有特别需要注意的地方,给仓库起个名字,比如“VodMgrService”然后选择“私有仓库”,点击“确定”即可完成仓库创建。

本地代码

根据前面的Demo,可以很容易写一个基于Spring框架的微服务出来,直接去看CabgOne项目下的VodMgrService工程更直接。

创建密钥

从本地提交代码上云,需要一套SSH密钥或者HTTPS密码,所以在提交代码前,应该配置一套SSH密钥或HTTPS密码,具体配置方法可参考《帮助中心——设置SSH密钥/HTTPS密码》

补充:华为云公共Maven镜像仓配置

由于华为云的依赖包,在公共的Maven镜像仓库中不完整,需要到华为云镜像源中拉取

点击HuaweiCloud SDK后,可以看到settings的配置参考

补充:华为云私有Maven镜像仓配置

如果用了DevCloud的私有镜像仓,比如自己有一些本地包,需要上传,供其他项目拉取,需要到DevCloud中创建,入口链接

操作很简单,就不详细解释了,点开创建好的仓库右侧的按钮,可以看到私有依赖库配置功能。

4. 代码打包和部署

创建应用

应用就是一个产品,目前CabgOne是一个产品,未来CabgOem是另一个产品。选择合适的企业项目(后面有详解)

创建环境

环境是指不同环境和不同资源的集合,可以理解为资源组,可以共享,弹性伸缩。
这里还有一个要求,就是所有的资源,在一个环境中,必须属于同一个VPC,所以环境又可以理解为VPC的一个细分。

这里可以看到,我为CabgOne这个产品的生产环境、涉及到内网连接的资源组,细分了一个环境,叫cabgone-internal-pro,这样所有CabgOne产品符合这个条件的资源,都可以在这个资源池里。

PS:这里涉及到了一些资源的申请,包括CCI、CCE、ELB等。

补充:关于CCI和CCE的区别

一张图就说明白了,CCI更贵,但弹性更好,适合抢购啥的场景;CCE便宜点,适合长期运行的;CCI可以作为CCE的弹性扩展来伸缩。

创建组件

组件就是产品的子产品或者模块,也是一个独立的部署单元,比如CabgOne里的一个SmartEngineService就是一个组件,将组建绑定了环境,即可开始后面的打包部署

打包部署

直接用ServiceStage里面“持续交付”->构建发布功能,这里可以创建流水线

5. 发布至API网关

创建分组

首先我们用的是共享版的APIG,然后APIG是通过API分组的方式,生成不同的API访问原始域名,然后绑定不同的VPC和域名的。

这里可以看到子域名就是生成的默认域名,只能用来测试

此处绑定了已申请的一个四级域名

创建API并发布

API就不多解释了,直接操作吧

这一步也好简单,跟着配置一下即可

定义了一个简单的入参

配置后端服务的格式和VPC通道

然后就是很重要的一个,配置后端请求Path

最后把成功和失败的示例放上

最后发布API

回到API列表页面,在更多里,找到调试按钮,调试一下,OVER

以上即为Cloud Native Phase 1 - 云上微服务开发端到端全部内容。

(完)