Welcome!

@DevOpsSummit Authors: Liz McMillan, Pat Romanski, Yeshim Deniz, Elizabeth White, SmartBear Blog

Related Topics: @DevOpsSummit, Linux Containers, Containers Expo Blog

@DevOpsSummit: Blog Feed Post

Do You Suffer from Deployment Anxiety? | @DevOpsSummit #DevOps #ContinuousDelivery

Did my tests catch everything? What if something happens during a migration and I can’t rollback?

Do You Suffer from Deployment Anxiety?
By Necco Ceresani

Whether you suffer from a diagnosed anxiety disorder or not, many of us who are responsible for deployments become uneasy when deploying code to production.

Did my tests catch everything? What if something happens during a migration and I can’t rollback? Will that small code change create an unstoppable reaction destroying everything in my database? Okay, maybe that’s a little aggressive, but you get my point. Deploying to production creates anxiety among developers all over the world. So how do we combat this anxiety without a prescription for Xanax? We’ve gathered a couple tricks to help ease your anxiety and optimize your release pipeline all at the same time.


anxiety

Automate Configuration and Deployment
By automating a process, you are turning it into a constant. This is the best way to make sure your deployments behave the same every time you deploy an application. Like we learned during our 4th grade science fair, the control variable is unchanging and will give you confidence to learn from future breaks and failures (dependent variables).

Create a Testing Environment
QA testing should have its own environment and it should be production-like. This is the first major step towards Continuous Delivery and an overall healthier state of mind when deploying to production. Hopefully you can automate your code’s transition from a dev environment to a QA environment where it can run suites of functional and performance tests. Each QA environment should be complete with the right configurations for each new code release.

Work with Your Support Team
It’s all too easy to get involved with your next project and forget to check in on the apps you already have running. DevOps principles often talk about breaking down the walls between departments and in this case that means working with your support team to ensure the health of your existing apps. If you can automate the way existing apps are tested and monitored by your dev and support teams you will begin deploying to production with a lot more confidence.

Use Canary Releases
Danilo Sato’s definition of a Canary Release on MartinFowler.com is the best I’ve found: “Canary release is a technique to reduce the risk of introducing a new software version in production by slowly rolling out the change to a small subset of users before rolling it out to the entire infrastructure and making it available to everybody.” By releasing to a small portion of users you can build confidence in your deployment before pushing it into production completely.

Run Fire Drills
Crashes, outages, breaks and failures are all terrifying what ifs. One way to become slightly more comfortable with these uncertainties is to run controlled fire drills with your teams. Come up with some creative, albeit terrifying, ideas like database crashes or datacenter outages, and run through those scenarios and your related response plan with your team.

Incremental Deployments
You can read a full blog on Incremental vs. Full Deployments here, but the basics of it are, by running incremental deployments you are updating only the assets on the site that are being changed, instead of re-creating the configuration of the site as a whole. They are faster deploys and they don’t touch the systems that are already OK.

Dependable Fast Rollbacks
Nothing is more comforting than knowing you can roll back your release. Rollbacks are another process that can be automated so if/when your deployments break, you’ll notice serious errors quickly. It should be noted that you’ll want to make sure your old code still works on the new database layout, if you were to rollback. Don’t be afraid to re-test your old code before rolling back.

Deploy Often
The most comfortable developers I’ve met deploy to production a dozen or more times a day. This is the result of a Continuous Delivery pipeline. By automating the right processes and deploying often, you will be able to tweak and refine your pipeline to run smoothly. Am I saying you should start pushing out 30 deploys a day? No. But increasing your deployment rates over time will help create a release process that flows with far fewer bottlenecks and failures.


One of the best way to keep anxiety at bay is by learning from others mistakes. Check out our on-demand webinar: “Lessons Learned: Scaling DevOps and Continuous Delivery for the Enterprise

The post Do You Suffer from Deployment Anxiety? appeared first on XebiaLabs.

Read the original blog entry...

More Stories By XebiaLabs Blog

XebiaLabs is the technology leader for automation software for DevOps and Continuous Delivery. It focuses on helping companies accelerate the delivery of new software in the most efficient manner. Its products are simple to use, quick to implement, and provide robust enterprise technology.

@DevOpsSummit Stories
Without lifecycle traceability and visibility across the tool chain, stakeholders from Planning-to-Ops have limited insight and answers to who, what, when, why and how across the DevOps lifecycle. This impacts the ability to deliver high quality software at the needed velocity to drive positive business outcomes. In his general session at @DevOpsSummit at 19th Cloud Expo, Eric Robertson, General Manager at CollabNet, will discuss how customers are able to achieve a level of transparency that enables everyone from Planning-to-Ops to make informed decisions based on business priority and leverage automation to accelerate identifying issues and fast fix to drive continuous feedback and KPI insight.
More and more brands have jumped on the IoT bandwagon. We have an excess of wearables – activity trackers, smartwatches, smart glasses and sneakers, and more that track seemingly endless datapoints. However, most consumers have no idea what “IoT” means. Creating more wearables that track data shouldn't be the aim of brands; delivering meaningful, tangible relevance to their users should be. We're in a period in which the IoT pendulum is still swinging. Initially, it swung toward "smart for smart's sake," and many brands remain in that corner. But many brands are also gradually opting for more strategic approaches. They're taking a breath and stepping back to examine both existing and potential IoT experiences, asking themselves whether their products lend real value. Once we reach this goal, the implications for personalization are staggering. Consumers will expect devices they use and i...
We all know that end users experience the internet primarily with mobile devices. From an app development perspective, we know that successfully responding to the needs of mobile customers depends on rapid DevOps – failing fast, in short, until the right solution evolves in your customers' relationship to your business. Whether you’re decomposing an SOA monolith, or developing a new application cloud natively, it’s not a question of using microservices - not doing so will be a path to eventual business failure. The real and more difficult question, in developing microservices-based applications, is this: What's the best combination of cloud services and tools to use to get the right results in the specific business situation in which you need to deliver what your end users’ want. Considering that new streams of IoT data are already raising the stakes on what end users expect in their mo...
We all know that end users experience the internet primarily with mobile devices. From an app development perspective, we know that successfully responding to the needs of mobile customers depends on rapid DevOps – failing fast, in short, until the right solution evolves in your customers' relationship to your business. Whether you’re decomposing an SOA monolith, or developing a new application cloud natively, it’s not a question of using microservices - not doing so will be a path to eventual business failure. The real and more difficult question, in developing microservices-based applications, is this: What's the best combination of cloud services and tools to use to get the right results in the specific business situation in which you need to deliver what your end users’ want. Considering that new streams of IoT data are already raising the stakes on what end users expect in their mo...
DXWorldEXPO LLC announced today that ICC-USA, a computer systems integrator and server manufacturing company focused on developing products and product appliances, will exhibit at the 22nd International CloudEXPO | DXWorldEXPO. DXWordEXPO New York 2018, colocated with CloudEXPO New York 2018 will be held November 11-13, 2018, in New York City. ICC is a computer systems integrator and server manufacturing company focused on developing products and product appliances to meet a wide range of computational needs for many industries. Their solutions provide benefits across many environments, such as datacenter deployment, HPC, workstations, storage networks and standalone server installations. ICC has been in business for over 23 years and their phenomenal range of clients include multinational corporations, universities, and small businesses.