如何將weblogic從物理機遷移到容器

如何將weblogic從物理機遷移到容器

1. 前言

目前,在電信行業大多依舊使用傳統的IOE典型架構,按照應用類型及用途,以物理機爲單位劃分資源,存在資源未能高效利用的情況,資源擴容容易回收難。現有應用彈性擴縮容能力不夠便利,部署及實施時間較長,人工參與較多。
相對而言,容器化的優勢十分明顯,物理計算資源虛擬化後分配,可以靈活調配計算資源,打破專機專用的限制,有效提高基礎資源使用效率。統一的容器調度界面,可實現按照策略自動或手工的進行彈性擴縮容,更好應對高峯業務壓力
weblogic作爲一個基於j2ee架構的中間件,可用於開發、集成、部署和管理大型分佈式Web應用、網絡應用和數據庫應用的Java應用服務器,將Java的動態功能和Java Enterprise標準的安全性引入大型網絡應用的開發、集成、部署和管理之中。廣泛應用於電信行業之中。
因此,將weblogic從物理機遷移至容器,可以更充分利用主機資源,容器的隔離特性提高了應用安全性,容器的彈性擴縮容可以更好應對高峯壓力。

2. 分解

在遷移過程中,程序分解是基本步驟。
在物理機上運行的Weblogic Server包含三種類型的實例:

  • Administration Server(管理服務器)
  • Node Manager(節點管理器)
  • Managed Server(被管理服務器)

管理服務器是中心節點,通過它可以配置和管理集羣中的所有資源。它通過與節點管理器連接增加或刪除被管理節點。而被管理節點運行Web應用、EJBs、Web service和其他的資源。通常,每個物理機上運行一個節點管理器和多個被管服務服務器,而一個管理服務器則管理所有虛擬機上的所有實例。
容器技術提倡輕量化,因此可以將物理機上的多個被管理服務器成單個服務放置於各個容器中。

3. 遷移步驟

3.1 安裝並初始化Docker

在Linux主機上安裝Docker,具體方式參考官網安裝方式:docker安裝方式

3.2 創建weblogic鏡像目錄

在Linux主機上創建weblogic鏡像目錄,本次實驗選擇創建目錄爲/data/docker_images/web

mkdir -p /data/docker_images/web

3.3 下載weblogic、jdk安裝介質

本次實驗選擇的weblogic版本爲12.1.2.0.0,jdk版本爲jdk1.7.0_40,將安裝介質下載後解壓至/data/docker_images/web目錄下。
這裏寫圖片描述

3.4 創建weblogic域

在物理機上按照默認方式創建一個名爲JTEST的域,其路徑爲/webtest/webapp/domains/JTEST。
將domains目錄拷貝至/data/docker_images/web。

3.5 編寫啓動腳本

在/data/docker_images/web編寫啓動腳本run.sh

#!/bin/bash
##### set Domain Env #####
echo export MEM_ARGS=\"-Xms2048m -Xmx2048m -XX:CompileThreshold=8000 -XX:PermSize=512m -XX:MaxPermSize=512m\" >> /webtest/webapp/domains/JTEST/bin/setDomainEnv.sh
##### start weblogic #####
/webtest/webapp/domains/JTEST/startWebLogic.sh >> /webtest/webapp/domains/JTEST/servers/AdminServer/logs/weblogic.out

其中startWebLogic.sh內容爲

#!/bin/sh
# WARNING: This file is created by the Configuration Wizard.
# Any changes to this script may be lost when adding extensions to this configuration.
DOMAIN_HOME="/webtest/webapp/domains/JTEST"
${DOMAIN_HOME}/bin/startWebLogic.sh $*

3.6 編寫Dockerfile

在/data/docker_images/web編寫Dockerfile,本次實驗選擇的基礎鏡像爲rhel:7.2。

FROM rhel:7.2
# Config the timezone
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ADD clock /etc/sysconfig/clock
# Config The YUM
ADD rhel-dvd.repo /etc/yum.repos.d/rhel-dvd.repo
RUN yum clean all && yum makecache
# Install Package
RUN yum -y install vi; yum clean all
# Create the installation directory tree and user tuxtest with a password of tuxtest
RUN mkdir /webtest; groupadd -g 500 webtest; useradd -g webtest -u 501 -d /webtest/webapp -m webapp
RUN echo webapp:webapp | chpasswd; echo root:root | chpasswd
#Copy install Weblogic file
ADD bea /bea
RUN chmod -R 755 /bea /webtest
# Config the webapp env
ADD domains /webtest/webapp/domains
ADD run.sh /webtest/webapp/run.sh
RUN chown -R webapp:webtest /webtest/webapp
USER webapp
WORKDIR /webtest/webapp
ENTRYPOINT /webtest/webapp/run.sh

3.7 製作鏡像

在/data/docker_images/web執行命令,完成鏡像製作。

docker build -t webtest:0.0.1 .

3.8 啓動容器應用

在主機上使用root用戶執行命令,完成容器的啓動。

docker run -it webtest:0.0.1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章