如何将现有的应用迁移到Choerodon猪齿鱼(下)

本文档将介绍如何将现有的应用迁移到Choerodon猪齿鱼平台。主要分为如下几个部分:php

  • 应用环境搭建前端

  • 数据库迁移node

  • 应用迁移mysql

  • 使用Choerodon猪齿鱼linux

下面将以资产云平台迁移到Choerodon猪齿鱼为例,详细地介绍如何将一个通常应用迁移到Choerodon中,并使用Choerodon做为开发、发布和部署的支撑平台。nginx

注:本手册使用的Choerodon猪齿鱼版本是 0.9版本

另外,在根据本文档执行迁移以前,请务必学习Docker、Kubernetes、Helm、Gitlab-CI等知识,尽可能熟练掌握。git

应用系统环境搭建

Choerodon猪齿鱼平台是一个PaaS平台,其自己不提供应用系统的运行环境,用户须要自主安装Kubernetes集群,通常来讲一个应用系统须要有开发环境、测试环境和正式环境(以下图所示),每个环境都是一个独立的Kubernetes集群。固然用户也能够根据具体的需求来调整,例如开发环境和测试环境共用一套Kubernetes集群。github

因此,利用Choerodon猪齿鱼PaaS能力的第一项任务就是搭建应用系统的运行环境。redis

准备服务器

Choerodon猪齿鱼支持本地化部署,也支持公用云部署。Kubernetes集群的硬件要求与应用系统的要求一致,固然考虑到应用系统已经彻底容器化,因此用户能够根据自身需求动态定制Kubernetes集群的规模(使用公有云能够很是方便的作到这一点)。sql

如下表格是一个最低配置要求。

系统

配置

数量

用途

说明

CentOS7.2+

2Core 4G内存 512G硬盘

1

NFS文件服务器

 

CentOS7.2+

4Core 16G内存 64G硬盘

3

k8s集群

根据自身应用规模增长或减小节点个数


另外,服务器网络需能链接外网,可以与Choerodon猪齿鱼系统链接。还有,操做系统要求是Centos 7.2及以上版本。

安装Kubernetes集群

  1. Choerodon猪齿鱼整理了详细方便的Kubernetes安装文档
  2. 在安装时,请详细阅读安装文档前部分,其中涉及到前置要求与约定、防火墙及端口检测、同步服务器时区和同步服务器时间等

Kubernetes集群的安装采用标准安装方式便可,Choerodon猪齿鱼整理了详细方便的Kubernetes安装文档,可供参考。其中一共提供三种安装方式,即本地虚拟机安装模式、服务器安装模式、云环境安装模式,用户能够根据自身需求选择。

数据库迁移

若是原有环境没有数据,能够忽略本节。

若是新的集群可以连通你原有数据库,则你能够选择使用原有的数据库链接信息而无需对数据库做任何处理。若是不能连通原有数据库,考虑备份数据库配置、数据等关键数据。

具体操做以下:

  1. 肯定须要备份的数据,如配置,数据等,具体内存请根据实际数据库进行调整。
  2. 部署新数据库到新集群中。建议使用helm部署,具体操做能够参照mysql部署。
  3. 使用数据库自带工具恢复数据到新数据库。
  4. 检查数据库是否正常运行。

应用迁移

应用迁移主要是将应用系统的代码迁移到Choerodon猪齿鱼中,并经过Choerodon猪齿鱼的开发流水线、部署流水线等进行应用系统的开发和部署等工做。应用迁移主要包括Choerodon猪齿鱼系统的建立项目、建立应用、改造原代码库、将原代码库迁移到Choerodon、生成新的应用版本、建立应用系统环境、部署版本、建立网络、建立域名和测试访问等步骤。请用户按照此步骤顺序进行。

若是是SaaS版本的用户须要先申请开通组织。

建立项目

项目是最小粒度的管理层次。在组织下建立项目,则建立的项目属于这个组织。

关于Choerodon猪齿鱼中项目的详细信息,以及相关操做等能够参考项目管理

  1. 使用“组织管理员”角色登陆系统
  2. 点击组织,例如“汉得研发”,进入到组织层的管理菜单

3.在组织层的管理菜单中,点击:“汉得研发” -> 左上角的菜单 -> “组织设置” -> “项目管理”。进入到项目管理与建立功能界面。

