Home » Capabilities » Scalability & Architecture

Scalability & Architecture

Need a scalable architecture to control costs and keep pace with your growth?

Technology companies offering SaaS or cloud-based products and applications face a common roadblock: a scalable architecture. As you increase customers and expand software features to keep pace with future growth demands, your architecture needs to scale. Without scalable architecture in place, customers face slow performance, systems that crash under demand, load surges, and system bottlenecks. It can often lead to expensive AWS cloud costs when your systems or database are built on vertical scaling. 4 considerations when creating a scalable software architecture >

With careful planning, you can easily address scalability challenges. It often starts by looking at your business goals, use cases, and metrics, followed by a cost analysis comparing architectural design alternatives, such as database replication and sharding versus a managed database. Ten Mile Square’s team gets asked to weigh in on these scalability decisions almost daily. Schedule a discovery call today >

MEDIA SCALABILITY

“Ten Mile Square knows how to scale digital asset management systems for media companies. After asking the right questions to understand our business, they quickly figured out and solved our scalability issues. Leveraging their AWS expertise, they scaled our platform to serve 7x as many customers. They’re invested in our product and our success. I haven’t found anything they don’t do well.”
IAN CHESTNUTT, HEAD OF DEVELOPMENT, TENOVOS

How to Create a Scalable Software Architecture

Business and product leaders consider several factors when planning for a scalable architecture. It usually starts with an eye toward horizontal scalability and scaling independently. Design decisions need to factor in deployment costs, plan for database scalability, and integrate load balancing.

1. Scalable Architecture Requires Moving from Vertical to Horizontal Scalability

What is horizontally scalable architecture and why is it important? Horizontal scaling allows you to scale up discrete parts of a cloud-based system, rather than the entire system, to meet demand. Scaling horizontally not only is significantly more cost-effective, but also enables auto-scaling, gives you more control, and reduces the time it takes to evolve your system.

What is vertical scalable architecture? By contrast, vertical scaling requires you to scale up the entire system at once. While common in older technologies and databases, there are no benefits to scaling vertically when deploying in the cloud today. It is more costly and time-consuming to maintain.

What is scalability in microservices architecture? Microservices architecture breaks down software programs into smaller components. Each microservice has one function, so it can be scaled to the exact level you need, making them independently deployable or upgradable. Microservices help you scale efficiently in the cloud using horizontal scaling and workload partitioning – resulting in faster deployments, cost efficiencies, and granular performance tracking. Many recognize Netflix’s pioneering move to replace its monolithic software design with smaller components decoupled into 1,000 microservices for discrete functions, such as login, search, stream a movie or update your profile.

2. Design for Scalability to Control Your Deployment Costs

Architecture design decisions will affect deployment costs. Before making any decisions, ask:
  • Do your architectural decisions consider the impact on deployment costs? Many developers write code to optimize the solution to the problem they are handed. But, not necessarily, the efficiency of the cost model for running the code. 
  • Is your process automated to ensure architectural components are updated immediately? Updating to the latest software version lets you take advantage of newer, more scalable system features, which helps keep your cloud costs lower.
  • Are you periodically revisiting ways to reduce AWS cloud costs? If your AWS cloud costs are high, moving to horizontal scaling is key. As demand surges, you will only pay for what needs scaling or more memory when you need it rather than all the time.

Flexible, Scalable Architecture for Media Platform

tenovosTen Mile Square helped this SaaS digital asset management platform create a more flexible, secure, and scalable architecture to meet expanding customer requirements.

3. Database Scalability Is a Common Scaling Bottleneck

Most relational databases were designed using older technologies that supported vertical scaling. As a result, databases are a common cause of scaling issues. There are a number of ways to solve database scalability including:
  • Managed databases: A managed relational database service (RDS), like Amazon Aurora, allows you to move your database to an open-source, cloud database. This lightens the load of moving to a horizontally scalable database, but it may require some changes first.
  • Clustering: Clustering technology may be an option that can move your database closer to horizontal scaling.  
  • Sharding: A replica database and sharding is another option (think of it as “horizontal partitioning” to spread the load). For instance, if you have an Oracle enterprise database that you plan to stay on, you may find it easiest to use master replication and sharding to make it more scalable.
  • Non-relational and NoSQL databases: Consider cloud-native databases that are built to avoid relational database scaling challenges. Options include CloudSpanner, BigQuery, Redis, MongoDB, and Neo4J.
With careful planning, you can move away from a vertical scaling database. Start by looking at your business goals, use cases, and metrics. Compare alternatives like Amazon Aurora versus a replica database with sharding. Conduct a cost analysis to make the best decision. Ten Mile Square’s team gets asked to weigh in on database scalability decisions almost daily. Schedule a discovery call to talk through a scaling question or get an unbiased, external perspective.

Increased Database Scalability by Migrating to Aurora

Ten Mile Square helped a multi-million dollar media company solve its database scalability by:

4. Load Balancing Is Key to Scalable Architecture

Your entire system must be examined when solving scalability. As you increase capacity in one area, you need to consider downstream capacity or risk shifting the bottleneck. Load balancers can improve availability by routing traffic to different proxy servers to prevent overloading.

Consider, where are your scaling problems occurring? If your gateway is the bottleneck, a gateway load balancer will help you scale up to avoid crashing under demand, timeouts, or slow performance. Similarly, if your application is experiencing a surge in customers, an application load balancer will resolve the issue. Elastic load balancing can also help with application scalability by distributing traffic across multiple targets and virtual applications in one or more availability zones. Eventually, you may need to address your database scalability – redesigning your storage architecture or moving to a horizontally scaling database.

Featured Scalability & Architecture Articles

Architecture & Scalability Checklist

Did you answer ‘yes’ to any of these questions? Contact Ten Mile Square today to learn how we can help assess and solve your architecture scalability issues.

Improve your architecture scalability and control your costs

Scroll to Top