统一开发环境,同步开发代码和数据,大家是怎么做到的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
linlance
V2EX    问与答

统一开发环境,同步开发代码和数据,大家是怎么做到的?

  •  
  •   linlance 2017-12-04 10:21:03 +08:00 10105 次点击
    这是一个创建于 2868 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题: 1、办公室 2、家里 3、出差

    使用云服务器,速度太慢了,希望本地有一套开发环境,python/PHP+mysql,这样子。 感觉用虚拟机要好一些,运行和开发在本地,调试也方便,然后怎么同步到远程的服务器上呢?

    用 syncthing ?用 git 代码克隆?用 svn ?

    虚拟机的话,virtualbox+vagrant 不太绿色, 需要安装到系统里,最终如果没有办法解决,可能只能用 vagrant 了,virtualbox 听说太重了,有没有轻量化的虚拟环境?

    目前也只想到用 vagrant 的配置文件把虚拟机里的开发目录,共享本地主机的一个目录。然后这个目录用同步手段和服务器上的目录同步,但是相应的数据库里面的数据呢?如何同步?

    第 1 条附言    2017-12-27 08:31:53 +08:00
    其实同步环境的需求,我最近想了一下

    1.代码同步,python,php,html,静态文件等等
    2.数据库同步,mysql,这个得每次服务关闭,然后导出?
    3.运行环境同步
    4.本地(家 /办公室)开发运行,远程速度有点慢...

    满足以上 4 点就可以了.目前上面的方案都不太完美...
    53 条回复    2017-12-27 08:31:37 +08:00
    coderluan
        1
    coderluan  
       2017-12-04 10:27:25 +08:00
    对于楼主,我感觉买个笔记本随身背着最合适......
    3dwelcome
        2
    3dwelcome  
       2017-12-04 10:32:37 +08:00
    我用的是 KVM 云服务器,只要网速没啥问题,正常开发是没问题的。代码同步的话,是用的自己写的双向同步工具,也就是判断文件最新修改日期,把最新的拷贝到另外一台计算机上。

    数据库确实没啥好办法,都连远程 mysql 数据库吧。
    whypool
        3
    whypool  
       2017-12-04 10:32:56 +08:00
    所以一天没事干就配环境配虚拟机?
    slgz
        4
    slgz  
       2017-12-04 10:34:14 +08:00
    买一个笔记本不就完事了吗
    pushaowei0727
        5
    pushaowei0727  
       2017-12-04 10:35:07 +08:00
    我觉得 docker 挺不错,没事瞎折腾
    TOTOP
        6
    TOTOP  
       2017-12-04 10:36:58 +08:00
    坏境一样,用个同步软件不就可以了。
    tanranran
        7
    tanranran  
       2017-12-04 10:41:22 +08:00
    docker
    linlance
        8
    linlance  
    OP
       2017-12-04 10:55:53 +08:00
    docker 好像很多地方都不方便。docer 出来一个完全一样的开发环境,很不容易。
    linlance
        9
    linlance  
    OP
       2017-12-04 10:57:07 +08:00
    @slgz 笔记本哪里有办公室双屏幕台式机爽啊,效率完全不一样,还得插来拔去。。。
    3dwelcome
        10
    3dwelcome  
       2017-12-04 10:58:38 +08:00
    轻量级虚拟机可以考虑 qemu, 最近官网 2017/10 月更新了个 windows 硬件加速版本,运行 linux 发行版速度快的飞起,和以前慢吞吞的 qemu 真是天壤之别。

    详细可见官网 blog.
    sarices
        11
    sarices  
       2017-12-04 10:59:12 +08:00
    我现在是这样的,公司的电脑常年不关,开启用 teamviewer,家里出差只要有可以上网的机器都能连进去工作
    wangxiaoer
        12
    wangxiaoer  
       2017-12-04 10:59:13 +08:00 via Android
    用 git 会死吗?有什么可挑的?
    slgz
        13
    slgz  
       2017-12-04 11:00:09 +08:00
    @linlance 我现在就是笔记本+显示器,感觉稳稳的
    3dwelcome
        14
    3dwelcome  
       2017-12-04 11:01:06 +08:00
    @sarices 666, 可惜我们公司不允许,要不然我也想 24 小时开着。
    rockyou12
        15
    rockyou12  
       2017-12-04 11:09:34 +08:00
    用 git 或者 svn 同步代码,mysql 直接放云端服务器上,服务器要更新部署直接上去 update。
    yuanfnadi
        16
    yuanfnadi  
       2017-12-04 11:10:36 +08:00
    2k 哥?好熟悉的头像
    Mogugugugu
        17
    Mogugugugu  
       2017-12-04 11:12:21 +08:00
    docer 出来一个完全一样的开发环境,很不容易 ???? what ??? docker 存在的意义是啥???
    linlance
        18
    linlance  
    OP
       2017-12-04 11:24:35 +08:00
    @Mogugugugu 能否详细说说,windows 下 docer 一个跟 linux 下一摸一样的开发环境,不会弄。

    @yuanfnadi 呃,是我:)‘

    @3dwelcome 这个我去试试,qemu 原来用过,我其实只想想到处开发 FLASK 而已。
    gdtv
        19
    gdtv  
       2017-12-04 11:25:43 +08:00
    thinkpad + 底座 + 大屏显示器
    家里和公司分别放一个底座 + 大屏显示器,然后把 thinkpad 往上一放就行,出差拿起就走。
    Mogugugugu
        20
    Mogugugugu  
       2017-12-04 11:29:00 +08:00
    @linlance Windows 下面用 docker,可能 docke 官方和 widnows 官方都无法解决你的问题- -
    standin000
        21
    standin000  
       2017-12-04 11:30:16 +08:00
    @3dwelcome qemu 跟 win10 linux 子系统速度比怎么样?
    maikcn
        22
    maikcn  
       2017-12-04 11:31:01 +08:00
    代码同步 Git
    开发运行环境 Docker 封装
    数据库同步 Docker 容器的 Volume 定时 backup

    至于客户端就剩下代码编辑器了,那随便怎么都可以
    hansnow
        23
    hansnow  
       2017-12-04 11:41:46 +08:00
    2k 哥你好,2k 哥再见( ̄ ̄)Bye~Bye~

    目前是用 Git 同步代码,用 Docker 来保证线上环境和开发环境一致
    leavic
        24
    leavic  
       2017-12-04 11:53:19 +08:00
    惊现 D 版 2K 哥啊。。。。
    leavic
        25
    leavic  
       2017-12-04 11:55:09 +08:00
    回到内容,笔记本,好携带的笔记本,我是说 macbook。
    屏幕不爽可以外接啊。
    代码我直接放 dropbox。。。。。
    工具 pycharm 反正是跨平台的
    BlackCat02
        26
    BlackCat02  
       2017-12-04 12:02:11 +08:00
    后台工程师表示有 vpn 连到公司开发机就够了
    Remember
        28
    Remember  
       2017-12-04 15:01:39 +08:00
    2kg 你好
    3dwelcome
        29
    3dwelcome  
       2017-12-04 15:02:02 +08:00
    "qemu 跟 win10 linux 子系统速度比怎么样?", 速度很快,但必须是 Intel 新的 CPU,能开启 VT-EPT 虚拟化技术。加速 x86 linux 和加速 x86 android 用的是一个硬件模块 - HAXM.

    技术和 win10 的 Hyper-V 类似,但可惜两者是冲突存在,一个开了,另一个就必须关掉。
    TangMonk
        30
    TangMonk  
       2017-12-04 15:03:39 +08:00 via Android
    wzw
        31
    wzw  
       2017-12-04 19:29:54 +08:00
    @3dwelcome qemu 可以代替 vmware workstation 吗?
    wzw
        32
    wzw  
       2017-12-04 20:07:42 +08:00
    我说一下我的做法.

    代码用 dropbox 同步 + 测试环境买了三年年付的阿里云
    forestyuan
        33
    forestyuan  
       2017-12-04 20:36:23 +08:00
    买个大点的 U 盘随身带,程序代码都存 U 盘上
    akira
        34
    akira  
       2017-12-04 21:19:10 +08:00
    代码管理 来同步多点代码。 至于数据库,测试数据没有必要同步啊,保证表结构一致就可以了
    hellojinjie
        35
    hellojinjie  
       2017-12-04 21:29:09 +08:00
    家里电脑不关机,,走到哪,都用 Teamviewer 连接,当然只能是紧急排错时用
    flynaj
        36
    flynaj  
       2017-12-04 22:26:13 +08:00 via Android
    @wzw 各有不同,qemu 可以模拟各种系统,功能性多,VMware 商业软件操作简单方便。
    loading
        37
    loading  
       2017-12-04 22:36:51 +08:00 via Android
    买硬盘座,只带硬盘
    naiba
        38
    naiba  
       2017-12-04 22:48:20 +08:00 via Android
    git docker 必须的。

    我想进来看一下有没有先进的呢,结果水的一比。
    incompatible
        39
    incompatible  
       2017-12-04 22:50:28 +08:00
    惊现 D 版 2k 哥!!

    环境是不经常变更的,代码是频繁变更的,所以你应该搞一下环境和代码分离。
    环境就搞一个虚拟机镜像放到云盘上,代码使用 git 做同步。
    whatsmyip
        40
    whatsmyip  
       2017-12-04 22:54:56 +08:00
    dropbox + docker
    zhangchioulin
        41
    zhangchioulin  
       2017-12-04 23:06:10 +08:00
    @Mogugugugu #20 windows 10 不是内置 ubuntu 吗?这个不行吗?
    cchange
        42
    cchange  
       2017-12-04 23:23:59 +08:00 via iPhone
    @3dwelcome 请问可以和 VMware 并存吗??
    貌似 VMWare 和 Hyper-V 不能同时运行
    johnniang
        43
    johnniang  
       2017-12-04 23:46:37 +08:00 via Android
    使用内存数据库怎么样。写好 insert 语句,每次启动项目得时候都是一样的数据。
    sagaxu
        44
    sagaxu  
       2017-12-05 01:23:13 +08:00 via Android
    不出差,回家也不写公司代码
    msg7086
        45
    msg7086  
       2017-12-05 05:55:45 +08:00
    @cchange 同一时间只能跑一个 Hypervisor。
    bearqq
        46
    bearqq  
       2017-12-05 08:22:50 +08:00
    系统装 ssd 的移动硬盘里随处带走
    然后某一天 ssd 蹦了
    Clarencep
        47
    Clarencep  
       2017-12-05 09:03:38 +08:00
    docker+1

    此外单用 git 也可以,数据库同步可以写个脚本导出成 sql,然后提交到 git 上。注意用私有 git,不要公开 repo.
    hasbug
        48
    hasbug  
       2017-12-05 09:24:55 +08:00
    带笔记本,公司配好的显示屏+键盘鼠标干活
    JerryMouse
        49
    JerryMouse  
       2017-12-05 09:27:31 +08:00
    这么多朋友们都发现了是 2000 哥啊。
    环境我不懂,但是代码感觉用 git 挺好的啊,没觉得速度不行。
    fhefh
        50
    fhefh  
       2017-12-05 09:36:01 +08:00
    git 同步代码
    vagrant 统一开发环境(docker 也可以)
    数据库放在$2/Mo 的服务器上了~~
    fhefh
        51
    fhefh  
       2017-12-05 09:39:26 +08:00
    顺便问下大佬 有没有国内 `20 元 /月` 云服务器~~ 嘿嘿~~
    bullettrain1433
        52
    bullettrain1433  
       2017-12-05 10:24:01 +08:00
    面向 dropbox 编程 23333
    linlance
        53
    linlance  
    OP
       2017-12-27 08:31:37 +08:00
    其实同步环境的需求,我最近想了一下
    1.代码同步,python,php,html,静态文件等等
    2.数据库同步,mysql,这个得每次服务关闭,然后导出?
    3.运行环境同步
    4.本地(家 /办公室)开发运行,远程速度有点慢...

    满足以上 4 点就可以了.目前上面的方案都不太完美...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2474 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 01:39 PVG 09:39 LAX 18:39 JFK 21:39
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86