天天看點

阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台

阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台

阿裡妹導讀:工欲善其事,必先利其器。從人工到自動化,從重複到創新,資訊技術不斷演進,開發者工具也在發展。開發效率低下往往是忽略了工具的使用,正确地使用開發者工具,可以讓開發效率獲得倍速提升。

阿裡巴巴将自身在業務場景下的技術沉澱,通過開源、雲上實作或工具等形式對外開放,今天阿裡妹就對阿裡巴巴内部沉澱下來的開發者工具和資源做了一輪盤點,希望能幫助開發者們提高開發效率、更優雅地寫代碼。

一、鏡像站

穩定高速種類全

鏡像站對開中國開發者來說可謂必備利器,受國際網絡出口帶寬的影響,大多數開源軟體官網的速度慢,穩定性不足。作為國内最富盛名的鏡像站之一,阿裡巴巴鏡像站利用其在雲服務上的優勢,提供快速、穩定的鏡像分發服務。目前主要包括OPSX,NPM(NodeJS),composer(PHP)和goproxy。

鏡像内容方面,以OPSX為例,目前已覆寫了主流作業系統 CentOS,Ubuntu,Fedora,Gentoo,Debian,FreeBSD和對做 docker 鏡像幫助很大的Alpine。

阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台

程式設計語言覆寫了Python,Ruby,Perl,R。

軟體方面除了 Apache 下的所有知名軟體 Hadoop,Hive,Cassdra,Spark 都有覆寫,還包括 docker,zabbix,ceph,mongodb,mariadb 也都有,基本上主流軟體更新都可以在這個鏡像站搞定。如果你對鏡像有需求,阿裡妹牆裂推薦哦。

二、開源工具

助力開發,全面實用

★ Alibaba Dragonwell

Alibaba Dragonwell 是阿裡巴巴内部 OpenJDK定制版 AJDK 的開源版本, AJDK 為線上電商,金融,物流做了結合業務場景的優化,運作在超大規模的,100,000+ 伺服器的阿裡巴巴資料中心。Alibaba Dragonwell 與 Java SE标準相容,目前提供JDK8和11兩個長期支援(LTS)版。

2019年6月我們釋出了Dragonwell8的正式版,您可以通過簡單的兩步安裝Dragonwell8産品:在阿裡雲開發者社群工具平台-開源工具找到Alibaba Dragonwell的連結,點選進入github位址後選擇下載下傳。

你也可以通過阿裡雲yum源或者Dragonwell8 Docker鏡像來使用,詳情請參考:Dragonwell8Wiki:

https://github.com/alibaba/dragonwell8/wiki

Alibaba Dragonwell8 提供了兩個在阿裡巴巴的生産環境中進行過廣泛驗證的特性:JWarmUp 和 JavaFlight Recorder。

JWarmUp 的原理如下圖所示:

阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台

一個典型的應用場景是當應用需要釋出新版本的時候:

  • 首先 JWarmUp 在 Beta 環境(或者有着和生産環境類似流量的其他場景)的單台機器上短時間執行 Java 應用,并記錄、收集這段時間裡面 JIT 編譯器所做動作的一些中繼資料。
  • 然後,會把這些中繼資料複制到生産環境的每一台包含了新版本代碼的機器/容器裡面。
  • 最後,在生産環境機器中通過 JWarmUp 參數加載 beta 環境生成的中繼資料,來指導生産環境的機器在啟動應用的過程中就完成 JIT 預熱。

這樣當使用者請求進入的時候,應用就會處于性能最高的峰值狀态。

JFR(Java Flight Recorder)是JVM 内置的基于事件的性能分析特性,這是 Oracle JDK7u4 版本開始提供的商業特性,2018 年的時候在 JDK11 上開源了這個特性,但是一直沒有針對 JDK8 版本的支援。

阿裡巴巴和 RedHat、Azul、Amazon 等公司一起合作嘗試把這個特性移植回 JDK8上,不過該 patch 暫時還沒有合并回 OpenJDK8u倉庫,我們在 Alibaba Dragonwell 8 中提供了 Alibaba 移植的 JFR 版本,用于幫助使用者提前擷取這方面的支援。

JFR 的用法很簡單,使用者使用指令行參數或者 jcmd 指令控制 HotSpot 輸出性能資料到檔案中,然後就能使用開源的 jmc 工具在圖形界面中打開、分析生成的資料檔案了。

2019年12月,阿裡巴巴開源了Dragonwell 11項目并釋出了11.0.5.1-preview版本,基于最新的LTS版OpenJDK11,提供了JFR Object Profiling特性并預設支援了ZGC政策,希望可以幫助使用者享受最新的Java技術紅利。

★  Arthas

