Should I learn Puppet / Chef?

Last month I had put up a notice about my Puppet course in LinkedIn and there was good response to it. (I ran two batches of the course). While most people knew what Puppet was, there were also a significant number of people who wanted to learn DevOps and they have read Puppet is DevOps and hence wanted to learn it. I asked them if they had managed Linux systems and if they had done work as Linux System Admins, the answer was in negative. I advised them that Puppet may not prove very useful to their career.

We can understand that people want to ‘learn’ the latest in technology so as to keep themselves relevant, ensure progress within their company and increase the chances of landing a new desirable job. While keep oneself relevant must be the goal of everyone, we need to also understand which technologies to choose so that it flows naturally into what you are doing. I have been advising people that they should never give up the experience they have gained till now. Rather they should see how they can leverage on their experience when it comes to new technologies. I have had more than one conversation with folks with 10+ years of experience who have good experience in Storage / Database / Network Ops who want to give everything up and take up a Cloud job by clearing one of the certifications.

Similar things are happening on the DevOps front. Those who want to move to DevOps have to understand DevOps first. It has two parts: the Dev part and the Ops part. The Dev part is where we are looking it version control, its linkage to continuous integration and deployment. Here is where you will hear about Git, Jenkins and CICD. The job here could be to setup the CICD pipeline. The Ops part is about maintaining the configurations of all servers in the infrastructure. In order to do this, you must have been a system administrator earlier. You must understand how to install packages in various flavors of Linux, you must understand how to start and stop services in Linux, you must understand about configuration files and how they affect the installed software. Here is where you will hear about software like Puppet, Chef, Ansible and Salt. Remember, companies would go for these software mostly when they have large number of systems and want to automate. Essentially it means they want someone with good system administration knowledge to take care of this automation process. There will be some minor amount of code that needs to be written in these software. So you should also have some shell scripting experience.

So when you are thinking of learning Puppet or Chef or Ansible, make a note of what I had stated above. If you are already in the system administration domain and are not very afraid of programming a bit, then jump in to Puppet or Chef. If you are senior person and have never been involved in system administration, then you need to make it clear to yourself as to why you want to take up DevOps. You must have a plan in place since you will be spending your time and money on this. If you are relatively junior, say one or two years experience, understand system administration and jump in to DevOps. It is probably the correct time to do so.

We do have Puppet and Chef courses at CloudSiksha, in case you want to progress in the area of DevOps.