有了云可以做什么

209 阅读3分钟

  从19年开始使用华为云(4核8G)到20年使用阿里云(1核2G),从基于spring cloud 按照自己对微服务的理解做了一套完整的CMS系统(虽然细节处理不怎么丝滑,不过也算微服务入门吧)到依赖成熟(开源)的解决方案快速搭建个人网站。自我评价也算是云服务的入门级用户了吧。目前在我的小小云上部署了太多的服务,出现系统资源不太够用的情况,特别是内存资源(使用率长时间在90%上下浮动)。

memory

  因此是时候整理下当前小云上运行的服务了,也当做是一个阶段性总结吧,顺便看看还能不能挤牙膏。

挤牙膏

总揽

  目前小小云对外提供以下服务:

  • 个人博客(Hexo)
  • 个人图床(Chevereto)
  • 个人网盘(NextCloud)
  • 云端下载(Aria2)
  • 直播转码(ffmpeg + SRS)
  • 云端爬虫(Selenium + Chrome)
  • 实验Beta环境(Spring cloud)

top

  如上图所示为,每一个对外的服务均有多个子服务,子服务以docker的方式运行在云上。选择docker是因为:

  1. 服务之间可隔离
  2. 遇故障服务可快速重建
  3. 对主机环境依赖低
  4. 避免在网络上暴露主机

  得益于服务docker化,我可以通过docker-compose对服务进行编排,配置必要的参数。目前整体运转良好,除了开篇所说的内存占用较高以外。

memory

  但是说回来,运行这么多服务内存占用高一点似乎也说得过去,下面将服务展开来看。

服务

个人博客

  基于轻量、支持Markdown语法、同时发布多站点的考虑,个人博客系统选择了Hexo。毕竟个人博客主要是用来承载个人的随笔,并不需要太多花哨的东西。在《Docker + Git 部署Hexo发布》中,详细介绍了如何利用脚本实现Hexo的多站点部署。Hexo常常被部署在github以及gitee所提供的静态页面上,如:我的github或者是我的gitee。但是这两家仓库提供商对图片的限制很大,如果博文中有较多图片可能会导致Hexo发布失败或是图片无法加载,因此最好能有一个稳定的图床作为博文图片的来源。正因为如此我在小云上紧接着就部署了Chevereto和NextCloud。

图床

  Chevereto作为图床相当的好用,界面美观,功能丰富(完全满足博文的要求),并且提供官方的docker镜像。至于它的安装方式,网上的资料有很多,这里就不展开了,可依据应用的环境自行配置参数。

hevereto

  需要注意的是部分参数需要通过修改配置文件才可生效,如默认上传图片大小是有限制的(2MB),修改完成后用卷映射的方式重新指定给docker即可。

  图床顾名思义,主要是提供图片的支持。但是在丰富的博文中难免会遇上需要插入视频的时候,而此时又不想使用第三方服务(如哔哩哔哩)的话,就需要用到网盘了。

网盘

  网盘我选择的是NextCloud,界面同样美观,具有很强的功能,完全可代替图床(因为我有一部分图片已上传至图床,实在不想迁移到网盘,所以两个都保留了)。网盘的视频功能支撑了《自动遍历UI控件》中的视频播放。

nextcloud