DevOps and You: Three reasons to take the plunge
What is DevOps? What does that even mean? DevOps stands for “development” and “operations”. It is essentially a Lean and Agile way of doing business for Development, IT Operations, and Quality Assurance departments. In the past, most IT organizations built large teams in an isolated fashion to separate duties and allow resources to develop deeper and deeper skills within one area of expertise. Management had to work very hard to coordinate between these groups which often led to bottle necks, catastrophic failures in communication, functional misses, and botched deadlines. Enter Agile from a thought process perspective and DevOps as a ‘way of life’. If there’s one thing that Lean Startups have taught us, is that a single multi-disciplined team can truly deliver high quality at breakneck speed when they are enabled to make their own destiny.
1 — It’s not as bad as you think
At first, developers may feel bewildered at having to learn more about operations in addition to keeping their skills up-to-date. However, when given opportunity to take a step back, most developers already have a great baseline of knowledge about things that are important from an operational standpoint. You know what a network is, you know what network security is, and you understand cloud principals such as VPC, elasticity, load balancers. Further, who better to help speed up and improve operational tasks more so than developers? When a deployment fails, developers are the ones who have to fix it. If developers had a way to make their lives easier, they will. I always say, “The best developers are lazy.” What I mean by that, is developers don’t want to continually repeat mundane tasks.
Enter new frameworks such as Troposphere and Terraform. There are other and this is not a recommendation or endorsement. These frameworks are all about helping you operate with IAAS, or Infrastructure-As-A-Service. Developers are great at writing code so now we can write code to build out our infrastructure too. Infrastructure is code! #Winning
2 — You’ll be thankful
By taking the plunge into DevOps, you’ll have a much greater understanding of the entire ecosystem leading you to become a better developer. I’m going to ‘age’ myself here; as a fresh out of college developer, I was told developers should “eat their own dog food”. At the time, that meant developers did rotations in QA and production support throughout the calendar year. The result was a developer who wrote very good code, documentation, and helped to operationalize the application. You really thought and planned each step because it could very well be you on the other end of the phone at 4:07 AM on a Tuesday night when the multi-billion dollar system drops an order worth $125 million. Trust me, you don’t want to be that guy and then have a hard time figuring out what happened because the application logs stink and there are no administration pages to help you trace the system process.
DevOps is hot! If you can add this to your repertoire, you will be thankful. You can do anything you need without needed a ton of outside help. Further, if you have some ideas of your own, you can experiment and prototype with ease. #Empowered
Polyglot. “Your what hurts?” Polyglot programming is the only way to go. Gone are the days of saying, I only code in Java or C#, etc. As computing has begun tackling more and more issues, you must use the right tool for each job. Sometimes Java isn’t the best option. Side note: That’s really painful for me to say!
3 — Automation makes development easy
Automation, automation, automation. We all know the value of automated testing with tools like TestNG and JUnit. Automated testing gave us the confidence to completely tear down functionality and rebuild it when warranted. Why? Because we had a huge battery of automated tests. If we broke something, the tests will tell us. Now, we should automate local environment setup, cloud environment setup, etc. How awesome would it be to clone a repo, run a gradle/maven command, and in 5 minutes have a Docker container with an MySql database up and running on your laptop full of test data? Got a new laptop? No problem!
git clone <github repo URL>
Sip/slurp coffee. (OMG, omg, omg! Please don’t slurp.)
Trust me. It’s awesome! It’s even more awesomer, that’s not even a word, to merge-to-master and have your CI server (TeamCity, Jenkins, Bamboo, etc.) do the same thing in AWS and fully test the entire application stack then tear it all down when complete. Repeatability is king.
Hopefully this has been mildly entertaining, educational, and helpful enough to get more people to take the step into DevOps. For more information on DevOps or anything else, reach out here.
This was originally posted on LinkedIn.