環境部署php
一開始這個世界是開發的,而後纔是運維的。java
開發實現產品邏輯,將產品開發完成後,而後提交運維進行部署。此時容許就須要準備好部署環境,如部署在Linux服務器上,安裝相應的軟件,如Apache、Nginx、tomcat、JDK、PHP、MySQL等等。你不能只裝了軟件吧,還須要看看具體是哪一個版本,java 7 和java 8 的差異仍是有點的,php5和php7也有些語法不兼容。把軟件都安裝好了,就能夠上線了?仍是不行。還須要測試吧,那就還須要部署一套測試環境。有些時候,開發環境也是須要運維來部署的。python
排錯和調優mysql
事情歷來都沒有一路順風的。ios
上線沒多久,服務就502了,還不被老闆罵死。儘管你有一肚子的委屈,我只是個運維,代碼不是我寫的,爲何要我來背這鍋?!委屈歸委屈,服務訪問不了了,就是運維的事。儘快定位問題,解決問題纔是王道。怎麼來定位問題呢?最簡單直接的辦法就是看日誌,看系統日誌,看軟件相關的日誌,結合故障現象和經驗,快速的進行定位和恢復。而後就是總結經驗,吸收教訓,寫事故報告。OK,如今你知道,須要對系統環境須要進行必定的調優操做,再也不作背鍋俠。git
相關技術: github
topsql
vmstatdocker
iftopshell
awk
sed
sar
iostat
strace
...
備份
作最好的計劃,作最壞的打算。
前不久的gitlab刪庫事件的教訓猶在眼前,丟失了幾小時的數據,雖然大部分的備份策略都失效了,但仍是挽救了幾小時前的一個備份,纔沒有形成更大的數據丟失和公司損失。咱們須要對設備進行備份冗餘,須要對數據庫進行備份及離線備份,須要對網站靜態進行備份冗餘,須要對機房進行備用,能作到雙活,那是更好的啦。
相關技術:
rsync
crontab
LVM邏輯卷
mysqldump
extrabackup
徹底備份
差別備份
增量備份
離線異地備份
...
高可用和集羣
沒有永垂不朽,咱們不能保證硬件24小時在線,但須要保障服務24小時在線。
出現故障後,若是作好高可用和冗餘,故障自動切換,移除故障節點,那樣也就保障了服務的實時在線。在老闆和用戶不知情的狀況下,悄麼的把故障處理好的,KPI算是保住了,獎金也許就會有的吧。
相關技術:
F5
Nginx
LVS
HA-proxy
MHA
Zookeeper
各類其餘分佈式集羣方案
...
監控告警
運維工程師的第一次解放運動。
時刻擔憂網站掛掉,一年365天、每週7天、天天24小時,時刻保持精神高度緊張,就算你是神仙都會撐不住的。咱們須要一個機器來監督其餘的機器工做,咱們須要解放咱們本身。當有故障發生的時候,經過短信、微信、釘釘、郵件等等通知對應的運維工程師來處理,甚至是自動切換或摘除故障節點,而後咱們離線對故障節點進行問題排查。
相關技術:
Zabbix
Nagios
Cacti
Prometheus
open-falcon
Ganglia
sar
...
安全和審計
狂奔在互聯網的康莊大道上,不過有些人是在裸奔。
不安全的網絡環境和服務器配置,無異於在網絡世界裸奔,任何人均可以窺探你的隱私。你的應用是否作了SQL防注入?你的防火牆是否開啓?是否還在用root+密碼的方式登陸服務器?網站開啓了https麼?是否對系統操做進行審計?
相關技術:
iptables
firewalld
waf
auditd
各服務的正確配置
...
自動化和DevOps
運維工程師的第二次解放運動。
偷懶是社會進步的第一動力。聰明的咱們怎麼會讓本身一直在重複枯燥的事情上浪費時間,裝系統、部署環境、發版本、批量操做,把這一切交給程序去實現吧,咱們須要的是享受生活。
相關技術:
shell
python
go
git/github
rundeck
ansible
saltstack
puppet
chef
cobbler
fabric
...
虛擬化和雲服務
正在發生的一場運維革命。
這場革命的發起人是買書的亞馬遜,這傢伙但願賣一切能夠賣的東西,包括本身閒置的服務器資源。如今國內的阿里雲和騰訊雲也發展得如日中天,他們幾乎提供了運維所須要的一切,甚至可讓一個公司再也不須要運維的崗位。你須要服務器,只須要幾秒鐘,就能夠建立一臺。你須要數據庫集羣,只須要鼠標點擊幾下,就能夠開通。
相關技術:
KVM
OpenStack
CloudStack
docker
Xen
CoreOS
Hyper-V
VMware
...