Thursday, January 25, 2018

How Replatforming Applications Fits in with Modern DevOps Practices

Authored by Matt Small, Head of Customer Success

DevOps is a loaded term. Some would tell you that unless you are completely re-architecting your applications and continuously deploying production microservices to your private PaaS 100 times per day, you are not doing “DevOps”. However in essence, DevOps is about creating a culture of cooperation between Developers and the Operations team, and reducing the gap between the development process and any operational issues of software running in production, Technology plays a role: automation tools should be used to accelerate and scale repeatable processes and reduce the frequency and possibilities for human error; monitoring of the application and infrastructure should be leveraged to create a feedback loop; and source control and chat tools form a common foundation for humans and machines to collaborate.

A problem arises when you look at enterprise applications in the datacenter that were not developed with these cultural and technological ideals in mind. These applications are likely foundational to the business, but so is the need to modernize and move forward with cloud and container migrations. Enterprises are led to believe that they will either have to leave these applications behind (either technologically, by leaving them in the datacenter, or culturally by performing a simple lift-and-shift to a commensurate IaaS platform), or undertake costly application re-architecture projects. Fortunately, there is a DevOps Middle Way: replatform those applications by packaging your existing code with cloud native best practices.

Replatforming applications allows you to modernize the infrastructure. Continuing to use your application code on a modern cloud platform means you get the benefits of rapid provisioning and scaling of resources, and op-ex run rates over cap-ex guesses. You can finally get yourself out of the datacenter business.

Unfortunately, replatforming typically requires some level of application code change, so enterprises are left with a lingering questions: what are these “best practices” that we need to adopt to conform to our cloud or container platform of choice, and how do they impact our application code (how and where do I have to change my source code)?

Bitnami is developing a better approach to replatforming that answers these questions. It incorporates our deep experience in packaging applications and deploying hundreds of stacks across all the major public and private cloud and container platforms. This tool understands and interprets the requirements and best practices needed to make the best use of the target platform, allowing you to re-platform your application without having to make underlying code changes and without having any deep knowledge of the platform you are packaging the application for.

Cloud topologies differ from the datacenter, and Bitnami’s tool guides the adoption of crucial capabilities such as persistent volume storage, highly available Database-a-a-Service offerings and secure virtual private cloud networking to ensure applications can be successfully re-platformed. You can readily extend these capabilities to use other cloud-native features and Platform-as-a-Service features as you require--Bitnami places no limitations on what services you use or how, and we don’t abstract you away from the underlying innovations coming from those providers.

Bitnami also packages our best practices on how to run different frameworks in the cloud. For example, one of our reference architectures for Java configures Tomcat to use the JNDI connection pool for MySQL out-of-the box, making your application a lot more resource efficient and less likely to hit connection limits. Of course, everything is customizable so you can implement your own enterprise best practices and application requirements.

This new tool will make it possible to wrap an application written a decade or more ago in a set of scripts that both Dev and Ops can understand, collaborate on, and extend the functionality of. Culturally, you will be adopting an application-centric view of infrastructure. By investing in defining your application explicitly--where the code is, what dependencies it has, and how it’s meant to be started--you are taking one of the most important steps toward modernizing your deployment, a key pillar of DevOps practices.

Taking the first step by using Bitnami to package your code with our cloud- and container-optimized best practices will help you migrate quickly and begin enjoying the benefits of the cloud or container service. Congratulations, you’re now doing operations through development--DevOps!

Let Bitnami empower your successful cloud migration. Our new replatforming tool will be available soon. If you are interested in finding out more, let us know at https://bitnami.com/enterprise and we’ll be happy to schedule a demo.