4.在“项目管理”界面,单击“建立项目”,在弹出的窗口中填写项目编码、项目名称。

例如,

项目编码:hand-rdc-halm

项目名称:汉得资产云平台

5.点击“建立”,便可建立完成。项目建立完成以后,用户就可使用Choerodon猪齿鱼的系统功能,例如知识管理、敏捷管理、开发流水线、测试管理、部署流水线等。

建立应用

应用是知足用户某些需求的程序代码的集合,一个应用能够是一个单体应用,也能够是微服务系统的一个服务。服务端相关应用,例如Java、Python、C/C++/C#、Go、.NET等应用,以及前端相关应用,例如ReactJs、VueJs、AngularJs等等,理论上讲没有什么限制。

关于如何建立应用,以及相关操做和信息等,能够参考Choerodon官网的 应用管理

1. 切换到项目层,例如“汉得资产云平台”。

2. 在组织层的管理菜单中,点击:“汉得资产云平台” -> 左上角的菜单 -> “应用管理” -> “应用”,进入到应用建立功能界面。

3. 在建立应用的弹框中填写应用编码、应用名称和选择“应用模板”。

例如,

编码:halm-dev

名称:资产云应用

选择应用模板:MicroService

关于Choerodon的应用模板,能够参考应用模板。若是是迁移原库的代码,则随便选择一个便可。

4.建立完成应用以后,Choerodon会在Gitlab中建立先关的代码库。

例如:https://code.choerodon.com.cn/hand-rdc-halm/halm-dev

注意:强烈建议不要直接在Gitlab中操做代码库,Choerodon已经封装了对Gitlab库的增删改查等操做,例如建立库、建立分支、删除分支、合并代码等,因此这些操做尽可能在Choerodon上进行操做。

应用容器化配置

Choerodon猪齿鱼秉承云原生的理念,基于平台的应用须要进行容器化改造才可以使用Choerodon进行开发和部署。在本节中将给你们介绍Choerodon容器化的一些概念、如何构建应用的基础镜像,以及为原代码库增长相关的配置使其知足Choerodon容器化要求。

重要:应用的容器化配置是整个迁移过程当中最难的部分,在此须要熟悉、掌握Kubernetes、Helm等。

Choerodon猪齿鱼应用容器化概念

在Choerodon猪齿鱼中,使用Helm管理Kubernetes包等,Helm之于Kubernetes比如yum之于RHEL,或者apt-get之于Ubuntu。Helm使用Charts管理应用,Charts就好像RPM同样,里面描述了应用及其依赖关系。

因此,在Choerodon的标准应用代码结构中必定要包含charts文件夹,以下截图,这是一个后端项目的标准结构。

  • templates为模板文件,将模板文件渲染成实际文件,而后发送给 Kubernetes。

  • values.yaml为模板的预约义变量。

  • Chart.yaml包含 chart 的版本信息说明,您能够从模板中访问它。

  • deployment.yaml:建立 Kubernetes 部署的基本清单。

  • service.yaml:为您的部署建立服务端点的基本清单。

  • _helpers.tpl:放置模板助手的地方,您能够在整个 chart 中重复使用。

构建应用基础镜像

什么是应用基础镜像?先来看一张图,通常在应用基础镜像中预先安装了工具类、依赖包、系统基础一致性设置等应用程序构建、测试、运行等相关的基础依赖工具和系统配置。

资产云应用为PHP项目,那么应用基础镜像中就应该为PHP运行环境,首先去DockerHub上搜索是否有官方提供的公共镜像,能够对官方提供的公共镜像作进一步定制,生成须要的镜像,也能够从一个基础的只有系统的镜像进行定制。

1. 编写Dockerfile定制基础镜像时,尽可能将镜像大小往小的作,镜像层数往少的写,仅添加应用运行时必须的相关组件,不要添加没必要要的东西进入。在项目根目录下新建名为Dockerfile.base文件,在文件中写入Dockerfile定义的信息,例如:

1# 以ubuntu做为系统
 2FROM ubuntu:16.04
 3# 设置环境变量
 4ENV NODE_HOME=/usr/local/node8
 5ENV PATH=$NODE_HOME/bin:$PATH
 6ENV COMPOSER_ALLOW_SUPERUSER=1
 7ENV COMPOSER_HOME=/composer
 8ENV USER=root
 9ENV SASS_BINARY_PATH=/opt/linux-x64-57_binding.node
