⑴ php網站運維主要做什麼
運維工程師幹些什麼
總結兩句話
1、 保障業務長期穩定運行(如網站伺服器、游戲伺服器等等)。
2、 保障數據安全可靠(如用戶名密碼、游戲數據、博客文章、交易數據等等)。
由這兩句話推演運維工程師要學些什麼
一、保障業務長期穩定運行
出一點點差錯,用戶就要投訴了。
1、業務跑在什麼上面?
網站伺服器一般是apache,nginx,tomcat等。但是真正跑通流程還需要Mysql資料庫來存儲用戶密碼及其它。很多程序都要php的解析,所以LNMP、LAMP(即nginx、apache、mysql、php)環境部署是必須掌握的技能。
2、業務出了問題怎麼及時知道?
這就需要監控軟體來郵件或簡訊來通知你,常用的有zabbix,nagios等。報警發郵件,也得一個郵件程序呀,sendmail或postfix。
3、在家裡收到報警,但伺服器是內網IP,怎麼也得解決問題吧?
在公司搭建openvpn或pptp或openswan,在家裡通過VPN撥入內網,24小時解決問題…唉,半夜爬起來解決問題也沒工資。
二、保障數據安全可靠
出一點點差錯,領導要找你喝茶了。
1、有時需要手動改資料庫內容?
所以要會基本的Mysql資料庫增刪查改命令。
2、萬一資料庫伺服器硬體壞了怎麼辦?
需要有個備庫以備不時之需,所以需要Mysql主從復制。
3、 資料庫要還原怎麼辦?
所以需要在crond中定期全備Mysql數據,以便還原使用。如果要還原到指定時間點,還要學會Mysql增量備份與恢復。
4、 如果是用戶上傳的圖片或文件伺服器壞了怎麼辦?
定時備份可能還不夠,需要使用rsync加inotify來實時備份。以便任一時刻主伺服器壞掉,也能保障所有圖片有備份可以用來恢復。
5、小心黑客,要增加伺服器安全性?
ssh輕易不能讓外人訪問,那麼就設置只允許公司的IP或跳板機IP訪問,這些都通過iptables來控制。
三、大性能
小公司總有一天會牛逼起來的,實在牛不起來咱也可以跳到大公司。
1、越來越多的用戶來訪問我們的網站,一台web伺服器抗不住了怎麼辦?
那就需要多台web伺服器來負擔,但多台伺服器之間怎麼進行負載均衡呢,這就需要用到nginx反向代理或LVS+keepalived或haproxy+heartbeat了。
2、用戶注冊發表的文章與評論太多,一台資料庫抗不住了怎麼辦?
資料庫壓力分為讀和寫,如果寫抗不住,需要進行分表分庫到多個伺服器上。如果是讀壓力不夠了,可以使用mysql-proxy讀寫分離,來分擔讀的壓力。更簡單方便的方法,把資料庫里的內容放到內存上,這就用上memcache或redis了。
3、N多用戶上傳下載文件,磁碟抗不住了怎麼辦?
把多塊磁碟做成raid,或者使用分布式存儲文件系統如MFS,GlusterFS來提高磁碟的讀寫能力。
4、網站上好多圖片,總有用戶反應網站載入太慢,怎麼辦?
這時可以把網站上的圖片通過squid或varnish緩存到網站前端,盡可能的增加訪問速度,當然,最好是購買商業的CDN加速。
5、運營商是個大難題,他們之間的帶寬好像很小,聯通IP訪問我電信網站怎麼就這么慢呢?
這時可以使用bind自建一個DNS伺服器,把網站的DNS記錄指向自建DNS伺服器上,配置好解析規則,以後聯通IP解析到聯通網站上,電信IP解析到電信網站上,體驗就會好很多啦。
四、自動化
終極目標:跑死機器,閑死人。
1、 公司新買100台伺服器,公司竟然就1個移動光碟機,這裝系統得到什麼時候?
使用kickstart或cobbler來網路遠程自動安裝系統吧。
2、 每次裝完機要優化很多內容,什麼文件描述符、埠、軟體安裝啊,手動操作不累死去?
趕緊學會shell,將解放非常多的工作量。
3、系統裝完後登陸要輸入密碼,這么多台啊?
使用expect吧,自動讀取提示來輸入密碼,並執行命令。
4、要批量把新代碼發布到線上伺服器,怎麼辦?
使用saltstack或puppet或ansible吧,絕對爽歪歪。
五、其他
1、搭整套測試環境需要5台伺服器,但公司窮的只有一台空閑伺服器?
學會xen或kvm或docker吧,虛擬出多台伺服器,就能解決資源問題了。特別是docker,強烈推薦,以後某個研發人員讓你部署一套新環境,分分鍾幫他解決。
2、研發人員的代碼控制,許可權控制,總要運維人員管呀?
svn或git,這個是肯定要有的。
結尾:
現在我們在回過頭來思考,運維工程師平時幹些啥呢?
1、 隨時解決報警故障。
2、 業務程序更新。
3、 編寫一些腳本,監控或完成其他可自動完成功能。
4、 運維架構完善,部署一些用起來更方便更可靠或性能更好的開源工具以及制定運維流程規范。
5、 打雜,如調交換機,裝系統,部署新環境等。
⑵ php工程師是做什麼的
PHP工程師主要負責使用PHP語言進行Web網站的開發與維護。具體來說:
網站後端開發:PHP工程師利用PHP語言編寫伺服器端腳本,處理客戶端的請求,實現網站的各種功能,如用戶注冊、登錄、數據查詢等。
資料庫交互:他們需要與資料庫進行交互,設計並優化資料庫結構,編寫SQL語句進行數據查詢、插入、更新和刪除等操作,確保數據的准確性和高效性。
系統維護與優化:PHP工程師還需要對已上線的網站進行維護和優化,修復bug,提升網站性能和用戶體驗。
代碼編寫與規范:他們負責編寫高質量的PHP代碼,遵循編碼規范,確保代碼的可讀性、可維護性和可擴展性。
與其他團隊成員協作:PHP工程師通常需要與前端工程師、UI設計師、產品經理等團隊成員緊密合作,共同完成項目的開發和上線。
發展前景: 由於PHP語言具有維護成本低、開發速度快以及資源豐富等優勢,因此PHP工程師在Web開發領域有著廣泛的需求,特別是在中小企業中。 對於初學者來說,PHP語法相對簡單易上手,是一個不錯的入門選擇。