上周花了点时间把CI环境再次给搞起来了,但是觉得在实体机中总觉得不是很安心,安全性不足,另外没有做备份,安全性、扩展性等都不足,且不好迁移。

因为目前只给了我一台PC及,配置其实也不怎么样。但是却需要承载不少的CI任务。

  • 包括后端云的代码及分析,其中包含不下10个子系统;
  • 设备端包含了ROM,相关Launcher及10多个Services型的App;
  • 另外包含2个手机端端App(给不同角色人员使用的不同App);
  • 最后包含一些针对不同角色的Portocal等;

在我看来一台PC上其实是不够的,但是资源有限,目前就姑且先跑起来。

为了方便以后扩展,我计划调整为使用虚拟机准备CI测试环境。

另外,使用虚拟机做CI,我这本来一台机器就可以具备多台机器的作用,针对C++和Java以及Python等多语言,使用不同的机器运行,也达到了相互隔离的目的。
好了,来看看目前宿主机的配置情况:
主机配置:CPU 双核、内存 4GB、硬盘 500GB
haochuang@Server-CI:~$cat /proc/cpuinfo |grep "model name"
haochuang@Server-CI:~$cat /proc/meminfo |grep "MemTotal"
haochuang@Server-CI:~$ sudo fdisk -l
我是这样计划的,宿主机依然安装Ubuntu系统,虚拟机根据不同的业务,前后台需要用于不同用途,作如下分配:
CI Master 调度主机:主要负责CI各个Slave任务分配等,系统为Ubuntu;
CI Slave1 设备部分,主要测试前端android部分,承载JAVA语言及ROM等,Ubuntu虚拟机;
CI Slave2 后端部分,主要测试后端C++部分,CentOS 虚拟机;
--
CI Slave3 测试设备,主要测试前端android部分,用于测试人员编写调测运行JAVA代码,Ubuntu虚拟机;
CI Slave4 测试设备,主要测试后端云及其子系统部分,用于测试人员编写调测运行C++与Python代码,,CentOS 虚拟机;
 
其他Web等部分目前暂未考虑,如果需要加入,则另行增加机器,或使用代理服务器。
划分为4个虚拟机,每个配置如下:CPU 单核、内存1GB、硬盘50GB。
但目前看来,其实是不够用的,因为主机配置本身就在那里,那么在实际中,我再根据需要去逐渐调整配置;总之,先搭建起来环境再说。
其他的待后续逐渐补充。
--------------
2014-07-01

【CI】系列一:总体环境规划的更多相关文章

  1. Java 集合系列 01 总体框架

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  2. DevOps系列(1)-总体架构

    扯闲淡 在进入正式话题之前,先扯个淡,这算是第一篇我正式在博客上发布的随笔吧,之前也一直有想写点什么,将自己多年的工作经验分享出来,供大家参考点评,但是奈何一直对自己的文字功底不自信(其实也确实比较烂 ...

  3. 【Java集合系列】---总体框架

    个的组合,这些数据项可能共享某些特征,需要以某种操作方式一起进行操作,一般来说,这些数据项的类型都是相同的,或者基类相同(若使用的语言支持继承),列表或数组通常不认为是集合,因为其大小固定,但是事实上 ...

  4. Dubbo源码学习总结系列一 总体认识

    本文写作时,dubbo最高版本是V2.6.0.  写这篇文章主要想回答以下4个问题: 一.dubbo是什么?完成了哪些主要需求? 二.dubbo适用于什么场景? 三.dubbo的总体架构是什么样的? ...

  5. CI系列之配置sonar

    基于GO项目 1.在jenkins新建sonar任务,设置2个变量用于接收代码分支和pipline的workspace[两个变量的作用在CI之Jenkinsfile中会讲到] A.添加构建参数 B.选 ...

  6. springboot源码解析-管中窥豹系列之总体结构(一)

    一.简介 Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去. 我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot ...

  7. jquery的2.0.3版本源码系列(1)总体结构

    为什么选择2.X版本,而不是1.X版本,因为2.X不兼容IE6/7/8,所以少了兼容代码,让我们更专注于jquery原理的代码. 一共有8830行. 1.1 匿名函数自执行 首先,匿名函数的作用是,把 ...

  8. Javascript系列:总体理解

    js是一个脚本客户端(浏览器)语言.和sql html类似.多练习. 没有排错的经验,弱类型语言,浏览器解释执行,出错也不会报错 预备 <!DOCTYPE html PUBLIC "- ...

  9. Jenkins Ci系列目录

    Jenkins入门篇 1.Jenkins入门之界面概览 2.Jenkins入门之新建任务 3.Jenkins入门之导航操作 4.Jenkins入门之任务基本操作 5.Jenkins入门之执行Power ...

随机推荐

  1. JavaScript秘密花园

    译文地址 bonsaiden.github.io/JavaScript-Garden/zh/#intro.authors 之前被人问到JS一些概念性的东西,感觉很模糊,可能层次比较浅,偏理论的东西实践 ...

  2. 【SQL】全关系操作

    1.消除重复 - DISTINCT SQL语句中默认的是,重复的元祖可以多次的显示.如果希望消除重复,需要DISTINCT关键字. 注:消除重复需要排序,所以代价高.在需要高效率时要谨慎. SELEC ...

  3. RESTful 接口实现简明指南

    REST 简介 REST 是一个术语的缩写,REpresentational State Transfer,中文直译「表征状态转移」,这是个很拗口的词.我的建议是先不要强行理解,直接看怎么做,等对实施 ...

  4. MySql 分页关键字(limit)

    mysql分页关键字: limit m,n --m:表示从哪一行开始查,n:查询多少条 oracle分页关键字:: rownum SqlServer:top(2005以下版本)  row_number ...

  5. React-Native集成dva.js

    dvajs作为一个基于redux的状态管理框架,在react中的表现还是很不错的,如果我们想要在react-native应用中使用dvajs该怎么做呢? 首先安装dva-core和react-redu ...

  6. logging 日志两种使用方法(转)

    下面我们使用代码logging的代码来说明: 使用baseConfig()函数对 logging进行 简单的 配置: import logging; # 使用baseConfig()函数,可选参数有f ...

  7. 【转】docker之Dockerfile实践

    转自:https://www.cnblogs.com/jsonhc/p/7767669.html 上一篇介绍了Dockerfile中使用的指令,现在开始进行指令实践 先查看下本地的镜像,选一个作为ba ...

  8. MySQL 使用硬链接配合truncate 删除2.2T的表

    1 创建tmp 表并 rename 表 mysql> rename table ep to ep_bak; Query OK, 0 rows affected (0.07 sec) mysql& ...

  9. [BZOJ 1407] Savage

    Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1407 Solution: 由于此题里n的范围很小,因此可以直接从小到大枚举m 那么问题转 ...

  10. 【莫队算法】【权值分块】poj2104 K-th Number / poj2761 Feed the dogs

    先用莫队算法保证在询问之间转移的复杂度,每次转移都需要进行O(sqrt(m))次插入和删除,权值分块的插入/删除是O(1)的. 然后询问的时候用权值分块查询区间k小值,每次是O(sqrt(n))的. ...