How to build a scalable application / api?

Scalability is the ability of a system network or process to handle a growing amount of work in a capable manner or its ability to be enlarged to accomodate that growth.

  • Use cloud that has ability to launch server on demand
  • Use load balancer (Amazon ELB, Rackspace Load Balancer)
  • Choose the right data storage (SQL or noSQL)
  • cache things
  • queue up everything that doesn’t need to be done synchronously, stats, logs notifications
  • Automate everything – you should be able to launch servers that self configure and get added to the resource pool automatically
  • run load tests
  • monitor everything – setup alerts
  • separate business logic into Service Oriented Architecture

More read here

Youtube video about Amazon AWS Services here

Amazon Web Services (Amazon AWS)

  • EC2 – Amazon Elastic Compute Cloud (EC2) is a central part of’s cloud computing platform, Amazon Web Services (AWS). EC2 allows users to rent virtual computers on which to run their own computer applications.
  • S3 – Amazon S3 (Simple Storage Service) is an online file storage web service offered by Amazon Web Services. Amazon S3 provides storage through web services interfaces (REST, SOAP, and BitTorrent).
  • VPC – Amazon Virtual Private Cloud (VPC) is a commercial cloud computing service that provides users a virtual private cloud, by “provision[ing] a logically isolated section of Amazon Web Services (AWS) Cloud”.
  • RDS – Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the cloud. It provides cost-efficient, resizeable capacity for an industry-standard relational database and manages common database administration tasks.
  • IAM – Amazon Web Services (AWS) Identity and Access Management (IAM) is a directory service designed for tracking system users and providing ways of keeping track of information about how they get authenticated.
  • Route 53 – Amazon Route 53 (Route 53) is part of’s cloud computing platform, Amazon Web Services (AWS). Route 53 provides scalable and highly available Domain Name System (DNS). The name (Route 53) is a reference to TCP or UDP port 53, where DNS server requests are addressed.
  • CloudFront – Amazon CloudFront is a content delivery network (CDN) offered by Amazon Web Services. CloudFront operates on a pay-as-you-go basis.
  • CloudWatch – Amazon CloudWatch is a monitoring service for AWS cloud resources and the applications you run on AWS. You can use Amazon CloudWatch to collect and track metrics, collect and monitor log files, and set alarms. Amazon CloudWatch can monitor AWS resources such as Amazon EC2 instances, Amazon DynamoDB tables, and Amazon RDS DB instances, as well as custom metrics generated by your applications and services, and any log files your applications generate.
  • CloudFormation – AWS CloudFormation is a service that helps you model and set up your Amazon Web Services resources so that you can spend less time managing those resources and more time focusing on your applications that run in AWS. You create a template that describes all the AWS resources that you want (like Amazon EC2 instances or Amazon RDS DB instances), and AWS CloudFormation takes care of provisioning and configuring those resources for you. You don’t need to individually create and configure AWS resources and figure out what’s dependent on what; AWS CloudFormation handles all of that.
  • Elastic Beanstalk – AWS Elastic Beanstalk is a PaaS (Platform as a Service) service from Amazon Web Services that allows users to create applications and push them to a definable set of AWS services, including Amazon EC2, Amazon S3, Amazon Simple Notification Service (SNS), Amazon CloudWatch, auto scaling, and elastic load balancers.
  • OpsWorks – AWS OpsWorks is an application management service that makes it easy for DevOps users to model & manage the entire application.
  • DynamoDB – Amazon DynamoDB is a fully managed proprietary NoSQL database service that is offered by as part of the Amazon Web Services portfolio. DynamoDB exposes a similar data model and derives its name from Dynamo, but has a different underlying implementation.