“Stay Out of the Rain” is a series of essential insights for modern companies looking to release software faster and with higher quality, across ever-changing and complex environments. Written by XebiaLabs Chief Product Officer, former Forrester Research Principal Analyst, and long-time software guru Robert Stroud, this series lays down a clear path of DevOps best practices for moving to the cloud, flags the puddles to avoid, and shares secret shortcuts to get you back on track when the inevitable thunderstorm strikes. Read on and let Rob teach you how to stay out of the rain!
The fact that more and more organizations are moving to cloud-based infrastructure is no secret, but the reality is that cloud adoption is growing even faster than predicted. Organizations in every industry, from finance to manufacturing to healthcare, are embracing the cloud—whether they’re small startups or huge enterprises serving millions of users.
In 2018, Forrester “predicts that more than 50% of global enterprises will rely on at least one public cloud platform to drive digital transformation and delight customers,” (Predictions 2018: Cloud Computing Accelerates Enterprise Transformation Everywhere, 7 November 2017).
And according to Gartner, “as of 2016, approximately 17 percent of the total market revenue for infrastructure, middleware, application and business process services had shifted to cloud … Through 2021, this will increase to approximately 28 percent,” (Gartner Forecasts Worldwide Public Cloud Services Revenue to Reach $260 Billion in 2017, 12 October 2017).
At XebiaLabs, our customers are no different; they’re investing in public, private, and hybrid cloud solutions to reduce infrastructure costs and gain flexibility. And they’re telling us that moving to the cloud isn’t as simple as it sounds in strategy planning meetings. When it’s time to really migrate applications, their teams run into a number of issues that threaten to slow down their cloud initiatives.
1. Managing cloud configurations at scale isn’t always easy
Our experience with organizations that roll out cloud across teams confirms that “moving apps to the cloud” isn’t a one-and-done task. There’s a lot of learning and error-prone setup work that teams have to do by hand: configuring network interfaces, public IP addresses, network security groups, virtual networks, security rules, subnets, route tables… and potentially more. Plus, the implementation details are different for every cloud platform. Teams lose time tweaking, troubleshooting, managing, and maintaining configurations across applications and environments. They’d rather be coding!
2. Cloud services aren’t as fully integrated as you might expect!
Most teams dive straight into the setup that’s actually needed to run their applications. They then discover that configuring the cloud environment to support them is so complex that getting an application up and running means consuming 10 or 20 different cloud services that aren’t always fully integrated with one another. Weaving a working application out of the tangled web of cloud services and ensuring that those services work together properly costs teams even more time and makes migrating each new application to the cloud as painful as the last.
3. Cloud costs explode to consume all available budget and more
The promise of access to pay-as-you-go infrastructure is appealing; that said, it’s hard to predict the resources and bandwidth that you’ll need in the future. So, pay-as-you-go plans might save or might cost you more money than you envisaged. This makes it hard to price-compare between cloud providers, and it means that costs can add up faster than teams realize if they’re not closely monitoring their cloud usage and taking action when it exceeds their budgets.
How can enterprises take advantage of the benefits of container technology without creating more work for their teams? Download this free whitepaper to learn where containers fall short and how Release Orchestration and Deployment Automation tools can bridge the gap between the promise of containers and the realities of complex enterprise application delivery.
4. Lock-in remains a trap
The cloud landscape is constantly changing as providers roll out new platforms and services. Our customers want to be sure they have the flexibility to move between vendors so that they can take advantage of cost savings and new cloud products. But making release and deployment processes truly cloud-agnostic is an ongoing technical challenge. Teams that successfully lift and shift applications from on-premises infrastructure to the cloud might find that they’re not much better off in the cloud because they’re locked in to a particular platform or provider.
5. Security cannot be an afterthought
Cloud providers should be congratulated for elevating encryption as a vital security measure, but our customers are realizing that there’s more to consider if they want to ensure applications are fully secure. Many organizations assume that the cloud provider will take care of security so that it’s “just there”; but some have learned the hard way that insufficient security exposes them to extreme risk.
Cloud-based environments and the applications that run on them have to be hardened against potential data breaches and hackers that abuse cloud services. Running applications in the cloud makes it more important than ever to bake secure development practices and compliance checks into the release and deployment process.
The good news is that the right Application Release Automation (ARA) solution will keep the cloud from raining on your DevOps parade.
ARA helps organizations efficiently manage and optimize release pipelines by providing control over the release process and by integrating the tools in the software delivery cycle. With ARA, you can accelerate delivery while getting enterprise-level scalability, reusability, and standardization, so you can optimize the benefits that cloud-based infrastructure has to offer.
Managing complexity at scale
Migrating applications to the cloud doesn’t automatically eliminate the complexity of releasing, deploying, and running them at enterprise scale. ARA provides a foundation that helps you manage complex cloud environments by centralizing configuration data, reducing duplicate work and promoting reuse of the right cloud configurations. An ARA solution also empowers you to enforce security requirements even as your application landscape gets more complex, by standardizing on release processes that have security and compliance checks built in.
When you can map and abstract cloud configurations that are vetted and secure, you can immediately deploy the same applications on a variety of clouds like AWS, Azure, and Google, and avoid vendor lock-in.
Any cloud, any time
Avoiding vendor lock-in and achieving cloud independence isn’t just about centralizing cloud configuration data; you also need a way to decouple applications from infrastructure. An ARA solution that automatically models deployments makes your applications portable. You can take workloads that are already running on-premises and deploy them anywhere—whether that’s on a public, private, or hybrid cloud—and you gain the flexibility to move them as your cloud choices evolve and change.
Predictability of cloud costs
To stay on top of cloud expenses, you have to know what’s running where. Real-time status information is a must for monitoring your cloud usage, and historic reporting across your complete software delivery pipeline can help you investigate overages. You can give development teams the power to spin up cloud instances quickly and easily as part of their release pipelines, while still controlling cloud usage and saving money by automatically de-provisioning instances that are no longer in use.
The XebiaLabs DevOps Platform: Your umbrella in the rain
Recognized by top industry analysts as a leading Application Release Automation solution, the XebiaLabs DevOps Platform solves the unique challenges of scaling cloud usage in the enterprise:
- Manages hundreds of cloud environments by centralizing configuration data, including secure cloud configurations
- Achieves cloud independence for your applications, so you can move to any public, private, or hybrid cloud platform without writing new deployment scripts
- Monitors cloud usage and automates the management of cloud-based environments
Read “Stay Out of the Rain, Episode 2” to learn about the unique challenges DevOps teams face when deploying applications to Production-ready cloud environments.
- Stay Out of the Rain, Episode 2: Adapting to the world of cloud deployments
- Stay Out of the Rain, Episode 3: Cloud challenges for application developers
- 2-minute Tip: Provision Cloud Environments with XebiaLabs
- How Application Release Automation Helps You Move to the Cloud
- Shift to the Cloud with XebiaLabs
- Go Prime Time with Kubernetes: Scale Deployments with XebiaLabs