准备写给小技术创业团队看的一组技术文章

2012-04-25 11:19:48 +08:00
 cheka
我们创办扇贝网 shanbay.com 至今,技术上跌跌撞撞的遇到也解决了不少问题,譬如:

我们从前迁移一次数据库需要半夜停机几小时,后来使用mylvmbackup和LVM快照,基本几分钟可以搞定。

因为uwsgi的参数利用不足,导致应用服务器即便负载很小的时候依然会常常拒绝服务,这个问题折腾了我们有大半年。

因为MySQL的某个参数受Raid卡的电池影响,导致我们新买的一台服务器在机房里白呆了一个月,花了我们一两周的时间调试,最后通过升级Raid卡解决。

想来不少问题对于很多技术团队而言可能是有共性的(假设和我们一样,技术凑合,能出活,但是没有大牛),因此想把这些经验教训结成一组文章,一来帮些人少走点弯路,二来能得到高人指点补充,也能帮我们再少走点弯路。

提纲大致如下:

--系统环境配置
LVM 文件系统(需要LVM的快照用于MySQL备份)
KVM 虚拟机(在机器有限的情况下搭建多个测试环境)

--开发环境
Virtualevn 有相对隔离的Python运行环境
Pip

--单元测试

--代码管理和开发发布流程
Git

--Web服务
Nginx 前端Web服务
uwsgi 后端服务,衔接Django程序

--持续集成
Jenkins 自动定时从Git的master分支里pull代码,并执行单元测试

--数据库
MySQL 重要参数配置
数据备份 基于LVM 快照方式的mylvmbackup
较少停机时间的数据库迁移 (从一台物理主机搬到另一台)
分库

--前端


另外:
1. 我们不是大牛,所以不能保证这系列文章会是best practices,但是是实际用于扇贝网(近60万注册用户,3-4万日独立访客)的working practices,而且我也希望抛砖引玉,借助社区总结出更好的practices
2. 文章只关技术,不会有创业感悟或者产品心得,这方面去看看Getting Real或者Rework就差不多了
3. 我们用的是Python/Django,但是系统和数据库方面的内容和开发语言是相对独立的。

先在v2ex上发一下,听听各位意见,大家要是有兴趣,我写起来会比较起劲的
13011 次点击
所在节点    分享创造
71 条回复
hitigon
2012-04-25 13:41:39 +08:00
Mark 非常期待
vitohe
2012-04-25 13:43:03 +08:00
期待。
yuzhigang33
2012-04-25 13:54:57 +08:00
支持,期待,感谢,加油。
alai
2012-04-25 14:40:21 +08:00
收藏了,期待发布。花五毛钱支持一下!
stingh711
2012-04-25 14:46:12 +08:00
也花5毛支持一下
muxi
2012-04-25 14:55:04 +08:00
创业不容易啊,事实上LVM备份数据库在3年前我所在的公司已经成熟的应用于数据库和其他文件备份,做的好话,写锁的时间应该可以控制在30秒内,如果整成自动化脚本,这个时间可以继续缩小到5秒内。

期待关于python Virtualevn KVM的分享
peizh2006
2012-04-25 15:33:13 +08:00
老用户,支持,期待。
dodogod
2012-04-25 16:01:27 +08:00
请问用Virtualevn 可以把一台机器的python环境拷到另一台直接用吗?
xalinx
2012-04-25 17:16:02 +08:00
pv 1000w 平均到每秒也才115tps, 何况你们这么点uv, ....这个根本不能算压力... 除非你们把什么都往数据库塞
wtl
2012-04-25 17:20:08 +08:00
怎么给楼主送钱?希望@livid增加送银币功能。
xalinx
2012-04-25 17:21:56 +08:00
不持久会话的,没有复杂逻辑的,tps不到100的,读远大于写的,存贮单机能承受的. 请不要使用压力这个词语
qiukun
2012-04-25 17:22:14 +08:00
求扇贝网和拓词区别?
cheka
2012-04-25 18:12:23 +08:00
@muxi 我们现在直接用了mylvmbackup这个脚本,节约了很多时间和精力。 所以我想写的这组东西,并不是什么高深的技术,可能在高手眼里也很肤浅,但是从我们自己角度而言,如果早点了解这些,是会少撞些南墙的。
muxi
2012-04-25 20:11:32 +08:00
@cheka 可能我没描述清楚,我并没有看轻你们用LVM备份的事情,我的意思是这个技术比较成熟了,运用成本极低,但是收获非常大,但却没有人分享出来,很多创业公司和团队走了弯路,我应该向你学习,应该好好把一些实用东西分享出去
cheka
2012-04-25 21:07:01 +08:00
@muxi 不用担心,没有误会,我也只是借你的话再次强调下,呵呵
amom
2012-04-25 22:29:34 +08:00
期待这种分享,现在动不动就是就是什么狗屁架构、几(十)亿PV,现在更是扯到什么“大数据”。大部分的时候,我们能把这些“普通”问题做的足够好就是了不起!
kollinchu
2012-04-25 23:52:22 +08:00
@cheka 因为看了上次的集成环境搭建,才会集成环境的搭建。真心谢谢!~
azure
2012-05-08 00:56:49 +08:00
写的那篇文章呢??没下文了?
likuku
2012-06-07 10:28:54 +08:00
@muxi 专门搞一台 slave ,用来作备份,这样生产用的 master/slave 都不受任何影响。
chairo
2012-06-07 10:43:54 +08:00
楼主太监了……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/33489

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX