Once you have envisioned the ways your organization can benefit from using cloud computing, the next step is to decide how exactly to move forward.
In the video below, I sit down with co-author Salil Dave to talk about important considerations and practices to enable cloud computing in an enterprise. Our discussion draws on our experiences within Microsoft IT, and experiences from the many enterprise customers we’ve met. In the video we touch on different topics including approaches to cloud adoption, selecting a service provider, investing in training, and cloud governance.
At the end of the video we also discuss the DevOps model, in which there is tighter integration between development and operations. In DevOps, there is often more fluid communication and more frequent releases. Software developers understand operational patterns and practices well, and operations personnel have a greater understanding of the technologies programmers use to build services. This model is important for IT shops to digest to maximize the benefits of the cloud. I’ve also included a short excerpt from the book below regarding DevOps, and of course there are many more best practices covered in the book.
Web 2.0 companies like Netflix and Flickr have written about their experiences using the DevOps model. In a presentation given at Velocity 2009 entitled “10+ Deploys per Day: Dev and Ops Cooperation at Flickr,” John Allspaw and Paul Hammond described how Flickr teams applied DevOps concepts to roll out as many as ten deployments in a day. They automated the deployment of infrastructure, created a one-step build and deploy process for shipping releases, and used online collaboration to coordinate issue resolution during releases.
Adrian Cockcroft’s April 2011 presentation about how Netflix did a full migration of its website to public cloud services, entitled “Moving Your Organization to Public Cloud,” drew many of the same conclusions about DevOps as Allspaw and Hammond did. Developers remain the owners of code running in production environments. Operations work shifts to writing code and creating tools that automate processes. Both roles have a part to play in collecting metrics. A flatter and more collaborative IT organization is necessary to accomplish all of this.
Most enterprise IT groups already have release management processes in place. DevOps can reduce development cycles from weeks or months to days or weeks, which means project managers or release coordinators will see a corresponding shift in their duties. Releasing smaller components more often lessens the risk of failures, assuming rollbacks are easy.
We suggest you take a close look at agile software development methodologies, such as Scrum, if you have not already done so. Also consider changing job descriptions or performance review goals to encourage better collaboration among IT staff. For example, educational goals could include “Operations engineers demonstrate a working knowledge of detailed systems design,” or “Software developers work one shift to support applications they built (per week, month, or quarter).”