Rocket to the cloud: AWS on migration strategy and serverless architectures

With public cloud adoption beyond fever-pitch, we sat down with AWS Global Executive Advisory Mario Thomas to discuss modern-day cloud migration strategies and how organisations should be approaching serverless technology.

Public cloud adoption has shown absolutely no signs of slowing down over the past few years, with the latest figures from RightScale showing that adoption rates have hit 91% of surveyed respondents. While multi-cloud seems to be the primary enterprise strategy by a long margin (with 84% of enterprise respondents indicating this was their strategy), this hasn't withdrawn interest in public cloud investment with a 24% increase in public cloud spend in 2019 vs 2018.

Leading that charge continues to be AWS, with 61% of organisations using Amazon's services giant and 16% experimenting. While Microsoft's Azure platform - especially in the enterprise sphere - is quickly catching up with AWS, Amazon still holds the highest adoption rates overall by a very healthy margin, as it increases its investment in additional services across areas such as IoT, AI, and analytics. It also recently increased its support for hybrid cloud architectures, an area where Microsoft has traditionally had the edge, with the AWS Outposts service which involves the delivery of pre-configured racks to a customer's on-premise data centre or co-location space. Overall, the company is doing all that it can to stay on top of the pile, as the competition heats up, providing a wealth of services that cater to most of the more typical enterprise use-cases.

This has been one of the messages the company has been pushing over the course of its massive global ‘Summit' programme, which hit the UK last week. The company's London ‘Summit' event rolled out the carpet to record numbers of attendees, to discuss a sum of the 165 services that the it provides.  Some of these discussions were between AWS consultants, executives or experts and customers themselves, with customers looking for guidance on hot-button topics such as microservices, containers, monolithic application migration, and serverless architectures.

At the event, we sat down with Mario Thomas from AWS Global Advisory, to discuss some of the things he talks through with customers when it comes to orchestrating and executing a migration strategy, as well as what concerns customers still have at this stage when it comes to AWS adoption. Thomas also discussed the approach organisations should be taking when it comes to serverless, as well as how he views the progression of the hybrid cloud wave in the future, in terms of its relationship with AWS.

We're seeing a wealth of public cloud adoption now across many industries, for those who still haven't adopted public cloud, what seems to be the main concerns? 

I think we've put to bed many of the concerns that we may have seen between 18 months to 2 years ago. Back then, customers were asking questions like 'can we be as secure in the cloud as on-premises' or 'can we be compliant'. Those concerns are largely now a thing of the past. 

The kinds of areas that I see now that customers are discussing now aren't around those fundamental issues, rather, customers are more concerned with their ability to execute their migration or adoption and their ability to do that as quickly as they need it to be done. Often that desire to migrate comes about after a compelling event, such as a data centre closure or something similar. 

Other times companies are just looking to be more agile and change the way that the organisation is working, and a lot of the time customers are just looking for guidance on how to do that effectively. They're wanting to execute that change as quickly as possible but with as minimal risk as possible. Essentially, they're looking to execute their migrations as they would with an on-premise project, albeit with better technology and faster time to market. 

So, they're the kinds of hurdles that we have to work with our customers on, and we're being prescriptive in how we help them and drive those transformations. 

When you're starting conversations around migration with customers, what are they generally trying to accomplish in the initial instance? Are they generally always centred around critical data? 

Those initial conversations are usually with the CFO, the CIO, or the CEO. At that point, rather than have a conversation about technology, we're much more interested in the business itself and the outcomes and objectives that it is trying to reach. In that sense, a customer might approach us about taking their data centres off their balance sheet, or customer might be gearing up parts of the organisation for sale, or maybe its e-commerce isn't performing. The customer essentially makes broad, strategic statements about its business that you then go and explore. 

In doing this, it provides increased capacity and opportunity to drive value through one of two approaches. The first involves the development of small, agile, production-ready pilots for customers, where we can show immediate value in several weeks. While the second might involve the identification of a larger migration plan that needs to play out.

So, it definitely starts in the C-suite so we can understand strategic intent, and then we work with stakeholders and executive sponsors in the organisation to drive that transformation more broadly and into deeper areas. We may then start to discuss with infrastructure teams - for example - how would you handle a mass migration of 20,000 servers or we might have a discussion with a line-of-business owner about an interesting idea regarding some new functionality that they want to build using microservices or serverless architecture.

The conversations we're having now are less about compute, networking, and storage and much more about the other services that we provide. An example would be customers coming back to us and asking how they can use AI or ML to transform their back-office operations or asking how they can use DevOps to drive agility in their development teams. So, conversations are definitely shifting away from 'we need to shift this tin', and much more about driving change within an organisation.

As you've alluded there are a lot of internal aspects to managing a cloud shift. How do you talk organisations through those internal and cultural changes? How significant are those? 