10
11# 添加源并安装所须要的软件
12RUN echo "deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties" > /etc/apt/sources.list \
13    && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted" >> /etc/apt/sources.list \
14    && echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties" >> /etc/apt/sources.list \
15    && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted" >> /etc/apt/sources.list \
16    && echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties" >> /etc/apt/sources.list \
17    && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial universe" >> /etc/apt/sources.list \
18    && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe" >> /etc/apt/sources.list \
19    && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse" >> /etc/apt/sources.list \
20    && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse" >> /etc/apt/sources.list \
21    && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list \
22    && echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties" >> /etc/apt/sources.list \
23    && echo "deb http://archive.canonical.com/ubuntu xenial partner" >> /etc/apt/sources.list \
24    && echo "deb-src http://archive.canonical.com/ubuntu xenial partner" >> /etc/apt/sources.list \
25    && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted" >> /etc/apt/sources.list \
26    && echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties" >> /etc/apt/sources.list \
27    && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe" >> /etc/apt/sources.list \
28    && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse" >> /etc/apt/sources.list \
29
30    && apt-get update \
31    && apt-get install -y gcc g++ make xz-utils axel libsass-dev libmcrypt-dev curl supervisor rpm libaio1 libaio-dev \
32    && apt-get install -y nginx \
33    && apt-get install -y php-fpm php-pdo-mysql php-pdo-sqlite php-curl php-redis php-mongodb \
34                          php-gd php-mcrypt php-mbstring php-xml php-ldap php-imap php-zip php-dom php-soap php-dev phpunit \
35
36    && apt-get autoclean \
37    && apt-get clean \
38    && rm -rf /var/lib/apt/lists/* \
39    && echo "daemon off;" >> /etc/nginx/nginx.conf \
40    && sed -i "s/^user\swww-data;/user root;/g" /etc/nginx/nginx.conf \
41    && sed -i "s/^user\s=\swww-data/user = root/g" /etc/php/7.0/fpm/pool.d/www.conf \
42    && sed -i "s/^group\s=\swww-data/group = root/g" /etc/php/7.0/fpm/pool.d/www.conf \
43    && sed -i "s/^;daemonize\s*=\s*yes/daemonize = no/g" /etc/php/7.0/fpm/php-fpm.conf \
44    && sed -i "s/^;mbstring\.internal_encoding\s*=.*$/mbstring\.internal_encoding = UTF-8/g" /etc/php/7.0/fpm/php.ini \
45    && sed -i "s/^;mbstring\.internal_encoding\s*=.*$/mbstring\.internal_encoding = UTF-8/g" /etc/php/7.0/cli/php.ini \
46    && echo "[program:nginx]\ncommand=/usr/sbin/nginx" >> /etc/supervisor/conf.d/nginx.conf \
47    && echo "[program:php-fpm7.0]\ncommand=/usr/sbin/php-fpm7.0 --nodaemonize --fpm-config /etc/php/7.0/fpm/php-fpm.conf -R" >> /etc/supervisor/conf.d/php.conf \
48    && mkdir /run/php \
49
50    && sed -i "s/\[supervisord\]/[supervisord]\nnodaemon=true\nuser=root\n/g" /etc/supervisor/supervisord.conf \
51
52    && axel -n 20 https://getcomposer.org/download/1.4.2/composer.phar \
53    && mv composer.phar /usr/local/bin/composer \
54    && chmod +x /usr/local/bin/composer \
55    && composer config -g repo.packagist composer https://packagist.phpcomposer.com \
56
57    && cd /usr/local \
58    && axel -n 10 https://nodejs.org/dist/v8.2.1/node-v8.2.1-linux-x64.tar.xz \
59    && xz -d node-v8.2.1-linux-x64.tar.xz \
60    && tar xvf node-v8.2.1-linux-x64.tar \
61    && unlink /usr/local/node-v8.2.1-linux-x64.tar \
62    && mv node* node8 \
63    && chown -R root:root node8 \
64    && npm install cnpm -g --registry=https://registry.npm.taobao.org \
65    && npm install nrm -g -registry=https://registry.npm.taobao.org \
66    && nrm use taobao
67# 暴露端口
68EXPOSE 80 443
69# 设置默认启动命令
70CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]

2. 在项目根目录下执行命令进行应用基础镜像构建,构建好以后推送镜像到镜像仓库,例如registry.choerodon.com.cn/hand-rdc-halm仓库下(注意:用户也能够根据自身具体的需求,选择镜像库地址,例如DockerHub等),这个仓库在Choerodon建立项目时会自动建立:

1docker build -t registry.choerodon.com.cn/hand-rdc-halm/php:ubuntu-16.04 -f Dockerfile.base .

3. 将构建好的镜像推送到镜像仓库中:

1docker login registry.choerodon.com.cn
2docker push -t registry.choerodon.com.cn/hand-rdc-halm/php:ubuntu-16.04

在原来代码库中增长Dockerfile、和Helm Chart

 Dockerfile

在有应用基础镜像的基础上编写应用的Dockerfile那就很容易了,只须要将程序放入基础镜像特定的目录,设置好镜像运行前置处理和启动命令便可。

本事例中,应用运行时需连接数据库,但数据库相关信息是运行时才会知道的,那么解决方式是将这些信息配置为环境变量,镜像运行时从环境变量中获取这些信息并替换到对应的配置文件中去。

第一步:修改配置文件并编写启动脚本

在项目根目录下新建auto_devops文件夹,将配置文件拷贝至该文件夹下,下面为配置文件中数据库配置片断,将会改变的值所有使用大写的字母进行替换,替换时需保证在此文件中惟一。

1'dbconfig' =>
 2    array(
 3        'db_host_name' => 'DB_HOST_NAME',
 4        'db_host_instance' => 'SQLEXPRESS',
 5        'db_user_name' => 'DB_USER_NAME',
 6        'db_password' => 'DB_PASSWORD',
 7        'db_name' => 'DB_NAME',
 8        'db_type' => 'mysql',
 9        'db_port' => 'DB_PORT',
10        'db_manager' => 'MysqliManager'
11    ),

而后在auto_devops文件夹新建docker-entrypoint.sh文件编写启动脚本,这个脚本将替换配置文件中大写的那些变量名。

1#!/bin/bash
2
3sed -i "s DB_HOST_NAME $DB_HOST_NAME g"  /var/www/config.php 
4sed -i "s DB_USER_NAME $DB_USER_NAME g"  /var/www/config.php 
5sed -i "s DB_PASSWORD $DB_PASSWORD g"  /var/www/config.php 
6sed -i "s DB_NAME $DB_NAME g"  /var/www/config.php 
7sed -i "s DB_PORT $DB_PORT g"  /var/www/config.php 
8
9exec "$@"

第二步:编写应用Dockerfile

在项目根目录下新建名为Dockerfile的文件

1# 应用基础镜像
 2FROM registry.choerodon.com.cn/hand-rdc-halm/php:ubuntu-16.04
 3# 将程序复制到/var/www/目录中
 4COPY . /var/www/
 5# 将配置文件复制到对应目录中
 6COPY ./auto_devops/config.php    /var/www/config.php
 7# 将替换环境变量的脚本复制到镜像中
 8COPY ./auto_devops/docker-entrypoint.sh      /docker-entrypoint.sh
 9# 默认运行镜像时执行的命令
10ENTRYPOINT ["/bin/sh", "/docker-entrypoint.sh"]
11# 启动服务
12CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]

▧ Helm Chart

在编写Helm Chart以前你须要了解Kubernetes中的对象及其概念,本事例中运行应用只需定义一个deployment对象便可。

第一步:建立目录

在项目根目录下建立以下目录结构,首先建立一个名为chart的文件夹,再建立一个与应用名相同的文件夹,本事例为Helm Chart,在halm-dev文件夹中再建立一个templates目录。

1chart
2└── halm-dev
3    ├── Chart.yaml
4    ├── templates
5    │   ├── _helpers.tpl
6    │   └── deployment.yaml
7    └── values.yaml

第二步:编写_helpers.tpl文件

templates文件夹下将一些公共的lable或值定义到 _helpers.tpl文件中:

1{{/* vim: set filetype=mustache: */}}
2{{- /*
3service.labels.standard prints the standard service Helm labels.
4The standard labels are frequently used in metadata.
5*/ -}}
6{{- define "service.labels.standard" -}}
7choerodon.io/release: {{ .Release.Name | quote }}
8{{- end -}}

