Easing the cloud transition using microservices, containers and Kubernetes
The financial industry is at an inflection point, undergoing disruption in both markets and technology. Forward thinking IT leaders now acknowledge the need for increased flexibility and agility to scale their services more rapidly and bring new products and services to market faster.
The legacy application stack, including the often overlooked but critical database, was not built to handle the scalability and availability requirements needed to operate effectively in the cloud. Older applications, built to run on that legacy application stack, can’t take advantage of the scalability and responsiveness gained by building applications using microservices, containers, and Kubernetes.
Responding to the need to adapt to changing customer needs, the financial industry is beginning to consider how to move critical workloads to the cloud. And while historically there have been some reservations regarding cloud adoption in financial services, recent years have seen a significant change in attitudes toward cloud security and the storage of data in the cloud. To meet compliance and business continuity requirements, the financial services sector is also showing strong interest in hybrid, or multi-cloud, architectures. According to the Flexera 2019 State of the Cloud Survey, 84% of enterprises have a multi-cloud strategy.
A major impetus driving banks to invest heavily in digital banking technology is the increasing importance of customer experience. Consumer banking behaviour has changed, creating significant competition from digital challenger banks and online payment service providers. This new competition necessitates that traditional banks keep pace with customers’ expectations of their banking services. Coupled with the advent of open banking and an increased need for real time and predictive analytics, the need to stay competitive is driving financial institutions to adopt modern architecture.
That adoption of new architectures includes an exploration of microservices, containers, and Kubernetes. Widely viewed as the technology that can deliver the agility, flexibility and elasticity needed to deliver applications that meet expectations of customers today, these three technologies integrate well into new development paradigms such as DevOps. Adopting microservices architecture for new applications makes it easier to build apps based on new customer requirements and expectations. This is in part because microservices decouple development teams, allowing them to work independently at their own pace and in their own development environment.
Containers are the most common method of deploying microservices, partly because they deliver many of the same benefits as those provided by microservices, such as platform independence, scalability, isolation, resource efficiency, and speed. Kubernetes provides container orchestration, which automates deploying, scaling, networking, networking, managing, and maintaining availability for container-based applications. Together these three technologies simplify running applications in the cloud.
Moving applications to these new architectures isn’t a small undertaking. Most financial services organisations have many applications and need to prioritise whether and when they will choose to re-architect. Many existing applications may be able to move from an on-premises deployment to more scalable and responsive cloud environments without too much difficulty, provided that you select the best architecture for those applications in the cloud. This won’t work for all applications, however, so you will likely need to rebuild some applications for cloud deployment, using new programming languages and architectures. Rebuilding is a significant effort and may require new tools and staff expertise to rewrite the code for those applications.
The first essential step is to review which applications have the greatest demand, and then build apps that will result in the greatest impact from your efforts. You’ll likely need to rebuild some applications for the cloud, using microservices, containers, and Kubernetes. For example, many challenger banks (startup digital banks) deliver mobile apps, low fees, and rapid responses to customers. For established financial services organisations, delaying modernisation of customer-facing may impact revenue as they lose mindshare — and customers — because they can’t respond at the speed customers now demand.
Finally, some applications may not be suited to a public cloud deployment but still need to be modernised to take advantage of new architectures but have data sovereignty or compliance restrictions that make an on-premise or hybrid-cloud deployment preferable.
When approaching modernisation goals, the first step is to build new applications using these new architectures, rather than rebuilding on top of your legacy stack. Adopting microservices architecture for new applications makes it easier to build new apps based on new customer requirements. It also provides the opportunity for your development teams to experiment — without impacting critical revenue-generating applications. As you start to adopt new architectures, it’s essential to define your APIs well to prevent dependencies between microservices while still enabling the exchange of data. Once APIs are published and available for use, they become one-way contracts and you’ll need to guarantee backwards compatibility for them. This is a critical concept that many organisations new to microservices, containers, and APIs often don’t fully grasp. Getting the APIs wrong can create significant technical debt, even as you move to newer technologies.
Once you’ve gotten started with these new architectures by deploying new applications on them, your next step may be to move existing applications to the cloud, using cloud-native solutions to power them. Many organisations try to reuse data management patterns learned from new applications and apply them to existing applications. Sometimes this works, but other times it creates more challenges than it solves. For example, new applications frequently leverage NoSQL technologies for data management. However, it’s a mistake to believe that NoSQL technologies can be used for migrating all existing applications.
Moving to a NoSQL database for existing applications enables a distributed, cloud-native deployment model, but adds significant risk and complexity to the application redesign. The differences between strict consistency, which was provided by the legacy database, and the eventual consistency offered by the NoSQL database will almost certainly require significant application changes to support. To limit risk and reduce complexity, it’s important to minimise application changes by choosing a database that offers the same transactional consistency and durability your applications were built on.
Finally, don’t try to change all your applications at the same time. Take some time and tackle modernisation projects on an application by application basis. This limits the scope of your immediate changes and allows your development organisation to adapt to new development and operational models. It also helps you to spend the time you need to decide how, when, and which applications you deploy in the cloud.
Before undertaking modernisation goals, it’s important to understand that migrating to the cloud or any other modern architecture isn’t simple. This migration may introduce new, significant challenges, in addition to a general reluctance traditional banks have when it comes to decommissioning reliable and trusted systems. There are significant benefits to be gained. A 2019 European Banking Study revealed that banks that “…digitalised their business models and processes systematically and early on perform significantly better in all relevant KPIs than their competitors.”
The proven ability of cloud ready and container native solutions to help today’s financial organisations successfully deliver on customer expectations is an excellent reason for traditional banks to consider how to strategically modernise the application stack today. Relying on solutions built to deliver on-demand scalability, agility, and availability required to maximise the benefits of the cloud will ensure the long-term success of your organisation.
By Ariff Kassam, CTO, NuoDB