logo

Tech Stacks - Overview

Modern software / service life cycle: development, delivery, operation.

Tech Stacks

Infra Building Blocks

3 core parts: compute, storage, network.

  • Compute
    • Servers
      • bare-metal
      • VMs
      • containers and orchestration: Kubernetes
    • Serverless
  • Storage / Databases
    • Databases to store data and make them readily available for appliations, and indexes to speed up searches and filters.
    • Caching to speed up reads by remembering results of expensive operations
    • Data Warehouse to store historical data for analytics
    • Storage to store files and objects (can also be used to serve static websites)
    • Messaging to communicate between processes and enable async operations. (Message Queues and PubSub)
  • Networking

Development

  • Languages: Java vs C++ vs Python vs Go vs Rust vs Kotlin ...
  • Frameworks: server, web, mobile, UI/UX
  • Coding Styles / Naming Conventions: camelCase? PascalCase? Underscore? Dash?
  • IDE / Editor: VS Code, Intellij, Vim. Though it is ok to choose any IDE the developer prefers, but better to have a few "officially supported" options by your technical support team.
  • Source control
  • Code review
  • Internal documentation and knowledge sharing
  • Analytics, logging
  • Internal experiment / external experiment

Production

  • Package / artifact format: a common way to package all the applications, e.g. Docker containers or Java archives.
  • Artifact registry
    • 3rd party dependencies
    • built binaries
    • built images
    • Helm charts
  • S3C: Secure Software Supply Chain
  • CI / CD: Build, Test, Release, Rollout
  • Observability:
  • Prober, blackbox monitoring
  • Resource / Capacity Management and Provisioning: manages a service’s capacity; adjusts resource requirements or number of replicas. CPU / RAM / SSD / DISK.
  • Data Integrity, Reliability, and Staleness Prevention
  • Oncall, Incidents, Escalations, and Postmortems
  • DR: Disaster recovery.
  • IAM.
  • Billing / Payment.

Processes

  • Planning / Issue tracking: Jira, Asana, Kanban
  • Security, Compliance, Privacy
  • Launch: internal review, then expose the code to end users
  • Methodology: waterfall vs agile