Browse Source

update by krrish

krrish 7 years ago
parent
commit
f0f4f2d78e
28 changed files with 1065 additions and 0 deletions
  1. BIN
      01-架构设计文档/01.SVICLOUD视维云整体架构.pptx
  2. 312 0
      02-安装部署文档/Docker安装及命令.md
  3. 216 0
      02-安装部署文档/Rancher安装.md
  4. 116 0
      02-安装部署文档/新能源机房环境建设指引.md
  5. 95 0
      02-安装部署文档/新能源部署文档.md
  6. 90 0
      03-应用接入文档/VAAS项目版本上线.md
  7. BIN
      03-应用接入文档/云平台接入介绍.docx
  8. 222 0
      03-应用接入文档/视维云平台应用接入文档v0.2.md
  9. BIN
      04-运维文档/巡检模板-v0.2.xlsx
  10. BIN
      04-运维文档/故障登记模板.xls
  11. BIN
      04-运维文档/聚能云运维管理手册-v0.5.doc
  12. BIN
      05-常见问题处理FAQ/images/_1526262920_14637.png
  13. BIN
      05-常见问题处理FAQ/images/_1526263181_17049.png
  14. 14 0
      05-常见问题处理FAQ/如何查看当前的容器镜像版本号.md
  15. BIN
      99-deprecated(过时的)/1.视维云平台安装文档v0.2.docx
  16. BIN
      99-deprecated(过时的)/2.视维云平台用户文档v0.8.docx
  17. BIN
      99-deprecated(过时的)/3.视统云接入标准与规范20170315.doc
  18. BIN
      99-deprecated(过时的)/3.视统云接入标准与规范20171113.doc
  19. BIN
      99-deprecated(过时的)/4.Docker构建规范与约束.doc
  20. BIN
      99-deprecated(过时的)/5.视维云业务版本发布流程.docx
  21. BIN
      99-deprecated(过时的)/6.视维云业务迁移操作指导.ppt
  22. BIN
      99-deprecated(过时的)/BO端口规划_20171130_2.xlsx
  23. BIN
      99-deprecated(过时的)/UES web调试.docx
  24. BIN
      99-deprecated(过时的)/cdn端口规划.xlsx
  25. BIN
      99-deprecated(过时的)/云平台接入介绍.docx
  26. BIN
      99-deprecated(过时的)/视维云迁移-端口号与服务及负责人_视维云.xlsx
  27. BIN
      99-deprecated(过时的)/迁移过程中碰到的问题.docx
  28. BIN
      99-deprecated(过时的)/运维要求的格式 (秦康).docx

BIN
01-架构设计文档/01.SVICLOUD视维云整体架构.pptx


+ 312 - 0
02-安装部署文档/Docker安装及命令.md

