Moving Applications to the Cloud – Is this an Opportunity or Challenge?


Since the mid 90’s many applications have been built – and most probably have a few things in common. They’ll be built on relational database management system (RDBMS) and they probably still run on dedicated infrastructure.

If that’s the case, then you’re probably facing some challenges with them – today, as external users become your end users, rather than your internal service staff, an application needs to scale to support those higher workloads – tricky if it’s built on dedicated hardware.

At the same time, those new end users expect to access that app via any device and they want functionality that rapidly changes to reflect new service availability – again, tricky if it’s built on a RDBMS.

Fundamentally, an application consists of three main layers – the application layer, where the application logic lives (and the bit that your users see) and then the data & infrastructure layers. Ultimately your Application Modernisation process can, and should, improve each of these layers.

Application Modernisation is both necessary from a continuity perspective, but you must also ensure that your application can progress and provide capability to meet todays and future needs. We put ourselves in the shoes of those consuming, managing and deploying Couchbase, and ensured that our data platform gives applications the best platform to provide business value.

Rehosting

The standard first answer is to move an application to the Cloud, aka rehosting – but that’s not as easy as saying it. This often shines the light on solving the issues you experience managing the infrastructure layer, throwing the priority of deploying much needed new capability to the side. Therefore, it’s important to be aware that rehosting should also consider your future application needs, not just todays, and how can you definitively say that you know what the future application needs are?

An Application Modernisation process should deliver an organic constantly evolving solution, as opposed to a lift and shift. Re-hosting is an important and much needed step, but at its core it delivers a solution to solve the management of the data & infrastructure layers, rather than deliver new capability like integrated data analytics or a full text search solution.

Couchbase can be deployed across many hosted environments. Couchbase is available via the G-Cloud 12 marketplace directly from Couchbase or from partners, either as a standalone product, or via a choice of “Success Packs”. These are intended to align with the level of knowledge and capability of the organisation; each success pack combines software licenses, developer training and professional services advice to ensure that a project can be delivered successfully from a small-scale development proof of concept, through to a departmental level adoption and delivery.

Couchbase is also available on the major public cloud vendor marketplaces, and of course can be run on their IaaS nodes. Couchbase run in a containerised manner, whether it is on prem or in the Cloud, utilising our Autonomous Operator to remove administrative burden and provide auto scaling. Finally, Couchbase Capella provides a fully managed service to allow you to click through and deploy in minutes. All these deployment methods can be utilised in a hybrid method, allowing you to mix and match your deployments and sync data between your on-prem and Cloud deployments. What is important to recognise is the flexibility of the ways in which Couchbase can be deployed. You can’t predict the future when evaluating data platforms, but future requirements could well change as the application further evolves. Applications could evolve to dictate a change in the deployment method. If for example your data platform is “cloud only”, and you’re required to host sensitive data in a private data centre, you could find yourself needing to evaluate new platforms all over again to meet your requirements.

Replatforming

Generally, if you want to modernise your application, you can often reuse the logic, and update interfaces – the look and feel – relatively easily. Equally, if you then install it on a cloud platform, the constraints around scalability and performance can be addressed – but only if your data layer can cope. And that bit is tricky – there have been many initiatives to address this over the last ten years, but many resulted in the addition of functions as point solutions, such as standalone memory caches to increase speed, which, while useful tactically simply act as sticking plasters and complicate the architecture, adding integration costs and increasing security exposures.

Replatforming will allow you to segment any monolith applications into smaller components which should be containerised, an important capability to allow you to easily scale services your end users need most.

Here at Couchbase we understand the constraints and issues faced when administering a distributed system, and as such Couchbase is a completely container focussed data platform, and we’ve successfully operated in this space for many years. One of our fantastic achievements is to be able to run in Kubernetes and Openshift seamlessly alongside your applications. Meaning that Couchbase can be both deployed, maintained, and scaled automatically without administrative interaction through our Autonomous Operator which is certified at the highest level of “Autopilot” in the Kubernetes Operator framework.

Refactoring

At this point, we’re considering that your application is fully capable of running on an easily scalable and feature rich data platform like Couchbase. What we can now focus on is ensuring that capabilities within your application now run and make use of the best features that data platform has to offer.

When considering features within Couchbase, you can evaluate existing application capabilities, and ensure they are using the most performant and relevant data access service. One example of this is where you might have previously held JSON objects within your RDBMS or holding user profiles across many tables. Using the Couchbase Data Service (aka KV Cache), you can now natively store them against a unique key and retrieve them in sub millisecond response time. When a user is attempting a search across their many items, you can utilise Couchbase’s native Full Text Search service to perform language aware searching and retrieve the most relevant results. The highlight here is that these are discrete integrated services, not external add-ons, which enable developers to use the most relevant service, rather than perform hacks and workarounds to retrieve data or abstract retrieval through other means.

Closing Note

The concept of a RDBMS system was first formally described in 1970 and only really reached maturity by the end of the century, so over 30 years. Unfortunately, the exponential growth in both data volume and velocity triggered by the internet generated the need for a whole new set of capabilities at the data layer.

The ability to draw on 40 years of computer science theory plus a much wider community of practitioners, has meant that the modernisation of the data layer to deliver these capabilities has been a relatively shorter process, even though it has taken 10+ years from the point that the problem was described by Evans and Oskarsson in 2009 when they coined the phrase “NoSQL” as part of their attempts to describe the problem and propose a solution or an approach to a solution.

Since it’s inception, Couchbase has remained focussed on advancing the data platform, combining a memory-first performance, with a multi-model data store and with embedded functions for replication, query, search, analytics and edge-compute, all based on a highly resilient, scalable, single-node architecture.

With the capability to recognise and reuse the architectural concepts of relational models with the use of Scopes and Collections in the data model and the backwards compatibility of the N1QL query language with SQL to reuse developer skills in SQL, Couchbase enables organisations to rapidly modernise the data layer of their applications, ensuring that it will be fit for purpose to support the modern applications that organisations need to deliver to provide agile, responsive and cost-effective services to their users. This development agility is driven through our single SDK which is available in 11 languages to utilise all aspects of the Couchbase data platform. The platform allows administrators manage a shared nothing node-based solution, enabling them to provide easy upgrade and maintenance schedules with zero downtime.

Ultimately, Application Modernisation is a key part of advancing so many parts of existing legacy applications. It paves the way to ensure a better experience to those who both manage, design and build applications, as well as the end users. Ensuring that your data platform meets your many data access needs, and provides the tools to successfully manage and monitor the platform will mean that you are not only modernising with an improved platform to solve today’s but also tomorrow’s issues and continue to deliver business value and ROI into the future

Share this post: