请问如何搭建一个能防止操作失误的php生产环境?

zxr615
  • 28

公司用着阿里云的ECS服务器,之前是服务器(centos7)+一块磁盘, 环境和代码全部放在一起,有一次配置环境的时候误删了系统文件,导致系统无法开机,后来把磁盘的数据拿出来,重新装了环境放把mysql数据和项目代码放在心的服务器中;折腾了一天网站才可以访问。
今天重启了一下阿里云,结果服务器所有文件以及环境莫名奇妙的全部还原到了几个月前出问题的状态的代码,用户访问的数据全部都是几个月之前的代码,阿里云方也不清楚是什么原因;还好这次数据库文件有备份到其他的磁盘,才把数据恢复过来。

我就想问问,项目应该怎么样部署才会好一些呢,比如说现在配置某个文件,然后不小心误删了系统文件,人家访问不了服务器,但数据盘的数据是没问题的

怎样最快的恢复网站的访问?
还有环境、代码、备份需要全部分开不同的数据盘存放吗?

可能描述的不是很清晰,画了个简图:不知道是这样是不是会好点,能避免服务器出问题导致的数据丢失,并能较快的恢复。

clipboard.png

公司是小公司,也是第一份工作,公司就我一个程序员,没什么经验,希望大家能给点建议,谢谢各位了。

回复
阅读 2.1k
2 个回答

因为是小公司+单程序员,所以我这里只给出你一个人就能完成的事情:

  1. 上线部署流程完全使用自动化实现;
  2. 除代码之外的运行环境全部使用 Docker 来实现;
  3. 既然是阿里云那就开启阿里云的定时快照;

听起来挺吓人的,但是实际学习成本非常低,而且学习收益非常大。不论你是php-web还是java-web还是node-web还是py-web,这套东西都适用。

以下是会涉及到的知识点:

  1. (基础的基础,大前提)Linux基本常识,Shell脚本编写
  2. Git版本控制,GitHub/GitLab版本仓库,CI/CD持续化部署(Jenkins)
  3. Docker(Docker cmd、Dockerfile、Docker-compose),不用学K8s等集群相关的
  4. 虚拟机使用和管理,VMWARE系的,在本机装一个vmware workstation,或者用公司服务器装一台vmware exsi(免费的,极为推荐),学习一下虚拟机的管理

这些都是一个人就能搞定的事情,学习资料多,个人收益大。

如果条件允许的话,建议服务器分开放置, 应用服务器放生产环境代码,持久化存储的服务器比如数据库,文件服务等等,然后代码存放可以有单独的git服务器;就是各类服务分开,避免单机版出问题造成毁灭性的打击。

然后 开发线, 测试线, 生产,要自己严格规范,也能避免很多问题,虽然只有自己一个人,但是我觉得这还是有必要的。
做好数据的灾备,以便出问题了还能恢复。数据库可以部署用于灾备的从库等等,文件定时备份。

最最关键的是还是要提高运维能力,减少出问题的几率,不然整天就光备份,恢复,备份,恢复了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