Many people have asked us how to become a DevOps engineer so in this post we will show you the skills and technologies which can get you there.
Before we start we should know what is “DevOps”. As you can see the word is combination of “Developer” and “Operations”. So a DevOps engineer is suppose to be a bridge between the development and operations processes.
Let’s see which skills do you need to become a DevOps engineer. In this post we will also discuss how you can acquire these skills for free. We have also mentioned some advanced paid courses which can help you acquire these skills quickly.
Skill 1 :- Make Linux your friend.
Nowadays whole world is moving towards opensource, and Linux is the poster boy of opensource world. Most of the new enterprise level tools and services are now compatible with Linux and people are adopting them fast. So, as a devops engineer you will definitely have to work on/with linux in your job. Even Microsoft has come up with their own Linux version. So, you can understand the importance of Linux. You can learn Linux for free from Linux Foundation courses. But, if you are short of time you can quickly learn Linux through this course Learn Linux in 5 days .
Skill 2 :- Learn scripting
Automation is a big part of a DevOps engineer job and you will be expected to automate mundane tasks. This will not only help you work efficiently but also improve the overall maintainability of your company’s setup. Easiest way to automate things is through scripting. You should learn either shell scripting on Linux/Unix or powershell on windows. Free source to learn scripting is Learn Shell. Else, you can check out this around 6 hours course on Shell Scripting to solve real-world problems like a pro.
Skill 3 :- Understand the Cloud
Companies are shifting to cloud like never before. Applications are being re-built to leverage the advantage of cloud computing. So it’s always good that you know cloud really well. AWS, Azure and GCP are three market leaders and it will be good to know about at least one of them. All these vendors have tons of free material on their sites which can help you learn their technology. Else you can checkout these awesome Udemy courses for AWS, Azure or GCP .
Skill 4:- Source code Management
Tools like git are used to manage the version of code base and avoid any conflicts in code. As a devops engineer you should have good understanding of tools like git or bitbucket since they will be useful in build phase. Later you will use them to build a codepipeline. One of the good source to learn git for free is Try Git. To become zero to hero of Git in hours, one of the best course is Git complete.
Skill 5 :- Configuration management
Configuration management is used to manage the state of your infrastructure. You can use them to patch your linux servers or manage the services. Some of the tools in config management are Ansible, Chef and Puppet. To get basic understanding of Ansible the best free course is from Redhat called Ansible essentials. If you want to get deeper understanding you can try Mastering Ansible.
CI/CD is an important aspect in DevOps engineers job profile. As we are moving towards cloud automated deployments are now essential. They avoid human errors and are fast. You can learn tools like Jenkins for CI/CD. Jenkins will specially be very useful in building a codepipeline, you can learn it for free here. Since CI/CD consists of multiple tools we think that it’s better you learn it from a single source. We found course from Edward Learn Devops: Continuously Deliver Better Software to have covered most of the topics.
Skill 7 :- Infra as a Code
The latest “in thing” in cloud is Infra as a Code. Yes you read it right, gone are the days where you have to buy the server, install OS and other softwares on it. With tools like Terraform or Cloudformation you can automate the build of your entire infrastructure in cloud right from VPC, Security groups, servers etc. to application installation and configuration. To get basic free understanding of terraform you can learn it from Katacoda . If you want to deploy AWS Infrastructure using Terraform we found Edward’s another course on Terraform to be really useful. For cloudformation we found the free AWS cloudformation tutorials to be useful. If you are looking for advance practical guidance AWS CloudFormation Master Class is a good course.
Skill 8:- Containers
Servers are now shrinking every day. With the advent of VMs, hardware anyways became less important. Dockers, a containerization technology is taking it to one level up. Now with Dockers you can have a miniature copy of your OS image with the application code. Docker will only run for a few mili seconds when a query is executed and once it’s job is done it will just stop. If you want to learn Docker for free the best source is Play with Docker Classroom. To gain more advanced skills you can learn from Docker Mastery.
Skill 9 :- Container orchestration
Tools like Kubernetes or Elastic container service (ECS) are used to manage cluster of Docker containers. These tools provides you mechanisms for deploying, maintaining, and scaling application. You can learn about Kubernetes with practical labs for free from Katacoda. For advanced knowledge of Kubernetes try the complete Kubernetes course.
Skill 10 : – Serverless
Technologies like AWS lambda are removing the need to manage the servers at all. You just have to upload you code in the AWS Lambda and set your run time environment. Rest all the issues of memory, CPU, OS patching will be taken care by AWS Lambda. It’s important as a DevOps engineer that you understand how the lambda works and how you can set it up. You can learn about AWS Lambda for free from this AWS Lambda Tutorial. For more advanced real world example you can refer how to build a serverless App with AWS Lambda .
We hope this post is helpful to you in understanding the skills which are important for a DevOps engineer and how you can master these skills. You can expect questions related to these skills in the interview of a DevOps Engineer.
In this post we will show you how to apply an SSL certificate on an AWS ELB.
To use the certificate in ELB first we will have to import it in AWS Certificate Manager(ACM).
Currently ACM needs PEM files namely Certificate Body, Certificate Private Key and Certificate Chain. You can check ACM SSL certificate pre-requisites here.
If you have the SSL certificate in .pem formats you can directly go to Step 7. Else if you have certifcate in .pfx or other format please follow from Step 1.
Step 1 As mentioned earlier ACM expects the certificates in PEM format. So we will first convert the certificates from pfx to pem format using openssl tool.
Step 2 Download the openssl binaries for windows of Linux from the links on openssl site.
Step 3 Once downloaded, install it. In our case we have installed the exe on windows.
Step 4 Go to the location where the OpenSSL is installed. In the bin folder you will find the openssl.exe . We will use this exe for conversion as per below commands. (You may need the import password you used while generation of SSL certificate)
Execute below command in windows command prompt(CMD) as an administrator.
C:\OpenSSL-Win64\bin>openssl pkcs12 -in "C:\OpenSSL-Win64\bin\test-cloud.cloudvedas.com.pfx" -nodes -out "C:\OpenSSL-Win64\bin\test\test-cloud.cloudvedas.com.pem"
Enter Import Password:
Step 5 In the above command with “-in” you provide location where your .pfx certificate is kept. In “-out” you define the destination where the newly created .pem file should be kept. You can create a pem file from other certificate formats like .cer, .der, .p7b etc. also using openssl. Just explore its help options and execute command as we have done above.
Step 6 Once the .pem file is created you can open it with notepad. It will have multiple certificates and a key in it.
In this post we will see how to start or stop Jenkins on different Linux distributions. Also we will see how to check the status of Jenkins service and identify the port on which it is running or listening.
If you have installed Jenkins on a Fedora or Debian based distribution like Ubuntu, you can use the below commands:
$ sudo service jenkins start
$ sudo service jenkins stop
$ sudo service jenkins restart
Check Jenkins status
$ sudo service jenkins status
For other Linux distribution like RHEL or CentOS use:
$ sudo systemctl start jenkins.service
$ sudo systemctl stop jenkins.service
$ sudo systemctl restart jenkins.service
Check Jenkins status
$ sudo systemctl status jenkins.service
Check Jenkins Port
To check the port on which Jenkins is listening we can use “lsof”(check installation instructions at the end) command.
If you want to learn further you can opt for either classroom course or online course. The classroom course is generally expensive and range between USD 600 to 2000. While the online course can cost you anything between USD 10 to USD 300 depending on which course you choose.
Our personal opinion is that you should go for online courses as they are cheaper and if you follow their labs honestly(yeah not just seeing him do it but actually doing the labs yourself 😉 ) they can be as good as classroom training.
In online courses we found courses from two providers acloudguru and linux academy to be good. Earlier the Linux Academy course was only available through their site using a monthly plan but the same course is now available on Udemy too. The acloudguru course is already available on Udemy from longtime. Though both these courses are available to purchase from their respective site under monthly subscription but, if you buy these courses from Udemy you pay only once and get lifetime access to same courses. And many times Udemy provide heavy discounts on courses which can get you a good bargain.
The acloudguru course is delivered by Ryan who is enthusiastic and teach you really well. Though sometime he can get a bit click happy and can quickly zip past few topics. But, you always have the option to rewind and go through the topic again 🙂 .
The labs in the course are very useful and helps you get deep understanding of topic. The course also has quizzes to check your knowledge.
AWS doesn’t reveal minimum passing score and it keeps on changing. But we have observed that generally people who score above 70% passed the exam. You will immediately see the score on you screen once you finish the test and will also get a report on your mail within 1 hour.
Get good sleep and keep calm during the exam.
You won’t get more than 3 mins per question.
You may find some very long questions in exam. Best strategy to tackle them is to read the answer options first and then check for relevant info in question.
Since it’s an AWS exam so look for AWS related options in the answers. Chances are high that Non-AWS related option in answer will be wrong.
AWS exams generally don’t focus on mugging their datasheets. So you won’t get a question like “How much RAM does a C3.xlarge offer?” .
That’s all folks! Best of luck for the exam!
Do let us know in comments section if you have any query.