Skip to main content

3 篇博文 含有标签「使用技巧

View All Tags

· 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等能力来帮助组织团队来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。

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

· 12 分钟阅读

在进行团队敏捷开发的过程中,会听到大家各种各样的疑惑:“我们项目的燃尽图怎么显示不出来?”,“燃尽图反映不了当前迭代真实的情况,没什么作用呀?”,“燃尽图有线条,但是具体是什么意思呢?”等等这一类的问题。造成了更多的时候,团队把燃尽图当成一个摆设,有它没它都一样。为了解决大家的这些疑问并且把燃尽图正确的使用起来,本文专门针对燃尽图的概念以及在Choerodon中燃尽图的运用进行介绍,帮助大家在敏捷路上不迷路。

什么是燃尽图

燃尽图用于表示一个敏捷迭代剩余工作量的工作图表,由横轴(X)和纵轴(Y)组成,横轴表示时间,纵轴表示工作量。可以实时、客观、直观展示当前冲刺任务的完成情况,达到预测项目当前迭代工作进展,并且提前预测出当前迭代有超前完成或者延期完成的情况。它是由项目中的所有团队成员共同维护的数据信息,提供的是实时客观的任务完成情况数据。维护好燃尽图的数据,可以实时提供准确的进度信息,提高了整个团队、项目的透明度。懂得运用燃尽图,可以更早的预测团队当前迭代开发的进度风险,让团队可以尽快消除风险。

如何维护Choerodon燃尽图的数据?

Choerodon燃尽图提供了三个维度的进度反馈:问题计数、故事点、剩余时间。

(1)问题计数

根据当天的剩余问题个数来渲染图表,这里的问题包括故事、任务、子任务以及缺陷。

(2)故事点

根据当天剩余的故事点来渲染图表。故事点需要在进行Sprint计划会议时由团队共同来估算,并且同步记录到Choerodon平台。

(3)剩余时间

根据当天的剩余的预估时间来渲染图表。这个时间需要团队的迭代过程中实时更新工作记录。在Sprint计划会议上,每个问题的经办人需根据自身的工作速率,估算出完成问题需要的大致时间,并且同步记录到Choerodon平台。剩余时间的数据需要各个经办人在问题详情页面维护工作日志才能得到,更新工作日志后,剩余预估时间会自动调整。工作日志如下图所示:

通过维护工作日志,得到以下剩余时间维度的燃尽图:

此外,团队成员需在每日站会前或者问题状态变更后,及时在敏捷看板拖动卡片改变问题状态,燃尽图会实时显示当前迭代看板的剩余任务情况,也就是未燃尽的部分,直到迭代的问题彻底解决,也就是当前迭代的任务全部燃尽了。

Choerodon燃尽图上线条表示的意义?

Choerodon燃尽图提供一条特殊的参考线:期望值。这条线为团队的开发速率提供了一个较为标准、开发速率正常的参考线。团队成员可以通过实际剩余值线条和预期值线条来对比,了解当前开发的进度是否正常。 例如:

(1)如果剩余值低于期望值

那说明该时间节点开发速率快,有提前完工的可能性。如果整个迭代内长期处于这种情况,那么就需要考虑当前迭代在规划时工作量是否饱和的问题了,接下来的迭代可以参考此次的速率进行规划,以及考虑是否提前结束当前迭代。

(2)如果剩余值高于期望值

那说明该时间节点开发速率比预期较慢,有延迟迭代的可能性。如果长期存在这种情况,需要考虑当前迭代规划时是否有工作过饱和的情况,在接下来的迭代中吸取经验,并且考虑适当延期当前冲刺。如下图的冲刺就有延期的风险,需要PO或者敏捷教练及时了解情况消除风险。

Choerodon燃尽图在敏捷迭代各个历程如何使用?

(1)Sprint计划会议:当次迭代的工作量规划可依据历史冲刺的燃尽情况、燃尽速率进行更加合理的规划。

(2)每日站会:站会除了可以通过看板来了解各个问题的进展,也可以通过燃尽图来了解总体的进度。团队成员可根据燃尽图线条及时的了解工作进度,预测并提醒迭代可能面临的风险,及时的沟通消除这些隐患。

(3)回顾会:在迭代末,燃尽图就是当前迭代进行情况的很好的图表数据反馈。参照燃尽图的不同节点,团队可以更好的总结经验教训,在以后的迭代周期扬长避短。

Choerodon燃尽图为什么要使用多种维度来展示进度?

(1)问题计数的维度

是以当前迭代的问题卡片数量为衡量单位。相对剩余时间粒度较粗,相对故事点较为独立。这种维度不需要成员维护过多的数据,直接以个数来评估。

(2)以剩余时间的维度

通过团队录入实际的剩余工时,可以得到比较准确的进度信息。团队成员每个工作时刻都在完成任务,努力把问题到达done的状态,使实际的剩余值更加靠近期望值,使得燃尽图的线条在更小的粒度范围跌宕起伏。以剩余时间的维度查看燃尽图虽然能够反映出团队成员工作的状况,但却不能更加明晰的表示出功能完成的进度。

(3)以故事点的维度

故事点的完成标志着一个story到了done的状态,也就是这个用户故事通过设计、开发、测试、完成的所有阶段,故事下的各个子任务也完成,用户故事已经验收通过了。站在客户的立场就是这个需求点可以交付了。也就是说完成一个用户故事,就是实现了一些故事点的价值交付。所以在敏捷开发过程中,掌握使用故事点燃尽图来维护进度的能力后,团队应对变化、快速交付价值的能力也会得到极大的提高。

这三个维度在不同情况下适当的结合运用,可以得到更加准确、客观、直观的迭代进度展示。

总结

燃尽图作为敏捷开发过程中一个重要的图表,能提供迭代或者项目进度和最新任务状态的报告,并对故事点、任务变化、工时变化这些迭代过程的重要数据指标进行直观的展示,确保团队中每个成员都能统一进度。此外,将燃尽图展示在团队成员面前,能够很好的激励团队成员积极参与项目,高效的完成迭代任务,提前处理开发可能遇到的风险。

关于团队的敏捷实践的其他相关信息,可以参考以下文章:

关于猪齿鱼

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

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