Linux云服务器企业级知识库线上部署与自动化发布实践

知识库介绍:企业级知识库管理系统。

网站前台http://www.wjxxr.com/

全文检索(基于Lucene的全文索引):

管理员后台http://admin.wjxxr.com/

 

知识详情页(使用FreeMark静态化技术,用户直接访问静态化页面,由于Tomcat不适合作为静态资源的web容器,采用Nginx作为静态资源的容器,而Nginx能处理并发的请求为4万左右,大大增加了我们服务器的性能。当用户创建知识条目后,通过MQ发送给页面静态化服务,生成静态页面):

附件文件预览(基于openoffice, 将主流的文档格式转化成可在线预览的html, 附件要生成全文索引,方便供搜索服务检索):

项目架构,可以根据业务的体量选择合适的架构:

分布式SOA服务架构,其中每个服务都可以单独部署在Tomcat等web容器中,每个服务都可以做集群。

集群架构

要特别注意搭建集群后某些业务并发的问题,比如现在有一个业务需求:需要5分钟统计一次各个知识条目的热度,比如下载量,好评率做一个统计分析的定时任务,但这个定时任务在好几台机器上都发布了,我们不能说让每台机子都去执行一下这个定时任务,解决这个问题可以采用分布式锁。

 

在这里,我只只按最小单位部署,不搭集群,搭个单体架构。但为了项目的可扩展性,能比较方便地从单体架构向集群架构向微服务分布式架构演进,项目根据业务模块进行了划分,单个业务之间“高内聚”,不同业务之间“低耦合”。

众所周知,像Dobbo这种消息中间件采用的是RPC,即远程过程调用(Remote Procedure Call, RPC)可以用于一个进程调用另一个进程(很可能在另一个远程主机上)中的过程,从而提供了过程的分布能力。Java 的 RMI 则在 RPC 的基础上向前又迈进了一步,即提供分布式对象间的通讯。这里我采用原生实现了三个web之间通过RMI的调用。

wda-web调用了wcp-web相关接口,rmi协议暂定为:rmi://wcp-web部署的机子的ip地址:8701/luyuanwcpapi

wda-tag调用了wda-web的相关接口,rmi协议暂定为:rmi://wda-web部署的机子的ip地址:8702/luyuanwdaapi

云服务部署流程

云服务器(申请,配置)

建议:安全组策略全部开放,我们通过防火墙和ip接口进行安全控制。不然,安全组策略和防火墙的配置出现重复劳动。

◆ 域名(申请、备案、配置)

 DNS解析:我们可以配置多个二级域名,可以通过Nginx对ServerName进行判断从而对服务进行转发。

◆ 源配置

◆ 用户权限配置

   企业开发中,由于root管理员账号权限太高,为了安全考虑,会分配给不同的开发组具有不同权限的普通账号,比如后端开发人员,数据库开发人员,测试人员,运维人员,不同分工的人员所分配的账号权限不一样。

◆ 线上环境——单体系统架构(后期可以根据业务体量,扩展到“集群架构", "分布式SOA架构",服务直接通过RPC,MQ调用)

    ▪ JDK1.7

    ▪ Tomcat7

    ▪ Maven3.5.4

    ▪ Vsftpd2.2

    ▪ Nginx1.10.2

    ▪ Mysql5.7(注意: Linux下Mysql安装完后默认:区分表名的大小写,不区分列名的大小写; Windows下数据库名、表名、列名、别名都不区分大小写)

    ▪ Git2.8 (业内一般:分支提交,主干发布)

◆ 防火墙的配置(很重要)

◆ 自动化发布脚本

◆ 线上验证

源配置

1、备份

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/,这里我用的是CentOS6.8,所以选择Centos-6.repo

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 

如果是CentOS7及以上版本:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 

3、之后运行yum makecache生成缓存。

用户权限配置
新建一个具有sudo权限的普通用户,以后都用该账号进行连接(模拟企业真实开发的环境)。
这样该用户操作非/usr/wujie其他目录时,比如该用户想删除/developer/目录下的一个文件,此时由于没有该文件夹的权限,必须用sudo来删除,这样管理员就可以跟踪sudo日志来查看每个开发人员在服务器上的相关操作。
后面会创建一个账号,有登陆ftp服务的权限,但没有登陆云服务器的权限。
给登录名wujie创建一个主目录/usr/wujie, 然后重置一下新创建的账号的密码


                
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值