×
Community Blog The Path of Large-Scale Implementation - Alibaba DevOps Practice Guide Part 7

The Path of Large-Scale Implementation - Alibaba DevOps Practice Guide Part 7

Part 7 of this 27-part series discusses the engineering capability of continuous delivery.

This article is from Alibaba DevOps Practice Guide written by Alibaba Cloud Yunxiao Team

Today, most enterprises agree with the need for DevOps implementation and begin to take action. The problem is that the small-scale implementation effect is good, but as soon as the scope is expanded, it will encounter various problems and not meet the expectations. There are many pitfalls during the large-scale implementation of DevOps.

If we want to succeed in scale, we must understand the true meaning of scale and then choose an effective path. Now, we will provide strategic guidance for large-scale implementation from these two aspects.

The True Meaning of Scale

When different people talk about scale, the meaning behind it may vary. For example, some are concerned about the number of people, some pay more attention to depth, and others focus on the promotion of a large-scale method framework.

First, we must understand scale to realize large-scale implementation. To this aim, we must return to the goal of large scale and understand why it is required. From the business perspective, we think large-scale implementation involves two points:

  1. The first point is system – a system that extends to the ends. The startup of DevOps may start at one of several stages, such as the deployment stage. However, we must gradually extend the implementation scope to connect the entire procedure from business to R&D and O&M. This is the only way to bring about systematic changes and realize quick delivery, stable operation, and instant and effective closed loop.
  2. The second is benefits for all – more businesses or every component of the same business can be benefited. DevOps aims to serve the digitization of enterprises. It involves different independent businesses of an enterprise or different functions of the same business, such as customer management, internal operations, production and manufacturing, and service delivery. The implementation of DevOps should benefit more business units to support the overall digital transformation of the organization.

If you consider the two points above, the goal of large-scale implementation is to benefit more businesses more systematically. The large-scale implementation of DevOps aims to find a smooth and sustainable path to achieve this goal.

Principles for Large-Scale Design and Selection Paths

The large-scale implementation of DevOps is a process of transformation. It involves changes in technology, process, and organization and the redistribution of power and benefits.

Transformation is never easy. The most common misunderstanding of DevOps transformation is complexity for scale.

Scale brings complexity, and intuitively complex conditions require complex solutions. As a result, complex, large-scale frameworks have emerged, such as various complex, large-scale agile frameworks. However, the direct use of a large-scale framework causes more problems than good results.

First of all, the implementation of any plan must be based on an understanding of the status quo, such as existing organizational structure, acceptance of new methods, specific business characteristics, and technical maturity. The direct use of a universal framework without specific context will create huge adaptation costs. A lot of effort is spent on the organization and processes in the early stage, but it does not improve the delivery performance, especially the performance visible to the business. This is prone to be doubted and resisted, so the implementation effect is reduced significantly. Also, the implementation may be stopped.

Secondly, for the sake of universality, all kinds of large-scale frameworks will define the unified organizational structure, roles and responsibilities, and process mechanisms and introduce complex mechanisms. However, they cannot adapt to the diversity of reality. As a result, the old mode cannot be replaced. Instead, a new mechanism is added, which increases the complexity. Complex organizational structure, process mechanism, and more roles will increase the difficulty of implementation and reduce the implementation effect. It is difficult to maintain, even if temporary results are achieved.

We cannot use large-scale frameworks directly. What should we do? We must return to the goal of large-scale implementation (system and benefits for all) and choose our path in a specific context. Therefore, we propose three principles for DevOps large-scale implementation:

1.  Service-Driven: Measure the effectiveness of DevOps implementation from a business perspective and drive the implementation of DevOps.

The business-driven principle is the basic principle of DevOps large-scale implementation. There must be standards to judge the quality of the plan, but it should not be personal preferences or the interests of various departments. Business success is the only common criterion.

Combine the consensus of all roles by measuring and selecting a solution from a business perspective. Drive the implementation of DevOps with business objectives, which can facilitate the collaboration of various functions and ensure the systematicness of the implementation. Implement DevOps in the unit of business, making the boundary and pace of implementation clearer and ensuring the perceived business results can be obtained earlier.

2.  Scale Down: Facing complex organizations, we need to scale down and then scale out.

For better large-scale implementation, the first thing we need to do is scale down.

No matter how large an organization is, it consists of business and product delivery teams. Relatively closed-loop business and potentially independently deliverable products are the basic units of implementation. We should decouple complex organizations and identify independent implementation units. We should try our best to control the complexity within the implementation units while maintaining as loose coupling as possible between implementation units. For example, different business units are connected through regular goal alignment instead of unified delivery planning. Related products are connected through business planning to reduce coupling in execution.

Based on scaling down, systematic transformation is realized in a relatively independent unit as simple as possible. We can replicate and scale out based on successful experiences. Scaling out is derived from system design principles. For example, the Internet network and cloud computing infrastructure follow the principle of scaling out, allowing them to reach today's scale. It also applies to DevOps implementation.

