This year’s challenge is a truly cloud-based event, with its evaluation session entirely using products and services from the cloud. Some may say: What’s the big deal? In fact, this is not true. Throughout each challenge, it is the first time that ali Group’s internal proprietary system is completely abandoned and public cloud is fully embraced, which is a landmark change.

As a result, the contest has more cloud-native products and services, the ability to use PTS performance tests during the contest, and a new product that is completely hidden behind the challenge evaluation system, Web Application Hosting Service (Web+).

Performance tests PTS, visit here. Web Application Hosting Service (Web+), visit here.

Black tech one: Ali Cloud performance test PTS

Those of you who participated in last year’s contest and have built a local evaluation environment will know that WRK is a modern HTTP benchmark tool that can generate significant load when running on multi-core cpus and customize statistical pressure results with Lua scripts. But WRK also had some problems with its review last year, including:

  • In the process of WRK pressure, the CPU load of the evaluation machine was too high and was in a state of suspended animation. Operation and maintenance personnel could not even log in to the evaluation machine to execute commands such as troubleshooting.
  • When WRK is used, players can only obtain the “summary results” of the whole evaluation process, and it is difficult to dynamically observe the changes of QPS, RT and other indicators of the program in the evaluation process with time, which is not conducive to players’ analysis of performance bottlenecks.
  • WRK cannot provide players with sampling logs in the evaluation process, and it is difficult for players to locate problems with status code errors and server anomalies.

PTS ‘killer’

In order to give players a better evaluation experience, we selected PTS (Performance Testing Service Platform) of Aliyun as the evaluation tool for this year’s competition, which has the following advantages:

  • As the cloud testing platform of Ali Cloud, PTS makes full use of distributed machine resources to effectively solve the problem of high CPU load on a single machine.
  • It also provides statistics of the request success rate, peak flow, average flow, fractional RT and other indicators in the evaluation process, providing all-round performance pressure measurement data for players, effectively improving the efficiency of locating program problems and improving program performance;
  • Can provide players with sampling log, help players to analyze, locate the program problems;
  • After the evaluation is completed, the player can be provided with the corresponding pressure test report, through which the player can have a more comprehensive understanding of the performance index of the program in the whole evaluation process with the change of the second level of time;

In general, PTS, as a pressure measurement platform developed by Alibaba Cloud, is not only a performance measurement tool in the competition, but also a good helper for players to analyze and locate performance bottlenecks. Due to the topic’s evaluation requirements, many of the “kills” of PTS have not yet been implemented, such as RPS mode support, traffic region customization, timed pressure measurement, SLA (Service level agreement) and other industry-leading features. Welcome to try it.

Black tech 2: Hidden in the invisible Web+

Unlike PTS, Web+ is virtually invisible to players, but silently prepares the evaluation environment for them after each code submission. Those of you who participated in last year’s challenge, and especially those of you who built your own evaluation environment or even read the code for building your evaluation environment, will know that the evaluation environment in last year’s challenge was built entirely with Python and Shell scripts, There is a lot of code to build Docker images, start services and perform pressure tests, and this does not include the environmental resource application and configuration carried out in advance outside of the code.

Web Application Hosting Service (Web+), as its name implies, is designed to solve a series of problems encountered in Web application hosting. These issues include, but are not limited to:

  • Subscription and arrangement of cloud resources
  • Installation and configuration of the software runtime environment
  • Application start and stop and maintenance, etc
  • Distribution and application of the deployment environment configuration template

This challenge is a combination of these features.

Purchase and arrangement of cloud resources

The so-called cloud resources are commonly referred to as ECS, VPC, SLB and RDS, while subscription and arrangement are the process of arranging and combining various isolated resources in the right way from application and purchase, and finally forming a usable system. This is not a novel product concept, in the same category as HashiCorp’s Terraform, AWS’s Cloud Formation and Ali Cloud’s own ROS, A common term for such products is Infrastructureas Code. It’s not hard to imagine using code to refer to infrastructure. When an entire infrastructure environment can be solidified and replayed in code, the code is essentially equivalent to the infrastructure. The benefits are that the code is easy to read, versioned, and distributed and copied. Web+ uses the same technique to map and orchestrate a complete infrastructure environment by configuring the description file (Wpfile) code.

