阿里巴巴楊強:如何做好移動質量保障工作
原創2016年4月14-15日,由51CTO傳媒主辦的WOT2016互聯網運維與開發者大會在北京珠三角JW萬豪酒店召開。秉承專注技術、服務技術 人員的理念,自2012年以來,WOT品牌大會已經成功舉辦了八屆,積累了大量的技術專家資源,獲得了廣大IT從業者和技術愛好者的一致認可,成為了業界重要的技術分享交流平臺以及人脈拓展平臺。
在會上,51TO記者采訪了阿里巴巴高級技術專家楊強。楊強2012年加入阿里巴巴,負責無線產品的研發支撐與無線線上監控運維相關平臺相關工作。支持了手淘、天貓、聚劃算、釘釘等阿里巴巴內部APP的研發支撐和線上監控運維相關工作。工作初期是一些質量保證平臺工具的開發,進而構建了一套線下研發支撐以及發布流程的體系,再往后擴展,可以對端上進行一些運維以及專項優化的工作等等,從而形成一個閉環。
移動質量保障和傳統PC運維的差異性
隨著移動互聯網的大發展,在手機等小屏設備上的應用體驗和PC互聯網彼此之間的差異正變得越來越大,那么從事移動質量保障工作和傳統PC運維之間有什么差異呢?楊強告訴記者其實從代碼角度來看差距并不大,最重要的差距就是在環境上,用戶的環境在移動端上是非常多樣化的,比如它的機型、它的網絡環境,以及機器內部裝的各種軟件的情況,環境的復雜度提高了,對我們開發代碼的質量可能有一定的要求,來保證APP的穩定性。
研發到交付的流程
提到流程為題,楊強表示阿里巴巴APP研發到交互和傳統服務端是非常相似的,但是唯一一點,像手機淘寶這一塊,它可能是非常大的一個APP,傳統小的APP有一套單獨的功能,一個APP開發完了就發布出去。手機淘寶可能是五六十個APP在同時開發,最終匯總到一個APK上,或者一個LSIPA上進行發布出去,所有業務團隊線最終會聚集到一個點上進行發布,這可能是***的區別,而且它的回滾策略以及故障修復的策略也有很大的不同。
難點與如何克服
當然在具體工作上,一些困難也是必不可免的。楊強舉例說:比如有一次我做了一個月的項目,進行大量的測試工作,到***發出去,發現在某一款熱門機型上,它的某一個重要功能不能用,這個時候我就要重新組織很多很多的人力進行恢復,然后打出來新的APK包,進行回歸測試等等要走非常長的流程,然后再進行發布。
當然,吃一塹長一智。為了應對這些流程上的問題,后期在架構上進行了優化。之前只能由APK發布出去解決問題,現在有多種方案,有推patch、hotpatch來部署等等這種策略,極大的輕量化了修復bug的成本。最近又推WEEX,業務都寫在JS上,APK端的功能也像服務端一樣在服務端發布,這樣就避開了移動端的問題。
注重用戶體驗
阿里巴巴是一家重視用戶體驗的公司,從app的開發和維護來說,會有一套非常嚴格的測試流程,會有非常多的測試工具。比如說有代碼掃描工具、自動化平臺,有試配的平臺,還有一些內存的專項、性能的專項,各種方面的專項的保證工作。接下來我們會進行一種內部的體驗測試,內部用戶會反饋給我們問題,然后我們會針對阿里巴巴3萬多名員工進行內部的灰度測試,在3萬量級上看這個APK到底是怎么樣的情況,然后分階段進行不同批次的灰度,最終進行發布。
當然技術和流程上的優化及提高,也進一步提升了用戶體驗。楊強舉例道,比如我們之前可能就是說五六十個APP打到一個包里面,隨著我們配置文件hotpotch,或者其他的業務迭代的需求,現有框架不能滿足,這個時候就要動態部署技術發揮作用了。我們把單個的APP進行生成一個差量文件推動下去,在本地進行默置,然后再啟動起來,就達到了非常高效的netive代碼部署的策略。
采訪***
記者問及傳統IT運維應該如何做才能跟上新型業務的步伐的問題。楊強認為,在現在業務發展非常快速的情況下,各個部門應該是緊密合作的,所以運維、測試和開發之間的關系,應該是沒有隔閡的。在他看來,開發和測試是不是應該更多的關注運維相關的工作,可能是需要解決的一個問題。
“而在阿里內部,平臺也好,專項優化也好,都是和研發團隊緊密結合起來的,所以發現問題、解決問題,以及提出來新的解決方案的效率是非常高效的。”楊強說道。