Puppet For doing DevOps For my classmates , It's a familiar name , But there are still many people who don't understand it . So let me first briefly introduce :Puppet By Puppetlabs System management framework and tool set developed by the company , Be used for IT Automated management of services . Because of the good declarative language, easy extensible framework design and reusable and sharable modules , bring Google、Cisco、Twitter、RedHat、New York Stock Exchange And many other companies and organizations use it in the automatic management of their data center puppet. Semi annual PuppetConf The conference is also one of the most important technical conferences .AWS Of CloudFormation There is a paragraph in the document about Puppet Introduction to , It begins by saying : Puppet has become the de facto industry standard for IT automation.

meanwhile ,puppet stay Openstack It also plays an important role in :Openstack-ci The community uses it for Openstack wiki System , Operation and maintenance management of continuous integration system and so on ( See http://puppet-dashboard.openstack.org:3000/); In addition, the community's puppet-openstack The project is used to complete Openstack Automated Deployment and management of services , At present, it has stackforge Hosted in and through Openstack Of Gerrit System to manage code ; Besides ,Cisco,RedHat,Miriantis And so on Openstack It's used in both the distribution and the deployment tools puppet-openstack. at present ,Puppet stay UnitedStack It also plays an important role in the daily operation and maintenance management and automatic deployment of products .

Okay , I just didn't understand Puppet Our readers now know Puppet It is a powerful automatic operation and maintenance management tool . Maybe someone has finished the package and is ready to try it , Don't worry , of puppet You can find a lot of information on the Internet , The official documents are also detailed to “ outrageous ”. About puppet How to use it and how to use it Puppet management Openstack Analysis of the deployment plan , Oh , Are not within the scope of this article .

The focus of this article is on the eight diagrams Puppet Why so successful . meanwhile , In order to avoid causing non Puppet Programmer's sensory discomfort , I've blocked all kinds of code level presentations and detailed discussions .

Luke Kanies The road of Technology

The story starts from Luke Kanies, the twitter Nicknames and puppet The name of the server-side process of the same name , A long time ago ...

grow up : Hard times as a student

stay 1992 In the year ,Luke I went to Northland college and became a chemistry major , This is a primary school in Wisconsin , The United States ranks in 178 Hovering around .

The young man was very competitive. After only one year, he went to the famous Reed College , Became an alumnus of jobs . Unfortunately, Reed College has been rated as one of the top ten tough schools in the United States ,6 The annual graduation rate is only 75%, There is a 1/4 Most of the students can't get their diplomas . It's different from the mode of free choice in many liberal arts colleges , Reed's freshmen have to complete the required humanities courses , Learn the classical culture of Greece and Rome . This course has more than 50 Years of history , Reed used the school's most powerful faculty to lay a cultural foundation for his students . It's not over yet , After that, students have to choose courses in four expanding fields : literature 、 philosophy 、 religious 、 Art ; history 、 Social sciences 、 In Psychology ; In the natural sciences ; And mathematics 、 Logic 、 Linguistics or foreign languages . Junior students must pass the professional test , Senior students have to complete a thesis to graduate . Graduation thesis is not terrible , The terrible thing is that the duration of the graduation thesis of Reed College is one year , So there are students who want to study abroad , Please pay close attention to the names of the other nine universities …

Should come or will come ,1996 year ,Luke Senior year . If you want to graduate successfully , He has to finish this year long thesis project , This means that within this year he has to design and implement , And the experimental data prove that , Finally, the paper is organized to complete the project .Luke The title of my thesis is Site-directed Mutagenesis in Soy Cytosolic Ascorbate Peroxidase, I've been deliberating for a long time , The Chinese translation is roughly : Site directed mutagenesis of ascorbate peroxidase in soybean .

working : Drifting and accumulating

luckily , We don't have to study papers that can't read their names all at once . Far away ,Luke After graduation, instead of looking for a job related to chemistry, I went to Cypersite When Mac System administrator . stay Cypersite In the days ,Luke Use AppleScript Do it MacOS Management of , But after less than a year, I didn't become a regular , He ran away .

Because in 97 Year of 12 month , He was in Metro One Telecommunications Found a job as a system administrator .Metro One Telecommunications It was a NASDAQ listed company , The main business is to provide telephone number inquiry service . At its peak , The company has 7000 employee , However, in 2009 Beginning of the year , After selling out the last part of the business , The company still has 3 people . Take a look at Metro One today Share price :0.01 dollar . The communication industry has been a yellow flower for a long time , Dr. Wu Jun has been in 《 At the top of the wave 》 Describe these histories vividly .

It's far away. , stay Metro One Of 1 Years and 9 In the months ,Luke My main job is to manage the 30 A call center , Including the deployment and setup of call center computing devices , Plus the uninterrupted maintenance from the headquarters . See here , It suddenly occurred to me that someone startup The founder of the company has done the same job in the telecommunications sector before , Later, he went to make a very dazzling visual deployment tool , I guess the deployment of the communications industry is full of repetitive mechanical labor , There is a strong need for Automation . Just to mention here ,provision It used to be a term in the telecommunications industry , It refers to the preparatory work before the installation of communication equipment , And in the devops It is often said that bare-metal provision It means installing the operating system or hypervisor The process of .

stay 1999 year ,Luke Left the phone company , stay BlueStar As a systems engineer ,BlueStar It's a solution dealer , The main business is :RFID, Auto ID, POS, Mobility products.Luke Mainly responsible for a DSL ISP Design and implementation of server-side infrastructure . He built an automated and centrally managed system , Responsible for the continuous development, implementation and maintenance of infrastructure projects .

Luke stay “ Lanxiang ” It's less than two years , He went to Caterpillar financing services as a consultant , Provide system automation management related consultation . I checked , Caterpillar is in the world 500 strong , Founded on 1925 year , Is the world's largest manufacturer of construction machinery and mining equipment 、 One of the manufacturers of gas engines and industrial gas turbines , It is also one of the largest diesel engine manufacturers in the world . I didn't find it on the Internet Luke What did you do during this period , I can only sigh Luke As a system administrator, how to mix into a high handsome rich financing company as a consultant .

Start of business : Tinkering with the wheels

After two years at caterpillar ,Luke Start flying solo , Found a partner to create Reductive Consulting(2010 Renamed in Puppetlabs), The title is independent consultant , Specialized in Unix Consulting on infrastructure Automation . He set out to study the current open source system management and monitoring tools, such as CFEngine,ISconf,Nagios wait , And through the secondary development, these tools are combined into a set of solutions to meet the needs of customers . This is an important stage ,Luke I began to change my accumulated experience and thinking into rewriting the tools , During this period, his main work included rewriting CFEngine And developed ISConf3, It's very important for later Puppet Development has had an important impact .

CFEngine brief introduction

First , Let's talk about the famous CFEngine, This is a model born in 1993 Years old system configuration management tool ,CFEngine The author of Mark Burgess Hope to automate simple management tasks , Make difficult tasks easier . Its core idea is to make the system converge from any state to an ideal state .

Such a tool was a winter's cotton padded jacket for system administrators who were still using scattered scripts to manage machines at that time , Ice cream in summer , Light bulb in the dark , Bread in hunger . after ,CFEngine Naturally, it has become a benchmark in system configuration management tools .

CFEngine There are two working modes : Both available standalone The pattern is through cfagent To complete the configuration management of a single server , It can also be done through C/S framework (cfservd and cfagent) To manage the distribution of configuration management for the whole cluster .

CFEngine The way it works is based on script distribution : There is a parameter in the configuration file called shellcommands, Used to configure commands or scripts to be executed ,actionsequence Is used to set shellcommands Execution order of .

Look again. CFEngine Version update for :1993 year ,CFEngine1 Release ;1998 year ,CFEngine2 Release , And ten years later , until 2008 year ,CFEngine3 be long in coming , The third edition has changed a lot , By using DSL To define the state of the system , So that it can no longer be compatible with the old version CFEngine2 Configuration language of . This article talks about CFEnigne when , Refer to CFEngine2.

ISconf brief introduction

ISconf Another configuration management tool , Its core idea is that the final state of the system is consistent , Even if the managed machine is off , When they're done starting up , The relevant command will be executed , Get to a consistent state . At the same time, the whole system does not need a central node , Commands can be executed on any node and copied to all nodes .ISconf It's been through 4 The evolution of generations .ISconf1 and 2 By shell scripting ,Luke stay 2002 It was developed and designed in ISconf3, And use Perl stay 2 On the basis of .ISconf3 There are three core characteristics :

  • Deterministic execution sequence
  • Exit immediately if there is a failure in execution
  • State maintenance

From the characteristics above , It's a cool product .Luke stay 02 Completed the development in , And in 03 Year of LISA(Large Installation Systems Administration) An article entitled 'ISconf: Theory, Practice, and Beyond' Of paper, When it comes to the ISconf Characteristics of , Development ISconf The experience and lessons learned from the experience , And the CFengine Integration of , analysis ISconf 3 And so on . however ISconf The community is introducing ISconf3 The history of Luke My paper is full of criticism , You can ISconf I read on the official website of This article . however ,ISconf Stop at the Fourth Edition , The last release time stays at 06 year 8 month 13 Japan , Unknown cause .

bud : Self made wheel

With Luke My dream is bigger and bigger , These toolsets are getting bigger and bigger . At this time, the existing open source tools can not meet his needs . Final , He realized that it was only himself , To create the tools you want . As an operation and maintenance personnel for many years , He deeply felt that the hard pressed system administrators needed a new tool to make their work more efficient , More convenient . therefore , He began to think about developing a new tool , First of all, this tool is designed for system administrators . So how can it be said that it is designed for system administrators ?

Let's briefly consider the main requirements of system administrators for configuration management tools : The cost of learning is low , Develop efficiently , Cross platform , Code can be reused , Security , High scalability, etc .

The best situation is that the system administrator only needs to care about the status of a service or software package , For example, I want to deploy a apache web The server , I only care about apache The package is in the installed state , A service is a running state , And don't let me worry about this apache The bag is packed in Ubuntu The next one is Redhat Next , And then it's about execution yum install still apt-get install, And then I have to worry about this apache What is the purpose of the process init still upstart Managed .

Besides , And how to deal with dependencies . Previous configuration management tools focused on how to complete each independent task , For example, configuration apache Service is a period of shell Script only , Without considering that there is a connection between them , For example, when apache When the configuration file of , It's time to restart apache Services to make it work , And restart apache The premise of service is that the system has been installed apache.

It was very important for the mainstream at that time to distribute shell/perl Script configuration management software , It's almost impossible . however Luke That's how it's supposed to be , He's thinking about Puppet The design of , We want to abstract the system into resources : Using object-oriented concepts , Group each resource type into a set of attributes , Each attribute has its own behavior , And construct resource types and attributes into classes , Finally, these attributes are used to make the resource reach the desired state , Instead of using the resources themselves to do the work . meanwhile , Construct a directed graph of all resource dependencies , Through this dependency description , System administrators can manage complex business logic .

The more you think about it, the more excited you are , therefore Luke start coding 了 .Puppet The first prototype of is written in 04 In the summer , But he didn't put it at the top of the list . So in 9 Month of the month ,Luke Actually ran to BladeLogic Product design , This is a company specializing in commercial configuration management software , Its products were successful at that time , However Luke Find out BladeLogic I just want to sell software to big companies instead of designing great tools for system administrators . stay 05 Year of 2 month ,Luke Make up one's mind to continue to do Puppet Development of . therefore , stay BladeLogic Enough of it 7 After a month ,Luke Chose to leave .BladeLogic And I finally got what I wanted : By BMC Acquired , Of course, this is something .

Hard choices : Developing language and design philosophy

And then Luke Back to Reductive Consulting, That is to say Puppetlabs The forerunner of , Here we go Puppet Full time development of .

But he had a tough technical problem : As a Perl The programmer ,Luke It's painful to find that ,Perl I can't handle that puppet Relationships between classes . At that time Python Considered the best choice for system development , however Luke What students can't accept is not Python The indentation problem of , It is print It's a statement, not a function ,len The fact that it's a function, not a method , Make him feel “ The eyes are bleeding ”. Now , A friend told him Ruby cool , So he's trying 4 After one hour , I wrote a functional prototype , You can't extricate yourself from it . But he's also a little worried , Because at that time Ruby It's not mainstream , because ROR(Rails on Ruby) They're not even born yet , But given his experience , Feel like using Ruby The development efficiency of is very high , So he decided to take a risk .

After this problem is solved ,Luke Another problem : Although he has written a lot of gadgets before that , Accumulated rich experience , But none of these tools has more code than 1 Wan Xing . It also means designing Puppet In the process of constructing , There must be a lot of holes . therefore ,Luke Developing Puppet In the process of development, we always require ourselves and the development team to abide by two guiding principles : First, the design should be as concise as possible , Program availability is always higher than new features ; Besides Puppet The first is a framework, the second is an application . After solving the problems of language selection and design philosophy ,Luke Begin to concentrate on Puppet Development of .

so what

And then there's no then , With Puppet Fast iteration of releases and versions , And the hot development of the community ,Puppet Naturally, it became what it is today . The second half of the article was to introduce in-depth technical details and many other details , But in response to the demands of the editor in chief and the masses to maintain the pure style of eight trigrams , The second half was brutally cut off during internal approval . But I want to know more about Puppet Readers of , In my next blog post, I will explain why from the aspects of architecture and hierarchical model Luke say Puppet It's a simple, complex system . about Puppet and Luke This is the end of my introduction , Let's take another look at the hot issues that the masses like to see and hear .

Investment situation

It started two years ago ,VMWare As Puppetlabs Of 6 One of the investment companies , towards Puppetlabs Cast 850 Wanmei Dao . In this year's 2 month ,VMWare Announce to raise to PuppetLabs The investment of :3000 ten thousand . Besides ,VMware Executive vice president for Cloud Architecture and management Raghu Raghuram Will enter the Puppet Labs Board of directors .

This shows from the perspective of capital market Luke and Puppet The success of the , Good and good . But it also raises concerns : Some people think Puppet It's very important to be independent , The reason is that DevOps The success of enterprise infrastructure management depends on what kind of tools the organization chooses for enterprise infrastructure management ,Puppetlabs As IT A leader in automation management , However VMware Yes Puppet There is a strong voice , at present Puppetlabs It took a lot of energy to Puppet On the development of enterprise version (Puppet PE), Used for and VMWare vCloud Automation Center And so on . This is not a good thing , There may be a huge gap between the community version and the commercial version , It could even happen Oracle and Mysql Stories like that .

I want to see others VMWare Old rival Amazon Reaction , Even if Amazon Admit in the document mentioned at the beginning Puppet It's a de facto industry standard , But considering its old friends VMWare Hold the right hand Puppetlabs 2/3 The investment of , In its new OpsWork It's used in the service Chef For system configuration management , This is born of Puppet Then another open source configuration management tool .

And listen to other people .Matt Asay And Luke I've been a good friend for many years , stay Lukes And Andrew Shafer found Puppet Labs after ,Matt Many commercial proposals have been put forward , Including financing , but Luke I want the company to remain independent .Matt Answer the reporter calmly : If you know Luke Kanies This guy , You know it's very important for him to be independent . He grew up in Tennessee , It's not the kind of person who sells his soul .

Luke stay IM Shanghe Matt Expressed my opinion :“ The trend of transforming to the cloud will bring unlimited opportunities to the next generation of system platform management tools , Yes VMware such , Yes PuppetLabs The same is true . Even if Puppetlabs By VMware Control , But these systems are still built on open source , And give them some autonomy .Puppet Have an active open source ecosystem , It's like OpenStack equally , It's a good complement to investment .”

Finally, let's talk about my opinion , First Puppet Born to be open source , Its community is very active , And from 2.7 Start to become more friendly Apache license ( It was strict before GPL). therefore , Even if it happens like MySQL Things like that , There will still be another MariaDB appear , What's more, there are rising stars Chef On the side of the covetous ,VMWare I don't think I'm going to make such a bad move . meanwhile , To blame Puppet Focus only on VMware Product integration is biased , Although recently PE There's a lot of movement in this , however Puppetlabs And a lot of energy has been put into Puppet-Openstack In the community , In the following Puppet This will be explained in a series of blog posts . therefore , I'm not worried about Puppet Will it be the next MySQL.

What we learned ?

In the front of a pile of gossip , I talked briefly about Luke and Puppet The story of . Everyone might see something different in it . To me, ,Puppet The reason for success , I think there is :

  • Do what you are best at :Luke Rich experience in operation and maintenance and development of configuration management tools , On this basis, we can develop Puppet It's one of the foundations of success ;
  • Extract its essence : When researching similar tools and products ,Luke I don't just see the shortcomings , They also absorb their advantages ;
  • aim high :Luke Development puppet The motivation at that time was to provide the best CMS Tools , Not just to make money , Be bought , list . The simpler the motive is , The greater the probability of success ;
  • Dare to think and dare to do : Now pick your cell phone , We hardly think about whether the mobile phone is a touch screen, but to see how big the screen is ,PPI How high , Because mobile phones are touch screens, it's natural , However, in iPhone Before , Touch screen phones are still a rarity , Everyone is going further and further in the direction of more functions ; Again , Now in use puppet when , You take it for granted to use a declarative configuration language , But I don't know puppet Born at the same time , They're all imperative or procedural configuration languages .


All the plots of this article come from my one week night life , Read all kinds of blogs , Journalism , Comment on , Code , Just scraped it together , If there is any discrepancy with reality , Please laugh it off .

About Puppet I have to tell you more about the story

  1. And 《YII frame 》 A story that has to be told —5 This is a table of contents

    And <YII frame > A story that has to be told — The basic chapter The first 1 Chapter Course objectives 1-1 Course objectives (00:54) The first 2 Chapter Knowledge preparation before class 2-1 YII Startup and installation of (05:12) 2-2 YII Request processing flow ( ...

  2. 【 Solicitation 】Hadoop Special planning for the 10th Anniversary —— I and Hadoop A story that has to be told

    2016 Year is Hadoop My 10th birthday , In this year ,CSDN Will take the technology and the actual combat as the theme to work together with you for Hadoop celebrate a birthday . Its main contents include Hadoop Professional dictionary . Series video technology analysis .Hadoop Industry practice . Online Q & A . Offline Salon . ...

  3. asList and ArrayList A story that has to be told

    Catalog brief introduction establish ArrayList UnsupportedOperationException asList transformation summary asList and ArrayList A story that has to be told brief introduction Referring to collection classes ,ArrayL ...

  4. WeChat 、QQ And cell phone number !

    Send words , Send pictures , I'm in the mood , Video chat , Check out the people around , What wechat can do QQ Fine , So what's the difference between them , I QQ Well used, why do I need all my contacts to go to wechat ? We had it a long time ago QQ, But in QQ Time , We use QQ Send a message and chat ...

  5. Visual Studio 20 Anniversary of the , Me and VS A story that has to be told ( Benefits included )

    Visual Studio 2017 The official version has been released as scheduled ( Click here to view the full release record )! Since last year 11 Officially announced in Visual Studio After the project , Microsoft finally officially launched “ The strongest integrated development environment in the universe (IDE)” The most ...

  6. 【Hadoop 10 Anniversary of the 】 I and Hadoop A story that has to be told

    What is? Hadoop        This year is 2016 year , yes hadoop My tenth birthday , Through time and space , Say happy birthday to her , January 28, 2008 , It's a special day ,hadoop With the first cry , Came to this world , ...

  7. Visual Studio 20 Anniversary of the , Me and VS A story that has to be told

    Visual Studio 2017 The official version has been released as scheduled ( Click here to view the full release record )! Since last year 11 Officially announced in Visual Studio After the project , Microsoft finally officially launched “ The strongest integrated development environment in the universe (IDE)” The most ...

  8. CSS absolute And relative A story that has to be told

    At the beginning : absolute say :“relative, I don't want to see you in my life !” Why? ? They love each other so much , follow like a shadow , What's going on in this unknown story , Let go absolute So annoying relativ ...

  9. and java The story that an interview has to tell

    Never thought of , Can have the opportunity to interview others , Thank you very much for the company now , Give me a lot of opportunities to try some work from different aspects , Before joining the company, I have participated in many interviews as an interviewer , But also good , The passing rate of the interview is good , Most of it is because the treatment is not agreed . Now? ...

Random recommendation

  1. Storm Log multiple rewriting problems encountered in ( One )

    Business description : Statistics from kafka spout Number of data read in , And write redis The number of pieces of data , write in hdfs The number of data pieces of , write in kafaka The number of data pieces of . And every time 5 Second, the data will be in accordance with json Write to the log in the form of a file . It contains ...

  2. mysql Horizontal split and vertical split are introduced in detail ( Reprint http://www.cnblogs.com/nixi8/p/4524082.html)

      vertical Vertical splitting is the splitting of data table columns , Split a table with more columns into multiple tables We usually split vertically according to the following principles : Put the infrequently used fields in a separate table ; hold text,blob Such large fields are split out and placed in the attached table ; Frequently combined queries ...

  3. Sql server Inquire about

    --Student(S#,Sname,Sage,Ssex) Student list --Course(C#,Cname,T#) The curriculum --SC(S#,C#,score) League tables --Teacher(T#,Tname ...

  4. Summer training (4) Play seven ——— Combine (hdu1850)

    Topic summary : You won the first set . The devil's second game is , If there is N Stack of cards , There are several possibilities for the pioneers to win . Problem analysis : Nim game , First get n The number of stack cards XOR and , Then XOR sum is XOR with the number of each deck , If the result is less than the number of original deck Maybe ++ ...

  5. puppet Deploy horizon server Required parameters and deployment logic

    Required parameters :   $secret_key,   $bind_address = '',   $cache_server_ip = '',   $cache_ser ...

  6. easyui Source translation 1.32---ProgressBar( Progress bar )

    Preface Use $.fn.progressbar.defaults Override the default object . Download the plug-in translation source code The progress bar provides a feedback to show the progress of a long running operation . Progress bar that can be updated , Let the user know that the operation is currently being performed . Source code ...

  7. [Node.js] node-persist: localStorage on the server

    // Save data var storage = require('node-persist'); storage.init(); var people= require('./people.js ...

  8. mac edition chrome Upgrade to Version 65.0.3325.18 Can't open Baidu after bing sogou

    mac edition chrome Upgrade to Version 65.0.3325.18 I found that I couldn't visit Baidu all of a sudden , sogou ,bing, Shenma and a series of domestic search engine websites . Even Baidu's sons know , Baidu Encyclopedia is not accessible . 1. First thought ...

  9. JS Addition, subtraction, multiplication, division and comparison assignment in

    Implicit type conversion Use Boolean(), Number(), String() The way to convert data types is called display type conversion , The opposite is implicit type conversion , Implicit type conversion has no obvious mark , It is JS The interpreter feels like doing this ...

  10. Red rice Note5 Access to all China Netcom 5.0 Time , In fact, Qualcomm has fallen behind !

    As early as last year 12 A new generation of snapdragon was officially released in June 845 processor , And then there's people's concern about carrying snapdragon 845 Processor phones are full of expectations , But in the twinkling of an eye 2018 Year of 3 month , At present, Samsung is the only high-end flagship machine that has been released S9 And Samsung S9+, and ...