Installation and configuration of the software runtime environment

After the infrastructure is set up, there is an intermediate step before the user’s application can run, that is, the installation and configuration of the software run time. Depending on the common libraries, languages, application containers, and frameworks used by your application, this part of the operation will vary considerably. To address some of these differences, Web+ introduces the concept of a technology stack — a collection of operating systems, languages, containers, and other ancillary software. Based on a standard technology stack extension architecture, Web+ can easily support any number of programming languages, not just those currently available. As an example of Java, a technology stack containing only Linux and OpenJDK would be the simplest set of Java runtime technology stacks based on Linux. If you add Tomcat on top of that, you have a technology stack that can run your application in a Tomcat container. The same can support Linux + OpenJDK + Jetty technology stack, Windows +.netFramework + IIS technology stack, Linux + Node.js technology stack and so on.

Start, stop, and maintain applications

Even with the technology stack, applications are not guaranteed to start up properly, and even if they start up properly, they may not run properly, and even if they run properly, they may not be in the best performance state. These are the core problems that application hosting services need to solve. In addition to relying on the technology stack, the user’s application may also rely on special components that need to be properly installed and configured before the application can be launched. Most applications (such as Windows) need to be decompressed or installed, even if they do not rely on other components. These procedures must be customized by users based on different applications. Web+ provides users with mount points for various scripts, through which users can perform various customized operations. However, after the application is successfully started, its normal operation depends on the application system architecture. If the system needs a distributed environment, the configuration of the entire distributed environment is also extremely important. Application ports, health checks, reverse proxies, SLB listening, and forwarding policies are all fine-tuned. Web+ can help users mask some of the complexity of configuration, but some of the core stuff has to be left to the user. After the application is finally up and running, we also need to monitor the health and performance of the application, which requires monitoring and diagnosis capabilities. These capabilities are available out of the box in Web+, eliminating the need for users to build and operate independently.

Distribution and replay of deployment environment templates

Finally, one of the most highlighted features of this challenge is the distribution and replay of deployment environment templates. We offer one for a key template pull up challenge in the environment of the environment, based on the replay of the template and challenge the execution of the script can be very handy over and over again to create and release environment, this is unthinkable in the history of the existing challenge, how to build a set of evaluating environment is a time-consuming process and energy, Once it’s done, you don’t want to change it until the end of the game. There are many problems caused by this, such as the environment is very inconvenient to change, whether due to some program defects or requirements change, the configuration of an entire evaluation environment is a very tedious work.

Secondly, because these environments are set up from the beginning, players have to be in a running state until the end of the competition, regardless of whether they are being used or not. This is obviously a kind of unreasonable allocation of resources, in the busy time of user submission, due to the lack of cluster processing capacity need to queue, and in the leisure time of user submission, these resources are regrettably wasted. The distribution and replay function based on environment template can solve these problems completely. As the budget allows, it is theoretically possible to set up as many profiling environments as you want with sufficient inventory and then release them when you run out, so that if no user submits a profile, the system doesn’t waste any resources.

Offer him!

To sum up, that’s the role of PTS and Web+ in this challenge. Web Application Hosting Services (Web+) opened to public beta on June 14, 2019, in conjunction with the official launch metrics of the 5th Middleware Performance Challenge. Contestants only need to register an Aliyun account and complete the real-name authentication system to try out. Another login Web + complete opened, on the front page of the lower right corner there is a “a button to create the fifth middleware performance challenge testing environment of the interactive tutorial, players can use this tutorial to create an environment and official review the same environment for testing, without having to worry about set up test environment requires time and effort, You don’t have to worry about the difference between the test environment and the evaluation environment.

What do you say? Do you feel anything?

Click here to participate in the 5th annual Middleware Performance Challenge!

The author:

Yin Chengtao, known as Fengqi, is a development engineer at ALI Cloud PTS, focusing on performance measurement and high availability architecture.

Rui Tang is the product manager of Oumo, Aliyun EDAS and Web+, focusing on product design of application hosting and related middleware technologies.


Author of this article: Middleware brother

The original link

This article is the original content of the cloud habitat community, shall not be reproduced without permission.