Rootop 服务器运维与web架构

2014-01-21
发表者 Venus
暂无评论

什么是“持续集成”Continuous Integration

      在敏捷开发中,有一个很重要的实践叫做持续集成。而什么是持续集成呢?简单来说,持续集成是频繁、持续的在多个团队成员的工作中进行集成,并且给与反馈。一个典型的持续集成周期包括以下几个步骤:
1.持续集成服务器不断从版本控制服务器上检查代码状态,看代码是否有更新。
2.如果发现代码有最新的提交,那么就从版本控制服务器下载最新的代码。
3.等代码完全更新以后,调用自动化编译脚本,进行代码编译。
4.运行所有的自动化测试。
5.进行代码分析。
6.产生可执行的软件,能够提供给测试人员进行测试。

        如果其中任何一个步骤失败,就表示该Build失败,持续集成服务器会给予相应的反馈。一般来说,持续集成服务器会有相应的管理界面,可以看到Build的状态以及相应的信息,如果Build失败,可以查看原因,是编译失败还是测试失败。或者在每次Build后,持续集成服务器发邮件通知,从邮件中可以看到最新Build的状态。当然,也可以自定义反馈方法,比如在ThoughtWorks中国,有个团队的持续集成反馈就是火山灯,黄色表示正在进行Build,绿色表示Build成功,而红色则表示Build失败,一旦发现灯变红了,所有人都不能提交代码,而应该尽快修复该Build。还有一个团队更有创意,用语音来进行反馈。如果Build成功,就会有语言提示说“Build XXXX成功”,如果失败,就会有提示“Build XXXX失败,是由XXX提交的”,被念到名字的成员就得停下来修复这个Build。

        持续集成实践的目的不是减少Build失败的次数,而是尽早发现问题,在最短的时间内解决问题,减少风险和浪费。如果想尝试持续集成,首先需要的是持续集成服务器,比如CruiseControl或者VSTS;然后需要把现有的Build自动化,比如写Ant脚本;最后就是在持续集成服务器上进行配置,比如配置版本控制,集成间隔时间,如何部署,如何反馈等。

  PS:

       敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

摘自:http://www.cnblogs.com/blusehuang/archive/2008/01/20/continuous_integration.html

2014-01-17
发表者 Venus
暂无评论

web集群中session同步问题

早在2011年做过2台机器的负载均衡,多台服务器中,实现用户的会话保持,不得不考虑session同步的问题。在这里提供了5种方法供参考:

一、数据库:

1、拿出来单独一台机器做session数据库。或在现有数据库中创建表存放session(加重数据库负担)

2、同步session文件夹到另外其它服务器中(或共享,如NFS服务)

二、cookie:

1、将session信息写入到cookie中,存放于客户端。

这种方式优点是简单,无额外开销,缺点是如果客户端禁用cookie将无法正常使用,安全性也很低。cookie可以伪造。

三、memcache:

memcache是一个高性能的分布式的内存对象缓存系统,可以将session写入到memcache中。

优点是存放在内存,速度快,比cookie方式安全,缺点是容易产生内存碎片,内存溢出,单点故障。

可考虑做memcache高可用。

四、专业的负载均衡器 比如深信服应用交付系统。

五、中间件技术。如weblogic等

2014-01-16
发表者 Venus
暂无评论

wordpress更换域名

1、更改博客地址

  首先用phpmyadmin打开数据库,找到wp-options表,找到第一条记录也就是siteurl和第37条记录home,将地址改成更换后的域名即可。
这样就可以正常打开网站。

2、修改文章url及文章内链接为新域名

  在以前发表的文章中一定加了内链,比如图片,域名更换了,老的内链也就没有意义了。此时得要将文章内链的旧域名修改为新域名。
用phpmyadmin进入所在的数据库,执行以下语句就可以把文章内的所有内链旧域名批量改为新域名:

UPDATE wp_posts SET post_content = replace(post_content, ‘http://www.old.com’, ‘http://www.new.com’);

2014-01-14
发表者 Venus
暂无评论

shell-varnish一键安装

适用于在redhat5_x64 下搭建了本地yum环境安装varnish-3.0.5。(包括centos 5_64)
默认安装路径:/usr/local/varnish
启动命令路径:/usr/local/varnish/sbin/varnish
其它管理命令:/usr/local/varnish/bin/


#!/bin/bash
install_path=/usr/local/varnish
tar_gz=varnish-3.0.5.tar.gz
source_dir=varnish-3.0.5

if [ $(id -u) != "0" ]; then
        echo "Current User Not root !"
        echo "Please Use root To Run It!"
        exit
else
        echo "Check Permision Pass !"

fi

echo "-----------------------"
echo "Setup YUM Environment !"
echo "-----------------------"

wget -c http://dl.atrpms.net/el5-x86_64/atrpms/stable/atrpms-repo-5-7.el5.x86_64.rpm
rpm -ivh atrpms-repo-5-7.el5.x86_64.rpm
yum install -y gcc gcc-c++ automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig libedit libedit-devel

echo "-------------------------------------------------------"
echo "Put varnish-3.0.3.tar.gz Packages To Scripts Directory!"
echo "-------------------------------------------------------"

if [ -s $tar_gz ]; then
        echo " Found $tar_gz ! "
else
        echo " The $tar_gz not found! "
        echo " Will donwload it !"
wget -c http://repo.varnish-cache.org/source/varnish-3.0.5.tar.gz

fi

tar zxvf $tar_gz
cd $source_dir
./configure --prefix=$install_path
make && make install

rpm -e atrpms-repo
rm -rf ../$source_dir
rm -f ../atrpms-repo-5-7.el5.x86_64.rpm
exit