The cloud has become the de facto path for organizations looking to increase the flexibility and scalability of their infrastructure without making a significant up-front investment.
Shifting applications to a cloud-based infrastructure can help software delivery teams save time, save money, and overcome the typical roadblocks associated with quickly getting new features to users. But like every destination in life, there’s a right and a wrong way to get to the cloud. And a poorly planned cloud migration, especially in a large enterprise environment, can make for a regrettable journey. Enterprises need to transition to the cloud in a controlled fashion––without sacrificing security and compliance.
To make the trip from Development to Production in the cloud a smooth ride, organizations must create a single enterprise pipeline that works for hybrid environments.
In the recent DevOps.com webinar––Reaching Cloud Utopia: How to Create a Single Pipeline for Hybrid Deployments––Vincent Lussenburg, Director of DevOps Strategy at XebiaLabs, discussed the steps organizations can take to create a cloud-ready enterprise software release pipeline that is fast, flexible, safe, and standardized. Read a breakdown below, and watch the webinar here.
Visualize and manage the entire path to Production
An enterprise pipeline must provide complete visibility and orchestration of all technologies and processes from Dev to Prod. Simply put, an enterprise pipeline must end in a Production environment. And there are a variety of considerations and best practices for organizations to follow when creating their enterprise pipeline to the cloud.
Reuse your current legacy configurations––People tend to think that if they’re using container technologies they no longer have to worry about configurations, like database connections. While the way you make the connection to a legacy application looks much different than the way it’s passed to a Docker container, the connection still needs to be made. Instead of creating and maintaining a new configuration in a secondary format, take advantage of your existing configuration databases.
Reassess your architecture/infrastructure––Not every application is going to lend itself to a cloud environment. As you’re looking at bringing your applications to the cloud, you need to evaluate how they stack up from a Twelve-Factor perspective. (The Twelve-factor methodology refers to a set of guidelines for building software-as-a-service applications.)
Remember the lessons of migrations past––Look at lessons learned from the physical to VM (P2V) migrations of the last decade. As you now move from VMs to containers, it’s really just a more granular continuation of the virtualization trend.
Sunset homegrown management interfaces––Transitioning to the cloud is a prime opportunity to get rid of organization-specific applications, like management interfaces and cronjobs.
Handle an array of people, processes, and tools
Enterprise pipelines support all applications and all environments in the delivery ecosystem. Therefore, the pipeline should be able to handle an array of processes and tools and support a variety of roles. In addition to your integrating your DevOps functions, your pipeline needs to bake in security approvals, compliance requirements, and auditing capabilities. It’s also important to enable fluid communication and ensure that the separation of duties are clearly present and documented.
Of course, it’s entirely possible that a large enterprise will have more than one software delivery pipeline. The key there is to make sure your pipeline is made in a way that it is repeatable. If your business is in different sectors that have drastically different requirements for compliance and audibility, you’re probably going to end up with two distinctly different pipelines. But that doesn’t mean you can’t create a uniform enterprise pipeline for every release across the organization. In doing so, your release stakeholders will only have to approve a few pipelines, eliminating the bottleneck of having to approving dozens or even hundreds.
Receive buy-in from all stakeholders
Software delivery in enterprises can be complex, involving several stakeholders responsible for releasing multiple applications, each with their own specific processes and requirements. These stakeholders must be assured that all requirements to get software into Production are met before they give approval. While it’s easy to see how these processes can significantly delay a deployment, this is where automation really helps.
An enterprise pipeline with standardized release processes and automated processes for security and compliance creates a trust with the stakeholders that the releases they approve will work as intended in Production.
Avoid big bang migrations
If you have hundreds of apps living on legacy infrastructure, it’s not realistic that you’ll be able to move everything to a platform like Kubernetes overnight. Enterprises need to create a pipeline that facilitates baby steps toward that state. It’s also important to note that while a migration strategy might work great for one application portfolio, it might not for another.
Manage your apps in hybrid environments
Implementing software delivery in hybrid environments requires an application delivery and release strategy that is safe and can scale across the enterprise. It needs Release Orchestration and Deployment Automation capabilities to address the organizational and technical complexity of software delivery pipelines from Development to Production. And it needs to account for governance, compliance, and security requirements.
The XebiaLabs DevOps Platform handles all of the steps described above and more, so you can easily migrate thousands of apps to cloud environments in a repeatable and secure way.