Following our announcement last month that we have joined the Cloud Native Computing Foundation (CNCF), we thought it was the perfect time to sit down and talk to one of the industry’s most fervent ambassadors - Cheryl Hung. A former Google engineer, like many of our senior team, Cheryl is the CNCF’s VP of Ecosystem, leading the organisation’s end-user community (of which we’re a member). She also founded London’s largest and most active developer meetup communities, Cloud Native London. Find out how our passions aligned and the need for cloud technology in core banking, below:
Why is Cloud Native so exciting?
I think this is the biggest movement in technology in terms of the number of companies rallying around a single paradigm since the start of the internet. When the internet arrived everyone had to accommodate it. And Cloud Native is having a similar effect on technology infrastructure.
On a personal level, Cloud Native is where I started my career with Google ten years ago. It's how Google has been building software for years. It's old hat! It's the default, the way everything is done. So I've seen Cloud Native from the engineering point of view and why it works so well. It is exciting for me to take these ideas and bring them to other organisations.
What do we mean by Cloud Native?
It is a mindset. You change from building something to run on a single server or single piece of infrastructure, to abstracting away from hardware to applications that can run on anything. It could run on Azure, scale on AWS, or on prem. People tend to focus on Kubernetes and the tools used by Cloud Native applications, but it's fundamentally about this mindset.
So it's more than just porting software to the cloud?
Absolutely! It requires a fundamental rethink of how you build software so that it scales horizontally. It also allows you to build resilient software so that it can adapt to hardware going down without there being a problem. The myth is that Cloud Native is about taking what you've got and moving to the cloud to save a small bit of money on hosting costs. That is not the case at all.
Microservices are common in Cloud Native applications. Why are they so important?
A microservice is a way to cut an application into chunks. Each microservice is an autonomous unit, and communicates with other microservices via an API. Independent teams are the key. If you have, for example, 100 developers working on the same piece of software it takes a lot of co-ordination. So you break the application into chunks. Then you can have, say, seven engineers working as a team on a single microservice. They can make independent progress without being held up by another team working on something else.
Also, microservices bring resilience. The problem with a monolithic app is that everything is too tightly integrated together. In the case of a bank, if the investment part of the bank goes down it can take down all the commercial banking with it. This is why banks build boundaries, to isolate departments that don't have anything to do with each other. Microservices do this at a finer, granular level. If a cash machine goes down it shouldn't take down the ability for people to log-in to online banking! Microservices separate things that should not be dependent on each other.
CI/CD is another core Cloud Native concept. It's a huge deal for banks. Why?
Continuous Integration, Continuous Deployment is the ability to update your code every day, or multiple times a day, rather than waiting for “big bang” upgrades every six months or so. It involves automated testing, the ability to roll-back to a previous version with ease, and critically, updates take place with no downtime.
The basic idea is that it's safer to do incremental changes in the order of one a day or a couple of times a week than doing them all at once, twice a year. Each change can be tested and monitored. If the change doesn't work it can be rolled back. By contrast, the “big bang” approach traditionally used by banks is much riskier. If you push out a thousand changes in one go and something goes wrong it's much harder to identify the problem. Before CI/CD, banks were highly cautious of upgrading their software because of the potential for failure.
“If a bank is stuck on technology from 30 years ago it is going to get left behind.”
So CI/CD improves a bank's ability to innovate?
Without CI/CD banks suffer from a problem. There are teams who work to a six month upgrade schedule. And there are teams who work faster than that. It creates a massive gap between the two groups. It's something I've seen a lot of within banks. CI/CD gets rid of that gap. Banks can deploy updates when they are ready. It gives banks a psychological sense of safety in being able to implement small changes, and roll back if needed. In that sense, CI/CD encourages innovation.
Cloud Native tools are shared across the community. How does this standardisation help participants?
I can give you my personal experience! When I was at Google we used Borg to manage containers, rather than Kubernetes. Borg is unique to Google. The problem was when I left Google, all my knowledge and skills became obsolete, because nobody outside uses Borg.
The Cloud Native universe is made up of open source, standard tools. Engineers will use the same tools when they move between employers. This makes it easier for organisations to hire people, and not have a ramp up time. New employees will arrive knowing how everything works.
How does the community contribute to the success of Cloud Native?
The community is so important. Working with Cloud Native tools means you can take advantage of the innovation that comes from having this global community of people, who may have different challenges, but are all contributing their solutions back to a shared resource. The Cloud Native Computing Foundation has more than 550 members including Apple, eBay, Mastercard, Morgan Stanley, and Ant Financial, and we have more than 90,000 contributors to CNCF projects. When you use Cloud Native tools you are benefiting from that shared expertise.
What role does the CNCF play?
The CNCF sits under the Linux Foundation, alongside some other foundations such as blockchain and AI. The CNCF was founded to be the home of Kubernetes. It's a neutral home, and ensures no single company has undue influence on the Cloud Native tools. We have open governance, so everyone can see how decisions are made. And we run events.
Can banks get involved?
Of course! I'd love to see it happen more. Right now we have companies like Adidas contributing. They don't see Kubernetes as commercially sensitive. No one buys Adidas sneakers because the company runs on Kubernetes! So they are always willing to share their experiences with the community. Banks are more reluctant. But they ought to get to the stage where they are willing to engage and share their own ideas and solutions, and make it easier for their engineers to engage with the community.
You also personally run Cloud Native London and the CNCF Financial Services Group. What goes on?
Cloud Native London is a Meetup group. It is one of the largest in Cloud Native globally. I started the group in 2017. It's a chance to bring people together once a month to meet socially and share experiences. Obviously it's a virtual meeting at the moment. The CNCF Financial Services Group is a group of companies who get together online once a month and discuss the challenges they are facing. Some issues are organisational, such as how do members get their company to work in open source and to use Slack and GitHub. The other half is on the technical challenges they face. It's open to non-CNCF members at the moment.
In conclusion, how dramatic is Cloud Native for banks?
Banks with legacy systems are nervous. They are nervous about updating their systems. They are nervous about the competition from challenger banks. And they should be. If a bank is stuck on technology from 30 years ago it is going to get left behind.
Adopting Cloud Native software means embracing a new mindset. You can do small, incremental changes, so you can innovate quickly and give customers the products they want. You can compete with the challenger banks, who are already benefiting from Cloud Native systems.
It's a choice. Banks can stay stuck on old technology and get left behind. Or, embrace Cloud Native and stay ahead of the competition.
Thought Machine is a member of the Cloud Native Computing Foundation.
To find out more visit: CNCF.io