來源 | 阿里巴巴雲原生公眾號
本文精選了一些阿里經濟體內部最受開發者歡迎的開發者工具,篩選出一些帶有普適性同樣適合外部開發者的,希望能助力開發者們提高開發效率。
1. Java 工程腳手架 Java Initializr
官網:https://start.aliyun.com/bootstrap.html
簡介:2020 年由阿里巴巴中間件團隊發布的定制版 Java工程腳手架,快速搭建工程應用。
工具使用場景:
- 難道每次創建工程,都需要拿現有項目做裁剪嗎?
- 引入新組件需要四處搜索,組件的坐標真的記不住!
- 網上的案例可以運行,為什么我照着做了就不行?
- 組件使用還需要在我自己的電腦上搭建完整工程和運行環境,真的很麻煩!
支持 Spring 官方腳手架的全部功能,且增加了豐富的典型配置和使用案例。多種標准應用架構供選擇,讓你生成完工程就可以直接寫代碼。基於瀏覽器的運行環境,進一步降低功能體驗和試用的復雜度。
2. Java 線上診斷工具 Arthas
官網:https://arthas.aliyun.com/doc/
簡介:Arthas 是阿里巴巴 2018 年 9 月開源的一款 Java 線上診斷工具。
工具的使用場景:
- 這個類從哪個 jar 包加載的?為什么會報各種類相關的 Exception?
- 我改的代碼為什么沒有執行到?難道是我沒 commit?分支搞錯了?
- 遇到問題無法在線上 debug,難道只能通過加日志再重新發布嗎?
- 線上遇到某個用戶的數據處理有問題,但線上同樣無法 debug,線下無法重現!
- 是否有一個全局視角來查看系統的運行狀況?
- 有什么辦法可以監控到 JVM 的實時運行狀態?
Arthas 支持 JDK 6+,支持 Linux/Mac/Windows,采用命令行交互模式,同時提供豐富的 Tab 自動補全功能,進一步方便進行問題的定位和診斷。
3. Java 工具集 Dragonwell
官網:https://www.aliyun.com/product/dragonwell
簡介:Alibaba Dragonwell 是一款免費的, 生產就緒型 Open JDK 發行版,提供長期支持,包括性能增強和安全修復。阿里巴巴擁有最豐富的 Java 應用場景,覆蓋電商,金融,物流等眾多領域,世界上最大的 Java 用戶之一。Alibaba Dragonwell 作為 Java 應用的基石,支撐了阿里經濟體內所有的 Java 業務。Alibaba Dragonwell 完全兼容 Java SE 標准,您可以在任何常用操作系統(包括 Linux、Windows 和 macOS)上開發 Java 應用程序, 運行時生產環境選擇 Alibaba Dragonwell。
4. Java 代碼規約掃描插件
官網:https://github.com/alibaba/p3c
簡介:該插件用於檢測 Java 代碼中存在的不規范的位置,並給予提示。規約插件是采用 Kotlin 語言開發。
5. 應用實時監控工具 ARMS
官網:https://www.aliyun.com/product/arms
簡介:ARMS 是一款 APM 類的監控工具,提供前端、應用、自定義監控 3 類監控選項,可快速構建實時的應用性能和業務監控能力。
工具的使用場景:
- 晚上 10 點收到 37 條報警信息,你卻無從下手?
- 當我們發現問題的時候,客戶/業務方已經發起投訴?
- 每個月花幾十萬買服務器,卻無法保障用戶體驗?
6. 性能測試工具 PTS
官網:https://www.aliyun.com/product/pts
簡介:PTS 可以模擬大量用戶訪問業務的場景,任務隨時發起,免去搭建和維護成本,支持 JMeter 腳本轉化為 PTS 壓測,同樣支持原生 JMeter 引擎進行壓測。
使用場景:
- 大促活動准備前,想模擬真實多用戶高並發訪問場景?
- 產品版本迭代,想觀察流量洪峰時產品表現?
- 產品交付
7. MSE
官網:https://www.aliyun.com/product/aliware/mse
簡介:依賴 ZK/Nacos/Eureka 等開源注冊和配置方案進行自建會中引起依賴復雜、建設和運維成本高的問題,同時,也會遇到 Hbase、Spark 或 Kafka 等大數據的環境下的分布式系統協調難題,MSE 提供了注冊和配置中心的托管功能,提供高可用、免運維的 ZooKeeper、Nacos 和 Eureka 等集群,完全兼容開源產品標准接口,同時提供了離群實例摘除、無損下線、服務鑒權、應用列表和標簽路由的功能。
使用場景:
- 微服務注冊發現:在快速發展的雲計算時代,微服務應用越來越廣泛,MSE 為采用 Dubbo 和 Spring Cloud 框架開發的微服務提供了高可用、免運維和穩定的服務注冊中心。
- 分布式配置管理:托管的 Nacos 在做微服務注冊的同時,並能提供配置管理的能力。
- 分布式調度(支持非微服務場景):如果企業使用 HBase、Spark 或 Kafka 等開源軟件,則使用 MSE 提供的 ZooKeeper、Eureka 和 Nacos 可以實現分布式系統的協調,助力企業降低成本和提高效率。
8. 架構可視化工具 AHAS
官網:https://www.aliyun.com/product/ahas
簡介:AHAS 為 K8s 等容器環境提供了架構可視化的功能,同時,具有故障注入式高可用能力評測和一鍵流控降級等功能,可以快速低成本的提升應用可用性。
使用場景:
- 服務化改造過程中,想精確的了解資源實例的構成和交互情況,實現架構的可視化?
- 想引入真實的故障場景和演練模型?
- 低門檻獲得流控、降級功能?
9. 容器鏡像服務 ACR
官網:https://www.aliyun.com/product/acr
簡介:容器鏡像服務 ACR(Alibaba Cloud Container Registry)默認實例版提供基礎的容器鏡像服務,包括安全的應用鏡像托管能力、精確的鏡像安全掃描功能、穩定的國內外鏡像構建服務以及便捷的鏡像授權功能,從而方便用戶進行鏡像全生命周期管理。
容器鏡像服務簡化了 Registry 的搭建運維工作,支持多地域的鏡像托管,並聯合容器服務等雲產品,打造雲上使用 Docker 的一體化體驗。
10. Serverless 開發者平台 Serverless Devs
官網:https://www.serverless-devs.com/
簡介:Serverless Devs 是一個開源開放的 Serverless 開發者平台,致力於為開發者提供強大的工具鏈體系。通過該平台,開發者可以一鍵體驗多雲 Serverless 產品,極速部署 Serverless 項目。Serverless Devs 包含 Serverless Devs Tool (Serverless 開發者工具)和 Serverless Devs App Store(Serverless 應用中心):
- Serverless Devs Tool 讓開發者可以更簡單、更快速的進行應用創建、項目開發、測試、發布部署等,實現項目的全生命周期管理。
- Serverless Devs App Store 是一個集 Serverless 應用在線搜索,一鍵部署以及資源可視化編輯於一體的應用中心產品。應用中心擁有海量的生產級項目模板,案例模板,開發者可以自由選擇,並將項目一鍵部署到指定的雲平台上。
11. Android 平台上的秒級編譯方案 Freeline
官網:https://github.com/alibaba/freeline
簡介:Freeline 可以充分利用緩存文件,在幾秒鍾內迅速地對代碼的改動進行編譯並部署到設備上,有效地減少了日常開發中的大量重新編譯與安裝的耗時。Freeline 最快捷的使用方法就是直接安裝 Android Studio 插件。
12. 雲效開發者工具 KT
官網:https://github.com/alibaba/kt-connect
簡介:KT 可以簡化在 Kubernetes 下進行聯調測試的復雜度,提高基於 Kubernetes 的研發效率。
13. 數據處理工具 EasyExcel
官網:https://github.com/alibaba/easyexcel
簡介:EasyExcel 是一個用來對 Java 進行解析、生成 Excel 的框架,它重寫了 poi 對 07 版 Excel 的解析,原本一個 3M 的 Excel 用 POI sax 需要 100M 左右內存,EasyExcel 可降低到 KB 級別,並且再大的 excel 也不會出現內存溢出的情況。03 版依賴 POI 的 sax 模式。在上層做了模型轉換的封裝,讓使用者更加簡單方便。
14. iOS 類工具 HandyJSON
官網:https://github.com/alibaba/HandyJSON
簡介:HandyJSON 是一個用於 Swift 語言中的 JSON 序列化/反序列化庫。
與其他流行的 Swift JSON 庫相比,HandyJSON 的特點是,它支持純 Swift 類,使用也簡單。它反序列化時(把 JSON 轉換為 Model)不要求 Model 從 NSObject 繼承(因為它不是基於 KVC 機制),也不要求你為 Model 定義一個 Mapping 函數。只要你定義好 Model 類,聲明它服從 HandyJSON 協議,HandyJSON 就能自行以各個屬性的屬性名為 Key,從 JSON 串中解析值。
15. 數據庫落地 Druid
官網:https://github.com/alibaba/druid
簡介:Druid 是 Java 語言下的數據庫連接池,它能夠提供強大的監控和擴展功能。