天天看點

從Req到PerfTest:中國軟體開發工具生态持續進化進行時

作者:孫永傑的ICT評論

軟體是新一代資訊技術的靈魂,是數字經濟發展的基礎,是制造強國、網絡強國、數字中國建設的關鍵支撐。發展軟體和資訊技術服務業,對于加快建設現代産業體系具有重要意義。而作為軟體基礎的軟體開發工具則關系着軟體開發的需求、流程、效率、品質以及其發揮的作用,更是重中之重。

從Req到PerfTest:中國軟體開發工具生态持續進化進行時

基礎軟體薄弱:軟體産業加速發展,軟體開發工具隐憂漸顯

不可否認,在國家相關政策及企業創新的驅動下,我們在軟體規模上取得了快速的發展。據工信部資料顯示,從2000年至2020年,中國軟體市場整體規模實作了135倍增長,美國為3.2倍;2020年,中國軟體産業規模占全球軟體産業的24%,占GDP比重約7.9%。

與之相比,據相關統計,在目前作為基礎軟體的全球付費軟體開發工具市場中,北美地區占有市場佔有率超過50%,歐洲地區超過20%。全球前十大軟體開發工具企業中,有Microsoft、Perforce、Adobe、Oracle等六家公司來自美國。

基于此,國内企業都習慣直接使用國外的領先工具。雖然近年來國内也迎來了軟體開發工具的自主化浪潮,但大量工具還都是以開源軟體封裝為主,能夠适配的企業場景有限,無法滿足大型企業業務快速發展的商業訴求,更重要的是,它同樣存在被“卡脖子”的風險。

究其原因,軟體開發工具被認為是一種根技術的基礎工具,通常被用來輔助開發者編寫、測試和維護軟體代碼,提高軟體開發的效率和品質。是以,軟體開發工具可以被看作是支撐軟體開發的基礎設施,是軟體開發的基礎。在現代軟體開發中,開發者使用各種軟體開發工具來完成任務,例如編碼工具、內建開發環境(IDE)、版本控制工具、自動化測試工具、建構工具等。這些工具的使用,有助于開發者快速高效地開發軟體,并提高軟體的品質和穩定性。

那麼問題來了,如何讓軟體開發工具更好地比對業務發展的速度,發揮最大作用為企業創造價值,同時又避免“卡脖子”的風險?

答案是搞我們的自主軟體開發工具。而誰能成為該領域第一個“吃螃蟹”的人呢?

從0到1:CodeArts開啟自主軟體開發工具生态之路

衆所周知,對于軟體開發工具,需求管理是第一個環節,也是貫穿整個軟體傳遞生命周期的重要内容,不僅對于軟體開發重要程度高,而且難度最大。比如,面對數字化時代複雜多樣、動态化的業務和場景,如何收集連客戶也描述不清楚的需求,如何應對随業務而變化的需求變化,都是需求管理的難點和痛點。

對此,華為雲于去年12月7日釋出了一款自主研發的軟體研發管理與團隊協作工具CodeArtsReq,其内置華為IPD需求管理模闆,支援IPD研發、DevOps靈活傳遞、精益研發多種研發模式,支援特性管理、需求管理、缺陷管理、計劃管理、基線與變更及任務跟蹤,具有強大的跨項目協同、多項目組合管理能力。

據悉,CodeArts Req 已全面覆寫華為公司雲、管、端、車、芯等相關産品的研發,高效支援華為13萬研發人員的需求協作,月API調用量超過15億次,累計管理5000多萬需求。然而,需求管理隻是軟體開發的第一步。一款合适的需求管理工具能夠從源頭緩解企業的部分開發壓力,豐富而全面的軟體開發工具鍊,才能完成軟體開發工具生态體系的閉環。

更讓業内驚喜的是,以上述CodeArtsReq為開端,進入到今年的頭兩個月,華為又有至少8項軟體工具公開釋出或上線。其中包含自主研發的一站式測試管理平台CodeArts TestPlan、代碼檢查服務工具CodeArts Check、分布式編譯建構系統CodeArts Build、CodeArts IDE Online服務、代碼托管服務CodeArts Repo、CodeArts Artifact制品倉庫服務、流水線服務CodeArts Pipeline、部署服務CodeArts Deploy等。