阿裡巴巴2018年9月開源的Java線上診斷工具,它采用指令行互動模式,提供了豐富的功能,是排查jvm相關問題的利器。具體包括:

  • 提供性能看闆,包括線程、cpu、記憶體等資訊,并且會定時的重新整理。
  • 根據各種條件檢視線程快照。比如找出cpu占用率最高的n個線程等。
  • 輸出jvm的各種資訊,如gc算法、jdk版本、ClassPath等。
  • 檢視/設定sysprop和sysenv。
  • 檢視某個類的靜态屬性,也可以通過ognl文法執行一些語句。
  • 檢視已加載的類的詳細資訊,比如這個類從哪個jar包加載的。也可以檢視類的方法的資訊。
  • dump某個類的位元組碼到指定目錄。
  • 直接反編譯指定的類。
  • 檢視類加載器的一些資訊。
  • 可以讓jvm重新加載某個類。
  • 監控方法的執行,同時可以擷取到執行的入參、出參以及抛出的異常。
  • 追蹤方法執行的調用棧,以及各個方法的調用時間。
  • 線上編譯,熱更新代碼
  • 生成熱點代碼火焰圖

原理圖及支援的指令清單:

阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台
阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台

★ ChaoBlade

ChaosBlade 是阿裡巴巴開源的一款遵循混沌工程原理和混沌實驗模型的實驗注入工具,幫助企業提升分布式系統的容錯能力,并且在企業上雲或往雲原生系統遷移過程中業務連續性保障。ChaosBlade 不僅使用簡單,而且支援豐富的實驗場景,場景包含:

基礎資源:比如 CPU、記憶體、網絡、磁盤、程序等實驗場景。

Java 應用:比如資料庫、緩存、消息、JVM 本身、微服務等,還可以指定任意類方法注入各種複雜的實驗場景。

C++ 應用:比如指定任意方法或某行代碼注入延遲、變量和傳回值篡改等實驗場景。

Docker 容器:比如殺容器、容器内 CPU、記憶體、網絡、磁盤、程序等實驗場景。

雲原生平台:比如 Kubernetes 平台節點上 CPU、記憶體、網絡、磁盤、程序實驗場景,Pod 網絡和 Pod 本身實驗場景如殺 Pod,容器的實驗場景如上述的 Docker 容器實驗場景。

相關生态圖如下:

阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台

★ P3C:

P3C可以幫助Java開發者檢測代碼中村在的不規範的位置并給與提示。規約插件采用Kotlin語言進行開發。

★  Funcraft:

Serverless 應用開發調試部署工具。

三、阿裡雲開放平台

豐富的API和SDK向開發者提供阿裡雲開放能力。

阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台

★  API

  • API文檔:可以找到阿裡雲已經開放API的産品及相應的文檔位址。
  • API Endpoint:查詢各産品OpenAPI的通路Endpoint,可以直接通路該Endpoint或用于配置SDK。
  • API 線上調試:支援快速檢索、可視化調試 API、線上指令行工具、同步動态生成可執行 SDK Example 代碼。
  • API 錯誤中心:在這裡可以搜尋接收到的錯誤碼,并擷取簡單的解決提示。

★  SDK

提供多語言的 SDK 為使用者封裝 API 簽名計算,組織請求結構,建構連接配接池提升請求效率和性能,解析傳回結果等。讓開發者不用複雜代碼即可通路雲伺服器、雲資料庫RDS、雲監控等多個阿裡雲服務。阿裡雲SDK包含:Java SDK、PythonSDK、GO SDK、PHP SDK、.NET SDK、Node.js SDK等。

阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台

四、阿裡雲代碼示例庫

經典代碼一鍵複制

阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台

阿裡雲CodeSample以場景為次元,支援以雲産品和語言為條件選取目标代碼。告别CTRL+C,CTRL+V,點選圖示一鍵複制,好用到沒朋友。

五、雲産品工具

優質且免費的阿裡雲産品工具。

雲産品通用

★ Cloud Toolkit

