Why Startups ♥ Cloud or: "Cloud Services for Startups"
At RuhrSummit 2016 Marius Müller-Minde (Amazon Web Services) and Lars Wolff (StormForger) talked about why and how a tech startup can use the cloud and why performance and scalability matter.
Lars introduced three battle stories as examples for situations that nearly every company deals with some day.
Antipattern 1: Mobile App Backend
Imagine you create a mobile app backend and serve the users content that’s 60 minutes old via a PHP CMS.
Ask yourself: Why don‘t we just use a Assetstorage or CDN like Amazon S3 and CloudFront?
CloudFront is a web service that speeds up distribution of your static and dynamic web content […]. [It] delivers your content through a worldwide network of data centers called edge locations. When a user requests content that you're serving with CloudFront, the user is routed to the edge location that provides the lowest latency (time delay), so content is delivered with the best possible performance.
— Introduction: What Is Amazon CloudFront?
Amazon Simple Storage Service (Amazon S3), provides developers and IT teams with secure, durable, highly-scalable cloud storage. Amazon S3 is easy to use object storage, with a simple web service interface to store and retrieve any amount of data from anywhere on the web. With Amazon S3, you pay only for the storage you actually use. There is no minimum fee and no setup cost.“
— Introduction to Amazon S3
So, give it a try and make your CMS upload the content as JSON (or the like) to S3 and serve it via Cloudfront.
Antipattern 2: Newsletter
So, you have this elitist newsletter list with people interested in topic XYZ. Let's send out newsletters and ask the people to click the offers!
Remember: newsletter images are loaded from the web server. Finally, people end on the same web servers after clicking the offer link.
Think about this:
- Every static content should be on a CDN (e.g. S3 / CloudFront).
- Do you know how many requests of images and offer requests your web server cluster can handle?
- Servers can stand a lot, but they hate a lot at the same time (TCP connections? Workers? Backends?).
Be nice to your server and use a CDN like Amazon CloudFront to store your static content.
Antipattern 3: Your infrastructure
You create your own infrastructure resp. your concrete solution for every single component. While doing that one question gets into your mind: Didn’t other people have had the same problem before?
You can bet on that. And probably they got at the same point: Why are we doing this? There must be something that‘s already working and that we can use, too.
- The solution is: Go out and talk to other devs, use ecosystems like AWS!
- You want to store your static content? AWS S3 is your tool of choice!
- What about simple functions? Just try AWS Lambda!
- You do events? Take use of tracking? What about AMQP? The solution is AWS SQS!
If you are interested in getting to know more about background architecture take a look at our blog post on 2nd screen mobile app (backend API load testing).
Slides at Speakerdeck
Visit RuhrSummit 2016.