Skip to main content

3 篇博文 含有标签「应用服务

View All Tags

· 8 分钟阅读

当有多个开发人员参与项目时,通过Git进行分支和Tag管理,将软件的版本控制以及分支管理贯穿于整个软件产品的生命周期,能有效的避免代码冲突,提高开发效率。Choerodon 代码仓库就是基于 Git 进行代码版本管理。本文介绍了 Choerodon 猪齿鱼中开发应用服务的方法,包括创建分支、克隆、推拉代码、合并分支等。

开发应用服务

在Choerodon中开发应用服务之前,首先需确认已在Choerodon项目下创建应用服务,并配置了 Git,包括下载安装、设置等。

第一步:创建分支

Choerodon使用 GitLab 进行分支管理,默认分支为 master。目前支持六种常见的分支类型:

  1. master:主分支,用于版本持续发布;
  2. feature:特性分支,用于日常开发时切出分支进行单功能开发;
  3. bugfix:故障修补分支,通常用于修复故障;
  4. release:发布分支,适用于产品发布、产品迭代;
  5. hotfix:热修分支,用于产品发布后修复缺陷;
  6. custom:自定义分支,用户可以自定义需要的分支类型。

    注:bugfix旨在与敏捷的问题类型(故障)呼应,用于标识此分支的任务是修复某个故障

这里我们以 Feature 分支为例,在Choerodon中进行分支创建。

  1. 在 代码管理 -> 分支 界面,选择应用服务猪齿鱼Todo服务

  2. 点击创建分支,如果没有issue可选择,则先创建问题, 选择对应的issue;

  3. 分支来源选择master,填写issue号,如feature-1,点击创建,即可创建一个分支;

    例如,

    • 问题名称: choerodon-dev-1 猪齿鱼快速入门文档
    • 分支来源: master
    • 分支类型: feature
    • 分支名称: feature-choerodon-dev-1

  4. 创建完分支之后,您就可以进行后续的本地开发。

Choerodon 采用 githubflow作为我们的分支管理策略的主体。并在此基础上,参考了一些其他策略,对开发者的开发分支做了一定程度上的细分。更多相关信息参考分支管理

第二步:拉取代码仓库

  1. 代码仓库 菜单,找到猪齿鱼Todo服务的仓库地址,复制仓库地址;
  2. 本地通过git 命令拉取生成的项目代码;
  3. 切换到对应分支进行本地开发。

$ git clone `仓库地址`
$ cd ./choerodon-todo-servie
$ git checkout feature-choerodon-dev-1

克隆代码时候,会让输入用户名,密码。用户名为平台用户名,密码为用户新建后收到的站内信中的Gitlab仓库密码,若忘记密码,可以到个人信息页面重置GitLab仓库密码。

第三步:本地开发

将代码克隆到本地后,就可以在本地进行开发。

通过Choerodon 提供的MicroService 应用服务模板,会生成一个极简单的spring boot 应用服务。模板本身生成的应用服务可以直接运行在平台上,如需拓展更多功能,可具体参考后端开发手册

第四步:提交代码

当本地做了相关修改之后,需要将本地仓库的代码提交到远程分支上。提交的用户名密码同克隆代码库的一样。

$ git add .
$ git commit -m "[ADD] init todo-service"
$ git push origin feature-choerodon-dev-1

提交时需要遵循Choerodon 的规范:

  • [IMP] 提升改善正在开发或者已经实现的功能
  • [FIX] 修正BUG
  • [REF] 重构一个功能,对功能重写
  • [ADD] 添加实现新功能
  • [REM] 删除不需要的文件

第五步:代码集成

当代码提交到服务器之后,可以在页面查看持续集成。

  1. 在代码管理 -> 持续集成 页面,选择应用服务猪齿鱼Todo服务
  2. 点击阶段跳转到Gitlab 查看 CI 执行情况。

第六步:合并分支

当 CI 执行通过以后,可以将feature分支合并到master分支上。

  1. 在代码管理 -> 合并请求 页面,选择应用服务猪齿鱼Todo服务
  2. 点击创建合并请求,跳转到Gitlab;
  3. 分别选择源分支为feature-choerodon-dev-1 ,目标分支为master,并提交合并请求。等待ci流水线通过后,点击合并分支。

master分支的ci流水线 通过以后,在应用服务 -> 点击应用服务 猪齿鱼Todo服务 ,便能在”服务版本“Tab页中看到猪齿鱼Todo服务 生成的版本。此处的版本会用于后续的部署操作。若想了解更多Choerodon猪齿鱼版本相关的内容,可参考《Choerodon猪齿鱼实践之持续交付中的分支管理与版本控制》。

总结

