DEV Community

loading...

Building cloud native apps: Backing services

lukaszbudnik profile image Łukasz Budnik ・2 min read

The Twelve-Factor Apps has a great summary of Backing services: https://12factor.net/backing-services.

I love it and I have very little to add. That's the essence of building a modern software.

The point I want to make is to not build backing services yourself and use, wherever possible, integrations to other PaaS/SaaS managed services.

The Twelve-Factor App was created by Heroku team and I will use Heroku as an example. I remember when I built my first big app on Heroku back in 2012. I used a number of different Heroku addons (now called Heroku Elements Marketplace) and it was a truly mind-blowing experience. I just attached managed services to my app and used them (endpoints and/or API keys exposed via env variables). Heroku was definitely the avant-garde of PaaS.

The beauty of Heroku platform is that you simply can't do it wrong. You don't have access to the underlying infrastructure and there is no temptation for you to host your own Elasticsearch cluster and build your own log management solution. I know: homegrown solutions may appear cheaper, but in terms of the quality can you really match a service delivered by a highly specialized company?

What many people tend to forget is that your team's time is worth more than the costs of those services. Your team should be focusing on the business value and not trying to figure out how to best implement HA for a database cluster or troubleshoot performance issues with your log management solution.

Just take a look at Heroku Elements Marketplace or check out AWS, Azure, GCP list of managed services. The big cloud players offer you everything you need to develop your application: Compute, Serverless, Networking, Databases, Caches, Queues, Storage, Monitoring, Log Management, Security/Governance & Compliance/Threat Detection & Prevention, Encryption, Machine Learning, Artificial Intelligence, Internet of Things, Mobile, Game Tech, Media Services, VR & AR. AWS offers even crazy services like AWS Ground Station to control your satellites.

To wrap up:

  1. treat backing services as attached resources;
  2. don't build them yourself, use specialized managed services.

Discussion (0)

Forem Open with the Forem app