来源 | 阿里巴巴云原生公众号
本文精选了一些阿里经济体内部最受开发者欢迎的开发者工具,筛选出一些带有普适性同样适合外部开发者的,希望能助力开发者们提高开发效率。
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 语言下的数据库连接池,它能够提供强大的监控和扩展功能。