容器化改造要怎么做?

背景介绍:
现在有一套我运维的应用系统打算要进行容器化改造工作,这套应用系统包含如下组件:
nginx : 负责发布前端页面
jar包: 项目后台程序
redis: 负责缓存工作
mysql: 数据库存储数据(数据库不容器化)

需要使用的技术:
jenkins gitlib harbor docker
在这里插入图片描述

1.安装docker

## 停掉防火墙
systemctl stop firewalld
  
systemctl disable firewalld
##获取外网权限
export http_proxy=http://这个找自己家网络工程师要
export https_proxy=http://这个找自己家网络工程师要
  
##移除本身的源
rm -fr /etc/yum.repos.d/*
 
 
#添加网易镜像站
cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
#添加epel源
cat <<efo>/etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
 
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7/$basearch/debug
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
 
[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7/SRPMS
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
efo
## 移除已有docker 相关包
yum remove docker-common docker-selinux docker-engine docker -y
## 安装 yum-utils 用于配置
yum install -y yum-utils device-mapper-persistent-data lvm2
  
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
## 关闭 edge 和 testing 镜像仓库: 默认应该是禁用的
yum-config-manager --disable docker-ce-edge
  
yum-config-manager --disable docker-ce-testing
  
yum makecache
  
## 如果已经配置了阿里云镜像,上述配置镜像步骤可省略
  
yum install docker-ce-18.06.3.ce -y
  
mkdir /etc/docker -p
 ##在启动前使用自己的docker源(公司可以自建或用阿里的docker加速器)及更改存储位置
cat <<efo>/etc/docker/daemon.json
  
{
用自己的
}
  
efo
##启动docker
systemctl enable docker
  
systemctl start docker
 
##登录镜像仓库自己公司的登陆后就可以拉取镜像了
docker login -u admin --password x.x.x.x   www.badu.com.cn
 
#docker-enter安装
cat <<efo>/bin/docker-enter
#!/bin/sh

docker_in(){
  NAME_ID=\$1
  PID=\$(docker inspect -f "{{ .State.Pid }}" \$NAME_ID)
  nsenter -t \$PID -m -u -i -n -p
}
main(){
  docker_in \$*
}
main \$*
efo
 
#给文件授予可执行权限
chmod +x /bin/docker-enter

docker 安装完成后使用jenkins流水线发版
Jenkins发布

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
--------当当网SSH重构---------- 1.DAO需要根据原有接口全部重构. 采用Spring+Hibernate方式实现 2.Service改造工作 采用Spring的IoC注入方式使用DAO 3.Action改造工作 采用整合插件注入方式使用Spring容器中的Service或DAO. (默认按名称匹配规则) 4.配置信息的改造 Service和DAO需要交给Spring容器. struts.xml不需要改变,因为引入struts-spring-plugin.jar后,Action创建会交给插件的ObjectFactory. web.xml需要定义ContextLoaderListener,实例容器配置 5.将事务管理交个Spring,采用AOP方式,删除原有Struts事务拦截器 -------------改造步骤----------------- 例如用户注册功能 1) 引入Hibernate开发包 2) 引入Spring开发包和配置文件 applicationContext-base.xml 定义共同的datasource,sessionFactory applicationContext-dao.xml 定义DAO组件 applicationContext-service.xml 定义Service组件 applicationContext-aop.xml 定义事务管理,其他AOP功能 3)根据现有接口重构DAO组件 --检查hbm映射文件内容正确性 --在spring容器中配置DAO组件 定义到applicationContext-dao.xml中 --定义sessionfactory,datasource(只一次) 定义到applicationContext-base.xml中 4)改造Service组件 --采用注入方式使用DAO --在spring容器中配置Service组件 定义到applicationContext-service.xml中 5)改造Action组件 --采用注入方式使用DAO和Service --引入Struts和Spring整合插件包(只一次) struts2-spring-plugin.jar 6)修改web.xml,配置ContextLoaderListener(只一次) ---------重构当当涉及的一些关联查询--------- 1.产品浏览模块 1)涉及数据表如下 d_category d_category_product d_product d_book 2)最新上架图书功能 a. findNew.action-->NewProductAction-->ProductDAO b.重构ProductDAO 添加hbm.xml映射文件 添加HibernateProductDAO实现类 添加DAO在Spring的配置 c.改造NewProductAction 采用注入形式使用DAO.(名称匹配) 3)类别显示区域 a.findCategory.action-->CategoryAction-->CategoryDAO 改造成CategoryAction-->MainService-->CategoryDAO b.重构CategoryDAO c.提取MainService d.改造CategoryAction 4)类别浏览界面 a.booklist.action-->BookListAction-->CategoryDAO,BookDAO b.重构CategoryDAO c.重构BookDAO d.改造BookListAction -----------特殊功能改造------------ 1.主界面左侧类别菜单显示.可以利用Hibernate一对多映射,加载当前类别的子元素.(参考hibernate05工程Category示例) 2.分类浏览页面,左侧类别及其产品数量显示.数量统计可以采用Hibernate中formula映射实现. 3.购物车业务组件利用Spring中scope="session" a.购买处理流程 buy.action-->BuyAction-->CartFactory-->ShoppingCart -->ProductDAO 将ShoppingCart组件交给容器并且设置scope="session"后, 需要使用cart对象时,容器首先去session对象寻找,有的话返回;没有spring会创建一个并放入spring容器,然后将cart返回.等价于原有CartFactory的功能逻辑. b.如果使用scope="session"或scope="request" 需要在web.xml中定义RequestContextListener ==============性能提升================= 1.二级缓存和查询缓存 二级缓存适用于产品查看功能.对产品对象采用二级缓存存储. (参考hibernate06内容及示例) 查询缓存适用于主页面左侧分类菜单显示功能. (参考hibernate06内容及示例) 2.fetch和cache的使用 利用join fetch可以提高查询效率,将关联属性随着主对象一起采用表连接的形式查询. 如果使用了join fetch的话,查询缓存只缓存主对象.join fetch的关联属性不能缓存. 3.Hibernate假分页问题 如果查询语句使用了join fetch,遇到分页情况下,采用假分页机制执行.(不会生成limit等分页查询命令,首先查所有,然后返回部分需要数据).

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值