In a recent episode of “This is My Architecture” with Amazon Web Services, my colleague and Senior Cloud Architect Tom Myers drove home why serverless architecture is one of the hottest topics today—in particular, how Accenture uses it in the Accenture Cloud Platform.
First, what does serverless really mean?
Serverless, also known as Function-as-a-Service, is a mode of computing in which developers write business logic functions and the cloud provider executes the functions. For the developer and operator, how it executes—i.e., which infrastructure it uses—is all hidden.
This new development gives companies a powerful new way to reduce IT operational costs, deploy services faster and be more responsive to customer demand. In a serverless environment, a company replaces servers dedicated to specific applications by outsourcing (and abstracting) infrastructure functions to a public cloud vendor, such as Amazon Web Services (AWS). When an application isn’t being used, it sits latent, with no computing power running behind it. But when someone makes a request of the application, the infrastructure behind it marshals all the technology components necessary to process the application’s business logic and respond to the request.
What’s special about serverless is that you only use what you need, when you need it. This creates an efficient solution design that often costs less and performs better. Today, Accenture uses a scalable serverless architecture to manage thousands of public cloud accounts for internal consumption and on behalf of our clients. These accounts have millions of resources that need to be tracked for configuration, security, policy, costs and overall governance. We do this with our cloud management platform, Accenture Cloud Platform (ACP).
Our approach to serverless architecture: Accenture Cloud Platform
Our serverless architecture discovers resources in customer accounts, thus enabling ACP to play an important role in helping companies get the most from their cloud presence while providing visibility and control. The goal: make it easy to manage our—and their—cloud estate with governance tools, advanced cost analytics capabilities and dashboards.
This last point is especially critical for large companies with numerous accounts comprising many resources, and with infrastructure and services spread around the globe. ACP effectively allows massive enterprises to have visibility across all their environments. But importantly, it’s not a “single-pane-of-glass” visibility but a co-existence model.
Rather than force every user to go to a portal (which will never keep up with the rate of change of public clouds), we do real-time discovery of cloud resources. This helps us remediate non-compliance quickly. Of course, with thousands of accounts, the issue becomes how to build a scalable discovery architecture. Enter serverless.
The business drivers that drove ACP to serverless
We started this journey in November of last year. We wanted to solve a set of business challenges that are common to any product group in a large enterprise faced with a fast-growing market disruption like cloud.
1. Speed. Given how quickly cloud services are evolving, we needed to add support and management to these services at speed. Using our traditional approach meant falling further behind every day (AWS claims they are adding three major features a day).
2. Budget. While cloud services grow at very high rates, our engineering budget does not. We needed a way to disconnect cloud growth from cost growth. The only way to do that was to create a true platform that allowed other members of our ecosystem to serve themselves and others. Think of it as Tom Sawyer getting other kids to paint the fence, but in a win-win approach.
3. Commercial alignment to market needs. It’s no secret that customers want everything as a service and to pay on a unit-of-consumption basis. The challenge is that the number of “units” of measure is growing rapidly. Serverless allows us to dial the unit of consumption all the way down to a specific customer function, like “update CMDB” or “put a server to sleep.” And it’s done at prices that are fractions of a penny.
Here’s how ACP serverless works in AWS:
By capitalizing on the AWS Lambda functions, a decoupled serverless architecture, and microservices, ACP enables us to quickly and efficiently discover changes in resources across all cloud accounts.
The beauty of this architecture is that it makes discovery very fast. ACP can run many thousands of the same AWS Lambda function simultaneously. Each discovery run for a given account operates for only a few seconds. Why the difference? With serverless, we’re working with a set of well-known, already-established infrastructure and platform services to which we are simply adding business logic. We don’t have to worry about setting up servers, configuring environments, clustering or any of the other things you have to deal with when building a traditional system.
And that’s why we believe that for certain applications, serverless is the way to go. It just makes sense for so many reasons, including cost, time reduction and scalability.
Future thoughts: the operating model challenge
Putting serverless architecture to work requires coordination and orchestration that pose a challenge for existing operating models and tooling. From how to monitor the app, how to divide labor between dev and ops, and who is tasked with L1—everything requires a rethinking. Transformation is the most complex challenge of serverless adoption, not the technology itself. We’ll discuss this in a future blog post.
If you want to really get into the nuts and bolts of our serverless architecture, I’d recommend you watch Tom’s video.