DevOps What's this
DevOps（ EnglishDevelopment andOperations Combination） It's a set of processes, General designation of methods and systems, For development（ application program/ software engineering）, Technical operation and quality assurance（QA） Communication between departments, Collaboration and integration. It emerged because the software industry is increasingly aware of： To deliver software products and services on time, Development and operation must work closely together.
Can handleDevOps See development（ software engineering）, Technical operation and quality assurance（QA） Intersection of the three.
Traditional software organizations will develop,IT Set operation and quality assurance as separate departments. How to adopt new development methods in this environment（ For example, agile software development）, This is an important subject： In the way it used to work, Not required for development and deploymentIT Support orQA In depth, Cross departmental support, But it requires extremely close multi department cooperation. howeverDevOps It's not just about software deployment. It is a set of processes and methods for communication and cooperation among these departments.
Enterprises that need frequent delivery may need moreDevOps Have a general understanding.Flickr Developed their ownDevOps ability, Enable it to support the business unit“ Daily deployment10 second” Requirements── If an organization wants to produce for multiple users, Versatile applications, Its deployment cycle is bound to be very short. This capability is also known as continuous deployment, And often linked to lean Entrepreneurship.
from2009 From the year onwards, Relevant working groups, Professional organizations and blogs are springing up.
DevOps The introduction of, test, Function development and maintenance（ Include── Once rare but now common──“ Hotfix”） Have a profound impact. In the absence ofDevOps In the organization of competence, There is information between development and operation“ Wide gap”── For example, operators need better reliability and safety, Developers want the infrastructure to respond faster, The requirement of business users is to release more features to end users faster. This information gap is the most common problem.
The following factors may promote the introduction of an organizationDevOps：
Using agile or other software development processes and methods
Business leaders demand faster product delivery
Virtualization and cloud computing infrastructure（ May come from internal or external suppliers） Increasingly common
Popularization of data center automation technology and configuration management tools
There is a view that, Dominant“ tradition” American management style（“ Sloan model vs
TOYOTA model”） May lead to“ Chimney automation”, This creates a gap between development and operations, Therefore needDevOps Ability to overcome the problems.
DevOps Often described as“ More collaboration between development team and operation team, More efficient relationships”. Due to the improvement of cooperation between teams, The efficiency of the whole organization is improved, The risk of the production environment with frequent changes can also be reduced.
DevOps Impact on application Publishing
In many enterprises, Application publishing is a project involving multiple teams, Under great pressure, High risk activities. However, theDevOps In the organization of competence, Low risk of application release, The reasons are as follows：
Compared with the traditional development method, Infrequent releases（ Usually with“ quarter” or“ year” As a unit） Comparison, Agile methods greatly improve the frequency of release（ Usually with“ day” or“ week” As a unit）
Reduce change scope compared with traditional waterfall development model, Adopting agile or iterative development means more frequent releases, Less change per release. Due to frequent deployment, So each deployment will not have a huge impact on the production system, Applications grow at a smooth rate. Strengthen release coordination and close the skill gap and communication gap between development and operation by a strong release Coordinator; Using electronic data sheets, Teleconferencing, Instant messaging, Enterprise portal（wiki,sharepoint） And other collaborative tools to ensure that all relevant personnel understand the content of the change and cooperate fully. Powerful automated deployment means ensure the repeatability of deployment tasks, Reduce the possibility of deployment errors.