This is really the advisory bread and butter for us. The day-to-day conversations that we have are typically around people, governance, and business. Part of that, for example, is talking to CFOs about how we could transform the finance operation because it suddenly has access to a wealth of information about their company usage. This might allow them to do things like accurately charge things back to differing lines of business and make decisions surrounding cost transparency and feed that back to the business in terms of use in the cloud. 

So, the finance transformation that needs to take place can be quite considerable. Things like procurement processes are massively shortened, with CapEx approvals for infrastructure - along with the wait for purchasing and installing that infrastructure - all effectively going away. Suddenly everything moves at a hyper-pace, although the governance that surrounds that is still old-world. So many of our conversations today are with parts of the organisation such as HR and finance, discussing how we can change cultures, which is the big one. 

If you're moving to the cloud and you don't get cultures right, you're definitely not going to be able to take advantage of the cloud. For us, having those conversations about how you transform governance frameworks and how people are working and using services provides the capacity for less friction in executing a value-driven transformation. 

Switching tack a little bit, we're seeing increased adoption rates of serverless and AWS Lambda. Broadly speaking, where does serverless fit in? When should organisations be thinking about serverless instead of Amazon Elastic Compute Cloud (Amazon EC2)?

I think people should definitely be thinking about serverless now. One of our customers in Sainsbury's have a cloud-first strategy, and they're driving a reduction in their technical debt using serverless. Whilst they are bringing servers into EC2 and using compute, network, and storage in the traditional sense, they're also driving the use of serverless and containers. This has allowed them to produce 3 to 4 releases of their software per day, compared to the 5 or 6 per year that they were able to produce previously, so that's a massive increase to their agility. 

Then there's a company like Monzo, which is a new, born in the cloud challenger bank. They've achieved compliance with regulators while also building their core banking services in a microservices framework. So really nothing is off the table as far as serverless is concerned and every application probably has a serverless equivalent.

We want to get to a point where customers don't have to worry about running EC2 at the end of the day. EC2 definitely decreases the amount of work that you have to do compared to on-premises. Although, if you then move to serverless, you start to see even more significant cost-savings and performance improvements in the applications, as well as increased ease of development, deployment, and management of applications. 

So there are so many benefits that sit around a building serverless applications compared to managing existing EC2 instances to keep applications running as they traditional always have. I also think you stifle innovation if you don't think about potentially refactoring and assessing opportunities to move to serverless as well. I definitely think serverless is applicable for a wide range of use cases, perhaps even all of the ones that I typically deal with every day. 

So, there aren't any applications that are more suited to serverless than not - it's essentially useful for most, if not all, use-cases? 

Essentially, serverless can be fundamentally described as functions running in the cloud. With AWS Lambda, if you can write some logic in one of the supported languages and run it in the cloud, it's going to run equally well, or better, than it would do in an on-premise environment or EC2, with less management and less operational overhead.

For me, everything should be considered as a potential serverless target unless there's a good reason not to do it. There are softer, non-technical reasons not to do it, but even some of those - like achieving compliance and governance - is probably easier to achieve using serverless than it would be using EC2 or on-prem.  

What advice do you give to organisations who are looking to break down their monolithic applications and adopt more of a microservices model, perhaps driven by serverless or otherwise?

We typically work with customers to, first of all, identify what it is that they're running and what is a potential candidate for migration to the cloud as we need to understand the level of work that is involved. 

When you're looking at monoliths in particular, there's often a fair amount of difficulty in migrating them, because a lot of them are multi-decade in age. Breaking those apart is fraught with issues and questions like, 'who actually wrote the code', 'is it documented', and 'do we actually understand what it's doing?'. There's always a temptation to throw out the application and rewrite it.

However, we might also suggest using containers as a way to manage that migration of the monolith to AWS, with transformation once that's landed. It really depends on the customer, and their appetite to build, redevelop or refactor versus do they just want to leave what they're doing alone. Often this really comes down what's driving the transformation agenda.

Just to finish, AWS obviously views public cloud as the future to the point of organisations only using public cloud. How do you, therefore, position the push in the market we're seeing now towards hybrid cloud? Do you expect this to fade away over time? 

I definitely think people are going to be going 'all-in' on public cloud, but as for hybrid, AWS is still supporting these environments with things like Outposts, which we announced at AWS Re:Invent last year. Outposts is there to support those customers who need the hybrid environment, to be running things closer to their business or with extremely low latency.

I think the hybrid model is definitely something that we're going to see continue, it's not suddenly just going to stop and everyone is going to go all-in on public cloud. However, what we're seeing in the market now is a cloud-first mentality. Customers are primarily looking towards the cloud unless they have to look at the hybrid model. That's a key driver because running on-premise carries an overhead, so cloud-first is definitely what we're seeing.