DevOps What is it?
DevOps（ english Development and Operations Combination of ） 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 .
You can DevOps As development （ software engineering ）, Technical operation and quality assurance （QA） Intersection of the three .
Traditional software organizations will develop ,IT Operation and quality assurance are set 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 deployment IT Support or QA In depth , Cross departmental support , But it requires extremely close multi department cooperation . however DevOps 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 more DevOps Have a general understanding .Flickr Developed their own DevOps ability , Enable it to support the business unit “ Daily deployment 10 second ” Requirements of ── 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 .
from 2009 Since , 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 of DevOps 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 organization DevOps：
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 ”） Will lead to “ Chimney automation ”, This creates a gap between development and operations , So we need DevOps 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, the DevOps In the organization of competence , Low risk of application release , The reasons are as follows ：
Compared with the traditional development method , Infrequent releases （ Usually “ quarter ” or “ year ” In units ） comparison , Agile methods greatly improve the frequency of release （ Usually “ day ” or “ week ” In units ）
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 .