From manual to automation, from repetition to innovation, the evolution of technology has been accompanied by development of developer tools. In this paper, from the author: Linux technology, the original address: https://www.jianshu.com/p/58ec32eef2d4

Alibaba opens its technology accumulation in various business scenarios to the outside world in the form of open source, cloud implementation or tools. This article will select some developer tools of Alibaba, hoping to help developers improve development efficiency and write code more gracefully.

Since developers are involved in so many technical fields, THE author only reviews the tools that are available from the perspective of a back-end developer in the area that I am familiar with. Each tool is described as follows:

  • Tool name and introduction

  • Usage scenarios

  • Using the tutorial

  • access

1. Arthas, a Java online diagnostic tool

Arthas Alibaba opened source in September 2018 as an online diagnostic tool in Java.

Use scenarios of the tool:

  • Which JAR is this class loaded from? Why are exceptions related to various classes reported?

  • Why is the code I changed not executed? Did I not commit? Wrong branch?

  • You can’t debug online when you encounter a problem, can you only add logs and republish?

  • There is a problem with the data processing of a user online, but it cannot be debug online or reproduced offline!

  • Is there a global view of the health of the system?

  • Is there any way to monitor the real-time state of the JVM?

Arthas supports JDK 6+, Linux/Mac/Windows, command-line interaction, and provides rich Tab auto-completion features to facilitate problem location and diagnosis.

Use tutorial:

Basic tutorial: https://alibaba.github.io/arthas/arthas-tutorials? language=cn&id=arthas-basics

Advanced tutorial: https://alibaba.github.io/arthas/arthas-tutorials? language=cn&id=arthas-advanced

How to get :(free)

Source address: https://github.com/alibaba/arthas

IDE plug-in Cloud Toolkit

The Cloud Toolkit is an IDE plug-in that helps developers develop, test, diagnose, and deploy applications more efficiently. Cloud Toolkit enables developers to easily deploy native applications to any machine (local or in the Cloud) with Arthas diagnostics, efficient execution of terminal commands and SQL built in, IntelliJ IDEA edition, Eclipse Edition, PyCharm and Maven versions.

Use scenarios of the tool:

  • Are you experiencing repeated packaging after each change to your code?

  • Frequently switching between Maven, Git, and other operations scripts and tools?

  • Use SCP tool to upload? Log in to the server using XShell or SecureCRT? Replace the deployment package? Restart?

  • Files are uploaded to the specified directory on the server and frequently switched between various FTP and SCP tools?

Use tutorial:

IntelliJ IDEA version: https://help.aliyun.com/document_detail/98762.html

The Eclipse version: https://help.aliyun.com/document_detail/29970.html

PyCharm version: https://help.aliyun.com/document_detail/112740.html

Maven version: https://help.aliyun.com/document_detail/108682.html

How to get :(free)

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

Iii. Chaos experimental injection tool ChaosBlade

ChaosBlade is a chaotic engineering tool that follows the experimental principles of chaos engineering, provides rich fault scenario implementation, and helps distributed systems improve fault tolerance and recoverability. It can realize the injection of underlying faults, and provides such exception scenarios as delay, exception, return specific value, parameter value modification, repeated call and try-catch block exception.

Use scenarios of the tool:

  • Is microservice fault tolerance hard to measure?

  • Is the container orchestration configuration reasonable?

  • How to test PaaS layer robustness?

Using the tutorial

https://github.com/chaosblade-io/chaosblade/wiki/ newbie guide

How to get :(free)

Source address: newbie guide at https://github.com/chaosblade-io/chaosblade/wiki/

Java code specification scan plug-in

The plug-in is used to detect and hint at irregularities in Java code. The specification plug-in is developed in Kotlin language.

Use tutorial:

IDEA plug-ins using document: https://github.com/alibaba/p3c/wiki/IDEA plugin using document

Eclipse plug-in using document: https://github.com/alibaba/p3c/wiki/Eclipse plugin using document

How to get :(free)

Source address: https://github.com/alibaba/p3c

Five, the application of real-time monitoring tool ARMS

ARMS is an APM monitoring tool that provides front-end monitoring, application monitoring, and custom monitoring options to quickly monitor application performance and services in real time.

Use scenarios of the tool:

  • 37 alerts at 10:00 p.m., and you don’t know what to do?

  • By the time we find the problem, the customer/business has already lodged a complaint?

  • Spend hundreds of thousands of dollars a month on servers and you can’t guarantee the user experience?

Use tutorial:

The front-end monitoring access: https://help.aliyun.com/documentdetail/106086.html application monitoring access: Custom monitoring: https://help.aliyun.com/documentdetail/63796.html https://help.aliyun.com/document_detail/47474.html

How to obtain :(charge)

Tools to address: https://www.aliyun.com/product/arms