@@ -0,0 +1,312 @@
+> 弱网环境为了支持 bbr、aufs,建议安装 linux-image-extra 内核, 参考:[Linux 升级 kernel 及 tcp_BBR](http://blog.dongcj.com/linux/Linux%E5%8D%87%E7%BA%A7kernel%E5%8F%8Atcp_BBR/)
+
+# 1. Ubuntu 安装 Docker
+## 1.1. install docker(latest)
+```bash
+# clone 后直接脚本安装 , CentOS 没有测试过
+git clone https://github.com/rancher/install-docker.git
+cd ./install-docker
+```
+
+## 1.2. install docker(previous release)
+```bash
+# if you want install pre version
+# add the repo to the apt
+deb [arch=amd64] https://download.docker.com/linux/ubuntu zesty stable
+deb-src [arch=amd64] https://download.docker.com/linux/ubuntu zesty stable
+
+# show the version avaiable
+apt update
+apt-cache madison docker-ce
+
+# install the specify docker release
+apt install docker-ce=17.06.2~ce-0~ubuntu
+```
+
+# 2. 配置 Docker 加速器(用于国内加速,可选)
+> 以下操作需重启 Docker 服务生效
+
+vi /etc/docker/daemon.json
+
+```json
+{
+  "registry-mirrors": [
+     "https://2lqq34jg.mirror.aliyuncs.com",
+     "https://pee6w651.mirror.aliyuncs.com",
+     "https://registry.docker-cn.com",
+     "http://hub-mirror.c.163.com"
+  ]
+}
+```
+
+<!-- more -->
+
+# 3. 配置 Docker 代理(国内无法访问国外某些网站的 https,可选)
+
+```
+# 临时使用直接启动 dockerd(当然也可以写入 systemd 长期生效)
+http_proxy=PROXY_ADDR:PORT https_proxy=PROXY_ADDR:PORT dockerd
+```
+
+# 4. 安装 docker-compose(可选)
+
+```bash
+# docker-compose VERSION:
+# https://github.com/docker/compose/releases
+
+# get the latest info
+DOCKER_COMPOSE_ARCH=docker-compose-Linux
+curl -s https://api.github.com/repos/docker/compose/releases/latest | \
+    jq -r ".assets[] | select(.name | test(\"${DOCKER_COMPOSE_ARCH}\")) | .browser_download_url"
+
+# download the latest version
+dockerComposeVersion=1.18.0
+
+curl -L https://github.com/docker/compose/releases/download/$dockerComposeVersion/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
+
+sudo chmod +x /usr/local/bin/docker-compose
+docker-compose --version
+```
+
+# 5. 安装 docker-machine(可选)
+
+```bash
+curl -L https://github.com/docker/machine/releases/download/v0.9.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine
+chmod +x /tmp/docker-machine
+cp /tmp/docker-machine /usr/local/bin/docker-machine
+
+# 使用 docker-machine( 支持 virtualbox、阿里云等 )
+# 所有的 Available driver plugins:
+> https://github.com/docker/docker.github.io/blob/master/machine/AVAILABLE_DRIVER_PLUGINS.md
+
+# create aws machine
+docker-machine create --driver amazonec2 --amazonec2-access-key AKI******* --amazonec2-secret-key 8T93C*******  aws-sandbox
+
+# 直接使用本地服务器
+docker-machine create --driver none --url=tcp://192.168.1.112:2376 svi1r01n02
+```
+
+# 6. Docker 常用配置
+> 如果是 systemctl 启动的 docker, 需要在 /lib/systemd/system/docker.service 中修改
+
+```bash
+## 配置 Docker 启动参数:(在 /etc/default/docker 中)
+DOCKER_OPTS="--storage-driver=aufs --tls=true --tlscert=/var/docker/server.pem --tlskey=/var/docker/serverkey.pem -H tcp://192.168.1.112:2376"
+
+other_args="--exec-driver=lxc \
+    --selinux-enabled [-H tcp://0.0.0.0:2376] [-b=br0]"   # 如果用了 -H,连接时也要用 -H 指定 !!
+```
+
+## 6.1. Docker 使用不同的桥接方式
+
+```bash
+# 前台启动
+docker -d -b br0
+
+# 加入默认选项以使 service 生效
+other_args="--exec-driver=lxc --selinux-enabled -b=br0"     
+```
+
+## 6.2. Docker 直接使用外部块存储
+> 映射为 container 内部盘,可以自定义使用 read、write、mknode 操作
+
+    docker run --device=/dev/sdc:/dev/xvdc:[rwm] --device=/dev/sdd --device=/dev/zero:/dev/nulo -i -t ubuntu ls -l /dev/{xvdc,sdd,nulo}
+
+## 6.3. Restart policies
+    docker run --restart=[always|no|on-failure|unless-stopped] redis
+
+## 6.4. 向容器中增加主机名与 IP 对应 (add /etc/hosts entry)
+    docker run --add-host=docker:10.180.0.1 --rm -it debian
+
+## 6.5. 设置容器的 ulimit
+    docker run --ulimit nofile=1024:1024 --rm debian sh -c "ulimit -n"
+
+## 6.6. Docker 重启 daemon 不重启 container
+```bash
+# 以下二种方法任一种都可以
+  - 将 /etc/docker/daemon.json 中的 "live-restore" 设置为 true,然后 SIGHUP(kill -HUP PID)
+  - sudo dockerd --live-restore
+```
+
+## 6.7. Docker Daemon 的配置文件
+> 可以使用 --config-file 指定,默认位置为 /etc/docker/daemon.json
+```json
+{
+    "authorization-plugins": [],
+    "bridge": "",
+    "cluster-advertise": "",
+    "cluster-store": "",
+    "debug": true,
+    "default-ulimits": {},
+    "disable-legacy-registry": false,
+    "dns": [],
+    "dns-opts": [],
+    "dns-search": [],
+    "exec-opts": [],
+    "fixed-cidr": "",
+    "graph": "",
+    "group": "",
+    "hosts": [],
+    "insecure-registries": [],
+    "labels": [],
+    "live-restore": true,
+    "log-driver": "",
+    "log-level": "",
+    "mtu": 0,
+    "pidfile": "",
+    "raw-logs": false,
+    "registry-mirrors": [],
+    "storage-driver": "",
+    "storage-opts": [],
+    "swarm-default-advertise-addr": "",
+    "tlscacert": "",
+    "tlscert": "",
+    "tlskey": "",
+    "tlsverify": true
+}
+```
+
+# 7. Docker 的 API 操作
+```bash
+# 镜像
+curl --unix-socket /var/run/docker.sock http://localhost/images/json
+
+# events
+curl --no-buffer -XGET --unix-socket /var/run/docker.sock http://localhost/events
+
+# container 信息
+curl --unix-socket /var/run/docker.sock "http://localhost/containers/json?all=1&before=8dfafdbc3a40&size=1"
+```
+
+# 8. Docker 小技巧
+
+## 8.1. 已运行容器通过 iptbles 来 nat
+ 
+    # Filter
+    iptables -A DOCKER -d 0.0.0.0 ! -i docker0 -o docker0 -p tcp -m tcp --dport 3306 -j ACCEPT
+    iptables -A DOCKER -p tcp -m tcp --dport 3306 -j ACCEPT
+    
+    # DOCKER DNAT
+    iptables -t nat -A  DOCKER -p tcp --dport 3306 -j DNAT --to-destination 172.16.19.2:3306
+    
+
+    # POSTROUTING
+    iptables -t nat -A POSTROUTING -s 172.16.19.0/16 -d 172.16.19.0/16 -p tcp -m tcp --dport 3306 -j MASQUERADE
+    iptables -t nat -A POSTROUTING  -p tcp -m tcp --dport 3306 -j MASQUERADE
+
+
+
+## 8.2. set metadata on container
+
+```bash
+# ( 如下设置了一个 my-label="" 和 com.example.foo=bar)
+docker run -l my-label --label com.example.foo=bar ubuntu bash
+docker run --label-file ./labels ubuntu bash
+
+# cat ./labels
+com.example.label1="a label"
+
+# this is a comment
+com.example.label2=another\ label
+com.example.label3
+```
+
+## 8.3. 直接设置 sysctl( 不能与 --network=host 同用 )
+    docker run --sysctl net.ipv4.ip_forward=1 ubuntu
+
+## 8.4. 从 container 的变化中新建一个 image
+    docker commit $CONTAINER_ID [REPOSITORY[:TAG]]
+
+
+## 8.5. 备份容器中的数据(将容器中的数据目录拷贝至当前目录下)
+    docker run --rm --volume-from dbdata -v ${pwd}:/backup  ubuntu tar cvf /backup/backup.tar /dbdata
+
+
+# 9. Docker Inspect
+```bash
+# 如果镜像和实例名字重名,使用 --type 区分
+docker inspect --type=image rhel7
+
+# 获取正在运行的容器 IP 的示例
+container_ip=$(docker inspect --format '{{.NetworkSettings.IPAddress}}' ${container_id})
+
+# docker inspect 输出结果的解析
+docker inspect `docker ps -q` | grep IPAddress | cut -d '"' -f 4
+# 或者
+docker inspect `dl` | jq -r '.[0].NetworkSettings.IPAddress'
+
+# get the IP address of a container
+docker inspect \
+  --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \
+  d2cc496561d6
+
+172.17.0.2
+
+# 以 json 的格式展示
+docker inspect --format '{{json .Mounts}}' pensive_blackwell
+
+# 大小写
+docker inspect --format "{{lower .Name}}" pensive_blackwell
+
+# Listing all port bindings
+docker inspect \
+  --format='{{range $p, $conf := .NetworkSettings.Ports}} \
+  {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' \
+  d2cc496561d6
+
+  80/tcp -> 80
+
+# Getting size information on a container
+docker inspect -s d2cc496561d6 | grep -i Size
+
+# 找到 container 的 pid
+PID=$(docker inspect --format {{.State.Pid}} <container_name_or_ID>)
+
+# 找到 container 使用的镜像
+docker inspect -f '{{.Config.Image}}' 5cf58382b2f0
+
+# logging driver
+docker inspect -f '{{.HostConfig.LogConfig.Type}}' <CONTAINER>
+
+# 格式 host:port , 并且把他们输入一个 java properties 文件:
+sut_ip=${BOOT_2_DOCKER_HOST_IP}
+
+template='{{ range $key, $value := .NetworkSettings.Ports }}{{ $key }}='"${BOOT_2_DOCKER_HOST_IP}:"'{{ (index $value 0).HostPort }} {{ end }}'
+
+tomcat_host_port=$(docker inspect --format="${template}" ${container_id})
+
+for line in ${tomcat_host_port} ; do
+    echo "${line}" >> ${work_dir}/docker_container_hosts.properties
+done
+```
+> 详见:[https://docs.docker.com/engine/admin/logging/overview/](https://docs.docker.com/engine/admin/logging/overview/)
+
+# 10. Docker 清理方案
+## 10.1. 清理
+```bash
+docker ps -a | grep 'weeks ago' | awk '{print $1}' | xargs --no-run-if-empty docker rm
+
+docker rm $(docker ps -q -f status=exited)
+
+docker images | grep "<none>" | awk '{print $3}' | xargs docker rmi
+
+docker rmi $(docker images -q -f "dangling=true")
+```
+
+```
+docker-cleanup-volumes
+Manage data in containers
+remove-orphan-images.sh
+Deleting images from a private docker registry
+delete-docker-registry-image(support v2)
+
+Cleaning up unused Docker
+How to remove old Docker containers
+Implement a 'clean' command
+docker-cleanup-volumes.sh
+https://docs.docker.com/docker-trusted-registry/soft-garbage/
+docker-cleanup
+docker-gc
+```
+> https://github.com/yangtao309/yangtao309.github.com/issues/1
+

+ 216 - 0
02-安装部署文档/Rancher安装.md

@@ -0,0 +1,216 @@
+# 1. 准备步骤
+
+## 1.1. 服务器时间同步
+> 如果不配置时间同步,可能会导致调度服务有可能不正常 , 建议使用 **UTC** 时间
+```bash
+# 直接删除 /etc/localtime 即可使用 UTC 时间
+rm -rf /etc/localtime
+```
+
+## 1.2. 支持 BBR,请升级内核至 4.9 以上版本(弱网环境建议)
+> 如果要支持 aufs,请安装 linux-image-extra 的包
+> 参考链接: [Linux 升级 Kernel 及 tcp_BBR](http://blog.dongcj.com/linux/Linux%E5%8D%87%E7%BA%A7kernel%E5%8F%8Atcp_BBR/)
+
+## 1.3. 所有服务器设置外部 DNS
+```bash
+# stop and disable the local dns generator
+systemctl stop systemd-resolved.service
+systemctl disable systemd-resolved.service
+
+systemctl stop resolvconf.service
+systemctl disable resolvconf.service
+
+systemctl stop NetworkManager.service
+systemctl disable NetworkManager.service
+
+# 修改为外部 DNS 服务器
+vi /etc/network/interfaces
+  dns-nameservers 114.114.114.114
+
+# set the /etc/resolv.conf
+unlink /etc/resolv.conf
+vi /etc/resolv.conf
+nameserver 114.114.114.114
+
+# show the service status
+systemctl status systemd-resolved.service
+systemctl status resolvconf.service
+systemctl status NetworkManager
+
+systemctl restart docker
+
+# If has dnsmasq service
+# Comment out the dns=dnsmasq line
+# vi /etc/NetworkManager/NetworkManager.conf
+  # dns=dnsmasq
+
+# restart network and docker service
+#systemctl restart network-manager
+```
+
+<!-- more -->
+
+## 1.4. 设置 hostname
+    [root@rancher-server] echo "<HOSTNAME>" >/etc/hostname && hostname <HOSTNAME>
+    [root@rancher-server] hostnamectl set-hostname svi1r01n08
+
+## 1.5. install Docker
+> 参考:[Docker 安装及命令](http://blog.dongcj.com/m/Docker%E5%AE%89%E8%A3%85%E5%8F%8A%E5%91%BD%E4%BB%A4/)
+
+
+# 2. 安装 Rancher
+## 2.1. 单机安装
+
+```bash
+# 下载 rancher/server 镜像
+docker pull rancher/server
+
+# 单实例启动 ( 使用默认自带的数据库 )
+docker run -d --restart=always \
+-v /opt/svicloud/rancher/server_db:/var/lib/mysql \
+--name rancher-server \
+-p 8080:8080 \
+rancher/server
+
+# 单独数据库启动
+docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 \
+--name rancher-server \
+rancher/server  \
+--db-host  mysql-lb.mysql.dongcj.krrish.top  \
+--db-port 3306  \
+--db-user root  \
+--db-pass mogK****  \
+--db-name cattle
+
+# 然后,浏览器打开 http://<SERVER_IP>:8080 即可
+
+```
+
+
+# 3. 其它安装选项
+
+## 3.1. HA 模式安装(可选)
+1. 安装一个外部 **主从模式** 的 MySQL
+2. 在主备两边执行
+
+```bash
+docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 --name rancher-server rancher/server \
+  --db-host myhost.example.com \
+  --db-port 3306 \
+  --db-user username \
+  --db-pass password \
+  --db-name cattle \
+  --advertise-address <IP_of_the_Node>  
+
+db.cattle.database=mysql
+db.cattle.username=cattle
+db.cattle.password=cattle
+db.cattle.mysql.host=localhost
+db.cattle.mysql.port=3306
+db.cattle.mysql.name=cattle
+# All values above are the defaults except db.cattle.database. If the defaults are fine, then all you need to set is db.cattle.database=mysql.
+```
+
+## 3.2. 启动集群模式(可选)
+```bash
+# 手动启动主
+docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 --name rancher-server rancher/server --db-host 192.168.1.174 --db-port 3306 --db-user cattle --db-pass cattle --db-name cattle --advertise-address 192.168.1.174
+
+# 手动启动备
+docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 --name rancher-server rancher/server --db-host 192.168.1.174 --db-port 3306 --db-user cattle --db-pass cattle --db-name cattle --advertise-address 192.168.1.184
+```
+
+## 3.3. 设置 Rancher SSL(可选)
+```bash
+mkdir -p /opt/svicloud/rancher/cert
+cp cert.pem key.pem /opt/svicloud/rancher/cert
+
+docker run -d \
+--restart=always \
+--name rancher-server-ssl \
+--link rancher-server \
+-p 80:80 -p 443:443 \
+-e 'RANCHER_URL=<YOUR_DOMAIN>' \
+-e 'RANCHER_CONTAINER_NAME=rancher-server' \
+-e 'RANCHER_PORT=8080' \
+-v /opt/svicloud/rancher/cert:/etc/nginx/external/ \
+codedevote/nginx-ssl-proxy-rancher
+```
+
+## 3.4. 将 Rancher、Registry、Git 统一为 SSL
+```bash
+mkdir -p /opt/svicloud/rancher/cert
+cp cert.pem key.pem /opt/svicloud/rancher/cert
+
+docker run -d \
+--restart=always \
+--name rancher-server-ssl \
+--link rancher-server \
+-p 80:80 -p 443:443 \
+-e 'RANCHER_URL=<YOUR_DOMAIN>' \
+-e 'RANCHER_CONTAINER_NAME=rancher-server' \
+-e 'RANCHER_PORT=8080' \
+-v /opt/svicloud/rancher/cert:/etc/nginx/external/ \
+codedevote/nginx-ssl-proxy-rancher
+```
+
+## 3.5. registry v2 版本的查询所有镜像
+> https://github.com/docker/distribution/blob/master/docs/spec/api.md#deleting-an-image
+
+```bash
+# 1. 先查出所有的镜像
+curl https://192.168.1.111/v2/_catalog
+
+# 2. 查出该镜像的 tag 列表
+curl https://192.168.1.111/v2/dongcj/webserver/tags/list
+
+# 3. 查看详细的镜像信息
+curl https://192.168.1.111/v2/dongcj/webserver/manifests/v0.1
+
+# 4、删除所给的镜像
+https://github.com/burnettk/delete-docker-registry-image
+
+# 或者使用 ui 进行操作
+```
+
+# 4. 自定义加入 rancher 网络
+    在启动参数中加入 --label io.rancher.container.network=true,这样网络就会有 rancher 的网络 IP
+
+# 5. 查询 DNS 的所有记录
+```bash
+# external 的 DNS 设置方法相同
+# 进入 network-services-metadata-dns-X.
+cat /etc/rancher-dns/answers.json
+```
+
+> 注意:在独立的容器中(自建的),DNS 只保留最后一个
+
+# 6. Rancher LB `http` redirect to `https`
+
+  - 按照如下模式,自定义请求头信息
+
+![](https://i.imgur.com/TEg1m2a.png)
+
+  - 在 ` 自定义 Haproxy.cfg` 中增加以下内容
+
+所有跳转
+```apache
+frontend 80
+    bind *:80
+    mode http
+    redirect scheme https code 301 if !{ ssl_fc }
+```
+
+所有跳转但排除 docs.svicloud.com
+```
+frontend 80
+    bind *:80
+    mode http
+    redirect scheme https  code 301 if !{ hdr(Host) -i docs.svicloud.com } !{ ssl_fc }
+```
+# 7. Rancher LB 使用 IP Hash
+在 ` 自定义 Haproxy.cfg` 中增加以下内容 :
+```
+balance source
+```
+

+ 116 - 0
02-安装部署文档/新能源机房环境建设指引.md

@@ -0,0 +1,116 @@
+# 1、机房建设
+
+## 1.1 总体要求
+机房要远离易燃、易爆等危险物品,以防止强电磁场等干扰;要避开上层有卫生间、厨房、水池的区域;与机房无关的上、下水管和消防水管不能进入或穿过机房区域。机房装修应采用防火、阻燃、隔热的材料,并采取必要的防水措施
+
+## 1.2、机房高度与面积
+机房须设立独立房间或隔间,按照新能源目前的规模,12台服务器+1个交换机+1个防火墙+1台空调+1UPS+1发电机+1机柜(包含后续两年的扩容)机房内使用面积要求如下:
+> * 服务器机柜1个(42U),尺寸按宽 600mm、深 1000mm算。
+> * UPS 不间断电源主机(3KVA——10KVA)及电池(按 0.5 小时长延时计、不包含空调供电)1 套,尺寸按宽 1000mm、深 1200mm算。
+> * 空调 1 台,经常高温地区或者偏远地区建议采用 2 台。
+
+按以上各类设备尺寸,并且考虑必要的通道及维修空间,和后续机柜的扩容机房的面积至少应在 5——10 平方米以上,并且机房宽度不少于 2.4 米。如果需要做高架地板机房净高度在 2.5 米以上。
+
+
+
+## 1.3、机房装修
+### 地面:
+> * 机房内所有地面须在原地坪上找平,其表面处理必须光滑、水平度好,使其不起皮和 龟裂、不起灰尘。
+> * 机房内所有地面建议采用环氧树脂地平漆粉刷,以起到防尘作用。
+> * 高架地板安装高度要至少达到 150mm 以上。规格为 600mm×600mm 方,厚度为 35mm。
+
+### 墙面:
+> * 机房隔墙采用砖砌墙或轻钢龙骨隔墙(100#轻钢龙骨石膏板基层,内填隔音保温棉)。
+> * 机房内如有玻璃隔断,必须采用中空铯钾防火玻璃隔断,起到保温、隔音、防火作用。
+
+### 顶面:
+> * 机房顶棚需做防尘处理,均涂乳胶漆。
+> * 机房吊顶需采用可方便拆卸的活动吊顶,建议采用铝合金方板,规格为 600*600 微孔吸音铝合金方板。
+
+### 门、窗:
+> * 机房区域不留窗户,所有窗户用轻钢龙骨墙体或砖砌墙封闭,以达到保温节能和安全 防盗的作用。
+> * 机房门建议采用钢制防火防盗门,主要技术指标如下:
+
+## 1.4、机房空调、新风
+机房空调尽量选用挂壁式或柜式空调,若因排水问题必须选用嵌入式吊顶空调,则空调 室内机出风口及排水管要避开配电柜、机柜所在区域。
+> * 由于机房区域需要常年制冷,温度保持在 23±2°C,所以采用独立恒温空调系统。 
+> * 新风采用大楼原有新风系统的,在风口加装过滤网。
+> * 机房空调需要独立安装,并使用带备用发电机的供配电回路供电
+ 
+## 1.4、机房消防及安防
+可以暂不考虑
+
+# 2. 供配电设计
+## 2.1 市电
+> * 建筑物内的市电宜由两路不同供电所引入,经 ATS 切换后作为建筑物的市电电源。
+> * 如所在建筑物可提供由市电和发电机供电经 ATS 切换的电源,则机房电源可直接由建筑物内带有应急发电机供电的市电配电柜引入。
+> * 如所在建筑物仅能提供市电,则引入机房内的市电必须与机房专用的发电机电源经 ATS 切换后,才能为机房设备供电。
+> * 机房内配电柜的 ATS 自动切换开关均须设定为自动状态。
+> * 机房配电柜必须标配电源防雷器。
+
+## 2.2. UPS供电
+> * 机房内所有网络设备、服务器均需要接入UPS供电。
+> * UPS 的后级负载不宜超过 UPS 功率的 80%。
+> * 为防止断电之后切换发电机,UPS至少能供电30分钟。
+
+## 2.3. 发电机
+> * 输出功率:发电机的输出功率应该是机房用电功率总合的 2 倍。
+> * 输出电压:单相 220VAC±10%;三相 380VAC±10%。电压变幅:<±5.0%。输出频率:48Hz-52Hz。波形失真度:THD≤4.0%。
+> * 定期和物业进行发电 演练,确保系统正常运作;
+
+## 2.4. 防雷与接地
+暂时不考虑
+
+
+# 3. 选购
+根据新能源的项目需求,需要采购的硬件包括服务器、网络设备、发电机、UPS、空调。所需的价格约为55万元人民币。
+
+## 3.1 服务器
+根据新能源项目的最小化网元部署要求、后续业务量的增大负载不断的增高,扩容是必不可少,所以建议采用 DELL R730  2U 的机型9台。具体安排如下:
+
+节点|功能用途|机器数量
+:-:|:-:|:-:
+业务网元|AAA、UMS、TMS、OMS、EMS、CAS、DCS、SMS-shop|4台
+短信网关|SMS-GateWay| 2台
+管理节点|视维云平台的管理节点服务器|1台
+数据库|mysql主备和其它网元|2台
+
+* 建议业务网元最多只启动4个容器,短信网关最多启动2个容器
+
+
+### DELL R730 2U 配置如下
+指标|规格
+:-:|:-:
+标配内存|64G
+服务器内存类型| DDR3
+服务器硬盘容量|4T*3
+CPU|E5-2620V4*2
+网络|集成四口千兆网卡
+价格|28899RMB
+
+* 总报价:260091人民币
+
+## 3.2 网络设备
+由于初期规模小,机器数量较少,所以网络设备这块只需要交换机、防火墙各一台,如下图:
+设备类型|品牌|型号|价格
+:-:|:-:|:-:|:-:
+交换机|华为|S5720-56C-HI-AC|2.3万
+防火墙|山石网科|SG-6000-E2800|3.3万
+
+## 3.3 UPS
+UPS 简称不间断电源,主要作用给服务器供电和稳压。目前市面上的2U 服务器均为750W,那么9台的总功率是6750W的额定功率,所以需要一台10KVA的UPS,最大总功率可达到8KW。约为15000人民币。如果超过10台以上的2U服务器可能还需要加大UPS的功率。
+下图是山特公司10KVA UPS 的参数和报价
+
+![image](https://note.youdao.com/yws/public/resource/5f8b148a9d2b2da52ee5c6ef41e87a57/xmlnote/06C19C6FA66F4468990820DDD4334040/1050)
+
+## 3.4 发电机
+新能源项目目前需要在国外尼尔利亚,市电供应极为不稳定,所有发电机就是主要供电设备,且市电经常断电10小时甚至更久,所以发电机的油箱需要至少支撑12小时以上。发电机需要供电给服务器和空调,由于停电时间较长,发电机需要根据需要单独搭配。
+
+* 结论:发电机采用50千瓦且需要配置1000升的油箱来完成单次供电12小时,约为70000人民币。
+
+## 3.5 空调
+空调的作用在于,降低机房的温度,服务器在运行过程中会产生热量,如果热量达到一定的温度,服务器会启动自我保护机制断电。为不影响业务的正常运行,需要在机房安装一套制冷量超过 6750W 的空调,(3P 空调的制冷量为7000,5P 空调的制冷量是12000)。
+
+* 结论:所以算上未来扩容需要一台5P的空调来保证业务的正常运作,采购价格约为10000人民币。
+
+

+ 95 - 0
02-安装部署文档/新能源部署文档.md

@@ -0,0 +1,95 @@
+<center> <font size=30pt>新能源部署文档</font> </center>
+
+# 1、目的
+明确新能源项目的部署架构,熟悉整个流程。
+
+# 2、使用范围
+需要部署新能源项目的相关人员,如开发,测试,运维等。
+
+# 3、硬件设备选型
+目前部署新能源项目有3种方案均可完成部署工作。分别为自建机房、租用物理机、租用AWS的EC2机器3种方式。其中自建机房涉及的新增场景比较多也比较复杂,具体请参照《新能源机房建设规范指引》所以本文暂时不做介绍。主要介绍租用物理机与AWS的EC2机器做对比分析。
+
+## 3.1 租用物理机
+### 优点:
+> 1、费用相对较低。
+>
+> 2、利用虚拟化技术可以任意克隆多套虚拟主机。
+>
+> 3、网络、供电、性能等相对比较稳定。
+### 缺点:
+> 1、租用同机房机器无法做到异地容灾。
+>
+> 2、硬件故障可能导致数据丢失或者环境无法恢复。
+>
+> 3、伸缩性不强。
+
+### 3.2 aws ec2下
+#### 优点:
+> 1、网络供电比较稳定、机器可以随意分配。
+>
+> 2、所有机器都可以走内外通信、扩展性与计算能力比较强,
+>
+> 3、数据存放比较安全
+
+#### 缺点:
+> 1、费用比较高,一般上物理机的2倍。
+>
+> 2、相对来说稳定性不如物理机机
+
+### 3.3 费用对比
+本章节主要是以租用一月为例,对比现行已经租用的欧洲法国物理机与aws ec2欧洲法国云主机做比较,采用配置也比较接近。如下表:
+
+机器类型|CPU|内存|人民币
+:-:|:-:|:-:|:-:
+物理机|16|128|2880
+AWS EC2|16|122|5684
+
+* 通过以上数据分析决定前期将租用4台高配物理机的方式来部署新能源项目。
+
+#### 风险
+* AWS EC2主机是不允许外接短信猫,租用物理机需要与当地机房确认
+
+# 4 部署方案
+
+## 4.1 机器分配
+
+机器用途|机器ip|机器配置|操作系统版本
+:-:|:-:|:-:|:-:
+短信网关服务器|10.0.0.1|16核32G|Ubuntu 17.10.1
+业务网元服务器|10.0.0.2|32核64G|Ubuntu 17.10.1
+数据库服务器|10.0.0.3|32核64G|Ubuntu 17.10.1
+云平台服务器|10.0.0.4|16核32G|Ubuntu 17.10.1
+
+## 4.2 模块介绍
+### 介绍新能源项目上云的主要模块介绍
+
+> 1、镜像仓库:存放新能源所有镜像版本归档的地方。
+> 
+> 2、云管理平台:视维云平台,管理容器分发平台,用户主要操作平台。
+> 
+> 3、GIT服务:主要存放网元的编排文件,用户可以通过此编排文件快速部署网元。
+> 
+> 4、Jenkins:镜像打包的任务调度分发服务模块,结合build服务器与SVN制作镜像。
+> 
+> 5、build服务:制作网元镜像,上传归档模块
+> 
+> 6、网元:新能源相关模块比如AAA、CAS、SMS-GateWay、Zookeeper、RabbitMQ等。
+
+
+## 4.2 部署架构
+本章节主要新能源项目在云平台上的整体部署架构图,通过云平台的标签与docker-compose编排文件控制所有模块所在的主机节点。主节点所有的数据均通过网络的方式传输给备节点。
+
+
+### 4.2.1 主节点部署方案
+云平台环境在本地自建机房按照下图部署一套独立完整的云平台环境。为了数据的安全性,会将云平台管理节点、git服务、Jenkins服务、build服务、registry主仓库、业务相关所有的模块部署在本地的云平台环境中。
+![image](https://note.youdao.com/yws/public/resource/5f8b148a9d2b2da52ee5c6ef41e87a57/xmlnote/5FD6A42B00EE476E83158A2F716EF0B5/841)
+
+### 4.2.1 备节点部署方案
+为出于数据安全性和短信猫无法接到租用物理机上,那么备接到只部署云平台管理节点、registry备仓库。业务网元,数据库等,部署架构如下:
+![image](https://note.youdao.com/yws/public/resource/5f8b148a9d2b2da52ee5c6ef41e87a57/xmlnote/9D342CA2553440AB92F72986E4EFF2FF/839)
+
+## 4.3 混合部署方案
+混合部署方案是为解短信猫问题,因为如果租用服务器可能导致无法接入硬件短信猫,所以需要在本地准备一台服务器,将短信猫服务单独部署在本地,其他所有的模块都部署在租用服务器或者AWS EC2服务器上,再通过网络与其他模块通讯。
+
+
+

+ 90 - 0
03-应用接入文档/VAAS项目版本上线.md

@@ -0,0 +1,90 @@
+# VAAS项目版本上线
+## 一、准备工作:
+###  1、删除栈服务
+> 1、登录http://192.168.1.165:8080/测试云平台。
+>
+> 2、删除除基础服务以外的所有的栈,如下图:
+
+![image](https://note.youdao.com/yws/public/resource/5f8b148a9d2b2da52ee5c6ef41e87a57/xmlnote/4146F788FBF14BC6866D0EB01EC047AE/1192)
+
+### 2、删除节点数据
+> 1、停止并删除服务
+```bash
+docker ps |grep -v rancher |awk '{print $1}' |xargs docker rm -f -v
+```
+
+> 2、删除数据库目录
+```bash
+rm -rf /data/pgdata/*
+```
+
+> 3、删除业务相关目录
+```bash
+rm -rf /opt/wisecloud/*
+```
+
+> 4、删除authcenter鉴权目录
+```bash
+rm -rf /opt/data/authcenter/*
+```
+
+### 3、导出线上所有网元的数据库数据
+> 1、postgres数据库
+```bash
+bash /opt/tools/postgres_backup.sh
+```
+
+> 2、mysql数据库
+```bash
+bash /opt/tools/mysql_backup.sh
+```
+
+###  4、迁移挂载数据
+
+```bash
+#两台机器都需要执行
+cd /opt
+scp -rp wisecloud root@192.168.1.137:/opt
+```
+
+### 5、统一标签
+* 按照线上环境,统一设置测试环境的标签
+![image](https://note.youdao.com/yws/public/resource/5f8b148a9d2b2da52ee5c6ef41e87a57/xmlnote/620C557F3F644C67870FBCD967FEF715/1265)
+
+### 5、获取转测试配套表
+![image](https://note.youdao.com/yws/public/resource/5f8b148a9d2b2da52ee5c6ef41e87a57/xmlnote/118FCD86D10C445D9B011EB2F5F72C26/1234)
+
+
+
+
+## 二、部署:
+### 1、部署底层服务。
+* postgres、mysql、Redis等。
+
+### 2、导入数据数据到测试环境中
+> 1、postgres数据库
+```bash
+bash /opt/tools/postgres_recovery.sh
+```
+
+> 2、mysql数据库
+```bash
+bash /opt/tools/mysql_recovery.sh
+```
+
+### 4、部署VAAS项目的所有网元
+
+## 三、验收标准
+### 1、检查所有栈状态
+
+![image](https://note.youdao.com/yws/public/resource/5f8b148a9d2b2da52ee5c6ef41e87a57/xmlnote/2D6D48AA29DC4528B3658A6DE76DC782/1194)
+
+### 2、检查所有服务
+![image](https://note.youdao.com/yws/public/resource/5f8b148a9d2b2da52ee5c6ef41e87a57/xmlnote/0E6DB7AEBC3245D18E023F93D5EB4734/1196)
+
+### 3、UES基本冒烟测试
+
+## 四、异常测试
+* 1、重启所有机器,先重启137,再重启138,再两台同时重启
+* 2、所有服务全部执行一次升级操作
+

BIN
03-应用接入文档/云平台接入介绍.docx


File diff suppressed because it is too large
+ 222 - 0
03-应用接入文档/视维云平台应用接入文档v0.2.md


BIN
04-运维文档/巡检模板-v0.2.xlsx


BIN
04-运维文档/故障登记模板.xls


BIN
04-运维文档/聚能云运维管理手册-v0.5.doc


BIN
05-常见问题处理FAQ/images/_1526262920_14637.png


BIN
05-常见问题处理FAQ/images/_1526263181_17049.png


+ 14 - 0
05-常见问题处理FAQ/如何查看当前的容器镜像版本号.md

@@ -0,0 +1,14 @@
+# 1. 查看当前的容器镜像版本号
+
+容器镜像由部分组成:镜像地址、镜像版本,中间使用『`冒号`』分隔。其中 `镜像版本` 由 `网元版本`-`SVN Build 号` 组成,如 `registry.svicloud.com/powercloud/ems/server`:`V01R01B03-1899` 
+
+可以使用如下几种方式查看镜像:
+## 1.1. 方法一:Jenkins 中查看镜像版本号
+打开 Jenkins 中"控制台输出",找到如下日志,`V01R01B03-1899` 即是镜像号
+![](images/_1526263181_17049.png)
+ 
+
+
+## 1.2. 方法二:在已运行的 OS 中通过 env 命令查看
+![](images/_1526262920_14637.png)
+  

BIN
99-deprecated(过时的)/1.视维云平台安装文档v0.2.docx


BIN
99-deprecated(过时的)/2.视维云平台用户文档v0.8.docx


BIN
99-deprecated(过时的)/3.视统云接入标准与规范20170315.doc


BIN
99-deprecated(过时的)/3.视统云接入标准与规范20171113.doc


BIN
99-deprecated(过时的)/4.Docker构建规范与约束.doc


BIN
99-deprecated(过时的)/5.视维云业务版本发布流程.docx


BIN
99-deprecated(过时的)/6.视维云业务迁移操作指导.ppt


BIN
99-deprecated(过时的)/BO端口规划_20171130_2.xlsx


BIN
99-deprecated(过时的)/UES web调试.docx


BIN
99-deprecated(过时的)/cdn端口规划.xlsx


BIN
99-deprecated(过时的)/云平台接入介绍.docx


BIN
99-deprecated(过时的)/视维云迁移-端口号与服务及负责人_视维云.xlsx


BIN
99-deprecated(过时的)/迁移过程中碰到的问题.docx


BIN
99-deprecated(过时的)/运维要求的格式 (秦康).docx