High performance solutions for enterprise Internet applications

Time:2019-11-9

This paper introduces some practices of enterprise Internet development and operation and maintenance, and deeply analyzes various pain points and solutions in the process of Internet project development and online.
It is not so easy for an internet project to go online. It needs to go through many steps: starting from the preparation of the server, followed by the establishment of the business system, which involves many things such as the operating system, dependency on middleware, application deployment, configuration modification, etc.; after the completion of the establishment, the online verification of the business and the drill of various scenarios are carried out, and high concurrency is carried out Pressure simulation test, find out the performance bottleneck, and constantly carry out problem correction and architecture adjustment; finally, carry out the disaster recovery drill, sort out the automation script, and then select a group of disaster recovery environment for on-line trial operation to meet the test of the real user pressure of on-line operation.
High performance solutions for enterprise Internet applications
Think about every time a new project goes online, it’s a painful ordeal. What is the root cause of such a long time? The answer is that too many of these links are handled manually. So how can we shorten the lead time?
High performance solutions for enterprise Internet applications
Go back to the Internet project you have. When the project goes online, is everything ok? After the celebration, more things came slowly. With the development of business, the number of users increased gradually, and the scene of high concurrency began to highlight. Because we only pay attention to the launch of the business system itself, and the related peripheral support system has not been built, in this case, we can not understand the internal operation of the system at all. How many users are accessing the system, how much pressure each server is under, and what is the current business volume? We can think about how the transaction volume is counted when Taobao is doing the double 11 activity? How is real-time traffic counted when JD does 618 activities? What peripheral support should we build to make the system not black box?
High performance solutions for enterprise Internet applications
When the online business system goes wrong, do you often encounter the situation of no way to start? This is because with the continuous expansion of business scale, the online system becomes complex, just like the wires in the figure, if you are a little careless, it will catch fire! It may be network problems, environmental problems, code problems, third-party API problems, etc. if you want to locate the problem, you need a variety of different technology stacks, call link tracking, without scientific basis, it is almost impossible.
High performance solutions for enterprise Internet applications
When the online problems are almost solved, the business is stable, and new problems come. The user’s activity has brought the blowout type surge of flow, and a little carelessness will lead to the system collapse. At this time, we need to expand the capacity in time to save the system. However, in the past, the cost of capacity expansion is still high due to the lack of machine preparation, insufficient environment deployment and untimely business expansion.
High performance solutions for enterprise Internet applications
Or take the “smart” trick and use other business line machines to expand capacity, but your business system is not consistent with your brother’s system environment. The invasion of new business has changed the environment of other business lines, on the contrary, it has paralyzed other business lines. It’s really a fire in the city gate, which brings disaster to the pond. We urgently need a unified environment for capacity expansion, and docker is our salvation.
High performance solutions for enterprise Internet applications
Faced with so many problems, can you imagine the situation of the team? The team was busy fighting the fire all day and was under a lot of pressure. Many times, in order to fight the fire, we demolished the east wall to replace the west wall. The code was piled up purely to solve the problem. The code management was chaotic, and the technology accumulation was lacking
High performance solutions for enterprise Internet applications
In this case, the boss will open a new business line. Because there is no unified project template, the underlying code must be rewritten every time the project starts. Due to insufficient module encapsulation, each team has to re encapsulate the modules that could have been used for public use. The repeated investment of R & D resources keeps the R & D cost high.
High performance solutions for enterprise Internet applications
In order to make everything more standardized, we need a stable underlying support platform to ensure the rapid development of business. To develop new requirements quickly and iterating small versions continuously, there are some general templates and verified technical components applied directly in the development process. After the development is completed, it can be deployed online quickly and small versions can be integrated continuously. Don’t hang up the service after it goes online. If there is a problem, you can quickly locate it. When the traffic surge, it can sense in time and realize rapid expansion. The service status can be detected continuously. When it is hung up, it is better to restart it automatically
High performance solutions for enterprise Internet applications
Let’s take another look at the value and benefits of using the platform. First, the process of continuous integration is smoother. Second, the automation of the platform will reduce the cost of operation and maintenance personnel. Third, based on the concept of Devops, it will make development and operation and maintenance highly collaborative in daily work. The automated process will make everything standardized. The iteration of the new version is faster and stronger, and the online operation is more stable and reliable 。
High performance solutions for enterprise Internet applications
IUAP platform supports Devops life cycle management and provides corresponding tool support. It provides best practices and tool instructions of Devops, and provides component library to manage R & D achievements. Ensure the continuous implementation of coding, construction, testing, pre release, deployment, monitoring and other links.
High performance solutions for enterprise Internet applications
For rapid development, it provides a series of development tools, frameworks and components, back-end sample code, front-end templates, etc. And through the official website documents, knowledge transfer and feedback exchange, community response to the developer’s problems.
High performance solutions for enterprise Internet applications
To solve the problem of black box in the system, we store performance data in the way of index library by collecting the browser user’s click situation and collecting nginx logs, and finally analyze the big data, display the corresponding business reports, and visually view the various operation indicators of the system.
High performance solutions for enterprise Internet applications
When there is an online error, we collect the performance data of the server-side application, display the call topology of the application in real time, drill down according to the abnormal request, and locate the specific problem code.
High performance solutions for enterprise Internet applications
The image consistency of docker encapsulates the operating system, dependent environment and business war package needed for business operation. When the application is deployed, the image can be pulled directly. When the business scale is small, only a few containers need to be started. After the business scale is up, you can perform the capacity expansion operation, pull the image again, and start more application container instances in the form of docker. From now on, I don’t worry about being at a loss when the traffic comes.
High performance solutions for enterprise Internet applications