Standardizing, Maintaining, and Scaling OpenStack adoption
As more and more enterprises move to the cloud, many companies are looking to OpenStack to reduce data center costs and increase technology efficiency. One of the key benefits of OpenStack and other cloud infrastructure is providing teams the ability to speed the development and deployment of business applications. Yet due to the maturity of the current OpenStack landscape, some enterprises are finding it difficult either standardizing on OpenStack or maintaining and scaling OpenStack adoption. Many IT organizations are learning quickly that:
• It is increasingly difficult to understand how, where and when to leverage public or private cloud computing within the enterprise. Having this background knowledge is crucial to building an effective strategy for leveraging one of the industry’s most disruptive technology trends.
• To gain maximum value, OpenStack must be viewed and used as just one flavor within a highly federated and hybrid infrastructure. Most enterprise cloud environments include a mix of different technical solutions designed to address specific and different needs.
• IT leadership must consider their cloud infrastructure across many different veins; tools to give their development and operations teams a common platform to collaborate, the ability for regulation and compliance factors to be met, and what overall infrastructure is appropriate for specific product/services the company is bringing to market.
OpenStack has proven to be well-suited for building a private “as-a-Service” shared environment for your internal teams to collaborate on
So what are the top considerations for leveraging OpenStack as part of your software delivery pipeline?
To support future scalability, teams need to architect for flexibility to accommodate complex software delivery pipelines, and extensibility to different technology stacks. In general, you want assurance that the processes and tools that power your Application Release are agnostic of your cloud/stack. You need to ensure that you’re able to deploy any artifact, to any environment, be it OpenStack, or not—without the need to reconstruct your processes or code.
As your application or architecture evolves, the code that your organization produces may find itself—throughout its lifecycle—deployed to different environments and stacks (either across Dev, Test, Staging, Prod, etc.; or you may want to migrate your application from one cloud to another, and so on.) In addition, remember that a lot happens to your code before it is finally deployed to the ‘Last Mile’ in Production, and that dozens of point tools are involved as part of your software delivery process—from code check-in all the way to Production. To accelerate your pipeline and support better manageability of the entire process, you want a platform that can serve as a layer above any infrastructure or specific tools/technology and enable centralized management and orchestration of all your tool chain, environments and apps.
With the complex releases for today’s enterprise apps, you want to have visibility into the entire path leading up to the Release. This not only speeds up your release process, mitigates risk and eliminates manual handoffs that are error prone—but also serves as your audit trail. When you can manage and automatically track the entire path every artifact takes as part of the Release, including all related processes and environments (who approved deployment of which bits to which server), this effectively ensure compliance.
When looking at appropriate uses, OpenStack has proven to be well-suited for building a private “as-a-Service” shared environment for your internal teams to collaborate on. This has been particularly useful for consolidating Build or Test environments, such as enabling “CIas-a-Service” inside your organization, or “Deployment-as-a-Service” type offering (which allows your QA teams to easily deploy any release candidate to any test environment and start testing.) Engineering teams appreciate the speed, easy access and consistency that come with these self-service solutions. The ability to elastically scale up/down helps organizations reduce management overhead, improve resource utilization, and save on OPEX and CAPEX. In this scenario, it’s easy to have your end to end orchestration platform manage these internal cloud resources, and allow teams to trigger deployments or test suites to the appropriate environments—which are span up and torn down depending on demand.
New software development innovations, including Microservices approaches and container technologies, allow for extensible application architecture, and a vendor agnostic, scalable infrastructure. While Microservices simplify application deployments through a de-coupled approach to introducing new, high value functionality, they come with a price—because it is so fragmented, it is more difficult to track and manage all the independent, yet inter-connected, components of the application. To leverage the benefits of new innovations like Microservices with a combination of Docker, OpenStack and an end-to-end orchestration layer can help manage the challenges of the Microservices architecture, while supporting easy deployments across build, QA and production environments. This is one example of creating a scalable, centrally managed OpenStack infrastructure that helps both developers and IT operations team members.
As the software delivery industry is always looking to increase technology efficiency and reduce costs the promise of a free, open source, cloud computing platform appears to be an exciting alternative to other proprietary offerings. Yet, despite OpenStack’s growing popularity, recent data shows that only 10 percent of large enterprises have deployed to the cloud, and those that do usually go with a public cloud option to start. But why?
Challenges of OpenStack in the Enterprise
In the case of OpenStack (as with the adoption of other open source technologies), ‘free’ isn’t entirely free. The OpenStack code base and supporting services may not be sufficiently mature for a “plug-n-play experience” and support for existing enterprise IT needs. So where does it leave enterprises looking to leverage OpenStack now? Due to the fact that the OpenStack installation is not trivial, and legacy apps—prevalent in large organizations – might not fit into the cloud out of the box, many organizations are finding out that they currently have difficulty in either:
• Standardizing on OpenStack, particularly for their production environments and/or
• Maintaining and scaling OpenStack adoption throughout their organization for their internal infrastructure (such as their development machines, build environments, testing infrastructure, as well as deployment targets).
In these instances above, it may become evident that OpenStack is neither a cheaper replacement to other proprietary offerings, nor a quick fix to all the current cloud deployment needs. So what is it good for?
In the complex world of enterprise apps, no one stack/technology can be the answer to all of your needs. Different needs require different solutions. Large enterprises, particularly as they increasingly need to balance and integrate legacy systems with new web/cloud services or modern Microservices architectures—find that each application or component in their services catalog might require a different “best of breed” technology for optimal performance and maintainability. The trend seems to indicate that, eventually, OpenStack will become just one piece in your organization’s federated/hybrid infrastructure.
This emerging need and the opportunity to tailor your stack/technology to best fit the specific needs of your particular use case means that organizations will need to learn how to deploy and manage OpenStack as part of a complex matrix involving a myriad of other technologies in their infrastructure.