业务现状
- 系统环境:阿里云 4 核 16G 服务器一台,安装的 Windows Server 2012,所有网站通过 IIS 管理。
- 网站概况:我和另一个同事分别独自负责几个网站,我的网站全部前后端分离,后端用 Node.js 提供统一的 API 调用,数据库为 MongoDB ;同事的几个网站都用 PHP + MySQL 写的。
迁移流程
- 公司还有一台低配的 2 核 8G CentOS 7 服务器,先将各项业务依次迁移到该服务器上。原来的 IIS 用 Nginx 代替,数据库则安装 CentOS 下对应版本。且打算将业务运行环境容器化,包括 Nginx 、Node.js 、PHP 、MongoDB 、MySQL,都部署到各自的容器中。因为各项业务目前用户规模小,综合考虑之后认为容器化的方案利大于弊,所以采用此方案。
- 完整检查每项业务各部分功能,确认所有业务都正常运行。
- 最后将 4 核 16G 服务器也从 Windows Server 2012 切换至 CentOS 7,并将业务全部迁移回这台更高配置的服务器。
主要问题
- CentOS 系统层面的安全加固,包括用户、SSH 等部分,看了官方 Wiki 上的一些文章,又在 Google 上看了一些文章,把认为有必要的内容先在低配服务器上实践了一遍了,还做了笔记:云服务器配置笔记 v6.0。至于打系统补丁之类的,CentOS 7 上的最佳实践是怎样的?
- 各个业务对应的前后端程序、数据库放到什么目录下比较合适?各个目录设置怎样的权限比较合适?还是说 Google 找找看着靠谱的建议照着做就行?
- 业务所需软件环境的容器化,上周在图书馆借了一本《 Docker 技术入门与实战》,当时大致翻了前 1/4,感觉非常实用,完全可以用在这次的业务迁移中,不知道还有没有同样优质的 Docker 图书推荐?另外容器中的软件配置有什么注意事项?比如数据库部署在容器中之后常常会踩的坑。
现在主要就是想接着这次业务迁移的机会,尽量把各方面配置都做完善,让业务运行环境尽量安全、方便,后面就可以专心于业务开发上了。