由上述事實我們看到,CodeArts體系的相關産品涵蓋了研發産線所涉及的需求管理、代碼托管、代碼檢查、編譯建構、部署、測試、釋出等多個環節,從軟體開發工具生态的角度,産品體系已經基本趨于完整。

所謂知其然需知是以然,為什麼是華為的CodeArts?它的産品體系從何而來?又到哪裡去?

專注價值:CodeArts從挑戰中來,到實踐中去

說到CodeArts,其實它的問世并非一蹴而就,而是從企業自身發展中面臨的挑戰而來。

早在2000年左右,華為就因自身業務快速發展,加快了軟體開發工具的自研之路。從2019 年開始,更是跑步前進,先後實作全面上雲、多地域布局。而在攻堅一系列軟體開發工具的過程中,華為一度面臨着三大挑戰。

首先是生态相容。比如有些編譯建構技術,距今已有十多年了,被大量的軟體建構标準沿用,盡管它們還有很大的改進空間,但牽一發而動全身,仍不敢輕易改動。隻能想方設法去做相容,然後在相容的基礎上創新,這嚴重限制了軟體架構的思路。

其次是底層技術突破。以代碼倉工具為例,盡管業内已經存在開源的免費的代碼倉,但如果要在可靠性、安全性、穩定性、并發性等方面進行提升,向開源社群送出的代碼未必會被采納,是以隻能購買具備該功能的商業版本。是以,這就要求企業必須要紮根底層技術,并持續積累,掌握底層關鍵技術,才能更好地推動軟體向前演進。

最後是工程能力。不同類型、不同規模的企業,在整個軟體開發價值生産過程中,面臨的問題各不相同。如何通過工程能力解決它們的問題?如何再進一步将這些工程能力沉澱到工具中?如何形成一整套的方法論在更多場景實作落地?這是很多軟體開發工具廠商面臨的一大難點。

隻有把解決的手段、能力沉澱到軟體開發工具裡,将工具與工程能力、場景相結合,才能真正解決開發者和企業的問題。這就要求每個工具鍊的開發者,不僅僅要成為工具的專家,還要成為工程能力的專家。

基于上述對于挑戰的認知,加之華為在軟體領域的積澱,其最終成功應對了這三大挑戰,并最終在2022年,華為雲将華為公司在内部持續構築并驗證成熟的軟體工具鍊能力外溢,形成CodeArts軟體開發生産線,實作了端到端的工具自主研發,并形成一站式的作業平台。

需要強調的是,與目前市場上的軟體開發工具相比,CodeArts有着自己獨特的競争優勢,究其原因,主要是其融入了華為30多年大規模研發實踐的經驗,并且所有工具在對外釋出之前,都已經在華為内部經過驗證。

以測試管理服務CodeArtsTestPlan為例,一直以來,華為持續投入品質建設,把産品開發、測試等全生命周期的流程和标準固化至工具平台中,是以CodeArtsTestPlan自然也沉澱了華為多年高品質測試工程方法與實踐,并發展出了啟發式測試政策與設計、億級測試資産管理、内置 IPD 測試流程與規範、全方位測試品質評估、測試雙向追溯這五大特性。CodeArtsTestPlan也得以實作測試全流程标準化、測試資産複用及基線化、測試端到端過程動态實時監控,保障測試過程可信,持續助力客戶産品高品質傳遞。

截至2022年年底,CodeArtsTestPlan已經高效支撐華為超過4萬測試人員的測試作業,測試用例月執行超過2億次,月API調用量超過 12 億次,累計管理超過10億測試用例,覆寫華為終端、網絡、雲計算、晶片、汽車等大規模複雜業務場景。

從挑戰中來,到實踐中去,并最終沉澱為産品能力的外溢,華為顯然已經摸索出了一條建構和進化中國軟體開發工具生态的蹊徑。

APM登場:CodeArts持續進化,加碼軟體開發工具生态

目前,企業數字化轉型和業務網際網路化逐漸加深,企業對應用的高可用、可靠性提出了更高的要求。随着企業快速引入雲原生、微服務、分布式等技術,業務規模和運維管理對象數量成倍增加,服務之間的依賴、調用關系愈發複雜。一方面企業享受着開發效率指數提升的紅利,同時也在承受着故障定位成本居高不下的痛楚。

