阿里云网站搭建解决方案:云上高效构建App
本方案使用移动研发平台EMAS和研发协同平台云效来提供一站式App的开发、测试、运维、运营等应用全生命周期的管理能力,提升开发效率,降低运维成本。体验本方案预计费用为30元(假设您配置的ECS和RDS与建议规格一致,为按量付费。使用云效基础版、移动研发平台仅使用免费的云构建和云发布功能。方案过程中产生流量在10GB以内。且体验时长不超过24小时。域名、证书、备案费用不包含在内。实际产生费用因规格、版本不同可能产生变化,以控制台显示为准)
<h2>一、通过EMAS快速开发App</h2>
App开发上线的核心步骤包括服务端和移动端的代码管理、构建、测试、部署发布,以及功能版本更新后的推送,本方案通过云效、移动研发平台EMAS实现了核心步骤的全覆盖,一站式高效完成App的构建与发布。
https://upload-images.jianshu.io/upload_images/19316870-5be57a2bbbfb5fa4.png
通过本方案开发的App应用相对本地开发可以帮助企业更专注于业务核心,同时减轻技术负担,加速产品的迭代更新。在开发阶段可以更规范地管理代码和版本,可以快速集成多种SDK,节省开发成本;在测试阶段在云上进行自动化测试和真机模拟测试,达到降本增效;在发布阶段还能实现自动推送更新和灰度发布。
https://upload-images.jianshu.io/upload_images/19316870-89b8a5a6b57d5c5d.png
<h2>二、方案介绍</h2>
使用阿里云移动研发平台帮助企业在云上构建和发布App。使用云效、云服务器、数据库等服务支撑服务端应用的构建与部署,最终帮助企业快速构建适用于多端的移动应用。
<h2>三、方案优势</h2>
1.开发效率高
EMAS提供多种移动技术SDK,快速集成,降低开发成本。
2.部署便捷
通过云效搭建持续部署工作流,代码更新一键更新部署到服务器,提升部署效率。
3.运维成本低
可管理发布包版本,自动推送更新到用户。
<h2>四、方案部署</h2>
在移动设备占主导地位的今天,企业开发移动应用App可以帮助企业更好地适应数字时代的挑战,企业可以通过App为用户提供更便捷、更具互动性和更个性化的服务,帮助企业扩宽市场渠道、获得数据反馈,从而增加收入和竞争优势。使用阿里云移动研发平台开发您的App,可以帮您减轻技术负担,让您能更专注于业务核心,快速构建高可靠、高性能的移动应用,并且可以高效迭代您的移动应用。
<h3>1、方案架构</h3>
方案提供的默认设置完成部署后在阿里云上搭建的移动应用架构如下图所示。
https://upload-images.jianshu.io/upload_images/19316870-69caee2cb506f3fc.png
本方案的技术架构包括以下基础设施和云服务:
[*]应用
</ol>
[*]App服务端应用
[*]iOS App
[*]Android App
<ol start="2">
[*]基础设施和云服务
</ol>
[*]1个专有网络VPC:为云服务器ECS、云数据库 RDS MySQL 等云资源形成云上私有网络。
[*]1台交换机:将1台云服务器ECS和1台云数据库RDS连接在同一网络上,实现它们之间的通信,并提供基本的网络分段和隔离功能。
[*]1台云服务器ECS:用于部署App后端服务。
[*]1个云数据库RDS MySQL:为App后端服务提供数据服务。
[*]云解析DNS:将用户的请求解析到ECS。
[*]1个域名:用于为App后端程序提供访问域名。
[*]移动研发平台EMAS:提供一站式的App客户端应用研发运营管理服务,涵盖开发、测试、运维、运营等应用全生命周期。
[*]云效:一站式 DevOps 平台,支持通过流水线构建持续交付的研发流程。用于持续构建和部署App服务端。
<h3>2、部署准备</h3>
开始部署前,请按以下指引完成账号申请、账号充值。
[*]如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册并进行个人实名认证。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。
[*]为阿里云账号充值。本方案的云资源支持按量付费,且默认设置均采用按量付费引导操作。如果确定任何一个云资源采用按量付费方式部署,账户余额都必须大于等于100元。
</ol>
<h3>3、一键部署</h3>
一键部署基于阿里云资源编排服务ROS(Resource Orchestration Service)实现,ROS模板已定义好脚本,可自动化地完成云资源的创建和配置,提高资源的创建和部署效率。ROS模板完成的内容包括:
操作步骤
您可以通过下方提供的ROS一键部署链接,来自动化地完成这些资源的创建和配置:
[*]创建1台云服务器ECS实例。
[*]创建1个专有网络VPC。
[*]创建1台交换机。
[*]创建1个云数据库RDS MySQL。
一键部署资源
[*]单击一键部署,在顶部导航栏选择地域。
[*]在配置页面修改资源栈名称,按需选择和配置参数。
[*]当资源栈信息页面的状态显示为创建成功时表示一键配置完成。
<h3>4、部署服务端</h3>
1. 创建流水线
进入云效控制台,单击立即使用,按操作步骤创建您的企业、选择您的角色之后,点击开始工作。
https://upload-images.jianshu.io/upload_images/19316870-2a81923bf61bd0b1.png
进入流水线Flow,点击流水线->我的流水线
https://upload-images.jianshu.io/upload_images/19316870-1ab8bc387d85b28b.png
点击右上角新建流水线。在弹出面板中选择Java,顶部选择可视化编排,找到Java构建、部署到阿里云ECS/自有主机流水线。
<div class="image-view" data-height="1298" data-width="1992"><img data-original-filesize="273051" data-original-format="image/jpeg" data-original-height="1298" data-original-src="https://upload-images.jianshu.io/upload_images/19316870-a87cf0dac3fdc3df.jpg" data-original-width="1992"/>
点击创建流水线,进入流水线配置界面。
2. 配置流水线
云效支持多种流水线源,如多种代码仓库、已经编译好的代码包、对接Jenkins及另一个流水线的产出物。
进入流水线后,在左侧选择添加流水线源。
单击添加流水线源。
选择流水线源为代码源,选择Codeup。
点击新建代码仓库。
https://upload-images.jianshu.io/upload_images/19316870-135fc8aeb7d5c7c5.png
在代码管理页面右上角,单击导入库。
在导入代码库弹出框,选中URL导入,在源代码仓库地址填入https://atomgit.com/aliyun_solution/app-demo.git,单击确定。
https://upload-images.jianshu.io/upload_images/19316870-1914d6a526dd0adc.png
回到流水线源配置页面,代码仓库选择刚刚创建的代码仓库,默认分支选择master。并点击添加,完成流水线源的配置。
配置Java构建上传,单击Java构建上传。
https://upload-images.jianshu.io/upload_images/19316870-2f7a81efac82ced9.png
在右侧配置弹窗内,单击构建物上传,在打包路径下新增一个deploy.sh。
https://upload-images.jianshu.io/upload_images/19316870-69d54d9a8b623625.png
在页面右上角,单击仅保存。
配置环境变量,您需要将数据库连接地址和账号密码配置到流水线环境变量中。在页面顶部导航选中变量和缓存,在页面中的字符变量模块单击新增变量。
https://upload-images.jianshu.io/upload_images/19316870-32ec7eb5f7215b8a.png
填入数据库相关信息,并设置成私密模式。相关数据可在数据库控制台,进入数据实例详情页面查看。
<table>
<thead>
<tr>
<th>变量名称</th>
<th>默认值</th>
</tr>
</thead>
<tbody>
<tr>
<td>APPLETS_RDS_ENDPOINT</td>
<td>数据库连接地址</td>
</tr>
<tr>
<td>APPLETS_RDS_USER</td>
<td>数据库用户名</td>
</tr>
<tr>
<td>APPLETS_RDS_PASSWORD</td>
<td>数据库密码</td>
</tr>
<tr>
<td>APPLETS_RDS_DB_NAME</td>
<td>数据库名称</td>
</tr>
</tbody>
</table>
配置部署任务,单击主机部署。
https://upload-images.jianshu.io/upload_images/19316870-bb77b73ca1c871b5.png
制品:下拉选择上游构建阶段的产物,如制品名称.Artfacts_xxx。
https://upload-images.jianshu.io/upload_images/19316870-f156c5cef88585d4.png
配置主机组:
[*]单击新建主机组,在新开的全局设置 > 主机组管理页面中再次单击新建主机组。
https://upload-images.jianshu.io/upload_images/19316870-f62bce9002525835.png
[*]在新建主机组弹窗中,填入自定义的主机组名称,然后单击确定。
https://upload-images.jianshu.io/upload_images/19316870-03fc25e80fd20f84.png
[*]在主机组详情页面,单击添加新主机,添加方式选择阿里云ECS,单击添加服务连接。
https://upload-images.jianshu.io/upload_images/19316870-85592ba39ec8f133.png
[*]在新建服务连接面板单击+新建,完成RAM授权后,创建服务连接。
https://upload-images.jianshu.io/upload_images/19316870-507026903cd7e4ba.png
[*]回到接入新主机面板,地域下拉框选择华东1(杭州),勾选您在该地域下创建的ECS实例,单击保存。
https://upload-images.jianshu.io/upload_images/19316870-ba61c3a479c1d80e.png
[*]回到流水线主机部署的编辑面板,在主机组下拉框选中刚刚创建的主机组。
https://upload-images.jianshu.io/upload_images/19316870-c7163d0c755133d4.png
部署脚本填入如下脚本
tar zxvf /home/admin/app/package.tgz -C /home/admin
sh /home/admin/deploy.sh restart /home/admin/target/app-demo-0.0.1-SNAPSHOT.jar
单击流水线页面右上角保存并运行,在弹出的运行配置弹窗中单击运行。
3. 验证服务
登录ECS控制台,在实例列表中找到之前创建的ECS实例,在IP地址列,复制公网IP。
粘贴到浏览器地址栏访问,看到如下页面表示服务已经正常启动。
https://upload-images.jianshu.io/upload_images/19316870-35975ea28bb60b26.png
<h3>5、通过EMAS构建和发布移动App</h3>
<h5>Android App</h5>
1.1 创建代码仓库
打开云效codeup,在代码管理页面右上角,单击导入库。
https://upload-images.jianshu.io/upload_images/19316870-898b071b93eeab3b.png
在导入代码库弹出框,选中URL导入,在源代码仓库地址填入https://atomgit.com/aliyun_solution/emas-android-demo.git,单击确定。
https://upload-images.jianshu.io/upload_images/19316870-34bc2857fdbaa477.png
导入成功后,在页面右上角单击克隆/下载,复制HTTPS地址。
https://upload-images.jianshu.io/upload_images/19316870-d36e6eb6120ce46d.png
将代码克隆下载到本地。
1.2 创建项目
登录EMAS控制台。如果是第一次使用EMAS,单击立即创建项目,如果已有项目,单击左侧添加项目。在右侧弹出框中,输入项目名称和项目描述,单击创建并进入。
1.3 创建应用
进入项目详情页后,单击立即添加应用,输入应用名称、应用类型选择Native、平台选择Android,PackageName填入com.example.emas_android_demo,然后单击创建应用。
https://upload-images.jianshu.io/upload_images/19316870-59169b5d92acc3cd.png
下载配置文件,按照提示添加到本地项目中。
https://upload-images.jianshu.io/upload_images/19316870-27287fecebaa4c6f.png
添加SDK,示例代码中已完成项目配置修改,无需在修改项目配置代码。
修改代码中配置
[*]在项目概览页面,单击应用列表中的应用管理按钮image。获取应用名称、AppKey、AppSecret。
https://upload-images.jianshu.io/upload_images/19316870-796b966c62c657bc.png
打开本地项目,找到项目目录下app/src/main/assets下的appConfig.properties文件,填入appName、appKey和appSecret。serverUrl填入http://[云服务器公网IP]。
https://upload-images.jianshu.io/upload_images/19316870-3ac776d17e97a6b0.png
提交代码到远程仓库。
1.4 创建云构建
在项目概览页面,在右侧单击云构建。
https://upload-images.jianshu.io/upload_images/19316870-c11b8738fc58479e.png
在云构建页面,单击配置应用。
https://upload-images.jianshu.io/upload_images/19316870-605282fa6cb39e5e.png
配置代码仓库
[*]在右侧弹出框代码仓库页签下,选择代码源云效codeup。
https://upload-images.jianshu.io/upload_images/19316870-f52eacc2435c1681.png
在指定代码仓库输入框中,粘贴之前创建的代码仓库地址。
单击新建代码访问权限。
[*]在添加仓库权限页面,访问协议选择HTTPS。
https://upload-images.jianshu.io/upload_images/19316870-92469a4838cef804.png
[*]打开云效codeup,单击导航栏右上角头像图标,在弹出菜单中单击个人设置。
https://upload-images.jianshu.io/upload_images/19316870-973d1b47752d3b74.png
[*]在左侧菜单栏,单击个人信息,复制账号名称。
https://upload-images.jianshu.io/upload_images/19316870-88fcb94e9ad572d1.png
[*]在添加仓库权限页面,在账号输入框填入刚刚复制的账号名称。
[*]在个人设置页面左侧菜单栏,单击个人访问令牌,然后单击创建访问令牌。创建完成后,复制令牌信息。
https://upload-images.jianshu.io/upload_images/19316870-5053b395b74a2715.png
[*]回到添加仓库权限页面,Token输入框粘贴令牌信息。
[*]单击联通测试,若显示测试成功则表示操作成功。
[*]单击保存。
在配置代码仓库页签下,单击联通测试,若显示测试成功则表示配置成功。
单击下一步。
配置证书:在证书配置页签下,上传Keystore证书,并按照表单输入如下信息。如果没有证书,可以访问地址在线生成。
<table>
<thead>
<tr>
<th>选项</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>Keystore密码</td>
<td>用于输入Keystore文件的密码。</td>
</tr>
<tr>
<td>Key 别名</td>
<td>用于指定证书的名称。</td>
</tr>
<tr>
<td>Key 密码</td>
<td>用于输入证书的密码。</td>
</tr>
</tbody>
</table>
人员配置,默认包含主账号,单击确认。
在云构建流水线列表页面,找到刚刚创建的流水线,在右侧相关操作列,单击详情。
https://upload-images.jianshu.io/upload_images/19316870-beabb982a50ed377.png
在右上角单击编辑,在编辑页面,单击构建应用模块。在左侧菜单选中JDK版本替换,将JDK版本修改为17。单击确定。
https://upload-images.jianshu.io/upload_images/19316870-67ab1f6ba86761ca.png
单击保存并运行。
运行成功后,可以在页面左侧产物,扫码或手动下载安装包到手机。
https://upload-images.jianshu.io/upload_images/19316870-909de9e36194a719.png
云发布配置
新建发布包流水线
在左侧菜单,选择云构建 > 流水线列表,单击新建流水线。
https://upload-images.jianshu.io/upload_images/19316870-cc55d94bc7681ad2.png
在新建流水线滑框内容,输入流水线名称,流水线类型选择发布包流水线,单击新建。
https://upload-images.jianshu.io/upload_images/19316870-b7af6285c5d1cfe6.png
在流水线列表页面,单击刚刚创建的流水线的相关操作列详情,进入详情页面。
在右上角单击编辑,在编辑页面,单击构建应用模块。在左侧菜单中选中JDK版本替换,修改JDK版本为17。单击确定。
新建发布单
[*]在左侧菜单,选择云发布 > 发布单列表,单击新建发布单。
[*]在新建发布单滑框内,待发布产品来源选择云构建发布,关联流水线选择刚刚创建的发布包流水线。
[*]单击新建。
https://upload-images.jianshu.io/upload_images/19316870-4d6fd030136a6837.png
推送更新
在发布单列表页,单击发布状态列更新推送。按照表单填写后,单击下一步。
https://upload-images.jianshu.io/upload_images/19316870-04f3cdaac343bd32.png
在基本策略页面,填入表单信息。
查看手机上安装的App,可以看到更新提示。
https://upload-images.jianshu.io/upload_images/19316870-db08b6ef578c8a8c.png
官网相关地址直达:
1.更多阿里云方案查询:https://www.aliyun.com
2.阿里云服务器ECS相关活动:https://www.aliyun.com/daily-act/ecs/activity_selection
3.云小站(代金券发布平台):https://www.aliyun.com/minisite/goods
https://upload-images.jianshu.io/upload_images/19316870-5f1747d3cd17a545.png
<div class="image-caption">云小站代金券图.png
页:
[1]