A few days ago Microsoft launched a new factory. Yes, you heard right, a factory. But it is not a traditional foundry and it is not producing any gadgets or physical goods.
It is located at the intersection of software engineering, technology operations, and quality assurance. It will produce lasting business success with DevOps through learning.
We all know there is no way you can buy DevOps-in-a-Box, but we thought it should be possible to at least produce DevOps experts, off-the-shelf, factory style. How did this factory come about and how would a DevOps factory do that? Let me explain.
True to a DevOps approach we setup a multi-disciplinary team of subject matters experts and had them brainstorm and build this new virtual factory from ground up. No pre-conditions for the team except two: It had to be a DevOps learning experience spanning Microsoft and OSS tools and products and it had to be a fun experience. Out came the DevOps Factory: A gaming, competition, and learning experience enabling people to learn about a diverse set of technologies and practices around DevOps.
As much as learning new stuff always is fun, we wanted it to be more. So we added a competitive angle to the experience of the DevOps Factory. And while you check out the different floors and rooms of the factory, you will learn new things at every step.
Learn and Earn
The whole factory consists of different floors and each floor has a number of practice rooms. Before you leave any one room you want to test your knowledge and earn well deserved points. While you wander throughout the factory floors, automated factory staff will make it easy for you to collect points and pick up badges to demonstrate your growing knowledge and expertise in DevOps practices. At any time you will be able to see how you stack up against peers and compare your results, points, and badges.
Later on, before you leave, don’t forget to check your point balance. While it is rewarding and fun to learn and compete, the points you collect are also worth something else. The DevOps Factory is connected to a rewards system that turns your points into real world rewards like gift cards, concert tickets, software, devices, and more. If you register with the factory, you will keep your points across subsequent visits to the practice rooms.
The factory consists of several production floors where individual rooms on each floor are associated with key DevOps practices. Let me take you on a tour through the factory. The current iteration covers the following practices in detail:
Conveniently located on the second floor, in Automated Testing, you learn about the benefits, tools, and best practices automating test infrastructure provides. Automated tests allow for repeatable test and comparable results among other benefits. Learn about Automated Testing on the second floor.
Sharing code among developers of the same and/or different teams requires a common repository being used. Checking in code allows for automating builds and testing. This and more you learn at the factory’s ground level.
Infrastructure as Code
Are your releases delayed due to inadequate error tracking and version control? You might want to look at the DevOps practice, Infrastructure as Code, conveniently located on ground level, next to Continuous Integration.
Application Performance Management
What do you know about your apps performance? Are customers happy with the response time? Is your app performance diagnosis time consuming and incomplete? Check and learn about APM on level 2.
Pushing a new known good build to a single environment automatically via automation capabilities removes human error and enables for faster and more predicable outputs to dev, test, and even production environments. The factory’s third floor is all over this.
By the way, don’t confuse Continuous Deployment and Continuous Delivery. They are often confused – partially because people tend to throw around those terms interchangeably.
We have dedicated a high ceiling floor to this. Release Management, RM for short, is about managing, planning, and controlling builds throughout the stages of the software lifecycle. RM includes things like testing and deploying of software releases. Lots of good materials to look at in this section.
Last but not least, Configuration Management. On the top floor of our little factory you will dive into details about how to establish and maintain consistency of a product, tool, environment, or service over its lifetime.
Our factory will grow over time and we are constantly working on new and improved content. I would be very interested in your feedback, ideas and suggestions. Please use the comment section of this post to share.
And now go and hit the factory floor.