鍍金池/ 問答/PHP  Linux  網絡安全/ 請問如何搭建一個能防止操作失誤的php生產環(huán)境?

請問如何搭建一個能防止操作失誤的php生產環(huán)境?

公司用著阿里云的ECS服務器,之前是服務器(centos7)+一塊磁盤, 環(huán)境和代碼全部放在一起,有一次配置環(huán)境的時候誤刪了系統文件,導致系統無法開機,后來把磁盤的數據拿出來,重新裝了環(huán)境放把mysql數據和項目代碼放在心的服務器中;折騰了一天網站才可以訪問。
今天重啟了一下阿里云,結果服務器所有文件以及環(huán)境莫名奇妙的全部還原到了幾個月前出問題的狀態(tài)的代碼,用戶訪問的數據全部都是幾個月之前的代碼,阿里云方也不清楚是什么原因;還好這次數據庫文件有備份到其他的磁盤,才把數據恢復過來。

我就想問問,項目應該怎么樣部署才會好一些呢,比如說現在配置某個文件,然后不小心誤刪了系統文件,人家訪問不了服務器,但數據盤的數據是沒問題的

怎樣最快的恢復網站的訪問?
還有環(huán)境、代碼、備份需要全部分開不同的數據盤存放嗎?

可能描述的不是很清晰,畫了個簡圖:不知道是這樣是不是會好點,能避免服務器出問題導致的數據丟失,并能較快的恢復。

clipboard.png

公司是小公司,也是第一份工作,公司就我一個程序員,沒什么經驗,希望大家能給點建議,謝謝各位了。

回答
編輯回答
舊螢火

因為是小公司+單程序員,所以我這里只給出你一個人就能完成的事情:

  1. 上線部署流程完全使用自動化實現;
  2. 除代碼之外的運行環(huán)境全部使用 Docker 來實現;
  3. 既然是阿里云那就開啟阿里云的定時快照;

聽起來挺嚇人的,但是實際學習成本非常低,而且學習收益非常大。不論你是php-web還是java-web還是node-web還是py-web,這套東西都適用。

以下是會涉及到的知識點:

  1. (基礎的基礎,大前提)Linux基本常識,Shell腳本編寫
  2. Git版本控制,GitHub/GitLab版本倉庫,CI/CD持續(xù)化部署(Jenkins)
  3. Docker(Docker cmd、Dockerfile、Docker-compose),不用學K8s等集群相關的
  4. 虛擬機使用和管理,VMWARE系的,在本機裝一個vmware workstation,或者用公司服務器裝一臺vmware exsi(免費的,極為推薦),學習一下虛擬機的管理

這些都是一個人就能搞定的事情,學習資料多,個人收益大。

2017年11月19日 00:10
編輯回答
不歸路

如果條件允許的話,建議服務器分開放置, 應用服務器放生產環(huán)境代碼,持久化存儲的服務器比如數據庫,文件服務等等,然后代碼存放可以有單獨的git服務器;就是各類服務分開,避免單機版出問題造成毀滅性的打擊。

然后 開發(fā)線, 測試線, 生產,要自己嚴格規(guī)范,也能避免很多問題,雖然只有自己一個人,但是我覺得這還是有必要的。
做好數據的災備,以便出問題了還能恢復。數據庫可以部署用于災備的從庫等等,文件定時備份。

最最關鍵的是還是要提高運維能力,減少出問題的幾率,不然整天就光備份,恢復,備份,恢復了。

2018年8月29日 01:44