💻

Backend Technologies Overview

Jun 23, 2024

Backend Technologies Overview

Frontend vs. Backend

  • Frontend: Visual elements of a website.
  • Backend: Manages and stores data (e.g., Amazon's order history).

Backend Process Example

  • When placing an order on Amazon:
    • Client (your computer) sends a request to a server (Amazon's computer).
    • Backend programming languages: JavaScript (Node.js), Python, Ruby, Java.
    • Requires backend frameworks and package managers:
      • Frameworks: Express JS (JavaScript), Django (Python), Ruby on Rails, Java Spring.
      • Package Managers: NPM (JavaScript), PIP (Python), Bundler (Ruby), Maven (Java).

Data Storage

  • Databases: Store and manage data.
    • Examples: MySQL, Postgres, MongoDB.

Request-Response Cycle

  • Frontend sends a request to the backend; backend sends a response back.
    • Example: Place an order, backend saves it to the database and confirms.

Inside a Request

  • Contains items ordered, quantities, and other info.
  • Request components: Type, domain name, URL path.
  • API (Application Programming Interface): Defines allowed requests.
    • Uses RESTful conventions (e.g., POST for creating an order).
    • Other conventions: GraphQL, RPC.

Cloud Computing Infrastructure

  • Companies rent computers instead of buying them.
  • Major providers: AWS (Amazon Web Services), GCP (Google Cloud Platform), Microsoft Azure.
  • Virtual Machines (VMs): Rented computer instances within cloud infrastructure.
    • Use load balancers to handle high traffic.

Platform as a Service (PaaS)

  • Simplifies VM setup by managing backend code deployment.
    • Examples: Elastic Beanstalk (AWS), App Engine (GCP), App Service (Microsoft Azure).

Microservices

  • Breaking down backend functionality into smaller, specialized services.
    • Each service can use different programming languages and databases.
    • Can use third-party services (e.g., Twilio for sending emails).

Key Cloud Computing Concepts

  • IaaS (Infrastructure as a Service): Renting computing infrastructure.
  • PaaS (Platform as a Service): Provides platform to deploy applications.
  • SaaS (Software as a Service): Third-party software provided over the internet.

Additional Backend Technologies

  • Address specific needs or performance issues:
    • Blob Store: AWS S3 for storing images.
    • CDN: CloudFront for distributing content globally.
    • Search Database: ElasticSearch for efficient text searching.
    • Cache: Redis for performance improvement.
    • Analytical Database: Snowflake for data analysis.
    • Job Queue: RabbitMQ for task scheduling.

Summary

  • Essentials for beginners: Cloud computing, backend framework, primary database.
  • Advanced technologies: Used as needed based on website requirements.