All your software deployments happen very late at night/very early in the morning
This is the 100% old school method for deploying your hard work out to your customers. Every now and again you would take your production servers offline, put up a shingle or other message that tells people to be patient while you are upgrading your servers and that everything will be back online shortly. If this is still you - you are stuck in the 1990s regarding your ability to deliver software quickly and efficiently without impacting your customers. In today's deployments, there is no downtime. Deployments are done in a rolling fashion or by utilizing A/B deployments or in some more sophisticated installations deployments are done by network traffic shaping people from server to server as each server gets its new deployment. All of these things allow for the experience of the customer to be seamless and smooth, and they are none the wise for using the brand new functionality you delivered...unless of course you make telling them part of your due course. Deployments now don’t have to happen at low points for your websites and/or software usage. Deployments in the DevOps Enabled world can be done at any time, for any reason, without impacting the general flow within your organization.
Your deployments involve lots of people
In the old world of deployment, there were a large number of humans needed to make sure that deployments happened quickly and that any deployment problems were taken care of the instant they were spotted. The larger the deployment, the more work that was being deployed, and the more people that were involved. If you tie this one in with #1, then you had a large number of people being paid a great deal of money to be on phone calls and online late at night when they are likely not operating at their best. This is old school for sure. With DevOps - deployments that involve lots of people are a thing of the past. DevOps essentially enables push button deployments, focusing in on automation and having the automation tell someone that something went wrong when and IF it does go wrong. In this new world - deployments are automated, an individual human starts them, and they get your new software out into a production environment, its magic.
Deployments take a long time (Hrs)
So you have a sizable environment, support hundreds of thousands of unique website hits a day, and have a server farm that proves it? When you deploy software, it can feel like you might be doing so while running uphill in the snow, during winter, while also dragging an additional 300 pounds. In short, your deployments to those wonderful machines take hours to do and even longer to validate once they are complete. What's worse is that because of #2 your deployments are being done artisanally, meaning that each server is having the new version of the software placed upon it by a specific individual. This individual is taking steps to clear caches, and remove old copies of the software and make sure that temp directories are empty so that nothing gets in the way of a clean deployment of the new software. Except because of #1, it is very late, and this human is bound to make mistakes on one or maybe more than one of the nice servers you have in your server farm. Good luck finding out which one isn’t quite right. DevOps creates an engine for deployment that automates all manual steps into a testable code that is verifiable in multiple environments. By taking the tired person and their eyes out of the deployment process, it lowers a once lengthy process.
You can’t decide to ship what you have
Face it - deployments are a chore that takes time and effort. After all, think of all the late nights and time spent performing a deployment. Thus, why I can’t possibly have a quick fix that would deploy right now. If you can’t decide to pull the trigger to do a deployment due to the bolded statement above, then you need DevOps. DevOps would enable a flexibility within your organization that you don’t already have: the flexibility to ship quality code the instant it is complete. This means the ability to push the deployment button the instant a change to your software has been made, tested, and verified. There is an incredible business capability in being able to determine that you want your customers to see the value of this change. It provides an unparalleled level of flexibility to the entire way in which your business runs.
So - if you exhibit any of the above - it is a sure-fire sign that you need to get some DevOps chops into your organization, We can help, let's start a conversation about how DevOps can help you achieve things for your business you never thought possible.
Learn more about modernized technology here:
Interested in training to help advance your agile journey? Click the button to view our current list of public training courses! Use code BLOG10 for 10% off!