From manual coding to automation and from repeated work to innovation, developer tools have been evolving along with technologies. Alibaba Group and Alibaba Cloud have made its technologies available to public through open source release and cloud-based implementation. These technologies have been accumulated through years of development in various business scenarios. This article introduces some Alibaba developer tools in the hopes that they can help make your development process more efficient and graceful.
Given the vast diversity of technological branches that developers may engage in, this article introduces some tools that may be helpful for backend developers.
1. Arthas Java Online Diagnostic Tool
Arthas is an online diagnostic tool for Java applications open-sourced by Alibaba in September 2018.
- You do not know the specific JAR package from which a class was loaded. You want to figure out why your system throws various class-related exceptions.
- You do not know why your modified code failed to be executed. You cannot remember whether you have committed the changes. You are not sure if you are using the right branch.
- A problem occurs and you cannot debug online. You are wondering whether you have to add logs to your app and publish it again.
- You have encountered a user data processing problem, but you cannot debug online or reproduce the problem offline.
- You want to have a global view to monitor the running status of your system.
- You want a solution to monitor the real-time running status of your JVM.
Arthas supports Java Development Kit (JDK) 6 and later versions, and it supports Linux, Mac, and Windows. Arthas uses the command line interaction mode, and allows you to use Tab to autocomplete commands in the command line, making problem locating and diagnosis much easier.
GitHub page: https://github.com/alibaba/arthas
2. Cloud Toolkit IDE Plug-in
Cloud Toolkit is an integrated development environment (IDE) plug-in that can be used to help developers more efficiently develop, test, diagnose, and deploy applications. Cloud Toolkit allows developers to conveniently deploy local applications to any machines (on-premises or cloud-based). Cloud Toolkit is built-in with the Arthas diagnostic tool, and supports efficiently executing terminal commands and SQL statements. Cloud Toolkit is available for different IDEs such as IntelliJ IDEA, Eclipse, PyCharm, and Maven.
- You are tired of repeatedly packaging your code every time you modify it.
- You do not want to regularly switch back and forth between code management tools such as Maven and Git.
- You use a secure copy (SCP) tool to upload files, and you use XShell or SecureCRT to log on to your server, replace deployment packages, or to restart your server.
- You do not want to regularly switch back and forth between various FTP and SCP tools to upload files to the specified directories of your server.
3. ChaosBlade Chaos Engineering Fault Injection Tool
ChaosBlade is a chaos engineering tool that follows principles of chaos engineering experiments, and provides extensive fault scenarios to help you improve the fault tolerance and recoverability of distributed systems. It can inject underlying faults, and provides various fault scenarios. These scenarios include delays, exceptions, returning specific values, modification of parameter values, repeated calls, and try-catch block exceptions.
- You find it difficult to measure the fault tolerance capacity of microservices.
- You do not know how to verify the reasonableness of the container orchestration configuration.
- You do not know how to implement the robustness testing of the PaaS layer.
GitHub page: https://github.com/chaosblade-io/chaosblade
4. Alibaba Java Coding Guidelines
This plug-in detects coding problems in Java code, and gives you prompts. This plug-in was developed based on the Kotlin language.
IDEA plug-in usage instruction:
Eclipse plug-in usage instruction: https://github.com/alibaba/p3c/tree/master/eclipse-plugin
GitHub page: https://github.com/alibaba/p3c
5. Application Real-Time Monitoring Service (ARMS)
ARMS is an application performance management (APM) tool. It offers three monitoring options: frontend monitoring, application monitoring, and custom monitoring to help you build up your own real-time application performance and business monitoring capability.
- You receive 37 alarming messages at 22:00, but you do not know where to start.
- The customer or business team finds the problem earlier than you do.
- You invest tens of thousands of dollars in servers each month, but you still cannot guarantee good user experience.
Application monitoring integration: https://www.alibabacloud.com/help/doc-detail/63796.htm
Custom monitoring: https://www.alibabacloud.com/help/doc-detail/47474.htm
Product page: https://www.alibabacloud.com/product/arms
6. Docsite Open-source Static Website Generator
Docsite is an open-source static website generator that helps you build your own official website, document center, blog site, and community. It is easy to use and addictive. It supports react and static rendering, PC and mobile clients, internationalization, SEO, markdown documents, and many useful features such as global site search, site style customization, and page customization.
GitHub page: https://github.com/txd-team/docsite
7. Freeline — A Second-Level Compilation Solution for Android
Freeline caches reusable class files and resource indices, and compiles code updates and deploys them to your device in seconds. This effectively reduces large amounts of time for recompilation and installation during daily development. The most convenient way to use Freeline is to directly install the Android Studio plug-in.
GitHub page: https://github.com/alibaba/freeline
8. Alibaba Cloud Application High Availability Service (AHAS)
AHAS provides many powerful features, such as architecture visualization for container environments such as Kubernetes (K8s), fault-injection-based high-availability evaluation, and one-click throttling and downgrade. AHAS helps you quickly improve application availability at low costs.
- When you reconstruct your service, you want to visualize the architecture to precisely understand the resource-instance composition and interaction.
- You want real fault scenarios and drill models.
- You want to use the throttling and downgrade feature at low costs.
Product page: https://www.alibabacloud.com/product/ahas
9. EasyExcel Data Processing Tool
EasyExcel is a framework that parses Java code and generates excel files. It rewrites the Apache POI SAX parser for Microsoft Excel 2007. To process a 3 MB Excel file, the Apache POI SAX parser needs about 100 MB memory, while EasyExcel needs about several KB. In addition, EasyExcel eliminates the out-of-memory (OOM) problem, no matter how large the excel file is. For Microsoft Excel 2003, EasyExcel still uses the Apache POI SAX parser. But it encapsulates the model converter at the upper layer to make it easier to use.
GitHub Page: https://github.com/alibaba/easyexcel
10. HandyJSON for iOS
HandyJSON is a json-object serialization/deserialization library written in Swift language.
Compared with other popular Swift JSON libraries, HandyJSON supports pure Swift classes and is easy to use. When you use HandyJSON in deserialization, which converts JSON to model, the model does not have to inherit from the NSObject, because HandyJSON is not KVC-based. You do not have to define a mapping function for the model either. After you define the model class and declare that it follows the HandyJSON protocol, HandyJSON automatically parses values from JSON strings by taking the property name as the key.
GitHub page: https://github.com/alibaba/HandyJSON
11. Druid Database Connection Pool
Druid is the best database connection pool in the Java language, and it provides powerful monitoring and expansion capabilities.
GitHub page: https://github.com/alibaba/druid
12. Alibaba Dragonwell Java Development Kit
Alibaba Dragonwell is the open-source version of Alibaba/AlipayJDK (AJDK), the customized OpenJDK used internally by Alibaba. AJDK has made business-scenario-based optimizations for online-ecommerce, finance, and logistics applications. It has been running in super large Alibaba data centers that run more than 100,000 servers each. Alibaba Dragonwell is compatible with the Java SE standard. Currently, it only supports the Linux x86_64 platform.
GitHub page: https://github.com/alibaba/dragonwell8