Cloud Toolkit 是免費的本地 IDE 插件,支援IntelliJ IDEA、Eclipse、PyCharm、Maven、VSCode以及其他版本,幫助開發者更高效地開發、測試、診斷并部署應用。通過插件,可以将本地應用一鍵部署到任意伺服器,甚至雲端(ECS、EDAS、Kubernetes、ACR 和 小程式雲 等);并且還内置了 Arthas 診斷、Dubbo工具、Terminal 終端、檔案上傳、函數計算 和 MySQL 執行器等工具。(産品官網:

https://www.aliyun.com/product/cloudtoolkit

通過該插件,你可以:

  • 一鍵部署本地 IDE 内項目到任意遠端伺服器
  • 一鍵部署本地 IDE 内項目到阿裡雲 EDAS、SAE 和Kubernetes
  • 本地 Docker Image 打包和倉庫推送工具
  • 遠端伺服器實時日志檢視
  • 阿裡雲小程式開發工具
  • 阿裡雲函數計算開發工具
  • 阿裡雲 RDS 内置 SQL 執行器
  • 内置 Terminal 終端
  • 檔案上傳
  • Apache Dubbo 架構項目模闆&代碼生成
  • Java 程式診斷工具
  • RPC 服務端雲聯調

★  Cloud Shell

網頁版指令行工具,允許使用者通過指令行管理阿裡雲資源。

★  CLI

在Alibaba Cloud SDK for GO 之上建構的開源工具。借助此工具,您可以通過調用阿裡雲開放 API 來管理阿裡雲産品。該指令行工具與阿裡雲開放 API 一一對應,靈活性高且易于擴充。您可基于該指令行工具對阿裡雲原生 API 進行封裝,擴充出您想要的功能。

資料庫

★ 資料庫備份DBS

為資料庫提供連續資料保護、低成本的備份服務。它可以為多種環境的資料提供強有力的保護,包括企業資料中心、其他雲廠商、混合雲及公共雲。

阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台

★ 資料傳輸服務DTS

DTS支援關系型資料庫、NoSQL、大資料(OLAP)等資料源間的資料傳輸。它是一種集資料遷移、資料訂閱及資料實時同步于一體的資料傳輸服務。資料傳輸緻力于在公共雲、混合雲場景下,解決遠距離、毫秒級異步資料傳輸難題。它底層的資料流基礎設施為阿裡雙11異地多活基礎架構, 為數千下遊應用提供實時資料流,已線上上穩定運作5年之久。

★ 資料庫和應用遷移 ADAM

ADAM是一款把資料庫和應用遷移到阿裡雲(公共雲或專有雲)的産品,顯著地降低了上雲的技術難度和成本,尤其是Oracle資料庫應用。ADAM全面評估上雲可行性、成本和雲存儲選型,内置實施協助,資料、應用遷移等工具,確定可靠、快速上雲。

阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台

基礎倉庫

開放雲原生應用中心 ——Cloud Native App Hub,一個面向開發者的雲原生應用市場。

阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台

★ 容器鏡像服務(ContainerRegistry)

ACR提供安全的鏡像托管能力,穩定的國内外鏡像建構服務,便捷的鏡像授權功能,友善使用者進行鏡像全生命周期管理。容器鏡像服務簡化了Registry的搭建運維工作,支援多地域的鏡像托管,并聯合容器服務等雲産品,為使用者打造雲上使用Docker的一體化體驗。

阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台

遷移工具

★ 遷雲工具

幫助你完成伺服器遷移到阿裡雲的P2V和V2V。

★ 閃電立方

為使用者提供安全、高效、便捷的資料傳輸服務。支援将對象存儲、檔案存儲從不同裝置、不同雲服務商遷移和同步到阿裡雲。它提供線上遷移和離線遷移(閃電立方)兩種遷移方式,緻力于解決大規模資料傳輸效率、安全問題等難題。

Serverless

★ FC WebIDE

一款開發Serverless的雲端開發工具。

★ FC VSCode Extension   

圖形化開發調試及操作函數計算資源工具。

六、小程式雲開發平台

一雲多端

阿裡開發者工具盤點:用它!讓開發事半功倍一、鏡像站二、開源工具三、阿裡雲開放平台四、阿裡雲代碼示例庫五、雲産品工具六、小程式雲開發平台

小程式雲

小程式雲(Mini Program Cloud)是阿裡雲面向小程式場景提供的一站式雲服務,幫助開發者實作一雲多端的業務戰略,提供了有伺服器和無伺服器兩種模式。雲應用是有伺服器模式,提供了包括資源編排、應用托管等服務。小程式Serverless是無服務模式,提供了開發、營運、業務增值等服務。跨端開發工具鍊為開發者提供了一次開發全網小程式運作的能力,并在一朵雲内實作統一的資源管理、統一的資料營運和統一的業務設計。

阿裡雲小程式Serverless提供包括雲函數、資料存儲、檔案存儲等一整套後端服務。開發者通過API方式即可擷取雲函數、資料存儲、檔案存儲、音視訊、圖像處理等服務,不需要關心伺服器或底層運維設施,可以更專注于代碼和業務本身。

跨端IDE

uni-app跨平台開發擴充支援在阿裡雲小程式開發者工具中将uni-app工程編譯為微信小程式,并同時打開微信開發者工具。跨端IDE内置跨端架構,支援一次開發多端營運,相容支付寶、微信等主流小程式架構。

本地插件

支援通過IntelliJ IDEA、Eclipse、Pycharm等直接釋出到雲應用服務。

點選此處

即可使用上文提到的所有開發者工具,建議将連結收藏後在PC端打開哦。

原文釋出時間:2020-01-22

作者:崆峒

本文來自阿裡雲合作夥伴“

阿裡技術

”,了解相關資訊可以關注“

”。