​干货 | 资源编排产品实现简单架构快速上云


资源编排是一项简化云计算资源管理和运维的服务。用户通过模板描述多个云资源的配置信息和依赖关系,通过模板创建资源栈,自动完成所有资源的创建和配置,以实现资源的统一管理和自动化运维等目的。服务本身免费,仅收取所使用资源的费用:如云主机、公网IP、云数据库实例等。

一、准备工作

1.说明

  • 我们用wordpress模拟网站源代码,*.sql文件模拟网站数据库备份,将网站源代码迁移到位于华北-北京不同可用区的两台云主机上,将sql备份文件恢复到云数据库RDS MySQL上,云主机与云数据库都由京东云资源编排产品自动创建生成。

  • 模板的常用参数说明详见:https://docs.jdcloud.com/cn/resource-orchestration/templates-structure

2.测试示意图


二、开始

1. 创建资源栈(模板)

打开控制台,选择管理-资源编排-资源栈,选择需要创建的资源栈所在的地域,支持华北-北京、华南-广州、华东-宿迁、华东-上海,我这里选择华北-北京,点击创建资源栈按钮。

点击我的模板,将原模板内容删除,复制下面的json代码到模板内容中(此json代码内容中创建的资源较多,所以代码较多,复制时仔细认真点),点击下一步


  1json
  2{
  3    "JDCLOUDTemplateFormatVersion": "2018-10-01",
  4    "Description": "JDRO WORDPRESS_WITH_CLUSTER TEMPLATE",
  5    "Parameters": {
  6        "VPCName": {
  7            "Default": "vpc",
  8            "Type": "String",
  9            "MinLength": "1",
 10            "MaxLength": "32",
 11            "Description": "Define the VPC Name. It cannot be same as an existing VPC name, otherwise the resource will fail to be created",
 12            "AllowedPattern": "^[a-zA-Z_][a-zA-Z0-9_-]*$",
 13            "ConstraintDescription": "Name only supports numbers, capital and lowercase letters, English underline and hyphen ."
 14        },
 15        "SubnetName": {
 16            "Default": "subnet",
 17            "Type": "String",
 18            "MinLength": "1",
 19            "MaxLength": "32",
 20            "Description": "Define the Subnet Name. It cannot be same as an existing Subnet name, otherwise the resource will fail to be created",
 21            "AllowedPattern": "^[a-zA-Z_][a-zA-Z0-9_-]*$",
 22            "ConstraintDescription": "Name only supports numbers, capital and lowercase letters, English underline and hyphen ."
 23        },
 24        "AddressPrefix": {
 25            "Default": "10.0.0.0/16",
 26            "Type": "String",
 27            "Description": "Give an exact CIDR",
 28            "AllowedValues": [
 29                "192.168.0.0/16",
 30                "172.16.0.0/16",
 31                "10.0.0.0/16"
 32            ],
 33            "ConstraintDescription": "Need give an exact CIDR."
 34        },
 35        "InstanceName1": {
 36            "Default": "vm1",
 37            "Type": "String",
 38            "MinLength": "1",
 39            "MaxLength": "32",
 40            "Description": "Define the Instance Name",
 41            "AllowedPattern": "^[a-zA-Z_][a-zA-Z0-9_-]*$",
 42            "ConstraintDescription": "Name only supports numbers, capital and lowercase letters, English underline and hyphen."
 43        },
 44        "InstanceName2": {
 45            "Default": "vm2",
 46            "Type": "String",
 47            "MinLength": "1",
 48            "MaxLength": "32",
 49            "Description": "Define the Instance Name",
 50            "AllowedPattern": "^[a-zA-Z_][a-zA-Z0-9_-]*$",
 51            "ConstraintDescription": "Name only supports numbers, capital and lowercase letters, English underline and hyphen."
 52        },
 53        "VMPassword": {
 54            "NoEcho": true,
 55            "Description": "Password for vm access",
 56            "Type": "String",
 57            "MinLength": "8",
 58            "MaxLength": "16",
 59            "AllowedPattern": "[a-zA-Z0-9]*"
 60        },
 61        "DiskName1": {
 62            "Default": "disk1",
 63            "Type": "String",
 64            "MinLength": "1",
 65            "MaxLength": "32",
 66            "Description": "The Disk Name",
 67            "AllowedPattern": "^[a-zA-Z_][a-zA-Z0-9_-]*$",
 68            "ConstraintDescription": "Name only supports numbers, capital and lowercase letters, English underline and hyphen."
 69        },
 70        "DiskName2": {
 71            "Default": "disk2",
 72            "Type": "String",
 73            "MinLength": "1",
 74            "MaxLength": "32",
 75            "Description": "The Disk Name",
 76            "AllowedPattern": "^[a-zA-Z_][a-zA-Z0-9_-]*$",
 77            "ConstraintDescription": "Name only supports  numbers, capital and lowercase letters, English underline and hyphen."
 78        },
 79        "DBName": {
 80            "Default": "wordpress",
 81            "Description": "MySQL database name",
 82            "Type": "String",
 83            "MinLength": "2",
 84            "MaxLength": "32",
 85            "AllowedPattern": "^[a-z][a-z0-9_]*$",
 86            "ConstraintDescription": "The name only supports lower case letters, numbers and English underline, no less than 2 characters and no more than 32 characters."
 87        },
 88        "DBUser": {
 89            "Default": "wordpress",
 90            "Description": "Username for MySQL database access",
 91            "Type": "String",
 92            "MinLength": "1",
 93            "MaxLength": "16",
 94            "AllowedPattern": "^[a-zA-Z][a-zA-Z0-9]*$",
 95            "ConstraintDescription": "must begin with a letter and contain only alphanumeric characters."
 96        },
 97        "DBPassword": {
 98            "NoEcho": true,
 99            "Description": "Password must contain and only supports letters both in upper case and lower case as well as figures, no less than 8 characters and no more than 16 characters. e.g. Ptest1130",
100            "Type": "String",
101            "MinLength": "8",
102            "MaxLength": "16",
103            "AllowedPattern": "[a-zA-Z0-9]*"
104        },
105        "LoadBalancerName": {
106            "Default": "lb",
107            "Description": "LoadBalancer name",
108            "Type": "String",
109            "MinLength": "1",
110            "MaxLength": "32",
111            "AllowedPattern": "^[a-zA-Z_][a-zA-Z0-9_-]*$",
112            "ConstraintDescription": "Name only supports  numbers, capital and lowercase letters, English underline  and hyphen."
113        },
114        "TargetGroupName": {
115            "Default": "lbtargetgroup",
116            "Description": "TargetGroup Name",
117            "Type": "String",
118            "MinLength": "1",
119            "MaxLength": "32",
120            "AllowedPattern": "^[a-zA-Z_][a-zA-Z0-9_-]*$",
121            "ConstraintDescription": "Name only supports  numbers, capital and lowercase letters, English underline  and hyphen."
122        },
123        "LBBackendName": {
124            "Default": "lbbackend",
125            "Description": "Backend Name",
126            "Type": "String",
127            "MinLength": "1",
128            "MaxLength": "32",
129            "AllowedPattern": "^[a-zA-Z_][a-zA-Z0-9_-]*$",
130            "ConstraintDescription": "Name only supports  numbers, capital and lowercase letters, English underline  and hyphen."
131        }
132    },
133    "Mappings": {
134        "AZInfo": {
135            "cn-north-1": {
136                "az1": "cn-north-1a",
137                "az2": "cn-north-1b",
138                "az3": "cn-north-1c"
139            },
140            "cn-east-1": {
141                "az1": "cn-east-1a"
142            },
143            "cn-east-2": {
144                "az1": "cn-east-2a",
145                "az2": "cn-east-2b"
146            },
147            "cn-south-1": {
148                "az1": "cn-south-1a"
149            }
150        },
151        "ImageInfo": {
152            "cn-north-1": {
153                "image": "img-9ha1rgelkq"
154            },
155            "cn-east-1": {
156                "image": "img-htaupmjlqq"
157            },
158            "cn-east-2": {
159                "image": "img-ssazsh60t6"
160            },
161            "cn-south-1": {
162                "image": "img-uxgb28v2y3"
163            }
164        }

(由于篇幅原因,后台回复“资源编排”可获取完整代码!)
接下来输入配置信息( 自定义参数 中内容可根据自己的情况更改):
  • 栈名称:资源编排测试

  • 超时时间(分钟):10

  • VPCName:vpc

  • SubnetName:subnet

  • AddressPrefix:10.0.0.0/16

  • InstanceName1:vm1

  • InstanceName2:vm2

  • VMPassword:自定义

  • DiskName1:disk1

  • DiskName2:disk2

  • DBName:wordpress

  • DBUser:wordpress

  • DBPassword:自定义

  • LoadBalancerName:lb

  • TargetGroupName:lbtargetgroup

  • LBBackendName:lbbackend


确认资源栈信息后,点击创建资源栈

ta创建完成后点击时间列表能够查看整个资源栈的创建过程


2. 测试上云

所有资源创建完成后,我们找到创建好的负载均衡实例公网IP,粘贴到浏览器打开查看效果

接下来我们将本地的MySQL数据库备份文件导入到我们创建的云数据库RDS MySQL中

备份本地数据库,命令如下:

1mysqldump -u用户名 -p密码 --single-transaction --set-gtid-purged=OFF -B 数据库名称 > /路径/导出文件名.sql

将本地MySQL备份完成后,我们需要创建一台与云数据库RDS MySQL在相同VPC的云主机(不在同一VPC默认情况下无法访问云数据库),创建云主机方法见:https://docs.jdcloud.com/cn/virtual-machines/create-instance

创建完云主机后,将本地备份的.sql文件上传到京东云对象存储

上传完备份SQL后,我们获取相应备份文件的外链地址

然后通过wget命令下载到上面我们创建的云主机

然后通过如下命令进行备份文件的导入

1mysql -h云数据库域名 -u用户名 -p 数据库名  < /云主机路径/导出文件名.sql

云数据库域名查看方式:

最大复制负载均衡公网IP到浏览器,查看结果:


注:京东云资源编排服务目前支持云主机、私有网络、负载均衡、云数据库RDS,详见:https://docs.jdcloud.com/cn/resource-orchestration/resource-type




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值