上周花了点时间把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. Selenium2+python自动化25-js处理日历控件(修改readonly属性)【转载】

    前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题. 基本思路:先用j ...

  2. pytest学习(3)

    在pytest 2.0以上的版本里,我们也可以通过python -m pytest ...来调用.这实际上和pytest ...几乎一摸一样. 只是用python的时候,把当面目录也加入到sys.pa ...

  3. java 获取当前系统时间

    Java的Date获取时间函数都是deprecated 可以使用: https://stackoverflow.com/questions/5175728/how-to-get-the-current ...

  4. 转载 Ofbiz 入门教程

    1.Ofbiz 介绍: Ofbiz(http://www.ofbiz.org) 是 Open Source 的商务软件系统,充分利用了各优秀的的Open Source 项目,像 Tomcat, Ant ...

  5. php7使用curl

    /** * @param string $url * @return mixed */ public function doGet($url) { //初始化 $ch = curl_init(); c ...

  6. [AGC009C]Division into 2

    题意: 有一个长度为$N$的递增序列$S_i$,要把它分成$X,Y$两组,使得$X$中元素两两之差不小于$A$且$Y$中元素两两之差不小于$B$,求方案数 首先考虑$O\left(n^2\right) ...

  7. 【数论】【筛法求素数】CODEVS 1462 素数和

    好吧……我不会欧拉筛也就罢了…… 傻逼筛法竟然这么长时间以来 一直RE ……源头竟然是 int 爆了. #include<cstdio> #include<algorithm> ...

  8. 【博弈论】poj2484 A Funny Game

    如果当前状态可以根据某条轴线把硬币分成两个相同的组,则当前状态是必败态. 因为不论在其中一组我们采取任何策略,对方都可以采取相同的策略,如此循环,对方必然抽走最后一枚硬币. 因为我们先手,因此抽完后盘 ...

  9. WebSocket 实战(转)

    WebSocket 实战 本文介绍了 HTML5 WebSocket 的由来,运作机制及客户端和服务端的 API 实现,重点介绍服务端(基于 Tomcat7)及客户端(基于浏览器原生 HTML5 AP ...

  10. VS2017序列号|Visual Studio 2017 激活码 序列号

    企业版:NJVYC-BMHX2-G77MM-4XJMR-6Q8QF 专业版:KBJFW-NXHK6-W4WJM-CRMQB-G3CDH