Six, static open source site building tool Docsite

Docsite is a static open source site solution that integrates the official website, documents, blogs and communities. It has the characteristics of simple and easy to use and never let go. Support react and static rendering, PC and mobile, support Chinese and English internationalization, SEO, Markdown documents, global site search, site style customization, page customization and other functions.

Use the tutorial https://docsite.js.org/zh-cn/docs/installation.html

How to get :(free)

Project address: https://github.com/txd-team/docsite

7. Freeline, the second level compilation scheme on Android platform

Freeline makes full use of cached files to quickly compile and deploy code changes to the device in seconds, effectively reducing the amount of recompilation and installation time required during daily development. The quickest way to use Freeline is to install the Android Studio plug-in directly.

Using the tutorial

https://github.com/alibaba/freeline/blob/master/README-zh.md

How to get :(free)

The address of the project: https://github.com/alibaba/freeline

Viii. Performance testing tool PTS

PTS can simulate the scenario where a large number of users access the service, and the task can be initiated at any time, so as to avoid the construction and maintenance costs. It supports JMeter scripts to be converted to PTS test, and also supports the native JMeter engine for test.

Using the tutorial

https://help.aliyun.com/document_detail/70290.html

How to obtain :(charge)

Tools to address: https://www.aliyun.com/product/pts

Cloud effect developer tool KT

KT can simplify the complexity of joint test under Kubernetes and improve the efficiency of research and development based on Kubernetes.

Using the tutorial

https://yq.aliyun.com/articles/690519

How to get :(free)

Tools to address: https://yq.aliyun.com/download/3393

Architecture visualization tool AHAS

AHAS provides architecture visualization for container environments such as K8s. At the same time, with functions such as fault injection high availability evaluation and one-key flow control degradation, AHAS can quickly and cheaply improve application availability.

Use scenarios of the tool:

  • In the process of service-oriented transformation, want to understand the composition and interaction of resource instances precisely, realize the visualization of the architecture?

  • Want to introduce real fault scenarios and walkthrough models?

  • Low threshold access to flow control, degradation function?

Using the tutorial

https://help.aliyun.com/document_detail/90323.html

How to get :(free)

Tools to address: https://www.aliyun.com/product/ahas

11. Data processing tool EasyExcel

EasyExcel is a framework for parsing Java and generating Excel, which rewrites POI for the 2007 version of Excel parsing, originally a 3M Excel with POI SAX needs 100M or so memory, EasyExcel can be reduced to KB level, And no matter how big Excel is, you won’t run out of memory. Version 03 relies on POI’s SAX schema. In the upper layer of model transformation encapsulation, so that users more simple and convenient.

Using the tutorial

https://github.com/alibaba/easyexcel/blob/master/quickstart.md

access

https://github.com/alibaba/easyexcel (open source)

HandyJSON for iOS

HandyJSON is a JSON serialization/deserialization library for the Swift language.

Compared to other popular Swift JSON libraries, HandyJSON supports pure Swift classes and is easy to use. It does not require the Model to inherit from NSObject (since it is not KVC based), nor does it require you to define a Mapping function for the Model. As long as you define the Model class and declare that it follows the HandyJSON protocol, HandyJSON can parse values from JSON strings by itself, using the attribute name Key for each property.

Use tutorial:

https://github.com/alibaba/HandyJSON/blob/master/README_cn.md

Obtaining method:

https://github.com/alibaba/HandyJSON (open source)

image

13. Cloud Resource and application deployment tool EDAS Serverless

EDAS Serverless is an application and micro-service oriented Serverless platform based on Kubernetes. Without having to manage and maintain clusters and servers, users can quickly create container applications that support Kubernetes natively with images, WAR packages, and JARS, and support major microservice frameworks such as Spring Cloud and Dubbo.

Use tutorial:

https://help.aliyun.com/document_detail/102048.html

Obtaining method:

(free) during a public beta at https://help.aliyun.com/document_detail/97792.html

Druid database connection pool

Druid is a database connection pool in the Java language that provides powerful monitoring and extension capabilities.

Using the tutorial: https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98

Access (open source) http://central.maven.org/maven2/com/alibaba/druid/

The Java toolset Dragonwell

Alibaba Dragonwell is an open source version of Alibaba’s internal OpenJDK customized AJDK. AJDK is optimized for online e-commerce, finance and logistics combined with business scenarios, and runs in a super large Alibaba data center with 100,000+ servers. Alibaba Dragonwell is compatible with the Java SE standard and currently supports only Linux/ X86_64 platforms.

Use tutorial:

https://github.com/alibaba/dragonwell8/wiki/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4Dragonwell8%E7%94%A8%E6%88%B7%E6%8C%87%E 5%8D%97

Obtaining method:

https://github.com/alibaba/dragonwell8 (open source)