網際網路的蓬勃發展,讓無數的程式員身價水漲船高,都變成了「香饽饽」,更有了不少「創業」,「當上 cto,迎娶白富美的傳說」。都說不想當元帥的士兵不是好士兵,我覺得這件事見仁見智,但提升自己的價值,讓自己變得更優秀更有競争力,一定是一線城市的 大部分 it 人内心的追求。
誠然,并不是所有程式員都會變成 cto,程式員——>cto 的路徑像是一個漏鬥,極少數人沉澱下來,在業界掀起一陣陣飓風。這些 cto 比起普通的程式員,強在哪?豐富的技術知識隻是基礎,更重要的是戰略眼光,管理把控能力。那麼 cto 所思所想,和普通程式員究竟有什麼不同?
普通的程式員往往隻負責子產品的開發,代碼的優化,和新技術的鑽研,哦對我說的是普通程式員,而不是隻會 fork 的小白程式員;而走向管理領域的進階程式員也許已經開始負責團隊,背負團隊進度和效率。而 cto,往往不僅要考慮優化團隊的開發工具、流程,肩負起把控整體技術方向的重任,要具有前瞻性,同時還要對企業績效負責。尤其是技術驅動型公司,你問這 樣的公司 cto 好招麼,答案通常是「很難招」。技術選型其實是創業公司最糾結的問題,很多團隊往往一上來基于已有的程式員的個人習慣和愛好,選擇了一個技術方案,然後到 某一天一看,我靠,全是坑(當然,也可能與執行者的能力有關)。
圖為通常來說程式員的發展路線:

影響企業績效的因素在方方面面,核心因素卻往往集中在産品上。不誇張地說,應用程式的性能對于企業績效有着非常巨大的影響。網際網路産品遍地開 花,sdk 層出不窮,使用者對于一種新産品的嘗試時間與網際網路産品更新的速度成反比。使用者體驗這個已經被講爛的概念依然還是提升産品價值的關鍵按鈕,無論是 2c 還是 2b。
一旦使用者未在你所負責的産品中獲得最佳體驗,或者直接解決痛點,他們會毫不猶豫的選擇其他平台。
這個問題普通程式員通常解決不了,而一名優秀的 cto 就需要下點功夫了。如何成為一名優秀的 cto,這是一個問題,而一個問題往往是另一個問題的解決方案。為什麼一個團隊需要優秀的 cto?是因為需要有人來帶領技術團隊優化應用性能——解決使用者體驗的難題,提升開發、運維,把控技術團隊的戰略方向。那麼,優化應用性能,獲得好的用 戶體驗,提升開發、運維效率,又該怎麼做呢?
為了確定應用程式能夠達到甚至超越使用者的高期望,需要不斷優化底層 it 基礎設施的性能。然而,随着基礎設施變得越來越動态化,混合化和複雜化,一波波新的挑戰随之而生,讓不少 cto 多了幾根白頭發。
但是一個問題的産生,往往意味着相應的解決方法正在路上。為了優化應用程式的性能,優秀的 cto 需要足夠主動和靈活。
主動優化包括實體和虛拟伺服器,網絡,儲存設備,資料庫,終端使用者服務,雲,和大資料環境在内的所有基礎設施。需要将 it 團隊帶領成為不僅能夠迅速識别和解決問題,同時具有強大的反脆弱性,在問題對使用者體驗産生不利影響之前,先發制人的組織。以下五大關鍵措施或許可以幫助我 們實作一點。
捕捉和報告性能名額
鑒于良好性能的重要性,對于 it 團隊來說隻在基礎設施元件出現問題時産生告警是不足夠的。cto 需要讓團隊能夠提前發現潛在的性能問題,并主動解決。例如,通過免費或付費的第三方工具及一些開源工具,配置告警,在問題出現之前解決。不同的團隊,往往 有最為适合自己的基礎設施監控手段,優秀的 cto 需要能夠綜合衡量團隊大小,開發、運維水準,與人力和資金成本,選擇最符合公司當下情況的監控方式。對于變動型較大或者高速發展的公司,盲目增加人力和花 費時間去進行自主開發系統監控解決方案往往造成時間的浪費,得不償失。
統一視圖和工具來增加可視性,并加快問題解決
由于開源工具與第三方解決方案層出不窮,不少 it 團隊也勇于嘗試新工具、新方法。雖然有很多新的工具,解決不同方面的問題,但當問題出現時,團隊成員仍然花費許多時間開會讨論,不斷地開會浪費了許多時 間。而與此同時,使用者卻經曆着槽糕的體驗。為什麼明明有許多工具卻依然采取本辦法溝通呢?原因有兩個,一個是很多 it 團隊内部在使用不同的協作、監控等工具,另一個是其實團隊内部并沒有養成利用監控平台或者協作工具的習慣。這種時候 cto 就需要發揮作用,采用一個統一且功能強大的視圖和架構來監測關鍵的 it 服務,無論是虛拟機,實體主機,雲主機,或者其他元件,同時采取深刻了解 devops,掌握提升協作、溝通效率,優化開發流程,節省運維成本,提前發現問題的方法。
跟蹤使用者體驗
it 團隊可能擁有大量的性能名額,但是如果不知道使用者的真實體驗,就還是無法真正了解性能表現。什麼是真實的體驗?就是使用者在實際操作中,是如何使用我們的産 品的,在某個界面停留多久,對哪個環節不滿意,諸如此類。it 團隊需要分析端到端的基礎設施的響應時間,并借助虛拟交易功能,持續跟蹤交易響應時間,即使在使用者不使用應用程式的情況下。
采用嚴格的 sla 管理
一旦企業的全面監測到位, it 團隊針對服務水準協定(slas)跟蹤性能和體驗是至關重要的。it 團隊需要能夠跟蹤 sla 合規性,當潛在問題出現時,立即識别和解決。通過跟蹤 slas,it 企業可以評估他們在管理使用者體驗和基礎設施性能上的有效性。 這一評估對于準确計量團隊績效,設定目标和跟蹤進展也是至關重要的。
将 it 和非 it 資料相關聯,進行高效的容量規劃
滿足使用者不斷提高的期望,并不僅僅是跟蹤 it 資料。通過關聯 it 和業務資料,團隊可以主動識别瓶頸,提高終端使用者體驗。比如,将伺服器 cpu 使用率名額和簡單的曆史資料相關聯;比如,将使用者登入或交易的數量與 it 資料一起進行展示,可以為适應未來發展的容量規劃,提供有意義的見解。下圖為某團隊将 php 請求、響應時間等資料和系統性能資料一起導入 cloud insight 儀表盤進行展示的例子。
插播一個好玩的,下圖為某團隊成員别出心裁将鍵盤使用記錄導入儀表盤進行展示,也許鍵盤記錄隻是一種出于好玩的别出心裁,但同理,也可以将營運資料、業務資料、系統性能資料一起導入儀表盤進行展示,這對一個快速增長的 it 團隊來說,就很有價值了。
總結
資料驅動網際網路高速發展的時代,技術團隊 leader 除了技術過硬,眼光獨到,還要将緊跟 devops 的步伐,放眼國内外,快速、靈活、盡可能多的優化團隊開發手段和流程,減少開發、運維、營運之間的溝通壁壘,将資料化融入到技術推進的方方面面。而當你在 這些方面有了核心競争力,就不再隻是一名普通的程式員了。
====================================分割線================================