How to Build a Backend Technology Stack for a Startup
This article provides a comprehensive guide for startup founders on selecting languages, components, processes, and tools to design and implement a complete backend technology stack, covering everything from project management and DNS to databases, monitoring, and deployment.
For startup founders who need to build a backend from scratch, the backend includes everything running on servers such as frameworks, languages, databases, services, and operating systems.
Four Layers of a Backend Stack
Language: which programming languages to use (e.g., C++, Java, Go, PHP, Python, Ruby).
Components: middleware such as message queues and databases.
Processes: development, project, release, monitoring, and coding standards.
Systems: platforms that enforce the processes, like release systems and code‑management tools.
Component and Tool Selection
1. Project/Bug/Issue Management
Open‑source options include:
Redmine – Ruby‑based, many plugins, but many are outdated.
Phabricator – PHP‑based, originally from Facebook, integrates code review and task management.
Jira – Java‑based, feature‑rich, suitable for larger teams.
Wukong CRM – a CRM that can also handle simple task tracking for B2B startups.
2. DNS
In China the main providers are Alibaba Wanwang and Tencent DNSPod; for global coverage Amazon Route 53 is recommended.
3. Load Balancer (LB)
Typical cloud LB services support TCP/UDP (layer‑4) and HTTP/HTTPS (layer‑7), certificate management, and health checks. Use Alibaba SLB, Tencent CLB, or Amazon ELB for cloud‑based instances; for on‑premise use LVS + Nginx.
4. CDN
Domestic providers: Wangsu, Tencent, Alibaba. International: Amazon CloudFront and Akamai. Use multiple CDNs for redundancy and better coverage.
5. RPC Frameworks
Cross‑language options: Thrift, gRPC, Hessian, Hprose. Service‑governance‑oriented options (mainly Java): Dubbo, DubboX, Motan, rpcx.
6. Service Discovery
Client‑side discovery (e.g., Consul, etcd) and server‑side discovery via load balancers. Common registries: etcd, Consul, Apache ZooKeeper.
7. Relational Databases
Traditional: MySQL, PostgreSQL, Oracle, MariaDB. NewSQL examples: CockroachDB, TiDB, Google Spanner. Choose based on ACID needs, scalability, and ecosystem.
8. NoSQL
Four types: key‑value (Redis, Memcached), column‑family (HBase, Cassandra), document (MongoDB, CouchDB), graph (Neo4j). Use as complement to relational stores.
9. Message Middleware
Use for asynchronous processing, system decoupling, and traffic shaping. Popular open‑source choices are listed in the original diagram.
10. Code Management
Git is essential; GitLab (open‑source) combined with Gerrit provides robust code review and permission control.
11. Continuous Integration (CI)
Tools include Jenkins, TeamCity, Strider, GitLab CI, Travis CI, and Go (ThoughtWorks’ Cruise Control). Choose based on team size and budget.
12. Logging System
ELK stack (Elasticsearch, Logstash, Kibana) plus Filebeat for collection; protect Kibana with Nginx reverse proxy for security.
13. Monitoring System
Prometheus + Grafana is recommended for modern startups; alternatives include Zabbix, Open‑Falcon, and cloud‑native solutions.
14. Configuration System
Use Zookeeper or etcd with UI/API for versioned configuration; for simpler needs, push configurations via Ansible or Puppet.
15. Release/Deployment System
Typical flow: code → artifact repository → deployment → production. Open‑source tools: Jenkins + GitLab + Walle, or commercial solutions if needed.
16. Jump Server
Jumpserver (open‑source) provides role‑based access, audit logs, and command recording for privileged operations.
17. Machine Management
Consider simplicity (no agents), language ecosystem (Ruby‑based Puppet/Chef vs Python‑based Ansible/SaltStack), and scalability. Ansible is often sufficient for < 200 machines.
Startup‑Specific Recommendations
1. Choose the Right Language
Prefer languages the team already knows.
Prefer modern languages with built‑in memory management and concurrency.
Prefer languages with rich open‑source ecosystems and active communities.
Consider hiring difficulty and developer interest.
2. Choose Reliable Cloud Vendors and Mature Open‑Source Components
Pick a cloud provider you trust, use its managed services early, and replace with self‑hosted solutions only when scale demands.
3. Define Processes and Standards
Development standards, branch protection, and code‑review policies.
Release workflow and approval mechanisms.
Operations and incident‑response procedures.
Database access control and audit.
Alert handling and on‑call rotation.
Regular reporting (daily stand‑ups, weekly summaries).
4. Build or Adopt Supporting Systems
Use the most suitable open‑source tools for project management, logging, configuration, and monitoring, then gradually replace with custom solutions as the organization grows.
5. Strategic Questions When Selecting a Stack
Is the technology mature enough for production?
Does the team have the expertise to adopt it quickly?
Will it meet performance and time‑to‑market requirements?
Can the stack scale to 200‑500 engineers in the future?
What is the total cost of ownership, including time and operational overhead?
By following these guidelines, a startup can assemble a cost‑effective, scalable, and maintainable backend stack that supports rapid development while minimizing technical debt.
Top Architect
Top Architect focuses on sharing practical architecture knowledge, covering enterprise, system, website, large‑scale distributed, and high‑availability architectures, plus architecture adjustments using internet technologies. We welcome idea‑driven, sharing‑oriented architects to exchange and learn together.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.