Backend Flashcards
Which three are the most common backend architectures?
Monolithic, micro services and serverless
What is load balancing?
a technique used to distribute incoming network traffic across multiple servers
How to ensure that no single server becomes overwhelmed with too many requests?
Use load balancing
What is a load balancer?
A device or software that acts as an intermediary between clients and servers.
What does a load balancer do?
Distribute incoming requests to multiple backend servers based on a specific algorithm.
What is the purpose of a load balancer?
Improve responsiveness, availability, and reliability of the application.
What are four common algorithms for load balancing?
Round Robin: distribute requests sequentially across all servers.
Least Connections: Requests are sent to the server with the fewest active connections.
IP Hash: distribute requests based on a hash of the client’s IP address, ensuring that a particular client’s requests always go to the same server.
Weighted Round Robin/Least Connections: Some servers may have more capacity and thus can handle more traffic, so weights are assigned to servers accordingly.
What is session persistence?
Also known as sticky sessions, this feature ensures that a user’s session is consistently directed to the same server. This is important for applications that store session state on the server.
Three types of load balancers?
Hardware, software and cloud-based.
Whats a hardware load balancer?
Dedicated hardware device designed specifically for load balancing. Typically more expensive and provide high performance.
What are software load balancers?
Software-based load balancers that can run on standard hardware. Examples include HAProxy, NGINX, and Apache HTTP Server.
What are cloud-based load balancers?
Load balancing services provided by cloud providers, such as AWS Elastic Load Balancer (ELB), Google Cloud Load Balancing, and Azure Load Balancer.
These services offer scalability and ease of use without the need to manage hardware.
What is a backend architecture? (And what does it define?)
The backbone of a web application.
Defining how servers, databases, and other resources are structured and interact with each other.
Key features of a monolithic backend?
A single, unified codebase that handles all aspects of the application.
Typically includes the user interface, business logic, and data access layers in one place.
Key feature of a micro services backend?
Breaks down the application into smaller, independent services, each responsible for a specific piece of functionality and can be developed, deployed, and scaled independently.