第三步:编写deployment.yml文件

templates文件夹下建立一个名为deployment.yml的文件,内容以下:

1apiVersion: apps/v1beta2
 2kind: Deployment
 3metadata:
 4  name: {{ .Release.Name }}
 5  labels:
 6{{ include "service.labels.standard" . | indent 4 }}
 7spec:
 8  replicas: {{ .Values.replicaCount }}
 9  selector:
10    matchLabels:
11{{ include "service.labels.standard" . | indent 6 }}
12  template:
13    metadata:
14      labels:
15{{ include "service.labels.standard" . | indent 8 }}
16    spec:
17      containers:
18        - name: {{ .Release.Name }}
19          image: "{{ .Values.image.repository }}:{{ .Chart.Version }}"
20          imagePullPolicy: {{ .Values.image.pullPolicy }}
21          env:
22{{- range $name, $value := .Values.env }}
23{{- if not (empty $value) }}
24          - name: {{ $name | quote }}
25            value: {{ $value | quote }}
26{{- end }}
27{{- end }}
28          ports:
29            - name: http
30              containerPort: {{ .Values.service.port }}
31              protocol: TCP
32          resources:
33{{ toYaml .Values.resources | indent 12 }}

第四步:编写Chart.yaml文件

halm-dev文件夹中编写Chart.yaml文件,这个文件中写明应用的的相关信息。

