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
- Servers
- 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
- Service Discovery, Configs and Secrets
- CDN
- Load Balancing
- Domains / DNS
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:
- Logging: AWS Kinesis, Fluentd, GCP Cloud Logging
- Metrics, Monitoring, Alerting, SLOs: to monitor system health and key business metrics, and send out alerts: GCP Cloud Monitoring, Datadog
- 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