The World of DevOps
The world of DevOps is often misunderstood, under appreciated, and the most needed skillset in the tech world today. Everyone is talking about how everyone should code, but if you read my previous posts, I don't agree with that. Everyone should learn logic and problem-solving skills, but not everyone should code. However, I digress. :-) DevOps is the skillset that helps projects run automated tests, get built, get deployed to servers or devices and much more.
Azure, AWS, and other cloud-based solutions have made hosting of web applications much easier. You don't need a full staff to maintain a private data-center, pay for the building, the racks, etc... So you will hear terms like Platform As A Service (PaaS, I always think of Easter candy when I see that though :-)), or Infrastructure as as Service (IaaS). There are differences between that but I'm not going to get into that here. I want to get into the DevOps world. How do you handle deployment from your QA environment, your staging environment, your production environment? How do you promote builds between those environments? How do check-in code? Do you run automated tests before EACH build? What happens if those builds fail? Do you know what Chef, Puppet, Jenkins, Travis, Bamboo, TeamCity, etc... The list goes on.
DevOps Tools
There is a great site: https://xebialabs.com/the-ultimate-devops-tool-chest/deployment/ that gives you a short list of devops tools and how many there are.The same site also has a great Periodic Table of DevOps. There are scripting tools like, PowerShell, Grunt, Gulp, WebPack, and the list goes on.
There is SO much to learn about DevOps. The world of DevOps is a full-time position, it is critical to help developers be able to perform at a high-level to have these skills paired with a DevOps expert. I can code in several languages, C#, JavaScript, C++, Python, but knowing ALL the tools that I need to know is what makes me love my career. I will NEVER get bored with work. It is like a linguist trying to learn all of the languages in the world. They will continue a lifelong commitment to learning. That is what a developer needs to embrace, not tolerate, not muddle through, but embrace. Developers can be DevOps experts, as a level of expertise in their field.
I view DevOps as a specialty skill in development. It is like when a doctor becomes a neo-natal cardiac surgeon, rather than a general practitioner. Development has several areas of expertise: Database specialty (Sql/NoSql/ERD Tools) formerly known as a database developer or database administrator skill, DevOps specialty (CI, Deployment, Builds, Script Tools (Grunt/Gulp/PS/WebPack), Testing specialty (N-unit, J-unit, Jasmine, Mocha, Jest, Specflow), and the high-level division Web vs Mobile developers.
What is your specialty?
Like most of my posts, I like to have some kind of tangible action. This is an easy one. What is your specialty? What do you want it to be? If it is DevOps, contact me and I'd love to chat with you about your journey. I guess it is not that easy. I have noticed more and more that companies are expecting senior developers to be DBA, DevOps experts, and Testing experts in addition to knowing how to code. Imagine if your team code focus on coding and not worry about how it is deployed, how it is built in other environments, and have that maestro on their team that can handle all of that, and educate them on best practices.
So what is your specialty? Let me know and let's see how I can help you on your journey.