Cloud Deployment - Interview with a DevOp
What does a cloud computing expert need to know? Let’s dig into deploying applications in the cloud, and day to day operations skills. There’s a lot of material here. I recommend picking a few questions out of the bunch and focusing on those questions, rather than trying to cover all of them.
Deploying in the Cloud
Deploying applications into virtual or cloud datacenters involves understanding and evaluating providers. Many just deploy on Amazon EC2 as it is far and away the largest cloud hosting solution, with the most robust offering.
- What sets Amazon apart from the other cloud providers?
There are probably two things that set Amazon apart from other cloud infrastructure solutions; EBS (elastic block storage) being one. Although the others have storage solutions, and Rackspace is working on their own virtualized storage, Amazon seems to be the furthest ahead with their offering. It is fully virtual, allows arbitrary chunks of storage to be attached to instances, and allows instances to boot EBS volumes.
The other major point is that since Amazon cloud has grown so large, so quickly, it has more datacenters, in more geographically dispersed areas than other providers. Since these are organized into logical resources, and can be accessed through API, it makes your application infrastructure truly virtual.
- What are some other large cloud providers?
Joyent, Rackspace cloud, Storm on Demand, GoGrid and VoxCloud. There are certainly many others. Take a look at this Quora post: Most Reliable Cloud Providers.
- Tell one vendor management story.
Everyone who has managed operations, has worked with vendors at one point or another. For example if you’ve worked with Rackspace you know that it’s pretty easy to get a human on the line. Amazon on the other hand allows you to do-it-yourself for everything and only later added on a support service option. So their service pattern and history are different.
- How do you troubleshoot a problem?
There isn’t really a right or wrong answer to this question, but it’s a nice starting point for discussion. It can also help illustrate a candidates communication skills and how specifically they walk through solving a problem. What problem they choose as an illustration and how they work through to a resolution is an important indicator of operations experience.
Pros and cons of Amazon versus Rackspace, configuration management & automation and cloud management solutions like Scalr and Rightscale… these and other skills are important for a cloud deployment expert.
- What is Puppet and Chef?
Puppet is a configuration management system which allows ops teams to build templates for servers, and deploy many servers based on those templates. It further allows centralized control of configuration to automate the management of a large number of servers.
Chef grew out of frustrations of Puppet, and is a sort of a next generation configuration management system.
The term infrastructure as code may be thrown around. Since all cloud resources can be provisioned through API calls, everything in server deployment can be *theoretically* done via code, from spinup of servers, to installing packages, to configuring, code checkout, seeding databases and more.
- What are some of the pros and cons of configuration management for operations?
Pros include allowing a smaller team to automate the deployment of a large fleet of servers, standardization, and consistency. Cons include complexity when needing to do surgical, urgent changes, and when coming into an existing environment that you’ve inherited.
- How is RightScale different? What does it provide?
RightScale is a layer on top of your cloud provider. They provide a common interface and dashboard from which to deploy servers. Templating, automation, and multi-cloud support make it a great solution for teams that have less technical expertise on staff or less hands to manage things.
- How about Scalr?
They’re another management solution that supports multiple cloud providers. They offer templating, and auto-scaling too.
- What type of programming experience do you have?
The answer is that every Ops guy or girl should be able to code, just as every developer should have some basic operational experience. Should and does are often two different things, so ask for some examples.