前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【玩转腾讯云】PAI助力迎祥花园线上开盘

【玩转腾讯云】PAI助力迎祥花园线上开盘

原创
作者头像
Yerik
修改2020-04-02 11:02:14
1.7K3
修改2020-04-02 11:02:14
举报
文章被收录于专栏:烹饪一朵云烹饪一朵云

项目背景

由于受本次新冠疫情影响,积极响应国家号召,自觉尽量减少外出及避免人群聚集,原本定于2月1日的线下开盘临时取消。但考虑到本地客户购房需求及经过客户多次要求,经慎重考虑,决定采取线上开盘的形式,紧急开发在线开盘小程序,既满足客户的购房需求,又能避免新冠疫情的影响。

项目已上线
项目已上线

总述

项目最终通过微信小程序进行开发完成,通过租用腾讯云PAI服务器,自动绑定已经备案的域名。服务器需要安装docker环境,通过docker-compose进行启动,自动启动需要使用.pai.yml这个文件进行动态服务拉取自动对服务进行启动停止和重启操作。

总的来说,腾讯云PAI服务器给我们开发者带来了很多硬件上的帮助,这些无关开发,然而很大程度上减少开发者们烦恼的方面,比如小程序开发域名需备案:)

诚然,这款服务器还是有相当一部分的坑存在,需要可能也是接下来PAI的优化方向

部署脚本

由于PAI服务器没有给我们提供相关的shell脚本,这个时候需要我们自己创建相关的文件,阅读了官方提供的脚本

官方部署脚本demo
官方部署脚本demo

大致猜得出来要怎么使用了,可惜无奈的是我们创建的过程,当时我是通过touch创建的,这里是没有执行权限的

创建脚本
创建脚本

导致启动一直是失败的,当时发起工单找了客服,都很懵,没想通原因

启动失败
启动失败

直到最后发现,原来在忘了添加执行权限,添加了之后,发现就可以执行成功了,当时跟客服两个人都在电话里头笑了半天

添加执行权限
添加执行权限

不过最后还是无法执行成功,脚本是写对了,然而环境问题导致我们的Sping-boot项目启动失败,因为使用的是Gradle构建工具,这些源文件都是可以提供的,可惜的是安装完成之后还是启动失败,无奈只好通过docker,之后安装docker-compose

安装docker
安装docker

之后使用腾讯云容器服务提供的docker私人容器仓库的服务,拉取镜像就很快了,之后发布成功,提供的仓库也够大,1k镜像,够我玩好些时间,期间我还发现,其实单个库也就100个镜像的上限,居然也被我摸到边缘了23333333

本项目镜像仓库
本项目镜像仓库

成功之后,在跟前后端交互的过程中持续的宕机,CPU使用率时常达到100%,经常性的服务进程被杀死,附图是在后台监控中发现的,当时的配置是1c2g,一直服务被杀死,要知道当时我们还在调试中,用户量也就2而已,作为后台开发也是无奈到不行,然后就开始扩容了

后台监测
后台监测

这里作为开发者,腾讯云的监测方能不能检测到我们的服务过载,就来个微信提醒什么的?建议我们扩容之类,一开始没经验还在猜测自己代码哪里出问题了,讲道理腾讯云家大业大,出问题概率不大,是我自己有问题,先反省自己,最后才发现资源不足。

瞬间峰值1
瞬间峰值1
瞬间峰值2
瞬间峰值2

建议

总的来说,瑕不掩瑜,腾讯云客服的服务态度可圈可点,在这个项目的开发过程中,我们时常开发到凌晨2、3点,出现问题,客服们还能保持在10min内响应我们的问题,真的很服气了,以下是我在开发过程中觉得可以优化的一些建议:

  1. 由于开发者需要各种各样的环境,建议安装docker环境还有docker-compose这样提高了我们部署的效率
  2. 基于1,有了docker环境我们对应的.pai.yml这个文件书写起来就简单很多了,规定docker-compose.yml基础文件,之后就是使用shell, docker-compose up等等
  3. 对于.pai.yml这个启动过程,其实PAI团队可以写一个类似README的文件,把相关的提示都写在里面,开发者们就没必要跑去你们的官方github阅读代码,参悟你们的开发思想,另外这个地方一定要提醒开发者*.sh这些文件都需要chmod +x *.sh添加执行权限
  4. 对于部分应用我们开发者不选择开源,然而这个时候无法通过管理后台拉取代码,其实解决这个问题有三种办法
    1. 强制要求开发者开源代码
    2. 后台发布管理,增加一个表单,让我们输入github的帐密,用来获得私人项目的部署权利
      项目发布失败
      项目发布失败
    3. 要求开发者代码发布在腾讯代码仓库工蜂,这个时候你们可以通过策略,即使是私人项目也可以通过你们的内部线路获得代码
    4. 通过docker,这个也是我的部署方法,基于2,然后docker打包pull到腾讯云的容器服务,提供的私人仓库,另外配置启动服务的项目,这个时候几行代码而已,pulish也无所谓
      发布成功
      发布成功
  5. 通过监控功能,提供带宽扩容改弹性等等、服务器类型的优化建议
  6. 购买服务器的时候,能不能出个大概的计算公式,如大概多少多少用户量,多少多少交互量要多少多少的配置 等等

尾记

在我们测试运行的过程中还发现有人在用扫描器扫我们,活捉个正着,这就很有趣了,反正不知道是不是腾讯云安全部的测试咧,反正懒得去校验:】

扫描截图
扫描截图

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目背景
  • 总述
    • 部署脚本
    • 建议
    • 尾记
    相关产品与服务
    云 API
    云 API 是腾讯云开放生态的基石。通过云 API,只需少量的代码即可快速操作云产品;在熟练的情况下,使用云 API 完成一些频繁调用的功能可以极大提高效率;除此之外,通过 API 可以组合功能,实现更高级的功能,易于自动化, 易于远程调用, 兼容性强,对系统要求低。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档