1# api版本
 2apiVersion: v1
 3# 应用版本
 4appVersion: "1.0"
 5# 应用描述
 6description: A Helm chart for Kubernetes
 7# 应用名称
 8name: halm-dev
 9# 应用chart版本
10version: 0.1.0

第五步:编写文件

在halm-dev文件夹中编写values.yaml文件,这个文件中编写templates文件夹中deployment.yml文件会用到的变量及默认值。

1# Declare variables to be passed into your templates.
 2
 3replicaCount: 1
 4
 5image:
 6  repository: registry.choerodon.com.cn/hand-rdc-halm/halm-dev
 7  pullPolicy: Always
 8
 9env:
10  SITE_URL: http://localhost:8081/
11  DB_HOST_NAME: 
12  DB_USER_NAME: 
13  DB_PASSWORD: 
14  DB_NAME: 
15  DB_PORT: "3306"
16
17logs:
18  parser: nginx
19
20resources: 
21  # We usually recommend not to specify default resources and to leave this as a conscious
22  # choice for the user. This also increases chances charts run on environments with little
23  # resources,such as Minikube. If you do want to specify resources,uncomment the following
24  # lines,adjust them as necessary,and remove the curly braces after 'resources:'.
25  limits:
26    # cpu: 100m
27    # memory: 2Gi
28  requests:
29    # cpu: 100m
30    # memory: 1Gi

更多如何charts中详细的讲解,能够参考Choerodon官网文档 从yaml到helm。

CI持续集成配置

在上节“应用容器化配置”中,有提到Choerodon标准的应用源代码结构中必须包含charts文件件。一样,Choerodon使用Gitlab-CI做为CI工具,因此须要在应用源代码中加上.gitlab-ci.yml文件。

在CI中主要的工做就是进行镜像构建而且生成Chart包,最后将Chart包上传至Choerodon,与Choerodon进行集成。

在项目根目录下新建.gitlab-ci.yml文件,粘贴如下内容:

1# 设置CI运行时的环境镜像
 2image: registry.cn-hangzhou.aliyuncs.com/choerodon-tools/cibase:0.6.0
 3
 4# 设置阶段,这里只进行镜像构建和生成Chart包,因此定义为一个阶段便可
 5stages:
 6- docker-build
 7
 8docker-build:
 9  stage: docker-build
