The New Variable in Build vs. Buy
The age-old question of whether to build or buy isn’t limited to information technology. I can, if I want, build cabinets in my garage to use later in my kitchen, but I would rather buy them from a store. I could spend years “building” my knowledge to climb mountains, or I could hire a guide to help me “buy” knowledge much faster.
The decision to build or buy hardware and software is not as clear, and things have become even more muddied over the last few years. The decision isn't limited to whether you have the right staffing and budget to build what you need, and it’s not just a choice between continuing to use on-premises hardware or leverage cloud-based hardware. To complicate it further, you are not limited to buying or building infrastructure-as-a-service (IaaS), platform-as-a-service (PaaS) or software-as-a-service (SaaS). The new variable you need to know is “serverless.”
What is Serverless, Anyway?
Before we dive into a concrete example of serverless technologies, let's get a sense of what that is. Contrary to its name, “serverless” does not mean there is no server involved. The Cloud Native Computing Foundation has this helpful definition of a Serverless Working Group:
“Serverless computing refers to the concept of building and running applications that do not require server management. It describes a finer-grained deployment model where applications, bundled as one or more functions, are uploaded to a platform and then executed, scaled and billed in response to the exact demand needed at the moment.”
In the build vs. buy argument, serverless refers to servers that no longer require traditional staffing and budget. There is still a cost, but it's peanuts as compared to the staffed model for most businesses.
Cater to Your Business
The part of the CNCF definition that mentions “executed, scaled and billed in response to the exact demand” is where serverless has the biggest impact on build vs. buy. This is huge! Software engineers, system administrators and architects spend a lot of time over the entire software development life cycle building scale, or elasticity, and that gets expensive.
In this build vs. buy paradigm, building on top of a serverless platform becomes very attractive. Instead of being looked at as a cost center, your engineers now become revenue-generating resources who contribute to building out what's unique to your business. They can fine-tune and elevate the latest and most relevant technical advantages that you have over your competitors. Put another way: Build the things that only you can build and buy the rest.
Getting Practical with Machine Learning
Let’s use a real-world example, examining something that I recently spent time working on: designing, training and deploying machine learning models at scale—or, more specifically, training an ML model and getting predictions from that model. A traditional build story around ML would be to buy very expensive hardware with graphics processing units, run them on premises, and go through the laborious process of getting dependencies installed and parallelism set up correctly and efficiently. But not many organizations choose to do that anymore because it takes very specialized staffing and consumes a lot of the budget.
An alternative for this is to use serverless machine learning in the cloud. I ended up selecting Auto ML Vision from Google Cloud’s AI Platform. Using only web-based API calls—application programming interface, which is a way for software to talk to another software—along with Google Cloud Storage, which is also serverless, you can ingest your training data into a dataset. GCP will then automatically scale out the hardware needed to train, validate and test the ML model. Once this is completed, another representational state transfer (REST) endpoint can be made available to you for real-time or batch predictions.
Not only is the ML model creation and running process serverless, but it can be integrated into an existing line of business by leveraging additional serverless technologies like GCP Cloud Functions or Cloud Run.
The graphic above helps illustrate the process, but what did I not do here? I did not train the core vision model. Instead, I can extend it for my use case or my client value. I did not design a scalable storage solution, manage a compute cluster or write an API to serve my predictions. Instead, I outsourced most of that to a “buy” decision and spent my engineering and data science dollars to address and solve the core problem.
Serverless has Changed the Equation
Serverless computing drastically changes the build vs. buy argument by enabling your business to focus on what you do rather than how you do it. Your engineers become a critical part of the way your business generates revenue, are freed from the costly maintenance of infrastructure and can focus on client value. In short, they can see the forest and the trees.
Thanks to these many benefits, this technology is here to stay. It provides a great blend of control and managed services to enable a business to be more competitive in today's economy. So, as you look to build or buy, check into whether your technical requirements can be met by the capabilities of serverless technologies. It is worth your time and money to consider building on top of a serverless platform.
A Practical Cloud Journey 2021 Blog Series
June: Cost Awareness and Cost Control
July: Controlling Who Can Do What in the Cloud
August: The DevOps Mindset
September: Solutions: Machine Learning
October: Solutions: Supply Chain
November: App Modernization
December: Your Journey to the Cloud