JavaWeb 工程发布到生产服务器

本贴最后更新于 2749 天前,其中的信息可能已经事过境迁

转载请携带:
作者:xjtushilei
原文:http://xjtushilei.com/2017/04/27/PublishAProject2Server/

~

项目是实验室和北京 xx 公司合作的项目,关于知识图谱的,涉及知识图谱的创建、管理、可视化等,主要是自己完成的。由于第一次自己参与到正式的代码集成中,之前的不是特别正规,故记录一下。

流程

源码 -> Gitlab -> Jenkins -> docker 容器管理器

一个自动化的流程,很是方便!

源码

使用 Spring-Boot 框架写的 web,当时他们公司主要在使用 SpringMVC。

接下来主要就是使用构建工具的问题了。

该项目要求使用 gradle,但是当时比较熟悉 maven,实验室不知什么原因 gradle 网速很差(虽然都是 maven 仓库),发现 maven 可以直接转 gradle,直接使用命令

gradle init --type pom

还是十分方便的,所以我同时维护了 gradle 和 maven。

src 根目录中:我们加入了“deploy/dockerfile 文件"! 方便自动生成 docker!

Gitlab

我的版本控制平台自己使用的话,一般都是在国内的 git 平台:coding.net 或者 OsChina,如果开源的话会推入 github 等。

OsChina 由于免费项目数有 1000 个,所以之后会将个人的仓库使用在 OsChina 上。

小技巧:我读 github 的源码喜欢将代码导入到国内的仓库里,比如 coding.net,这样网速比较方便,且有手机客户端随时查看!

gitlab

介绍:使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务。功能和 github 类似,相当于自己有一个 github 公司的全部的服务。

可以从 gitlab 官网下载代码,在自己服务器上搭一个。

xx 公司就是自己搭建的 gitlab,并且是社区版本,他们之前使用的版本控制是 svn,因 svn 有各种问题,后转为了 git。他们使用的社区版,并打算最近转为企业版。

创建账号,然后和其他 git 平台一样,都可以导入仓库。这一步也是十分简单的。

tips:如果想体验 gitlab 服务而不想搭建,可以在“天池大数据”比赛中,注册账号,就有一个 gitlab 账号,然后使用阿里的 gitlab。

Jenkins

Jenkins 是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,功能包括:

  • 1、持续的软件版本发布/测试项目。
  • 2、监控外部调用执行的工作。

这里主要是自动从 gitlab 上,下载代码,构建编译测试代码,可以选择随意的构建工具等其他设置,可以自己加入脚本,比如生成 docker!

这一步,将 giblab 和一些脚本配置一下,使点击一个按钮,就可以自动拉取代码,生成一个 docker 镜像!

docker 容器管理器

目前我使用到的:

  • 监控 dokcer,发现一个工程较新的 docker(有时间标签)会自动部署,并将原来的停掉,几乎是无缝替换。
  • 提供日志监控
  • 容器 ip,提供域名服务,自动配置该项目的二级域名
  • docker 运行监控,宕机自动重启,监控报警
  • 测试
  • 持续交付

xx 公司使用的是灵雀云,从灵雀云官网介绍看!灵雀云完全能替代掉 Jenkins 的功能,但是不知为何加入了 Jenkins,第一想法是提高架构部门的工作复杂度而变得高大上(因为公司有一个基础架构部),或许我是错的,大家怎么想?

这一步就是将生成的 docker 放进去容器中,并进行各种监控等后续步骤。

感想

自动化流程确实不错!不过在实验室推广就没必要了。没有去过公司的可以了解一下~

接触这些新的东西很是开心。

自己继续加油!

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3186 引用 • 8212 回帖 • 1 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    490 引用 • 916 回帖 • 1 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    942 引用 • 1459 回帖 • 31 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    209 引用 • 358 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...