前两天,debian 从 8 全新升级到 9(不喜欢 dist-upgrade),要重装 owncloud (debian 9 已经移除 apt源了),打开 owncloud 的安装文档,真他妈的琐碎,要搭建个高可用的 owncloud 起码还要费我两三个小时,于是打开 http://hub.docker.com 立马就找到了一个 owncloud 的 image,我扫了一眼特性,比 owncloud 官方推荐的标准配置强不少:
Streamlined Let's Encrypt functionality built right in
This will fetch valid, trusted and free SSL certs for your domain and install them into the image!
Hurray for green lock icons!
Superfast
Uses PHP7 with APCu and Zend OpCache for maximum performance
Now with image version tags corresponding to OwnCloud release versions
So you won't get unexpectedly upgraded and you can safely stay on an OC version you know is working for you
Built in (optional) MySQL database server (faster than sqlite default)
Or specify your own pre-existing database server during setup
Web GUI driven initial setup of user/password/database
Based on Arch Linux ensuring everything is cutting edge & up to date
SSL (HTTPS) encryption works out-of-the-box
Tweaked for maximum security while maintaining compatibility
Optionally enable automatic SSL certificate regeneration at runtime for maximum security
Or easily incorporate your own SSL certificates
In-browser document viewing and editing ready (.odt, .doc, and .docx)
In-browser media viewing ready (pretty much everything I think)
Comes complete with all of the official ownCloud apps pre-installed:
Bookmarks
Calendar
Contacts
Documents
Gallery
Or install your own 3rd party apps
随便装一下 owncloud糊弄一下的话,很快,但想弄的稳定高效,不是专业sa,每项都要费我不少时间去查阅文档,真不想在这些事情上费时间。看完这些毫不犹豫的把 image 拉下来,设置下内外端口映射和文件夹映射,一条命令就跑起来了,感觉真爽。
以前在大公司,要什么环境发封邮件就行了,后来在小公司,不得不充当半个 SA才感觉事情之繁琐细致。举个例子,搭建 svn server,可能你觉得简单,不就是 apt-get subversion 然后 supervisor 里面配置个 svnserve 的服务就行了么?好,接下来要给 svn 换成 https 的模式可能你就觉得有点烦了,apt-get 下来还有一堆权限和模块要配置,起码半小时,不过还好;如果更进一步,需要针对 ssd 优化 svn 仓库的存储方式,还有每天定时增量备份,每周定期全量备份,备份内容要保存到远程目录,加密压缩,定期删除老的备份保留最近两个月数据,然后支持多仓库,自动同步权限配置并合并更新,有个小网页可以注册svn帐号(需要管理员密码才能操作),可以复位忘记密码的,所有帐号操作有记录,你可能真的要吐血了。
这种环境我搭了四遍,每次都是隔了半年以上忘记的差不多了,又重头开始塔的,第一次完整搭建下来废了我两天。本来偷懒没记笔记,想着搞一次,结果半年后第二次又来一遍,好多东西忘记了,仍然费了我一个整天,还好我这次学乖了记了笔记,第三次第四次半天就搞定了。
现在你再让我搭建一遍我真的想想都怕,后来我搭建了一个干净的 svn虚拟机 image,但是接近1个G,压缩以后也好几百兆,十分累赘,不便于保存和传递,现在好了,制作一个 docker 映像,交给别人用,根本不用啰嗦半天,一条命令,前面配置了那么多的功能,一下就启动起来了。
在我半个 SA生涯里,https + svn 只能算烦,不能算复杂,比较复杂的还有整套 qemu-kvm 的虚拟化环境,linux 物理机上从零搭建起一套类似 vmware 的可视化虚拟环境,可以在网页上点点创建虚拟机,设置虚拟网络,支持网页版 VNC,可以页面上打开虚拟机终端屏幕进行操作系统安装,就像腾讯云阿里云一样,还有一些自动脚本可以用 libvirt 操作虚拟机做一些自动备份迁移的事情。配这么一套环境要想弄得完善,各种网络和系统参数优化到位,从头到尾接近一百多个步骤,这玩意儿,我配第一次挺开心,觉得自己从头到尾弄了一套完全免费的 vmware,结果后面又接着配了俩三次,配一次吐一升血。
除此之外还有各种 mongodb 集群啦,分布式文件系统啊,有了docker以后,都是一句话就搞定的事情。现在觉得 docker 就是来拯救大家的时间的,能够将 SA的经验标准化并固定下来,特别中小团队,上了docker省下你一两个 sa来一点问题都没有。