When building a (global) SaaS application chances are high that you’re building it in the cloud. The cloud has a lot of advantages – think of scalability – in contrast to local server environments. Therefore this post, and the ones which will follow, focus on software which is built and engineered in the cloud. Here’s how to secure a cloud-based SaaS architecture.
More and more SaaS businesses are taking off the ground today. And it’s great. The SaaS business is a super-fast growing industry attracting more and more people and companies.
These organizations are more and more floating applications in the cloud. Scaling in the cloud has some essential benefits and risks as well. Starting with this blog post we are going to show you how to start building a cloud-based SaaS architecture, dealing with issues of scalability and what this means for your software stack.
6. Everything in the cloud
When building a (global) SaaS application chances
are high that you’re building it in the cloud. The cloud
has a lot of advantages – think of scalability – in
contrast to local server environments. Here’s
how to secure a cloud-based SaaS architecture.
7. How to get started?
WHICH
LANGUAGE?
WHICH
DATABASE?
WHICH
SOFTWARE?
8. Which programming language?
Building a product for the cloud, means building a product
with a modern programming languages.
There are various (modern) programming languages out
there making it a hard time to choose the right one.
Take a look at the most prominent ones, play around with
those and try to experiment as much as possible.
10. MongoDB – the database for your web app?
We – at Usersnap – ended using MongoDB as our
prior database. Why we choose MongoDB?
Because MongoDB is a document oriented
database that provides high performance, high
availability, and easy scalability.
Why MongoDB?
Scaling your tech with MongoDB is pretty easy (ok, at least easier compared to
other databases). With automatic sharding you can distribute data across
various machines.
11. MongoDB – the database for your web app?
Sharding is basically a
method for storing your
data across multiple
machines. And MongoDB
uses sharding to support
deployment with large
data sets.
13. RambitMQ (the system we use)
Python with the open source celery task management library is the
perfect fit to get the most out of RabbitMQ. We’re using a single
RabbitMQ server, with multiple endpoints that feed the queue with
tasks as well as endpoints that process those tasks (e.g. produce our
nice-looking screenshots).
How we installed RabbitMQ
Again, I’d like to give you some insights on the queuing
system we use, RabbitMQ. We run our web app in on the
AWS EC2 where RabbitMQ can be run installed and run
super smoothly.
17. CDN & the big cloudy picture
A content delivery network is basically a system of distributed servers which enables you to serve
content to your app users with high performance and high availability.
Let’s assume you have 3 EC2s installed. One in the US, one in Europe and one in Singapore. If someone
from New York visits your app, the CDN enables you to serve content to the user through the EC2
located in the US.
How we at Usersnap have
set up our web app and the
role of EC2, S3 and CDN.