The Keys to Successful Innovation in the Cloud
Today, digital innovation and transformation is everywhere.
Nearly all of our enterprise clients are putting cloud and digital initiatives at the center of their corporate strategy. According to McKinsey, digital innovation is a top C-level priority for most enterprises and many CEOs are “choosing to lead the digital transformation themselves.”
At Evonate, we believe that innovation has always been the best use case for the cloud. The killer combination of on-demand resources, pay-as-you-go pricing, and highly productive “innovation services” have all made the cloud the ideal proving ground for new digital initiatives. Along the way we have learned the critical factors that must be in place to achieve success with cloud-based digital transformation.
As you embark on your digital innovation in the cloud, please consider these principles and how you can apply them to your business.
Cloud Experience is Critical
There’s nothing worse than having your “digital agency” develop a really awesome looking new way to engage with your customers, partners or employees, only to have it fall flat on its face as soon as you launch it. There can be many reasons for this failure, including code issues or some factors beyond your control. However, one of the more prevalent challenges is poor cloud implementation.
While the cloud is incredibly powerful, it is also an environment that can be unforgiving at times. A poor implementation can result in poor performance (AWS Lambda limits, anyone?), weak resiliency (8 different patterns in Azure), or inadequate security (crazy term alert – DevSecOps).
And that’s all mostly at the application tier. Did you use best practices for defining a secure landing zone? Are your operations teams up to the challenge of managing an incredibly complex and dynamic environment?
Learning on the job is great, but the wrong time to learn is when your highly-visible new product launch is looming. It’s important to have some “old hands” with the experience and firsthand knowledge of what can go wrong and how to keep that from happening.
Cloud-Native Speed Beats Cloud Agnostic Portability (nearly) Every Time
When building new solutions to drive your business forward, what is more important: time to market or avoiding cloud lock-in? Too often clients are focused on theoretical future events where they may want to switch clouds for pricing or other reasons. This is not the right approach and has caused many innovation projects to be delayed or even canceled before they reached the market.
AWS, Google and Azure all have amazing platform and innovation services that can dramatically accelerate time to market. Serverless functions, database-as-a-service, AI/ML solutions, blockchain toolkits, and many other cloud services are there for you to leverage to save time and money. Remember, the line of code you don’t have to write is the fastest to deliver and easiest to maintain.
The alternative is to build your own capabilities, install and manage portable components, reinvent the wheel at every turn and spend less time delivering value for your users. Sure, it will be portable but it’s likely to be expensive to deliver and maintain and significantly delay your time to market.
There are occasions when a focus on portability is critical – such as when the code needs to live at the edge, or there are regulatory or other reasons why your solution needs to be delivered across multiple clouds. In these situations you can focus instead on container-based solutions such as Rancher to deliver portability and cross-cloud orchestration and management.
Application Code is Not the Whole Story
In the old days, developers built the apps and operations teams ran them, perhaps using some shell scripts and other tools to reduce manual effort.
Today, the code needs to extend down to the infrastructure or your solution is not complete. The whole power of the cloud platform is to be able to automate everything to get the resilience, scale and velocity that drives innovation. This is the concept of DevOps, or “infastructure-as-code” (IaC).
What do you code at the infrastructure level?
- Landing zones – set up your resilient, manageable infrastructure through CloudFormation or ARM templates, or using Terraform or other cross-cloud automation technologies is required for verifiable security, change management and more
- SDLC – a fully automated code pipeline with automated testing and (where possible) deployment is required to get to weekly or even daily release velocity
- Failure conditions – at scale things break. The cloud is no exception – and any system that fails to account for things breaking is going to crash and burn. You need to anticipate these failure conditions and have application-aware automation ready to counteract and mitigate the risks.
Chaos is the New Normal
Not only do things break at scale in the cloud, but cloud-native systems over time start to resemble highly interdependent chaotic systems. The academic term for this is “Complex Adaptive Systems” or CAS. Cities, climate, civilizations, financial markets, or ecosystems – these are all complex, they are adaptive (meaning that the behavior or properties of some elements are influenced by other elements) and they behave in a system architecture construct.
Truly distributed microservice systems have complexity that becomes more and more difficult to manage as they grow. Consider what it takes to deliver Netflix.
While many of your applications will never come close to the complexity of Netflix, the interdependent systems in many large enterprises act in a similar fashion. Better service control planes and API management tools that were made for microservices – such as Kong – are critical to controlling the chaos. And testing, testing, testing is always critical.
These are just a few of the keys that you companies to consider for cloud innovation success. The most important factor is experience – a factor that Evonate can deliver for our clients.