V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
linlance
V2EX  ›  问与答

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

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

    问题: 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 挺不错,没事瞎折腾
    DreamCMS
        6
    DreamCMS  
       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   ·   实用小工具   ·   2203 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 16:08 · PVG 00:08 · LAX 08:08 · JFK 11:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.