Welcome!

@DevOpsSummit Authors: Pat Romanski, Elizabeth White, Liz McMillan, Dalibor Siroky, Stackify Blog

Related Topics: @DevOpsSummit

@DevOpsSummit: Blog Post

Keys to Production Readiness By @Papa_Fire | @DevOpsSummit [#DevOps]

With a bit of wizardry from Chef, anyone can create a pretty reliable replica of the production environment on demand

Data Quantity, Quality & Frequency: Keys to Production Readiness

Despite the fact that majority of developers firmly believe that "it worked on my laptop" is a poor excuse for production failures, most don't truly understand why it is virtually impossible to make your development environment representative of production.

When asked, the primary reason for the production/development difference everyone mentions is technology stack spec/configuration differences. While it's true, thanks to the black magic of Cloud (capitalization intended) with a bit of wizardry from Chef, anyone can create a pretty reliable replica of the production environment on demand. The actual main issue with reliable production mirroring is complex, but can be described in one word - data.

Quantity of Data
Most of the time developers don't have the full dataset to work with in their development environment. For example, testing an application against a 10 row table vs a 10,000,000 one will likely produce significantly different results. As a most basic example, N+1 problem will not be noticeable on the former, but will bring your production to its knees with the latter. Even if a developer decides to be diligent and attempt to re-create the full production data store into a personal development environment, the data will be out of sync as soon as the import is finished. With developer's luck, in accordance with Murphy's Law, it's the 10,000,001st record that will be the straw that breaks the back of your application in production.

Quality of Data
Every user is ... special. Production data helps to find edge cases that would not have been thought about even in the wildest developer [dream/nightmare]. If you're testing a form with a name field, chances are you'll test with "test test" or your own name. Same chances would suggest that your name is not "Geschwindigkeitsüberschreitung Füße." Make your peace with this one. You can never reproduce every production data scenario in your development environment. Ever. No matter how many data validators you write or how many test suites you create, you will not think about accounting for Wolfe+585, Sr. in the said name field.

Frequency of Data
This part actually reinforces the two points above - scale and predictability. Test results by a single developer, in an isolated development environment, will not provide an adequate representation of the same functionality with 10,000 concurrent connections. Similarly, even if you devise a load testing suite to test for predictable traffic patterns, you cannot account for the unknown. As a very real example, a hacker's brute force attack on your password protected admin section can, in best case scenario, lock up authentication for all your users. Worst case - your production is back on its knees.

And because (for all the reasons) development will never truly represent production, identifying and troubleshooting issues in production becomes critical for companies. But in order to do that, developers need to have access to said production (if you care about time-to-solution). Give it to them. The practice of instilling the culture that shares the responsibility for production readiness between operations and development teams has gone a long way over the past few years, whether you call it DevOps or not. Use that knowledge and experience to your advantage.

More Stories By Leon Fayer

Leon Fayer is Vice President at OmniTI, a provider of web infrastructures and applications for companies that require scalable, high performance, mission critical solutions. He possesses a proven background of both web application development and production deployment for complex systems and in his current role advises clients about critical aspects of project strategies and plans to help ensure project success. Leon can be contacted at [email protected]

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@DevOpsSummit Stories
ChatOps is an emerging topic that has led to the wide availability of integrations between group chat and various other tools/platforms. Currently, HipChat is an extremely powerful collaboration platform due to the various ChatOps integrations that are available. However, DevOps automation can involve orchestration and complex workflows. In his session at @DevOpsSummit at 20th Cloud Expo, Himanshu Chhetri, CTO at Addteq, will cover practical examples and use cases such as self-provisioning infrastructure/applications, self-remediation workflows, integrating monitoring and complimenting integrations between Atlassian tools and other top tools in the industry.
As DevOps methodologies expand their reach across the enterprise, organizations face the daunting challenge of adapting related cloud strategies to ensure optimal alignment, from managing complexity to ensuring proper governance. How can culture, automation, legacy apps and even budget be reexamined to enable this ongoing shift within the modern software factory? In her Day 2 Keynote at @DevOpsSummit at 21st Cloud Expo, Aruna Ravichandran, VP, DevOps Solutions Marketing, CA Technologies, was joined by a panel of industry experts and real-world practitioners who shared their insight into an emerging set of best practices that lie at the heart of today's digital transformation.
"Storpool does only block-level storage so we do one thing extremely well. The growth in data is what drives the move to software-defined technologies in general and software-defined storage," explained Boyan Ivanov, CEO and co-founder at StorPool, in this SYS-CON.tv interview at 16th Cloud Expo, held June 9-11, 2015, at the Javits Center in New York City.
As Marc Andreessen says software is eating the world. Everything is rapidly moving toward being software-defined – from our phones and cars through our washing machines to the datacenter. However, there are larger challenges when implementing software defined on a larger scale - when building software defined infrastructure. In his session at 16th Cloud Expo, Boyan Ivanov, CEO of StorPool, provided some practical insights on what, how and why when implementing "software-defined" in the datacenter.
Is advanced scheduling in Kubernetes achievable?Yes, however, how do you properly accommodate every real-life scenario that a Kubernetes user might encounter? How do you leverage advanced scheduling techniques to shape and describe each scenario in easy-to-use rules and configurations? In his session at @DevOpsSummit at 21st Cloud Expo, Oleg Chunikhin, CTO at Kublr, answered these questions and demonstrated techniques for implementing advanced scheduling. For example, using spot instances and cost-effective resources on AWS, coupled with the ability to deliver a minimum set of functionalities that cover the majority of needs – without configuration complexity.