The author was fortunate to have exchanges with more than 100 companies. In these discussions, I learned the lessons learned since the implementation of the "Phoenix Project" and the most important indicators for measuring the success of
DevOps. We also learned that DevOps may be difficult to achieve for business leaders.
We noticed one thing about corporate leaders who participated in DevOps events, and their cultural dilemmas often surpassed any other. Various concepts such as coordinated or shared responsibilities, non-blameful post-mortem investigations, speed and stability considerations are contrary to the principles they have learned in the past to manage companies. They realize that the ability to provide software faster (through new features, new products, and new ways to market) will have a huge impact on their future business, but it is difficult for them to find a language or framework to interact with them Team (or peers) communicate how to have this ability. We asked them too often to learn the language of lean manufacturing or the principles taught by W. Edward Deming. Although these methods are valuable and can establish a link between physical commodity factories and digital factories in the new century, they will still need another learning curve before companies change and stabilize. With this in mind, I think that a popular business framework, Steven Covey’s “7 Habits of Highly Effective People,” will be properly adjusted to be used by business leaders to integrate DevOps culture into their A model in the enterprise, which will be very helpful.
1 Proactive
Responsible for behavior, results and growth.
Let us first look at the eternal trend in the IT industry-the changes never stop. Twenty years ago, the client server was just beginning to grow. 10 years ago, the iPhone was just launched, and AWS still has only 2 services. Five years ago, Linux containers were too complicated to use, and network-scale enterprises had not yet opened important frameworks to open source code.
Over the past 50 years, we have undergone tremendous changes, which has created certain technology companies to take the lead in their respective industries, and also made the technology market the most valuable market today. For business leaders, it is essential to recognize that technology is driving this change at a faster rate and that it needs to be proactively prepared for the next round of change. Be proactive in meeting changes in business needs.
2 Start with the end
Focus time and energy on things that can be controlled.
No business executive would wake up and say, "We have a DevOps problem!" On the contrary, it is to shorten the time to market for new features, reduce security risks, and other indicators that reach their bottom line and make them sleepless. This is why I said that "confidence in putting software into production" is the most important DevOps indicator. Its core is to start with the end-can we put the software into production safely and reliably? Use this as a starting point to think backwards to determine how often it may occur, so as to check the existing skills (personnel), the ability to manage the deployment frequency (culture), and the correct tools and platforms (technology).
3 First things first
Do the most important things first.
It's easy to say how a zero-start company makes "DevOps" their default technology culture, but it is not true for most companies. The optimization of their organization chart is aimed at the past business model and distribution strategy. They have many application platforms and are often used in different business lines. They need to adjust their applications to become mobile applications to meet the expectations of emerging customers.
The first priority is to implement the following core elements before quickly deploying software to production and achieving business success.
Automation-For the skills and tools required to
automate repetitive tasks (such as Ansible), whether it is for applications or infrastructure, it is critical to develop relevant core competencies. For many companies, it makes sense to initially focus on existing applications (Linux and Windows) and infrastructure (such as networking, storage, and DHCP/DNS), and then develop to automate new applications and services.
CI/CD pipelines-Just as factories have always been built around assembly lines (since the early 20th century), the construction of modern software is driven by automated pipelines that can integrate source code repositories, automated testing, code analysis, and security analysis . Mastering the skills of the management pipeline and the processes related to frequent software updates is crucial, because this way you can have a framework for managing frequently updated software applications.
Application platform-When an
application is created, it needs to be deployed to the production environment. In today's world, customers want to update software frequently (such as weekly mobile applications), so it is important to have a way to repeatedly deploy application updates and extensions to meet the business needs of the application. Managing the daily activities of the application is the role of the application platform (such as OpenShift). Over the years, many companies have tried to build and maintain their own application platforms, but this approach is changing rapidly because companies realize that their value-added is in the application rather than the platform.
When these elements have been met, many IT teams can begin to containerize their existing advanced applications.
4 Win-win thinking
Work effectively and efficiently with others to achieve the best results.
Many times, discussions about
DevOps can create tensions and disconnects between development and operations teams. I often refer to the relationship between "the speed at which developers push new code" and "the speed at which operators receive updates and ensure production environments are in place" as "impedance imbalances."
Before we blame all the problems as the operation is too slow, we have to first see why developers are so fast. As can be seen from the 2017 DevOps status report, Gene Kim (and the team) measured the speed when the developer sent the code to source control (such as Git, GitHub, etc.).
They did not measure the speed of design and development. Even in a microservices environment, it may take weeks or months to actually develop software functions.
So, how can the team achieve a win-win situation? Here are some suggestions:
For the operations team, using
automated tools (Ansible) and infrastructure or code principles (such as source code control using automated game manuals), development and operations have begun to use conventional practices and processes.
For the development team, insist that security personnel be included in the development process and code review. Security should not be a final step, but should be incorporated into daily development and testing.
For both teams,
automatic testing should be required as part of the normal update. Although many groups have called for new applications to adopt the "cloud first" or "mobile first" strategy, they should also adopt the "always automated" strategy.
5 Know yourself and know each other
Establish effective communication at all levels of the enterprise.
Six or seven years ago, almost every CIO stated that they wanted to try to emulate the Internet giant Google (each engineer is responsible for 1,000 servers) in terms of operational efficiency and respond more to its developers and businesses. Unfortunately, it is difficult to find companies that can achieve the same level outside of Silicon Valley. And the technology used by Google is not publicly available to these CIOs. But the situation has changed significantly in the past few years. It’s not just Google (and other web technology giants) that have achieved high efficiency through open source projects. Other types of companies have achieved similar success (such as this, this, this, this, this, this, and many others) .
Therefore, before the CIO sends some architects to Silicon Valley to learn from the masters, it may be more valuable to understand the methods of similar companies. This allows them to gain industry-specific, region-specific and case-like experience. This also helps answer "What if we don't hire more than 100 PhD-level engineers or employees with an annual salary of millions of dollars?" Sometimes the correct answer is to use a large number of engineers who use popular open source projects.
6 Integration and Synergy
Innovate and solve problems with people with different opinions.
I often say that everything you need to succeed in DevOps is learned in the first grade. For example, "Be kind to others", "Share", "Polite to others". The challenge we face in this regard is that in order to achieve these basic goals, organizational charts and financial rewards (such as salary, bonuses, promotions) are often not consistent between the development team and the operations team. Conway's law is very useful here. If the goal is a concrete outcome (such as faster deployment of software into production), make sure that the organizational model is not the biggest obstacle to achieving this goal. To achieve this, cross-dissemination of ideas is essential. Teams need to share their goals, challenges, and resource availability with other teams.
7 Constantly updated
Continuously improve and update in professional and personal aspects.
IT companies need to ensure that their teams maintain the latest training and new skills, which is easy to say, but often this will become a neglected extra-budgetary project. The correct way to meet the needs of "skill improvement" is not to treat it as "training" (for example, to participate in courses, obtain certification), but to include it in actual work activities. We are entering the IT age, and all stable rules and best practices in the past 15 to 20 years are being rewritten and changed. Therefore, it is important to use modern methods to learn new skills (eg online, cloud, structured situations). Encourage employees to find the best way to learn (such as learning with projects, social learning, online learning, etc.), and then let them bring these new skills back to other members of the team. Let improving the skill level and skill diversity of the entire team become a key performance indicator to motivate individuals and the entire team to move forward.
The 7 habits of
DevOps framework has been proven to successfully help individuals and teams improve their interpersonal skills. These skills are at the core of any cultural transformation.