报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

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

  • 2019-10-17
  • 本文字数:4512 字

    阅读完需:约 15 分钟

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

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

一、准备工作

1.说明

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


模板的常用参数说明详见

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 默认情况下无法访问云数据库),创建云主机方法见


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



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



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



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


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


云数据库域名查看方式:



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



2019-10-17 17:541179

评论

发布
暂无评论
发现更多内容

京东前端二面常考手写面试题(必备)

helloworld1024fd

JavaScript 前端

云原生消息队列Pulsar浅析——实践类

阿里云AIoT

阿里云 物联网 IoT

Unity 荣膺 2022 鲸鸣奖“影响力出海品牌”及“新势力出海服务商”两项大奖

极客天地

架构作业-8

梁山伯

【明晚直播】KunlunBase 1.1 版本发布:完善MySQL 兼容性,OLAP性能提升

KunlunBase昆仑数据库

MySQL 数据库 PgSQL 线上直播

假如面试官要你手写一个promise

helloworld1024fd

JavaScript 前端

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v6.2版已发布

JackJiang

网络编程 即时通讯 IM

深入React源码揭开渲染更新流程的面纱

goClient1992

React

一次配置,设备就可实现毫秒级的全球就近接入——实践类

阿里云AIoT

阿里云 物联网 IoT

极光笔记 | 极光PUSH服务助力企业提升抢单速度

极光JIGUANG

技术干货 移动推送 智能推送

从深度学习框架到开发工具,百度飞桨携最新成绩单亮相 GTC

飞桨PaddlePaddle

英伟达 百度飞桨 GTC

一文读懂Vue开发小程序的技术原理

没有用户名丶

从零手写react-router

helloworld1024fd

JavaScript 前端

从源码角度看React-Hydrate原理

flyzz177

React

从react源码看hooks的原理

flyzz177

React

墨天轮2022年度数据库获奖名单

墨天轮

数据库 opengauss TiDB oceanbase 国产数据库

滴滴前端一面常考手写面试题整理

helloworld1024fd

JavaScript 前端

技术写作的“坎”

码猿外

程序员 写作

BNB Chain 2023年40佳DAPP评选,Zebec赫然在列

鳄鱼视界

深度分析React源码中的合成事件

goClient1992

React

手写一个react,看透react运行机制

goClient1992

React

从recat源码角度看setState流程

flyzz177

React

自动化测试工具加入黑科技带来新纪元

石臻臻的杂货铺

人工智能

DockQuery 天狼 v1.2.0 正式发布

BinTools图尔兹

#数据库

IoT生态构建:AIoT认证设备中心——实践类

阿里云AIoT

阿里云 物联网 IoT

你的聊天室该升级啦!融云平滑迁移方案助你「无感换乘」

融云 RongCloud

通讯

十五年,始吾心

博睿数据

可观测性 智能运维 博睿数据 15周年 品牌历史

资源编排产品实现简单架构快速上云_架构_韩超超_InfoQ精选文章