BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
As their role is being established, DevOps workers learn more about cloud computing than almost any other IT staff member. DevOps teams know how to configure applications for newly developed software, and how to interface with legacy systems. Naturally, this makes them champions at facilitating the migration of legacy software to the cloud.
DevOps staffers know the ins and outs of traditional file systems, distributed file systems and object stores, such as Amazon Simple Storage Service. They also know how to handle large-scale analytics and non-relational databases. They can help you migrate existing application logic to services that scale and run entirely in the cloud.
Organizations can simplify app migration from legacy hardware to the cloud by running all the software as-is on VMs in the cloud. But a better approach is to actually transition all of the logic, usually one small piece at a time, over to Web-scale technologies. DevOps teams can help handle load-balancing and fault-tolerance with domain name system latency and health checks.
In addition, DevOps teams are often required to produce analytics. They have their hands in all pies, and can access all underlying data, including traffic data and log analytics. This sort of data can be incredibly useful in measuring application performance and locating bottlenecks. DevOps staffers are able to help manage deployments and track bugs for each deployment released. They can help determine speed and performance changes per release, as well.
Tools to round out DevOps teams
Utilities such as FlowDock or HipChat can help members of a development group keep in touch with each other and DevOps staff. A ticketing service, such as Asana or Basecamp, can help track software development tasks, as well as what needs to go out in which application release.
Customer-focused support portals, such as Freshdesk, Zendesk or Get Satisfaction, allow users to communicate requests to management or software development teams directly. This triggers new or improved features, and makes sure customers' needs are being met. A DevOps team can help set up these services and get teams acquainted with the technology.
The people who make it happen
If you want to make sure someone writes quality code that's been well tested, get them out of bed when something in that code breaks. A DevOps team doesn't want to be called in the middle of the night, so they're going to make sure they have all the tools in place to guarantee automation for as many tasks as possible.
If a server dies, immediately replace and kill it, keeping any relevant logs for a post-mortem, if necessary. It's unwise to try to fix servers anymore; organizations can easily replace them with a simple API call that happens automatically when a self-healing system detects a problem. Anomaly detection could alert you ahead of time to potential risk factors or leaks in a system.
Members of a DevOps team need to be the foremost experts on cloud computing and configuring services in the cloud. They need to understand the benefits of nonrelational databases, and how to scale relational databases effectively, if needed. They should help developers succeed by showing them which parts of their applications are problematic, and determine the type of virtual hardware on which to run each piece. They'll help with architecture diagrams to ensure your system is split to the right point -- enough to make sure you're fault tolerant, but not so much that it becomes slow. They'll be able to identify the algorithms that scale well -- and those that don't -- and determine if something scales appropriately.
Exploring the evolution of DevOps practices in the cloud
Why cloud DevOps requires a new IT mindset
An enterprise cloud migration checklist
Avoid these common application migration snags