At present, the global digital wave is gradually deepening, and Cloud computing has become an important infrastructure for the development of information technology. The role of Cloud Native in the digital wave is gradually increasing, which has become a hot topic in the field of Cloud computing in recent years.
Let’s start by looking at a diagram to see the business context of cloud native.
The business model determines the whole research and development model, and the research and development model determines what kind of technology needs to be adopted. As can be seen from the figure, traditional applications, Internet applications and applications in the VUCA era have triggered different demands in different times, thus bringing different requirements for technology.
In the past, the traditional application demand is relatively fixed, usually by project operation, user access can be predicted, the capacity is limited; The characteristics of Internet applications are that the demand for continuous development, productization rather than project system, the number of users is not linear, there will often be a steep increase and drop, 7×24 hours is the basic requirement; Gradually to the present era of VUCA, the business boundary and business level are completely unpredictable, and it is a huge challenge even for the Internet natives, which requires fast trial, fast detection and fast perception. Applications are provided in a service-oriented way, and under the premise of business agility, Continuous release of technical system, distributed mass concurrency, grayscale release and online testing are the basic demands. The continuous release of business agility, the flexible appeal of the application platform, the change of the business environment, this is the whole cloud native business background.
One center and three basic points to truly build cloud native capabilities
In the era of cloud native, while enjoying the convenience brought by architecture decoupling and cloud elasticity, higher requirements are put forward for software development and delivery mode. To truly achieve the success of cloud native, MY conclusion is that there are three central basic points:
A center:
Business value delivery as the center, to achieve rapid and efficient delivery of value, and in the scale of expansion, while giving consideration to reliability, flexibility, etc.
Three basic points:
1. Architecture
- Comprehensive decoupling is achieved by using service-oriented architecture/micro-service architecture: the system is divided into multiple services/micro-services with cohesive functions, appropriate granularity, clear business boundaries and independent autonomy. Evolve system architecture with (micro) services as a unit, evolving in the strangler mode, rather than revolutionary one-time transformation; A single (micro) service runs in more than one stateless process to achieve its own high availability and load balancing. Distribute business data to different (micro) services to achieve vertical data segmentation;
- Through API, the basic and architectural capabilities provided by cloud native public services are reused: each internal (micro) service should make full use of the original public services to provide the underlying basic capabilities, such as micro service management and control and life cycle management services, database services, message queue services, cache services, etc. Each internal (micro) service should make full use of application and resource orchestration services to realize deployment and configuration automation;
- Build an ecological economy through APIS: API is a very important way, in addition to defining service boundaries between business, more important is can do the ecosystem by API, open a bank, for example, in the transformation of digital are such ideas, build a platform, through a variety of partners in different industries, different areas to provide related services, these services are to connect each other, Do this by thinking of links and networks. Huawei cloud is also building its own API ecosystem.
2. Engineering level
- Decoupling of system from environment, process, and configuration: To match the decoupling of system from environment, process, and configuration at the architecture level, the engineering level also needs to match and decouple accordingly. Equivalent development, testing and production environments, shielding environmental differences; Adopt immutable infrastructure;
- Building an end-to-end DevOps r&d system: standardization and agility of the R&D process; Strictly distinguish the construction, distribution, operation of the access, and versioning and automation; Fully automated testing (unit testing, integration testing, automatic generation of Mock dependency services); Everything is code, code, configuration and environment are strictly separated, versioned and automated; (micro) continuous service delivery pipeline (release on demand);
- Integration of R&D operation and maintenance: operation and peacekeeping development are integrated, highly coordinated and share responsibilities; Automatic monitoring, continuous visual feedback, and ultimately transmitted to the development team; On-demand deployment and configuration hot loading take effect in real time.
- Use self-service, agile cloud infrastructure services: Infrastructure is provided to development teams in a self-service manner. Computing, storage, and network services that rely on the underlying cloud infrastructure provide basic operation resources. The cloud monitoring service is used to monitor its own operating status, including the usage of basic resources and the running status of its own services. At the same time, corresponding O&M events are triggered based on its own running status to achieve key architecture features such as elastic scaling and fault self-healing.
- Core measure external indicators: the core of the business level index of a business call TTM, in conversation with another term for Lead Time, is your Lead Time, from the moment a business needs to ask, to the needs of the business line of Time is called Lead Time, this can be known by customers, so it is an end-to-end business indicators. On the technical side, there are multiple lead times. On the engineering side, from the moment when the code is submitted to the time when the code is put online, this period is completely controlled by the project, which should be controlled in minutes in theory. This index is also the most important one for Huawei cloud.
3. Organizational level
- Follow Conway’s law: there is a high degree of matching between the application architecture and the organizational architecture. The single application gradually changes to the servitization mode and gradually to the distributed mode. Organizational structure is also transferred to self-organization, there is no single center in the self-organization team, agility and diversity need to balance. The size of the entire team is typically 5-10 people.
- Full-featured teams: From full-featured teams all the way to cloud-based o&M teams. Organize the whole team with service as the unit, covering the functions of the whole process of design, development, testing, release, deployment, operation and maintenance; Credible collaboration between developers, release engineers, IT, and operations
- Cloud operation and maintenance team: based on the monitoring and alarm capabilities provided by the cloud platform, a special team is set up to take charge of the quality of system operation, ensure the availability of the system and upgrade and rollback without interruption of services
- Self-operated, service-oriented full life cycle: gradually transformed into self-operated full function teams. Besides technology stack is fully functional, every team needs to be of service to the full life cycle of a service-oriented, in addition to the technical aspect of how to product design, development, deployment, keep beautiful architecture level, more need to consider the business level, need to consider the service orientation, consider after product launch, operating level should do something, What kind of new activities should be done, how to promote life, how to keep. The whole team needs to think about business and product operations. It’s a whole shift in thinking about why the service is doing it, who’s using it, what the context is, and how the business closes the loop.
Focus on seven areas, continuously optimize delivery granularity, speed up delivery, improve delivery quality
The implementation and transformation of DevOps under the cloud native architecture is a process of quantitative change to qualitative change, which requires corresponding matching from seven fields, including team model, branch model, test model, technical architecture, deployment model, infrastructure and database model, to continuously optimize the delivery granularity, speed up delivery and improve delivery quality. With the release frequency as the starting point, the release once every 100 days gradually increased by ten times to release once every 10 days. What are the practices that need to be matched and adopted in terms of the seven dimensions at these two stage points?
This is a map of capability evolution, so that we can clearly see what the current pace of release of our business needs to be, where the direction is when we move to the next node ten times faster, and adopt accordingly with a clear target.
Continuous delivery implementation framework
There are many good practices in Huawei. Huawei Cloud DevCloud is a DevOps practice based on cloud. Since the establishment of DevCloud, the scale of software, the management of teams and the complexity of communication between people have increased dramatically. Through the cloud, micro service, container and pipeline automation engineering practice, and agile, conversation, fully functional team management practices, such as the overall size of the rising at the same time, the compiled version, version, build the success rate, system regression testing, research and development work time and resource reuse rate index has not reduced, had greatly promoted, Are the best organizational and engineering practices that support cloud native architectures.