爱意满满的作品展示区。
cheka

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

  •  1
     
  •   cheka · Apr 25, 2012 · 14847 views
    This topic created in 5305 days ago, the information mentioned may be changed or developed.
    我们创办扇贝网 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上发一下,听听各位意见,大家要是有兴趣,我写起来会比较起劲的
    71 replies  •  1970-01-01 08:00:00 +08:00
    bed
    bed
    Apr 25, 2012❤️1
    1
    日PV多少?峰值并发多少?

    3-4W的 UV 话说单机也能撑起来。
    qiayue
    qiayue
    Apr 25, 2012
    2
    绝对有兴趣,楼主分享干货,大家都支持
    cheka
    cheka
    OP
    Apr 25, 2012❤️4
    3
    @e6nian 每个网站的业务不一样,所以PV/UV仅供参考。扇贝网是一个在线学习网站,每天2万人左右完成学习,完成一次学习至少要20分钟,多的要6-7小时,而且每个人学习的内容都不一样,因此负载还是不低的。
    hutushen222
    hutushen222
    Apr 25, 2012
    4
    Mark,等发布。
    bed
    bed
    Apr 25, 2012
    5
    @cheka
    嗯,刚才去看了下,不错的网站。
    能否大致透露一下PV,这样对于讨论更具参考价值。
    sinreal
    sinreal
    Apr 25, 2012
    6
    支持楼主发布。要是有感谢楼主功能就好了。
    xiaojay
    xiaojay
    Apr 25, 2012
    7
    关注' 和我目前用的technology stack很像'
    ps:有没有试过用户gunicorn 替换掉uwsgi?
    Livid
    Livid
    MOD
    PRO
    Apr 25, 2012
    8
    期待看到你们关于 raid 和 virtualenv 的经验分享。
    cheka
    cheka
    OP
    Apr 25, 2012❤️2
    9
    @etnian 实际上我们的PV真的没参考价值,因为大部分页面都是后台提供json,前端render,所以一个用户翻了300页,记录的PV依然是1

    @xiaojay
    我们最早用fcgi,后来改nginx的时候在gunicorn,uwsgi里选了uwsgi(具体原因忘了),实际上现在证明uwsgi是足够好的,只是我们参数设得不好。
    virushuo
    virushuo
    Apr 25, 2012
    10
    期待。

    不过这年头其实真没必要用raid卡了。用freebsd+zfs比那些raid卡靠谱多了。还省钱。
    iYu
    iYu
    Apr 25, 2012❤️1
    11
    期待 干货。
    jollyant
    jollyant
    Apr 25, 2012
    12
    期待,创业团队的技术分享
    dementrock
    dementrock
    Apr 25, 2012
    13
    不错的网站啊...我曾经也有过类似的想法 背单词+social 不过还有的一个构思就是提供一组API 可以开发第三方的背单词应用 然后进度数据储存在同一个网站 不知楼主有没有兴趣开发类似的功能呢?
    austin
    austin
    Apr 25, 2012
    14
    数据库迁移这块,我们这里通常的做法是在要迁移的机房做从库,这样修改下网站的数据库配置文件,可以在10秒内完成后台数据库的切换。
    taine
    taine
    Apr 25, 2012
    15
    题外话,能不能不要注册就可以学习
    cheka
    cheka
    OP
    Apr 25, 2012❤️1
    16
    @austin 对的,我们现在也是这么做。
    @dementrock 我们也有此意,已经有了部分API,后续会发布更多
    reus
    reus
    Apr 25, 2012
    17
    @cheka PV本意就是翻了多少页嘛,用ajax请求也算是一个pv的,所以是记录pv的方法需要改进吧
    chairo
    chairo
    Apr 25, 2012
    18
    这个必须期待
    cheka
    cheka
    OP
    Apr 25, 2012❤️1
    19
    @reus 按照这个标准算的话,每天150万左右
    qiuai
    qiuai
    Apr 25, 2012
    20
    说实话...我更建议初创公司使用LAMP平台.资料多.提问回答的也快.

    然后呢.不管是用python还是ror还是什么语言.毕竟都是后台跑的东西.

    还要学着做前台优化.如果一个页面上有100个图片,10个CSS,5个JS.你不做优化的话.一个PV就要用掉115个并发.

    其次就是做并发检查.然后做RAID1或者raid5,双机热备,异地灾备,读写分离.这些.
    hitigon
    hitigon
    Apr 25, 2012
    21
    Mark 非常期待
    vitohe
    vitohe
    Apr 25, 2012
    22
    期待。
    yuzhigang33
    yuzhigang33
    Apr 25, 2012
    23
    支持,期待,感谢,加油。
    alai
    alai
    Apr 25, 2012
    24
    收藏了,期待发布。花五毛钱支持一下!
    stingh711
    stingh711
    Apr 25, 2012
    25
    也花5毛支持一下
    muxi
    muxi
    Apr 25, 2012
    26
    创业不容易啊,事实上LVM备份数据库在3年前我所在的公司已经成熟的应用于数据库和其他文件备份,做的好话,写锁的时间应该可以控制在30秒内,如果整成自动化脚本,这个时间可以继续缩小到5秒内。

    期待关于python Virtualevn KVM的分享
    peizh2006
    peizh2006
    Apr 25, 2012
    27
    老用户,支持,期待。
    dodogod
    dodogod
    Apr 25, 2012
    28
    请问用Virtualevn 可以把一台机器的python环境拷到另一台直接用吗?
    xalinx
    xalinx
    Apr 25, 2012
    29
    pv 1000w 平均到每秒也才115tps, 何况你们这么点uv, ....这个根本不能算压力... 除非你们把什么都往数据库塞
    wtl
    wtl
    Apr 25, 2012
    30
    怎么给楼主送钱?希望@livid增加送银币功能。
    xalinx
    xalinx
    Apr 25, 2012
    31
    不持久会话的,没有复杂逻辑的,tps不到100的,读远大于写的,存贮单机能承受的. 请不要使用压力这个词语
    qiukun
    qiukun
    Apr 25, 2012
    32
    求扇贝网和拓词区别?
    cheka
    cheka
    OP
    Apr 25, 2012
    33
    @muxi 我们现在直接用了mylvmbackup这个脚本,节约了很多时间和精力。 所以我想写的这组东西,并不是什么高深的技术,可能在高手眼里也很肤浅,但是从我们自己角度而言,如果早点了解这些,是会少撞些南墙的。
    muxi
    muxi
    Apr 25, 2012
    34
    @cheka 可能我没描述清楚,我并没有看轻你们用LVM备份的事情,我的意思是这个技术比较成熟了,运用成本极低,但是收获非常大,但却没有人分享出来,很多创业公司和团队走了弯路,我应该向你学习,应该好好把一些实用东西分享出去
    cheka
    cheka
    OP
    Apr 25, 2012
    35
    @muxi 不用担心,没有误会,我也只是借你的话再次强调下,呵呵
    amom
    amom
    Apr 25, 2012
    36
    期待这种分享,现在动不动就是就是什么狗屁架构、几(十)亿PV,现在更是扯到什么“大数据”。大部分的时候,我们能把这些“普通”问题做的足够好就是了不起!
    kollinchu
    kollinchu
    Apr 25, 2012
    37
    @cheka 因为看了上次的集成环境搭建,才会集成环境的搭建。真心谢谢!~
    azure
    azure
    May 8, 2012
    38
    写的那篇文章呢??没下文了?
    likuku
    likuku
    Jun 7, 2012
    39
    @muxi 专门搞一台 slave ,用来作备份,这样生产用的 master/slave 都不受任何影响。
    chairo
    chairo
    Jun 7, 2012
    40
    楼主太监了……
    roymax
    roymax
    Jun 7, 2012
    41
    潜水好久了,必须登录收藏一下
    thinkinnight
    thinkinnight
    Jun 7, 2012
    42
    是在哪里进行分享?有地址吗?
    具体的服务器参数是什么,Linux版本,python版本,数据库版本,是否使用负载均衡等技术
    服务器是使用租借,云,还是自己买,出现问题如何及时通知和解决?
    对这个话题挺有兴趣,想看看楼主的文章
    muxi
    muxi
    Jun 7, 2012
    43
    @likuku Slave备份这个不靠谱,特别是Master写压力比较大,主从同步延迟比较严重的,在磁盘损坏或者其他事故的时候会丢失部分数据,当然要求不高的场合,丢了就丢了,也没事,能够满足大部分场合
    cloudzhou
    cloudzhou
    Jun 7, 2012
    44
    @cheka 具体什么参数,实际中和性能相关的有 processes listen max-requests limit-as
    ayang23
    ayang23
    Jun 7, 2012
    45
    前几天弄个uwsgi+django,有表单的网页一直出错,搞了两天没搞定,放弃了。所以楼主的分享很有价值,希望早点看到。
    azure
    azure
    Jul 10, 2012
    46
    说好的技术文章呢。。。
    icecream
    icecream
    Jul 10, 2012
    47
    说好的技术文章呢。。。
    Sherlockhlt
    Sherlockhlt
    Jul 10, 2012
    48
    说好的技术文章呢。。。
    peizh2006
    peizh2006
    Jul 10, 2012
    49
    扇贝最近的改版很成功,可是
    说好的技术文章呢。。。
    cheka
    cheka
    OP
    Jul 10, 2012
    50
    大家知道的,我们最近在改版,我这周就放几篇出来,见谅见谅...
    kava
    kava
    Jul 10, 2012
    51
    期待!!!
    liliang13
    liliang13
    PRO
    Jul 16, 2012
    52
    mark一个,期待。。。
    chairo
    chairo
    Jul 16, 2012
    53
    @cheka 6 天前……
    楼主又一次太监了……
    heroicYang
    heroicYang
    Jul 18, 2012
    54
    这个必须支持,期待文章出炉!最近开始使用扇贝,感觉还不错!
    shunai
    shunai
    Jul 18, 2012
    55
    网站很好! 希望上面提到的内容进一步分享!
    cheka
    cheka
    OP
    Jul 18, 2012
    56
    写了第一篇 VirtualEnv 和Pip 构建Python的虚拟工作环境
    http://www.v2ex.com/t/42760
    shitiven
    shitiven
    Jul 19, 2012
    57
    @cheka 好东西啊,一直都用python和django开发应用服务,期待哇
    xingis
    xingis
    Jul 19, 2012
    58
    @cheka 看了扇贝网,顺便注册了一个用户!
    xiawinter
    xiawinter
    Aug 10, 2012
    59
    各位, 我是传说中的扇贝网程序猿, 工程师, 我本来想今天晚上开始完善这篇帖子里的内容, 但是我发现我好像没有权限发帖啊, 我要咋整? 难道是因为我们没有即时上传文章,被集体block掉了, 这是不是太强大的技术啊

    如果哪位神能顶我一下什么的,我开始分享第二篇: 要如何对大数据表进行修改
    southwolf
    southwolf
    Aug 11, 2012❤️1
    60
    @xiawinter 不是没有发帖权限,是您没找到发帖按钮吧……噗
    在主页是不能直接发帖的。似乎。
    随便在底下找个节点点进去就有了……
    xiawinter
    xiawinter
    Aug 11, 2012
    61
    @southwolf 我找到了发布按钮,我已经发布了一篇文章了
    loading
    loading
    Aug 11, 2012
    62
    @wtl 多回这个帖子不就好了 ^_^


    期待干货。

    当时怎么就没有这种英语学习网呢。。。。唉
    lishali12345
    lishali12345
    Aug 11, 2012
    63
    国内目前有很多的创业小团队,特别是最近两年时间内,移动互联网创业的小团队更多,有做社区的有做游戏的,大部分团队中都不会有太强的技术积累,普遍团队的工作年限平均值也就是3年到5年的样子,这还通常是因为部分创始人个人年限较长才把平均值拉大的。技术团队的实力通常相对大公司成熟的团队都比较弱,做产品的过程中也会碰到各种问题,如果楼主能分享技术团队成长的一些故事,那真是一件非常好的事情。
    richiefans
    richiefans
    Aug 11, 2012❤️1
    64
    感谢楼主分享,希望尽快看到干货 对于没有大牛的小型创业公司 太需要这些了
    lerry
    lerry
    Aug 16, 2012
    65
    说好的文章呢
    bugcoder
    bugcoder
    Aug 16, 2012
    66
    用过楼主的网站一段时间,真心感谢。
    更加感谢楼主的分享。
    summer_charlie
    summer_charlie
    Aug 19, 2012
    67
    挺好的网站. 期待分享
    cheka
    cheka
    OP
    Aug 22, 2012
    68
    做了一个简要的分享PPT

    Python技术小团队不妨知道的技术
    http://www.v2ex.com/t/45719
    bengle
    bengle
    Aug 22, 2012
    69
    扇贝做的挺不错,期待后续分享!!
    zeayes
    zeayes
    Apr 4, 2013
    70
    不错,期待楼主后续的分享
    shiziwen
    shiziwen
    Nov 13, 2013
    71
    期待呀,怎么没有后续了?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5155 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 287ms · UTC 02:54 · PVG 10:54 · LAX 18:54 · JFK 21:54
    ♥ Do have faith in what you're doing.