10  # 阶段中须要执行的命令
11  script:
12  - docker_build
13  - chart_build
14
15# 这里是最为关键的,定义了一个全局脚本,在每个阶段运行前都将执行下面代码从Choerodon平台中获取相应变量及封装的shell函数。
16.auto_devops: &auto_devops |
17    http_status_code=`curl -o .auto_devops.sh -s -m 10 --connect-timeout 10 -w %{http_code} "${CHOERODON_URL}/devops/ci?token=${Token}"`
18    if [ "$http_status_code" != "200" ]; then
19      cat .auto_devops.sh
20      exit 1
21    fi
22    source .auto_devops.sh
23    # 重写docker_build函数
24    function docker_build(){
25        docker build --pull -t ${DOCKER_REGISTRY}/${GROUP_NAME}/${PROJECT_NAME}:${CI_COMMIT_TAG} .
26        docker push ${DOCKER_REGISTRY}/${GROUP_NAME}/${PROJECT_NAME}:${CI_COMMIT_TAG}
27    }
28
29before_script:
30  - *auto_devops

更多如何配置符合Choerodon标准和要求的.gitlab-ci.yml文件,请参考Choerodon官网 持续集成

将原来代码库替换到Choerodon代码库

通过了“应用容器化配置”和“CI持续集成配置”两步以后,将获得一个包含了charts和.gitlab-ci.yml文件的新的代码库(charts文件夹和.gitlab-ci.yml文件必定是放在代码库的根目录),如今就将代码库同步到Choerodon对应的代码库,替换生成的标准代码库。

Git相关的命令以下:

1Git相关的命令以下:
2git commit -m "Change repo." # 先把全部为保存的修改打包为一个commit
3git remote remove origin # 删掉原来git源
4git remote add origin [YOUR NEW .GIT URL] # 将新源地址写入本地版本库配置文件
5git push -u origin master # 提交全部代码

生成新的版本

当在上一步“将原来代码库替换到Choerodon代码库”中提交代码到Choerodon的远程新库的时候,Choerodon会自动生成一个master分支上的开发版本,即“2018.8.27-234043-master”,这个版本是能够部署运行的,固然,每每生成的第一个版本会因为各类BUG等,须要通过反复地调试才能够。

能够进入到Choerodon系统中查看生成的版本,系统路径:“汉得研发”(组织)->“<你的项目>”->应用管理->应用版本。以下图所示。

建立一个环境

有了可部署的版本以后,就能够把此版本部署到环境中去了。在步骤“应用系统环境搭建”中已经安装好了应用系统运行的Kubernetes集群环境,而且在“数据库迁移”步骤中已经安装部署好数据库。

1. 进入到的Choerodon猪齿鱼建立环境页面,系统路径:“汉得研发”(组织)->“<你的项目>”->部署流水线->环境流水线

2. 单击“建立环境”按钮,在弹出框中输入环境编码、环境名称和环境描述。

例如,

  • 环境编码:halm-dev

  • 环境名称:开发环境

  • 环境描述:开发环境

3. 保存时,系统会跳出来另外一个对话框,以下图,须要将这段命令在步骤“应用系统环境搭建”中建立的Kubernetes环境中运行,以安装Choerodon Agent。这一步是必需要执行的,关于Choerodon Agent能够参考官网 Choerodon Agent。

4. 命令是具体应用、具体环境而不一样的,因此,如下是笔者的环境生产的命令,请不要复制执行。

1helm install --repo=http://chart.choerodon.com.cn/choerodon/c7ncd/ \
2    --namespace=halm-dev \
3    --name=halm-dev \
4    --version=0.9.7 \
5    --set config.connect=ws://devops.service.choerodon.com.cn/agent/ \
6    --set config.token=a932598f-8945-449a-9dc7-7a2db489eff6 \
7    --set config.envId=162 \
8    --set rbac.create=true \
9    choerodon-agent

5. 若是在Kubernetes中执行成功,则能够看到“开发环境”显示“运行中”,不然就是不成功。

 

部署新生成的版本

可部署版本就绪,环境就绪,如今就还要把可部署的版本部署到环境中。

1.进入到的Choerodon猪齿鱼应用部署页面,系统路径:“汉得研发”(组织)->“<你的项目>”->部署流水线->应用部署

2.选择应用及版本。

例如,

  • 选择应用:资产云应用(halm-dev)

选择版本:2018.8.27-234043-master

 

3.选择环境及修改配置信息。

例如,

  • 选择环境:开发环境

还有,下面的配置信息能够根据自身需求修改。

