Better to run Code IN AWS than ON AWS
It's better to run code IN AWS than to run it ON AWS.
This concept is central to our philosophy and our embracing of cloud-native, serverless systems, and a key enabler of our software-development-as-a-service model. It's a subtle concept that sometimes requires diving a bit into the technology to understand.
To build a system ON AWS you are writing applications in a traditional way, using frameworks and dependencies, and building deployable artifacts and containers. You are using AWS (or any public cloud provider) for compute, networking, and other commodity resources (DNS, caching, databases, etc.).
To build a system IN AWS you are taking advantage of business applications and services managed and maintained by AWS into which you construct and deploy business logic.
So why is building IN AWS better? A lot of reasons, but a few of my favorites:
- It's operationally efficient, I.e. a very high mean time to maintenance (see article). That means it costs less to operate and maintain.
- It's natively observable, meaning we can very easily monitor and respond to performance metrics - both business and technical.
- It costs less to build and maintain. You're simply writing less code and you're letting AWS handle non-core domain functionality.
- It's understandable. You can look at Step Functions and see exactly how the logic works. And you can use the system to document the system.
When you build your system IN AWS you are taking advantage of the full power of the platform. You are positioned well to leverage new services as they come out. AWS manages almost all of your technology stack for you. And the pricing is on-demand, able to grow (and if needed contract) with your business.
Read the article to learn a bit more, or better give me a shout and let's discuss.