Abstract:A mature microservice solution product needs to experience enough business volume to become more mature and reliable.
In the era of cloud origin, with the continuous innovation and rapid development of container technology, micro service architecture idea, product R & D operation mode, the threshold of application design and development has been reduced to a historical low. According to IDC, more than 50 million apps will be created from 2018 to 2023, which is the total of all apps created in the past 40 years.
In addition, according to IDC’s “IDC futurescape: global cloud computing 2020 forecast – China’s Enlightenment” released in February 2020, the fields affected by cloud native applications are gradually moving from the Internet to non internet, and upgrading from traditional applications to cloud native applications. At present, the maturity of cloud based technology has a great impact on the production and life style of individuals, enterprises and even the whole society.
In this application revolution, more and more application owners will hand over the application infrastructure to more professional public cloud / hybrid cloud service providers for management, manage the infrastructure through API, and the service providers will provide more agile and seamless deployment management functions. In this way, the application owner can focus more investment and manpower on the business logic design, development, operation and maintenance and experience Optimization of the application itself, which greatly reduces the time to market of the product and achieves higher scalability, and maximizes the ROI (return on investment) of application development.
Using microservice architecture to build cloud native applications
There are many versions of cloud native application definitions. Pivital first proposed the definition of cloud native application in 2015. Then CNCF also defined cloud native application in 2015 and redefined it in 2018. For specific definitions, please refer to kubernetes Handbook. It can be found that since the concept of cloud native appeared, micro service architecture is a part of cloud native application.
1.1. Scenarios of using microservices
To build cloud native applications, first of all, enterprises or individuals must want to maximize their time and energy from the complex underlying development and maintenance, focus on the design and implementation of business scenarios, and be able to independently decouple and automate the development and landing of each module of the application. This means that the first mock exam or a single business developer will make the most of the DevOps tool chain provided by the cloud manufacturer to achieve the common goal of the entire application development and operation, so that we can easily use the application as a loosely coupled service set to release and update quickly, reducing the cost and avoiding single point failure.
1.2. Location of microservice application in technology stack
Assuming that the application owner has done a good job in the business design of microservice, let’s take a look at the position of microservice application in product development and operation in the landing stage
The red part is the core module of the microservice application, which is a runtime microservice application developed and maintained by the application owner. With the growth of business and the influence of system capability, in order to improve the high availability, reliability and resilience of micro services, it is necessary to govern micro services. The common governance methods include: load balancing, fusing, current limiting, degradation, fault tolerance and isolation, etc.
The yellow section from left to right represents the technology from dev to OPs. First, choose to use intrusive framework to develop services or non intrusive grid to access legacy applications or multilingual services. The micro service framework can choose spring cloud, Dubbo, servicecomb, etc., and the service grid can choose istio, etc. Framework or service grid can help developers deal with the cross cutting concern that microservices are facing, such as log4j / logback, health check, metrics, distributed tracing, etc. Secondly, after the coding is completed, we can use the Devops tool chain provided by the cloud service manufacturer to realize the ability of code archiving, compilation, construction, release and deployment, and deploy the micro service in the running environment. Finally, the operation and maintenance capabilities provided by cloud service manufacturers can be used to monitor the operation and maintenance of micro services. Generally speaking, the application platform capabilities provided by cloud service vendors are also independent and decoupled. Application owners can choose the services they need according to their own needs and budget.
The purple part is the runtime technology stack, and the blue arrow represents the flow direction. When the microservice deployment is running, the traffic will first connect to the portal (such as service gateway / ELB) from various clients. At the same time, the traffic will be distributed to the corresponding business processing microservices according to the request characteristics, and then a series of processing will be performed on the request to return the result. The operation of micro services also relies on many middleware, such as distributed transactions, caching, messages, etc.; there are also some functional features of micro services, such as service grid, service registration discovery, etc., which are also provided by the framework or cloud service vendors. In fact, microservices and middleware are all upper level services deployed on infrastructure, such as virtual machine, container or CCI instance.
To sum up, the landing of an application actually involves many technologies and scenarios. The development of an application using microservice architecture can simplify the management and operation of the underlying facilities and Middleware of the application owner to the greatest extent, and focus resources on business innovation and landing (red box part) by customizing the cloud service provider’s ability to provide a full scene, end-to-end application platform.
Huawei cloud micro service case based on cloud native technology
A mature microservice solution product needs to experience enough business volume to become more mature and reliable. In Huawei’s terminal business, there are more than 20 applications, such as application market, vmall, browser, Huawei music, negative one screen, etc., with more than 500 million users and an average of 100 billion calls per day, which are supported by more than 10000 micro service instance clusters.
In the early days, the GAF single application architecture developed by Huawei’s terminal business department could not meet the needs of high concurrency and agile iteration, and the cost and difficulty of operation and maintenance increased geometrically. Based on CSE micro service framework, intelligent assistant divides its back-end into multiple micro services and implements cluster deployment. The development efficiency is doubled, the system throughput is increased by 50%, the system overhead is reduced by 30%, the operation and maintenance efficiency is also greatly improved, and the SLA of intelligent assistant application is increased to 99.96%. The more lightweight architecture splits up micro service teams with up to 3-5 people, adopts Devops development mode, and truly realizes cloud native agile development.
Huawei consumer cloud is based on the high-performance, low latency asynchronous technology of Apache servicecomb to realize more than 1500 node level micro services, supporting 760 million mobile phone users online. With servicecomb, QPS is increased by 2 times + and delay is reduced by 45%. At present, the application market of Huawei’s terminal business has been launched in more than 100 countries around the world. It supports more than 70 languages and has been downloaded more than 120 billion times.
Huawei cloud has always been the main force in the development of Apache servicecomb project, and is based on Apache Servicecomb provides corresponding commercial services in servicestage, Huawei’s cloud micro service application platform. In the cloud native field, Huawei’s cloud continues to plough deep, reduce the technical threshold, and continuously release the cloud native technology dividends to enterprises. In the commercial field, Huawei’s cloud continues to strengthen its product service capabilities, providing fertile ground for more enterprises to go to the cloud and digital transformation for common development.