4.选择部署模式。

例如,

  • 选择部署模式:新建实例

对于第一次部署,须要选择“新建实例”。

 

5.确认信息及部署。

 

6.最后,确认检查好信息以后,部署便可。能够在“实例”界面查看部署的状况。最终部署的实例名称为:“halm-dev-9fc8”。

建立网络

部署完成应用以后,还不可以被外部访问,须要建立网络和域名。如今先建立网络。

1. 进入到Choerodon猪齿鱼网络页面,系统路径:“汉得研发”(组织)->“<你的项目>”->部署流水线->网络

2.单击“建立网络”,弹出建立网络界面。填写相关的字段信息。

例如,

  • 环境:选择“开发环境”。

  • 目标对象:选择“选择实例”。

  • 应用名称:选择“资产云应用

  • 选择实例:选择“halm-dev-9fc8”,就是上一步部署生成的实例。

  • 网络配置:选择“ClusterIP”

  • 外部IP:NULL

  • 端口:80,镜像内部应用的端口

  • 目标端口:80,K8s中已经部署的应用对外提供服务的端口

  • 网络名称:halm-dev-3491


 

建立域名

有了网络还要有域名才能够。

1. 进入到Choerodon猪齿鱼域名页面,系统路径:“汉得研发”(组织)->“<你的项目>”->部署流水线->域名。

2. 单击“建立域名”,在弹出页面中填写相关信息。

测试访问

建立好域名以后,使用URL:handalm.hand-china.com 访问。

Choerodon猪齿鱼学习和介绍资源聚集

迁移完毕,下面跟你们介绍一下平常开发和部署等如何使用Choerodon。本部分包含项目管理、开发、发布版本、部署等操做,其中没有具体的步骤,而是把相关的学习和介绍资源聚集在一块儿,方便用户查找和学习。

知识管理

知识管理主要是提供Wiki的功能,用户可使用知识管理作项目的立项、需求分析、应用设计等,同时也能够用于记录Scrum的回顾会议等,总之,其能够做为项目平常文档编辑与共享的媒介

资料:

知识管理快速入门

知识管理用户手册

[官网视频资料]

[知识管理视频]

敏捷管理

敏捷管理主要是提供项目管理的功能,包括需求管理(故事、用户故事地图、问题)、计划(待办事项、冲刺)、执行(活动冲刺、看板),以及项目管理涉及的数据分析,例如累计流图、燃尽图等。

资料:

敏捷管理快速入门

敏捷管理用户手册

[官网视频资料]

[敏捷管理视频]

开发

开发对应的功能包括开发流水线、应用管理。主要做用是建立管理应用,以及开发应用的时候使用的分支模型和版本控制等。软件工程师平常开发对应的流程操做等都在此进行。

资料:

建立一个项目

建立一个Nginx应用

建立一个后端应用

建立一个前端应用

应用管理用户手册

开发流水线用户手册

[官网视频资料]

[开发视频]

测试

测试管理为用户提供敏捷化的持续测试工具,包括测试用例管理、测试循环、测试分析等,能够有效地提升软件测试的效率和质量,提升测试的灵活性和可视化水平。

资料:

使用测试管理

测试管理用户手册

[官网视频资料]

持续发布与部署

借助部署流水线,用户客户能够方便地管理各类使用Choerodon开发部署的应用服务,包括应用启停、状态监控,以及应用对应的版本控制、容器管理等,同时还包括应用涉及到的各类资源管理,例如网络、域名、数据库服务、缓存服务等。

资料:

部署流水线用户手册

[官网视频资料]

[持续交付视频]

关于Choerodon猪齿鱼

Choerodon猪齿鱼是一个开源企业服务平台,是基于Kubernetes的容器编排和管理能力,整合DevOps工具链、微服务和移动应用框架,来帮助企业实现敏捷化的应用交付和自动化的运营管理的开源平台,同时提供IoT、支付、数据、智能洞察、企业应用市场等业务组件,致力帮助企业聚焦于业务,加速数字化转型。

你们能够经过如下社区途径了解猪齿鱼的最新动态、产品特性,以及参与社区贡献:

欢迎加入Choerodon猪齿鱼社区,共同为企业数字化服务打造一个开放的生态平台。

相关文章
相关标签/搜索