以上就是使用Choerodon开发应用服务的全部流程,应用服务的开发过程也可以说是代码管理的过程,支持着团队的协作开发与持续集成,保证项目的进度和效率。

关于猪齿鱼

Choerodon 猪齿鱼作为全场景效能平台,是基于Kubernetes,Istio,knative,Gitlab,Spring Cloud来实现本地和云端环境的集成,实现企业多云/混合云应用环境的一致性。平台通过提供精益敏捷、持续交付、容器环境、微服务、DevOps等能力来帮助组织团队来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。

更加详细的内容,请参阅Release Notes官网

大家也可以通过以下社区途径了解猪齿鱼的最新动态、产品特性,以及参与社区贡献:

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

· 8 分钟阅读

通过之前的文章《Choerodon猪齿鱼实践之应用生命周期管理》,我们已经基本了解了Choerodon平台中应用服务的特性和微服务架构的特点。在此基础上,本文将为大家介绍Choerodon平台中导入应用服务的功能。

导入应用服务功能的背景

由于Choerodon平台采用的是微服务架构,因此其中的应用会被分解为更小、完全独立的服务组件,这使得它们拥有更高的敏捷性、可伸缩性和可用性。基于这些特点,我们就可以将各个项目中开发得到的应用服务组件化,并达到复用应用服务的效果,以此来避免重复造轮子的情况。

对于同组织内不同项目之间的应用服务共享,我们在之前的文章中已经进行了详细地介绍(具体步骤请参考:Choerodon猪齿鱼实践之应用服务共享);但是如果想将应用服务共享至其他组织中的某个项目,或者将之前在其他平台中开发的应用服务迁移到Choerodon平台之中,我们要怎样实现呢?这就涉及到下面要介绍的“导入应用服务”的功能。

导入应用服务功能介绍

导入应用服务目前有3个来源,分别是:共享应用(组织内其他项目共享至本项目下的应用服务)、GitHubGitLab。目的是从这些来源中导入已有的应用服务及其对应的代码仓库,并支持在已有应用服务的基础上进行开发,以此来避免重复造轮子的情况。

共享应用

若同组织其他项目下存在符合需求的应用服务,只需通过共享规则的方式将此应用服务共享至本项目即可;而在本项目中导入目标应用服务后,便能在原有代码库的基础上进行二次开发或部署。(注意:选择添加应用服务后,会默认选择该应用服务共享出来的最新版本;若直接导入,此时便会将该服务版本对应的代码库与commit导入到项目之中;此处版本可自主切换)

从GitHub导入

若目标应用服务的代码已经被上传至GitHub之中,此时只需在导入应用服务中选择“从GitHub导入”,再输入GitHub的HTTP地址,便能将应用服务的仓库克隆至本项目下进行二次开发。Choerodon平台目前支持从GitHub公库导入应用服务,且不能导入空库。

此外,Choerodon还在GitHub上预置了多个常用的应用服务模板供各个项目团队选择。只需在“从GitHub导入”的选项中,选择导入来源为“系统预设模板”即可。其中的应用服务模板是由同类型应用服务的代码库整理而成的,引用了相应的应用服务模板后,即可在gitlab中快速地创建初始代码库。其中包括:

  • 微服务-MicroService;
  • web前端-MicroServiceFront;
  • Java库-JavaLib;
  • Java库-SpringBoot;
  • Go库-GoTemplate;
  • 自动化测试-Mocha-ChoerodonMochaTemplate;

在这些模板中,至少都包含了 Dockerfile 文件、CI 文件以及 Chart 目录文件。

其中Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像,主要用于控制应用容器化的进程。其次是CI文件,模板中的CI文件主要用于设置在提交代码后,自动集成时要经历的所有阶段。而其中的Chart目录文件则用于将平台中的容器打包,统一置于K8S平台进行管理。

从GitLab导入

若目标应用服务的代码已经被上传至GitLab之中,此时只需在导入应用服务中选择“从GitLab导入”,再输入GitLab的HTTP地址(若为私库,还需输入私有Token)。便能将应用服务的代码仓库克隆至本项目下进行二次开发。Choerodon平台目前支持从GitLab的公库和私库导入应用服务,且同样不能导入空库。

应用服务导入成功之后,系统会默认在本项目对应的 gitlab group 中创建一个 project 作为此应用服务的初始代码库,而后再通过相应的页面功能实现对此应用服务的管理。同时,可以在“代码管理”模块,按照规范的开发流程对导入的应用服务进行分支管理、合并请求管理、版本管理、CI管理、标记管理以及代码质量的监测。

总结

导入应用服务功能使得Choerodon平台中的应用服务更加灵活,不仅仅支持组织内各项目之间应用服务的共享与复用,还可通过GitHub与GitLab导入的方式实现跨组织和跨平台的复用已有的应用服务,充分地发挥微服务架构的敏捷性与可伸缩性。

