In our previous post, we addressed the confusion that many people have about DevOps. It’s more than just putting together two critical teams in your IT organization. DevOps are tools that facilitate collaboration and communication between your development and operations teams, and automate the process of software delivery and infrastructure changes. You can avoid human errors, bridge the gap between both teams, and drastically reduce your time to delivery.
Placing your DevOps tools in the public cloud space provides two additional key benefits to your IT organization: automation and simplicity.
Automation is key when attempting to reduce human error. A public cloud environment (like AWS or Azure) is the place where automation abounds. Why stay stuck in the old way of moving critical pieces of your application across environments manually? That simply does not make sense.
Instead, automate the full lifecycle – from provisioning hardware and software, to moving all critical functions across your environments (DevOps), to auto scaling and auto recovery. If you leave out that middle piece of DevOps, you waste the time and value you get from the other components of automation provided in the public cloud. For example, auto scaling isn’t even possible if you aren’t using DevOps technology. When the auto scaler creates new Virtual Machines (VM’s) on demand it can’t work since it can only auto-provision the hardware up to the OS level. That is where your Ops piece of build comes in. But for a site or application to work, so much more needs to happen, which is why you also need the development piece. DevOps tools allow you to automate provisioning of all application critical installations and configurations beyond the OS. This is the only way an auto scaler can support your site or application successfully.
Many companies put their Dev and Test environments in something like AWS, while keeping their production environment somewhere else, either a hosting provider or on-prem. (Hybrid cloud is an excellent choice, giving you a customized solution for the needs of your business.) In this scenario, the development team usually runs the Dev and Test environments while the infrastructure team runs the production environment. Because everything is running on two different base platforms, even when you have the same OS, DB, and application settings, things can get lost when copying them across manually. Using DevOps tools to simplify and automate these moves is critical. You can avoid the previously mentioned finger pointing between the teams when the app works in Dev but not elsewhere, like test or production.
For example, imagine you are running a VMware environment for production with a hosting company like Contegix, but running Dev and Test in AWS. Both are running a Linux OS, so file directories are not affected. However, if you have load balancing or High Availability (HA) through virtualization, the tools will not be the same in both environments. Therefore, if you configure any changes that affect load balancing or virtualization and you haven’t automated those changes with DevOPs tools, the development team (that created the changes) will rely on ops’ ability to properly manually convert the changes from one environment to the next. If properly configured with DevOps tools, the changes can be transferred automatically with consideration of the differences between both environments. Again, in this example this is amplified when moving from test to production. Imagine trying to resolve an issue in production due to a human failure when you could have avoided it by using DevOps tools.
Public Cloud can expose that old way of doing business in a very new and even more complicated way if you allow it to. Avoid that by really understanding what DevOps is and what it can do to not only provide harmony within your IT organization, but also how it can provide automation that avoids human errors, while drastically reducing your time to delivery.
In both of the examples above, the companies are doing the right thing by trying to use automated tools and being cost effective by putting their appropriate environments in the public cloud. Yet, without DevOps tools the first is not even possible and the second could greatly impact their production availability which we all know is an IT organizations oxygen. This is why DevOps in the public cloud is a must to ensure availability and optimal performance for your applications and sites.