由于傳統的監控隻覆寫了基礎設施、中間件、業務名額相關的觀測能力,缺少深入代碼級的性能監控和對使用者的真實體驗感覺,給開發者、運維性能分析、故障定位和恢複帶來了極大的困難和挑戰。

權威資料顯示:每100毫秒延遲會使銷售額下降1%,每一秒鐘伺服器延遲會導緻收入下降2.8%。例如,某著名搜尋服務結果頁面從100毫秒放緩到400毫秒,會使收入流失4500萬到1.35億美元。由此可見,全面掌控、感覺應用性能和使用者體驗已經變得愈發重要,甚至關系到商業公司生死存亡和社會影響。

具體到軟體,衆所周知,當今的軟體系統通常是大規模、分布式的,由許多不同的元件組成,是以管理和監測這些系統的性能是非常重要的。在這種情況下,APM成為了一種非常重要的軟體開發工具。其功能主要展現在以下幾個方面。

首先檢測和報告應用程式中的性能問題,例如請求延遲、錯誤頻率等等。開發者可以利用這些報告,确定性能問題的瓶頸所在,并在此基礎上優化應用程式的性能;其次具有代碼跟蹤和調試功能,開發者可以通過這些功能來分析代碼執行過程中的問題,并及時進行修複,進而大大縮短故障排除的時間,提高應用程式的可靠性和可維護性;第三提供使用者行為分析,而開發者可以通過分析使用者行為來了解使用者使用應用程式的情況,并針對性地優化應用程式的功能和性能,進而提高使用者體驗;最後,具備自動化性能監測和報告功能,開發者可以利用這些報告,快速定位和修複性能問題,而不需要手動檢測和排除問題,進而提高開發者的生産力。

以近日釋出的華為雲全鍊路應用性能管理服務CodeArts APM為例,其為華為内部百萬微服務提供應用性能監控,幫助研發人員日常性能診斷、故障定位和排查,通過使用CodeArts APM實作現網故障1分鐘感覺、5分鐘定界、10分鐘恢複能力的構築,有力的支撐了華為雲、終端、車、能源等各類型産品的應用性能管理和日常運維保障。

與其他CodeArts産品一樣,華為雲将内部多年積累的應用性能管理能力沉澱到CodeArts APM,使得該工具具備全鍊路應用性能監控,提供從使用者到代碼層面的監控;前端性能監控,全面感覺終端使用者體驗;内置資源管理服務CMDB,解決海量資源對象與應用的管理難題;自動發現應用通路拓撲關系,分鐘級快速定位故障以及分布式調用追蹤,深入代碼級的性能診斷和優化5大特性。

而正是得益于上述特性,華為雲CodeArts APM如今已廣泛應用于電力、物流、社保、汽車等領域,幫助企業提升使用者體驗,發現應用性能瓶頸,提升問題定位及處理的效率。

如深圳某知名物流企業通過使用華為雲CodeArts APM,故障定位的平均耗時從120分鐘降至5分鐘,平均故障恢複時長從60分鐘下降至10分鐘,極大地提升了故障處理的效率,成為服務運維保障的利器。

需要說明的,軟體開發工具生态是一個持續進化、不斷擴大的過程。具體到華為CodeArts,随着市場和使用者的需求,其自身的産品也在不斷推出中。

例如在上述APM之後,近日,CodeArts PerfTest全新上線,且已廣泛應用于金融、車企、網際網路、政企等領域,幫助企業預估性能容量基線,合理利用資源,提升服務穩定性,為企業發展夯實基礎。

寫在最後:綜上,我們知道,軟體開發工具其實是一個非常複雜和龐大的系統,它涉及到多個領域和技術,需要各種工具之間的協同和內建,才能最大限度地發揮其效益。而從CodeArtsReq到CodeArts APM,再到最新上線的CodeArts PerfTest,我們看到,CodeArts已經能夠提供完整的應用開發、測試、部署、管理、運維等全生命周期服務,涵蓋了應用開發、DevOps、微服務架構、分布式部署、持續內建與傳遞、智能運維等多個領域,且在不斷進化,在有助于擴大中國軟體開發工具生态圈的同時,還會不斷提高中國軟體産業的技術水準和競争力,促進中國軟體産業的轉型更新,推動數字經濟的發展。