云上部署的便利性和方案

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 低门槛上云的可选部署方案

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


我们就用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


cloud-market-2.png


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


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


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


yunchao.png



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

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

light-server.png



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


参考

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

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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
存储 容灾 安全
云上架构和传统IT架构有什么区别及优势?
在云计算走向成熟之前,我们更应该关注系统云计算架构的细节,从传统的架构到云上大数据,实现了很多的转变。
3949 0
云上架构和传统IT架构有什么区别及优势?
|
SQL 关系型数据库 MySQL
阿里云MySQL数据库价格、购买、创建账号密码和连接数据库教程
阿里云数据库使用指南:购买MySQL、SQL Server等RDS实例,选择配置和地区,完成支付。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码访问。同地域VPC内的ECS需将IP加入白名单以实现内网连接。参考链接提供详细步骤。
1480 3
|
NoSQL Redis
如何查看yum 安装的软件路径(不要再忘了)
如何查看yum 安装的软件路径 今天使用yum 安装了一个软件,后来没有找到路径 1、首先安装一个redis [root@iZbp1eem925ojwyx17ao9kZ ~]# yum install redis 2...
2297 0
|
API 数据安全/隐私保护 Docker
【Docker】Docker Swarm集群+Portainer控制台配置安装
Docker Swarm集群+Portainer控制台配置安装
3271 0
【Docker】Docker Swarm集群+Portainer控制台配置安装
|
11月前
|
设计模式 Java 开发者
Java多线程编程的陷阱与解决方案####
本文深入探讨了Java多线程编程中常见的问题及其解决策略。通过分析竞态条件、死锁、活锁等典型场景,并结合代码示例和实用技巧,帮助开发者有效避免这些陷阱,提升并发程序的稳定性和性能。 ####
|
监控 安全 数据安全/隐私保护
云服务的优点
【4月更文挑战第29天】云服务的优点
1116 1
|
边缘计算 自动驾驶 物联网
Massive MIMO技术在5G中的应用:开启无线通信的新篇章
Massive MIMO技术在5G中的应用:开启无线通信的新篇章
792 2
|
Cloud Native 关系型数据库 分布式数据库
国内首批|阿里云PolarDB通过国家标准GB18030-2022最高级别认证
阿里云瑶池旗下的云原生数据库PolarDB完成了强制性国家标准GB 18030-2022《信息技术 中文编码字符集》标准测评,通过了该标准的最高级别3级认证,成为首批通过该测评认证的关系型数据库管理软件。
|
存储 数据可视化 前端开发
【分享】报告!发现一个低代码数据可视化开发平台~
【分享】报告!发现一个低代码数据可视化开发平台~
257 0
|
存储 关系型数据库 分布式数据库
政采云引入PolarDB云数据库,支撑全国政府部门采购业务
政采云使用PolarDB-X作为政府采购网的商品库、订单库,支撑全国各级政府部门的采购业务