大数跨境
0
0

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

​干货 | 资源编排产品实现简单架构快速上云 京东云开发者
2019-08-13
0
导读:免费获取资源的统一管理和自动化运维服务!


资源编排是一项简化云计算资源管理和运维的服务。用户通过模板描述多个云资源的配置信息和依赖关系,通过模板创建资源栈,自动完成所有资源的创建和配置,以实现资源的统一管理和自动化运维等目的。服务本身免费,仅收取所使用资源的费用:如云主机、公网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
京东云开发者
京东云开发者(Developer of JD Technology)是京东科技集团旗下为AI、云计算、IoT等相关领域开发者提供技术分享交流的平台。平台将发布京东产品技术信息、行业技术内容、技术活动等资讯。拥抱技术,与开发者携手预见未来!
内容 1310
粉丝 0
京东云开发者 京东云开发者(Developer of JD Technology)是京东科技集团旗下为AI、云计算、IoT等相关领域开发者提供技术分享交流的平台。平台将发布京东产品技术信息、行业技术内容、技术活动等资讯。拥抱技术,与开发者携手预见未来!
总阅读43
粉丝0
内容1.3k