How AWS Lambda (Serverless Functions) Can Get Your Mobile Mvp to Market Faster
Amazon offers a veritable power toolkit for businesses and developers. One of those power tools is called AWS Lambda (serverless functions).
Most people likely still think of Amazon as the world’s largest online retail store. While that image may well remain true, in the computing world, Amazon Web Services (AWS) is one of the largest providers of cloud computing services. Amazon has diversified well in the online world with not only retail e-commerce and cloud services, but also online publishing, taking the lion’s share of the ebook market with their Kindle platform and establishing a strong presence in the realm of physical books with their print-on-demand division, CreateSpace.
What is an MVP?
No, we’re not talking about “most valuable player,” though that term could apply. We’re talking about Minimum Viable Product. And your Minimum Viable Product could become your Most Valuable Player, if you do your product road-mapping right.
Developing a new product is an expensive proposition. That’s easy enough to understand. With great cost comes great risk that the return on investment will be too little to justify the product’s development price tag. Cutting back on the features that go into a product is a big part of reducing risk with any new idea. The philosophy of MVP is to cut out everything except the core features an early customer would demand. The product is still valuable, because it allows the customer to solve some problems. So, the product is viable, but only minimally so.
Besides reduced risk, fewer features also means a shorter runway to product launch. The MVP allows the developers and product owner to get feedback that much sooner. It’s almost like a new dimension of agile, iterative development — extending the development cycle into the marketplace for real-world reaction to the product idea to help the development team know whether or not they’re headed in the right direction. Design and development assumptions are put under the harsh light of public, end-user scrutiny.
Think of MVP as your first mega-sprint in the development cycle.
AWS Lambda Follows the MVP Philosophy
Faster to market means you can know that much sooner if you have a dud or a winner on your hands. Or it can tell you what needs to be redone or redesigned in order to make the product more valuable. And AWS Lambda also helps to get your mobile app to market that much sooner by cutting down the development overhead.
No, we’re not talking about some Alice-in-Wonderland universe where the internet suddenly works without servers. AWS Lambda’s serverless functions refer to the developer’s ability to create a software application without having to worry about any of the server overhead — no provisioning or managing the servers. This is a bit like the programming environment improvements that automatically took care of memory management with automatic garbage collection. AWS Lambda gives you a platform to run your code without having to think about server details. Yes, your code still runs on servers, but you’re left to concentrate on the unique functionality of your product, leaving the server “housekeeping” to AWS Lambda. That by itself can be a huge boon to your development timetable.
If you’re one of those developers who is more of a hands-on type, this might seem like a painful restriction. But AWS Lambda doesn’t allow access to the underlying infrastructure, and for good reason. On your behalf, AWS Lambda takes care of the compute infrastructure to ensure everything keeps running smoothly. They handle security patches when they’re needed, perform system health checks and do other needed maintenance so you don’t have to worry about such things. This saves your development team lots of time and reduces the resources your company needs to supply toward the MVP launch.
Environment and Security
An application’s code is given its own isolated environment with its own dedicated file system view and other resources. While the code is not being used, it resides on Amazon S3 in an encrypted format. When the code is run, AWS Lambda implements additional integrity checks to ensure both the code and the system remain secure.
The code uploaded to AWS Lambda must be stateless. In other words, it must not make assumptions about the system upon which it runs and must not rely on persisting states between calls. AWS Lambda may reuse an instance of a function from your MVP code in order to handle a subsequent request, but the programmer must not make any assumptions about such reuse. Other than these caveats, the developers are pretty much free to create what they do best.
AWS Lambda also helps with debugging by automatically integrating with Amazon CloudWatch logs. It creates a separate log group for each Lambda function used and provides event log entries for the basic application lifecycle. This will tell you things like the resources consumed each time a function is used. AWS Lambda also allows developers to insert additional statements into their code to log events as they happen.
Scaling Your MVP — For When Your Product Goes Viral
Don’t you love the sound of that? An MVP that goes viral is like a dream come true. And AWS Lambda handles all scalability issues automatically. That’s right. Your developers don’t need to lift a finger to mess with such things. It’s all taken care of for you.
Other AWS Lambda plus points include,
- Support for versioning
- Deployment of uploaded code typically occurs within seconds, and
- A developer can use their own unique version of a supported library.
Summary: Why AWS Lambda and MVP are a Marriage Made in Programming Heaven
MVP is all about reducing costs to reduce risk and speeding a product to market so you can learn more about how it survives in the world-at-large.
AWS Lambda helps you achieve the cost reduction and aids in the speed to market by,
- Eliminating the need for developers to fuss with server issues,
- Removing the need to handle security patches and other system health issues,
- Allowing you to develop in one of many powerful programming languages,
- Allowing you to include code libraries including language native libraries,
- Facilitating developer debugging,
- Automatically handling all scaling issues,
- Supporting versioning,
- Rapidly deploying newly uploaded code, and
- Supporting a customized version of a standard library.
All of these plus points will save money and time getting an MVP to market.