DevOps, micro-services, containers, Agile etc. All these terms are widely (ab)used in the developer circles and for many developers they are the norm. There's no tech conference today that doesn't have a track on at least one of these and for a good reason. They are the new and, almost, established way of working with code. Some of them have been around for a while, so they are well established. Others are just getting into the enterprise world - think of containers here.
DevOps is definitely not new. If you're a developer, you've been doing DevOps for a long time. Whether the process you (the reader) and me have used all this time was right or wrong, weeeeeell, that's a different story. Today's post is not about the developers that "have been there, done that". The aim of this post is to point to some interesting resource and point those of us that are new in the field to the right direction. Maybe you're a recent graduate or you're still getting to grips with code. I hope this is as valuable to you as it was to me.
It's also important to understand that it's not about the tools. Although tools help immensely, DevOps is about the process as much as the tools. I have been fortunate to use a number of tools and I say fortunate because its tool comes with its own pros and cons. And you need that exposure. However, the most valuable asset from working with the different teams was learning about the different processes and finding what works. As you progress you'll come to understand that there's not one true path to DevOps and not one tool to rule them all. Each team has its own quirks and each project presents its own unique challenges. So you need to be ready to adapt and work around these limitations.
Where do I start?
So where should one start with DevOps? There's a large amount of material freely available on the web. However, I would highly recommend that you start by taking a look at the new [DevOps section](https://www.visualstudio.com/devops/" target="_blank) in the Visual Studio Team Service's website. The documentation focuses on the process than being a sales pitch and aims to provide a 100-200 level introduction to the various DevOps elements such as:
- Agile
- Continuous Integration
- Continuous Deployment
- Infrastructure as Code
- Source Control
- etc
You will definitely need to dig deeper and expand on these subjects, but you need to know what you don't know first. I also like the fact that the site is clean and easy to read. Most of the posts are short and to the point with nice illustrations that don't detract from the content.
What about some training?
If your first taste of DevOps got you interested and you want to take some training, there are plenty of sources to help you. The ones below are all free:
- [DevOps on Channel9](https://channel9.msdn.com/Search?term=devops#ch9Search&lang-en=en" target="_blank)
- [Using Visual Studio with Git](https://mva.microsoft.com/en-US/training-courses/using-git-with-visual-studio-2013-jump-start-8306" target="_blank)
- [DevOps with Visual Studio Team Services](https://mva.microsoft.com/en-US/training-courses/devops-with-visual-studio-team-services-and-team-foundation-server-16779" target="_blank)
Please be aware that VSTS (which is discussed in some of the courses) is FREE for up to 5 users and that Git is free and OSS. If you are a single developer or a small indie software house, you can start using them today with no added cost.