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

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

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

我就想問問,項目應(yīng)該怎么樣部署才會好一些呢,比如說現(xiàn)在配置某個文件,然后不小心誤刪了系統(tǒng)文件,人家訪問不了服務(wù)器,但數(shù)據(jù)盤的數(shù)據(jù)是沒問題的

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

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

clipboard.png

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

回答
編輯回答
舊螢火

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

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

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

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

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

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

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

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

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

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

2018年8月29日 01:44