3.  Progressiveness: Starting from the current situation, seek continuous and gradual improvement. Under the guidance of the goal of system improvement, move forward with small steps, while each small step brings about improvement and realizes the system and comprehensive transformation.

Being progressive is not a compromise. On the contrary, it means choosing a more solid and sustainable path under a clear and firm ultimate goal. For transformation, the status quo is what we want to change, but change must begin with understanding and respecting the status quo. Based on identifying the basic units of DevOps implementation, we can start from some phases to the overall value stream or connect the overall value stream first and then deepen in each phase to achieve the overall goal.

Cases and Strategies of Large-Scale Transformation

After introducing the three principles of DevOps large-scale implementation, let's take a look at two specific cases of evolution paths:

Path 1: Bottom-Up (from Product Delivery to Business)

1
From the Product Delivery Team to End-to-End Business

The preceding figure shows a typical path, which extends from one part to the whole.

First, establish the continuous delivery capability of the Product Delivery Team. For example, introduce lean and agile requirement practices, sort out the end-to-end value stream of requirement delivery, build engineering capabilities for continuous integration and delivery, and form a continuous or iterative delivery mode.

Next, based on the continuous delivery capability of the Product Delivery Team, the value stream is extended from product delivery to end-to-end business through business interconnection and alignment of various products. Realize continuous and smooth delivery of business value, establish a fast feedback closed loop, and ensure value effectiveness.

The advantage of this mode is that it is relatively easy to start, but it will lag behind in achieving significant business results. You can try this mode for DevOps transformation led by the technology department. More importantly, the improvements made by the technical department must be shared and reflected in business efficiency eventually.

Path 2: Top-Down (from Business to Product Delivery)

2
From End-to-End Business to the Product Delivery Team

The figure above is another practical path, which adopts the mode of starting from the overall interconnection and then seeks partial deepening.

First, given the business value, sort out the end-to-end process of business requirement delivery and form a closed feedback loop. At this time, we are pursuing the overall interconnection and paying attention to the whole system from the beginning. We can bring about the improvement of initial business delivery through the visualization and optimization of value streams. Also, deeper improvements still need to go deep into various parts.

Next, based on the overall interconnection, identify bottlenecks and efficiency issues in each phase, drive the transformation of each Product Delivery Team, and introduce agile and lean collaboration methods and continuous delivery engineering practices.

The advantage of this mode is that the entire change process is driven by system optimization, and it is easier to ensure the implementation of business results and systematic improvement. However, it requires organizations, especially the business level, to be highly recognized and determined to DevOps and implementers to have a deep understanding of system improvement. Business or senior management leading DevOps implementation can try this mode.

The two paths above have two things in common, whether in top-down mode or bottom-up mode.

  1. The business lines are decoupled and regarded as the basic units for measuring the effect of DevOps implementation. This is also called scaling down. You can realize smoother and more sustainable large-scale implementation by scaling down, which is the unity of contradiction.
  2. Enterprises have to move toward business-driven end-to-end optimization to achieve DevOps large-scale implementation and benefit more businesses in a more systematic manner. All these lead to the same goal.

In reality, the transformation path is often a mixture of the two modes above. They are performed synchronously, but the emphasis is different at different times.

An Excellent Combination of the Three Principles of DevOps Large-Scale Implementation and the Three-Step Method

We introduced the three principles of DevOps large-scale implementation and proposed a recommended path based on them in the sections above. We also introduced the three-step working method for DevOps implementation, which is a practical and effective guide for DevOps implementation. It includes:

  1. Flow Principle: Focus on the overall value stream of the IT system, optimize the global situation, and ensure the rapid flow of value from the left (upstream) to the right (downstream)
  2. Feedback Principle: Create a left-to-right feedback loop, shorten the feedback cycle, and amplify the feedback effect. This way, we can respond faster, understand internal and external customers, and instantly acquire the knowledge needed for improvement.
  3. Continuous Testing and Learning Principle: Create a culture of taking risks, testing continuously, and learning from mistakes, refine your abilities in continuous attempts, and improve the resilience of the system

A three-step DevOps implementation method can be applied to all layers of implementation, such as the business layer, delivery team layer, and continuous delivery engineering practices.

The three principles of DevOps large-scale implementation provide suggestions for path selection. The three-step DevOps implementation method provides guidance for specific implementation. They complement each other and work well together.

Summary

The large-scale application of DevOps is an inevitable choice to support the comprehensive digital transformation of organizations. However, large-scale implementation is not equal to the implementation of a complex, large-scale framework. On the contrary, we should be driven by the business and seek simple and sustainable solutions in the path selection. System and benefits for all are the ultimate goals of DevOps large-scale implementation.

0 0 0
Share on

Alibaba Cloud Community

1,072 posts | 263 followers

You may also like

Comments