关于猪齿鱼

Choerodon 猪齿鱼作为全场景效能平台,是基于Kubernetes,Istio,knative,Gitlab,Spring Cloud来实现本地和云端环境的集成,实现企业多云/混合云应用环境的一致性。平台通过提供精益敏捷、持续交付、容器环境、微服务、DevOps等能力来帮助组织团队来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。

更加详细的内容,请参阅Release Notes官网

大家也可以通过以下社区途径了解猪齿鱼的最新动态、产品特性,以及参与社区贡献:

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

· 8 分钟阅读

Choerodon平台中的开发和部署都是围绕应用服务来进行的,由此可见应用服务在DevOps实践过程中的重要性。本文旨在为大家介绍Choerodon v0.19及以上版本中的应用服务共享功能。

共享应用服务功能的背景

在详细介绍Choerodon平台中“共享应用服务”功能的使用之前,我们需要知道使用这个功能的原因是什么,以及这个功能可以解决什么问题。在说起Choerodon平台中的应用服务时,我们就不得不提微服务。正是因为微服务的出现,之前的单体应用架构带来的问题才得以解决。而下图也更为直观地指出了单体应用架构与微服务架构的区别。

通过上图,我们不难发现微服务架构中的应用服务会被分解为更小、完全独立的组件,这使得它们拥有更高的敏捷性、可伸缩性和可用性。换言之,微服务架构的基本思想就是:围绕业务领域组件来创建应用服务,让应用服务可以独立地开发、管理和交付。

通过微服务实现了组件化服务的开发和交付后,这些组件化服务按照项目需求组合起来,稍作修改,便是一个可用的产品。因此,尽管项目是暂时性的,但项目团队的交付物却能以组件的形式共享至其他项目,以此来避免重复造轮子的情况。而怎样将已有的应用服务快速地导入或部署到组织下其他项目呢?针对这个问题,共享应用服务的功能应运而生。

怎样使用共享应用服务功能?

当组织下其他项目需要用到本项目下某个应用服务时,项目所有者可以为此应用服务设置共享规则,以此来将对应版本的应用服务共享至其他项目。

以上便是Choerodon平台中共享应用服务功能的大致流程,下面我们就按照这个流程进行展开,带大家了解Choerodon中应用服务的共享功能。

共享应用服务

  • 添加共享规则

首先,选中一个目标应用服务,进入详情界面,选中“共享设置”,点击顶部的“添加共享规则”;在添加共享规则时,项目所有者可以选择将该应用服务的某一类型的所有版本全部共享出去,或者选择一个特定的应用服务版本共享至目标项目。最后选择“共享范围”,那么一条共享规则就这样添加成功了。

  • 目前平台中预置可选的版本类型为以下5种,分别是:master、release、feature、bugfix和hotfix。
  • 此处的版本类型是按照版本名中对应的分支类型来命名的;但可根据需求,在此填写一个自定义的版本类型。
  • 若您想将该类型的所有服务版本共享出去,仅填写版本类型即可,不用再选择特定版本。

共享规则添加成功并生效之后,共享范围之内的项目便能获取到该服务对应版本的代码库与镜像,用于之后的二次开发或直接部署。

  • 管理共享规则

共享规则添加成功之后,可以在之后对其进行灵活地修改或是直接删除;此处支持修改共享规则中的共享版本与共享范围;

共享规则更改后,平台将按照新的共享规则执行,但不会影响其他项目下已部署的实例。

导入共享应用服务

应用服务的接收方,若发现已存在的应用服务并不能完全满足自己的项目需求。便可以选择“导入共享应用服务”,在已有代码库的基础上进行二次开发。

部署共享应用服务

若共享的应用服务已经能够满足项目需求,此时部署人员便可直接在手动部署界面,将该服务对应的版本部署至本项目对应的环境。

总结

共享应用服务的功能支持各个项目团队更方便地围绕业务来进行应用服务的组织,从而使得微服务弹性伸缩的特性可以得到充分地发挥,避免出现重复造轮子的情况。此外,以应用服务为中心进行开发和部署是Choerodon平台实践DevOps的重要步骤,所以应用服务相关的功能与体验也是我们一直都在关注的。

关于猪齿鱼

Choerodon 猪齿鱼作为全场景效能平台,是基于Kubernetes,Istio,knative,Gitlab,Spring Cloud来实现本地和云端环境的集成,实现企业多云/混合云应用环境的一致性。平台通过提供精益敏捷、持续交付、容器环境、微服务、DevOps等能力来帮助组织团队来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。

大家也可以通过以下社区途径了解猪齿鱼的最新动态、产品特性,以及参与社区贡献: