如何为从1到10万用户的应用程序,设计不同的扩展方案?

2020 年 3 月 26 日

如何为从1到10万用户的应用程序,设计不同的扩展方案?

对于创业公司来说,有用户注册是好事情,但是当用户从零扩展到成千上万之后,Web 应用程序又该如何支持呢?

通常来说,这种情况的解决方案要么是来自突然爆发的紧急事件,要么是系统出现瓶颈进行升级改造。虽然方式不同,但是我们也发现了,一个边缘项目发展成高度可扩展项目,其升级方案是有一些普适的“公式”可以套用,本文以 Graminsta 为例,为大家介绍当用户从 1 位发展到 10 万,应用程序如何扩展?

1 位用户:1 台机器

无论是网站还是移动应用,应用程序几乎都包括这三个关键组件:API、数据库和客户端,其中数据库用来存储持久数据,API 服务于数据及与其有关的请求,而客户端负责将数据呈现给用户。

在现代应用程序开发中,客户端往往会被视为一个独立于 API 的实体,这样一来就可以更轻松地扩展应用程序了。

当刚开始构建应用程序时,可以让这三个组件都运行在一个服务器上,类似于我们的开发环境,一位工程师在同一台计算机上运行数据库、API 和客户端。

当然,理论上我们可以把它部署到云上的单个 DigitalOcean Droplet 或 AWS EC2 实例上,如下所示:

但是,当我们的用户未来不止 1 个的时候,其实刚开始就应该考虑是否要将数据层拆分出来。

原文链接:【 https://www.infoq.cn/article/Tyx5HwaD9OKNX4xzFaFo 】。未经作者许可,禁止转载。

登录后可解锁全站优质内容

免费畅享技术公开课、顶尖技术团队访谈、一线互联网大厂技术实践

文章
视频
电子书
研究报告
立即登录
2020 年 3 月 26 日 09:26 2542

评论 3 条评论

发布
用户头像
这个对于一般的应用基本够用了,不过10万用户还得说说活跃用户及可以支持的并发访问数量,毕竟僵尸用户也很多
2020 年 03 月 30 日 10:53
回复
用户头像
清晰易懂,我这个做客户端的都能明白。
2020 年 03 月 26 日 15:14
回复
有点类似于“扩展公式”,希望有用^_^
2020 年 03 月 26 日 16:28
回复
没有更多评论了
发现更多内容

Fettley全球共识共享智能合约资产计划 掀起行业追捧热潮

InfoQ_967a83c6d0d7

anyRTC小程序SDK 4.0上线

anyRTC开发者

小程序 WebRTC 语音 直播 RTC

每周花6小时跟清华大牛学Java:JVM、高并发多线程、算法、微服务。

Java成神之路

Java 编程 程序员 面试

大数据2学习总结

周冬辉

限量版Netty纯手打笔记,年薪80W架构师耗时1个月整理出

Java架构师迁哥

从零开始搭建完整的电影全栈系统(一)——数据库设计及爬虫编写

刘强西

爬虫 Scrapy

anyRTC - 模仿微信音视频通话功能

anyRTC开发者

WebRTC 语音 直播 RTC 安卓

LeetCode题解:225. 用队列实现栈,一个队列, 压入 - O(n), 弹出 - O(1),JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

捡到宝啦!阿里内部人手一本的Springboot进阶手册,先学为敬

Java架构师迁哥

干货来袭!20例JavaWeb项目开发精粹;(内含源码)

Java架构师迁哥

架构师0期Week13作业

Nan Jiang

架构师0期Week13总结

Nan Jiang

常用数据分析指标

CommonMistakes

卓丁

如何在一台电脑上管理多Github账号

Matrix Chan

git GitHub 版本管理工具 开发日志

35岁以上的程序员们,后来都干什么去了?

华为云开发者社区

程序员 职业规划 架构师

Linux 基础操作

yuanhang

linux命令

Securecrt 使用

yuanhang

securecrt

架构师训练营-第十二周作业

Geek_a327d3

java安全编码指南之:表达式规则

简爱W

Java java架构师

从零开始搭建完整的电影全栈系统(二)——简单的WEB展示网站的搭建

刘强西

Yii2 yii

【DevCloud · 敏捷智库】暴走在发布前夜的开发,你怕不怕?

华为云开发者社区

版本控制 系统集成 发布

淘宝服务端高并发分布式架构演进之路

简爱W

Java java架构师

架构师训练营-第十一周作业

Geek_a327d3

到底什么是分布式系统?你需要了解这些

华为云开发者社区

分布式 部署

物联网为什么需要5G?

华为云开发者社区

5G 物联网

微信群总是有人发广告?看我用Python写一个自动化机器人消灭他!

刘早起😶

Python

Redis单线程为什么能做到高性能和io多路复用它是个什么鬼

Java架构师迁哥

GitHub上14个屌炸天的Java进阶教程、面试真题项目,建议收藏!

Java成神之路

Java 编程 程序员 Spring Boot

架构师13周练习

小蚂蚁

JavaScript中的原型到底该如何理解?

Walker

JavaScript 前端 面向对象编程 原型

如何为从1到10万用户的应用程序,设计不同的扩展方案?-InfoQ