Welcome!

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

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

@DevOpsSummit: Blog Feed Post

Complexity at Scale: Trials and Tribulations of Success By @DaliborSiroky | @DevOpsSummit #DevOps

We're trained to avoid complexity when we design systems, and call systems with poor architecture 'too complex'

"Complexity" is often viewed as a negative. This is perhaps even more the case at scale, where some degree of complexity is unavoidable. Any unnecessary complexity, states the conventional wisdom, is public enemy number one. But does that wisdom ring true? Let's look a little closer at the contours and implications of complexity at scale.

We're trained to avoid complexity when we design systems, and call systems with poor architecture "too complex." If you've worked in any large IT organization you understand the constant daily struggle against complexity at scale. Every day teams are starting new, "greenfield" development projects with the end-goal of replacing legacy systems that have grown too complex.

The Reality: Today's greenfield development project to replace a "too complex" legacy system will be tomorrow's overly-complex legacy system. It isn't the software that is complex it is the problem space, and complexity is a natural by-product of success.

70778501 thumbnail 300x300
What experienced engineers understand is that complexity is rarely a function of technology. Our IT systems are designed to model real, complex problems and reality can be difficult to simplify. Take an e-commerce system as an example, if you are building a small e-commerce system for a niche market you can afford to simplify problems and only accept one payment type. On the other hand if you are building an e-commerce system to compete with a global competitor you need to think about multiple currencies, complex sales tax regulations, and other complexities that only emerge when you operate at scale.

While a Fortune 500 company can take some steps to create more isolated teams at some point teams still needs to integrate into a single system. The software release process and the processes used to test and qualify these releases are the primary pain point in large software organizations. When you release software all the moving parts of the company have to come together to facilitate business operations, and release managers are the individuals that understand how to orchestrate and manage complexity at scale.

Large, Revenue-Generating Systems Are Complex
If you work at an international banking institution or run IT systems for a large government agency you understand that while we can attempt to create simpler, easier-to-manage IT systems some of the fundamental problems we are attempting to model in IT are complex by definition. If you work at a successful organization generating millions or billions in revenue you also understand that success often results in complexity.

When a system starts to generate real revenue you almost immediately breed legacy IT infrastructure that has to be supported for many years. "If it ain't broke, don't fix it" is an inescapable factor in enterprise software development.

When you run a real business you are generating real revenue, and even if your software architects want to rewrite entire subsystems it is common for the largest organizations to maintain several generations of systems. Your software releases are not just focused on the new platform, they are dependent on back office systems that might be several years (or decades) old. It is this reality that needs to be factored into a comprehensive model of release risk. In a complex system an enterprise-wide release strategy can't just emphasize agility for new systems it has to encompass existing systems.

Release Managers Address Complexity at Scale with Planning
While your IT architects and application developers have the liberty to focus on subsystems in isolation from one another your release managers have to think of software as an integrated system. When we are conducting a large software release spanning multiple generations of legacy systems alongside new, continuously delivered software we need a plan, and we need to use tools such as Plutora that understand that not every release falls into the same, cookie-cutter approach.

Plutora was designed to address the fact that release management and environment management in the modern IT organization is quickly gaining the spotlight and the role that pulls it all together is the release manager. Without a proper system to track and manage the challenges of legacy alongside the "next-generation" companies tend to experience release failure.
Iterative release planning

Complex Release Planning for Complex Systems?
One approach to managing software complexity is to create a model of the software development lifecycle that allows you to "de-risk" the process. This is what ITIL has attempted to do for IT service management, and the model works for several organizations. There are systems that lend themselves to the IT service management model, but these are rarely the fast-moving systems that deliver the agile success that modern IT departments are demanding today.

The answer to release complexity - the solution for this problem isn't the creation of a new, inflexible model of release management. It isn't to create more decision trees and roles focused on centralized release governance it is to create systems that facilitate "managed" agility across several independent teams. In other words, the solution for software complexity at scale isn't to create a more complex process. It is to create systems that give enterprise release managers visibility into coordinated, independent releases across the enterprise.

Manage Complexity, Manage Decentralization
Enterprise release managers need to stop avoiding the natural complexity that accompanies success at scale, and they need to adopt a common set of tools that provide visibility into release functions across multiple projects in the organization. Taking a more realistic approach to software complexity involves creating new, decentralized approaches to containing and managing complexity when it starts to impact a large system. Instead of creating constricting, centralized approaches to manage release risk, today's release managers need to embrace a new trend toward self-service and decentralized operations.

Plutora is the tool that allows your centralized "release management" function to enable individual teams to move at their own pace and adapt to release complexity as it develops in a particular project. Without this shift toward decentralized release "governance" away from centralized release "management" large, enterprise-scale systems will always be hamstrung by complexity. Instead of enabling project-level agility, teams will be stuck in an infinite loop.

Software complexity isn't the problem, it's your release process and the interdependencies that develop in large, complex systems. Manage the process and provide isolation by using a tool like Plutora to orchestrate multiple release teams and gain high-level visibility into release processes.

The post Complexity at Scale: Trials and Tribulations of Success appeared first on Plutora Inc.

Read the original blog entry...

More Stories By Plutora Blog

Plutora provides Enterprise Release and Test Environment Management SaaS solutions aligning process, technology, and information to solve release orchestration challenges for the enterprise.

Plutora’s SaaS solution enables organizations to model release management and test environment management activities as a bridge between agile project teams and an enterprise’s ITSM initiatives. Using Plutora, you can orchestrate parallel releases from several independent DevOps groups all while giving your executives as well as change management specialists insight into overall risk.

Supporting the largest releases for the largest organizations throughout North America, EMEA, and Asia Pacific, Plutora provides proof that large companies can adopt DevOps while managing the risks that come with wider adoption of self-service and agile software development in the enterprise. Aligning process, technology, and information to solve increasingly complex release orchestration challenges, this Gartner “Cool Vendor in IT DevOps” upgrades the enterprise release management from spreadsheets, meetings, and email to an integrated dashboard giving release managers insight and control over large software releases.

@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.
"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.
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.
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.
A strange thing is happening along the way to the Internet of Things, namely far too many devices to work with and manage. It has become clear that we'll need much higher efficiency user experiences that can allow us to more easily and scalably work with the thousands of devices that will soon be in each of our lives. Enter the conversational interface revolution, combining bots we can literally talk with, gesture to, and even direct with our thoughts, with embedded artificial intelligence, which can process our conversational commands and orchestrate the outcomes we request across our personal and professional realm of connected devices.