軟件是新一代信息技術的靈魂,是數字經濟發展的基礎,是制造強國、網絡強國、數字中國建設的關鍵支撐。發展軟件和信息技術服務業,對于加快建設現代產業體系具有重要意義。而作為軟件基礎的軟件開發工具則關系著軟件開發的需求、流程、效率、質量以及其發揮的作用,更是重中之重。
基礎軟件薄弱:軟件產業加速發展,軟件開發工具隱憂漸顯
不可否認,在國家相關政策及企業創新的驅動下,我們在軟件規模上取得了快速的發展。據工信部數據顯示,從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之后,近日,CodeArtsPerfTest全新上線,且已廣泛應用于金融、車企、互聯網、政企等領域,幫助企業預估性能容量基線,合理利用資源,提升服務穩定性,為企業發展夯實基礎。
寫在最后:綜上,我們知道,軟件開發工具其實是一個非常復雜和龐大的系統,它涉及到多個領域和技術,需要各種工具之間的協同和集成,才能最大限度地發揮其效益。而從CodeArtsReq到CodeArts APM,再到最新上線的CodeArts PerfTest,我們看到,CodeArts已經能夠提供完整的應用開發、測試、部署、管理、運維等全生命周期服務,涵蓋了應用開發、DevOps、微服務架構、分布式部署、持續集成與交付、智能運維等多個領域,且在不斷進化,在有助于擴大中國軟件開發工具生態圈的同時,還會不斷提高中國軟件產業的技術水平和競爭力,促進中國軟件產業的轉型升級,推動數字經濟的發展。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.