云上部署的便利性和方案

每年双十一的时候,由于云厂商对于新用户的推广和补贴用户,总会有一些非技术的同事买云主机或者其他类似服务,买了以后也没啥诉求,就想看能不能搭个博客或者小网站自己玩玩。除了个人用户以外,也有一些小公司可能也有类似诉求,需要一个简单的项目管理或者其他企业软件,一般的诉求都是免费或者花钱少。


我们就用wordpress举例,考虑最简单的wordpress也需要一个PHP环境,一个数据库,如果还需要https,那还需要一个nginx或者caddy。


手动安装


手动其实比较麻烦,php环境、数据库和caddy可以使用apt/yum安装,再从wordpress官网下载最新版本,解压使用。数据库需要手动改下密码,然后wordpress配置连接。这么一套,10分钟肯定跑不掉。


Docker-compose方案


docker是最容易想到的方案。

一般来说为了方便我都会帮忙用docker-compose的方式部署一下,几行命令就能搞定,配置文件如下:


version: "3.9"
    
services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - wordpress_data:/var/www/html
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data: {}
  wordpress_data: {}


这样来的快,但是慢慢就遇到一些别的问题,比如升级。wordpress有自动升级,只要不出问题基本可以一直用,但是数据库偶尔还是要升级的。这个时候需要重新docker-compose restart一下。


考虑到操作的长期性,我们需要一个docker管理软件,严格讲是远程管理docker-compose的软件,我之前一直使用的Daocloud作为管理界面。


安装包方案


仔细想想在Windows下安装软件的情况,一个installer,一直下一步就能搞定。

而自己搞还有一个问题就安全,配置是否直接使用默认值,默认值是否为最优选择?这些都需要斟酌。


所以一个靠谱的傻瓜安装包也是一个选择,比如Bitnami。

Bitnami提供了常见软件/工具的一键可用的安装包和集成环境,并且暴露了必要的配置,基本上一句命令行就能搞定问题。同时还提供了不同环境的安装包,不光是windows、linux这种,还有docker,甚至云厂商的集成版本。


比如它提供的Docker版本如下:

version: '2'
services:
  mysql:
    image: docker.io/bitnami/mysql:8.0
    volumes:
      - 'mysql_data:/bitnami/mysql'
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - MYSQL_USER=bn_wordpress
      - MYSQL_DATABASE=bitnami_wordpress
  wordpress:
    image: docker.io/bitnami/wordpress:5
    ports:
      - '80:8080'
      - '443:8443'
    volumes:
      - 'wordpress_data:/bitnami/wordpress'
    depends_on:
      - mysql
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - WORDPRESS_DATABASE_HOST=mysql
      - WORDPRESS_DATABASE_PORT_NUMBER=3306
      - WORDPRESS_DATABASE_USER=bn_wordpress
      - WORDPRESS_DATABASE_NAME=bitnami_wordpress
volumes:
  mysql_data:
    driver: local
  wordpress_data:
    driver: local


也可以直接用,比如

$ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-wordpress/master/docker-compose.yml > docker-compose.yml
$ docker-compose up -d


对于海外的云厂商,支持Google、Azure、Aws等。


云市场


便利的云上部署可以极大降低使用难度,特别是降低入门门槛,利于新用户吸纳。所以云厂商一般也有类似的市场,提供一些免费/收费的集成环境。不过这种一般都是厂商绑定的,非通用。


比如在阿里云云市场搜索Wordpress


云上部署的便利性和方案


这里的0元/月一般都是首月,免费试用下,第二个要收费,另外就是版本相对比较旧,比如现在Wordpress最高版本是5.9,这里的都是5.8的。


阿里云最近还推出了计算巢,目前公测中。这个可以理解为云市场的升级版,除了软件以外还捆绑了云资源配置,购买以后会自动创建云资源并完成部署。


当然,服务提升了,价格也不一样,服务商的收费普遍比云市场贵一些。


云上部署的便利性和方案



计算巢的收费主要是厂商的服务费+云资源的使用费用。目前公测期间,没有平台费用。

另外阿里云还有应用镜像可选,对于特别知名的项目(特别是web类的),可以直接选择。

云上部署的便利性和方案



这个应用镜像的维护周期不明确,单从版本看,比较陈旧。


参考

https://bitnami.com/stack/wordpress/containers

https://help.aliyun.com/product/268599.html

上一篇:使用阿里云函数计算自动同步github fork repo


下一篇:电子书合集 | 62 篇技术文章,探索阿里巴巴云原生实践之路