通过之前的文章《Choerodon猪齿鱼实践之应用生命周期管理》,我们已经基本了解了Choerodon平台中应用服务的特性和微服务架构的特点。在此基础上,本文将为大家介绍Choerodon平台中导入应用服务的功能。
导入应用服务功能的背景
由于Choerodon平台采用的是微服务架构,因此其中的应用会被分解为更小、完全独立的服务组件,这使得它们拥有更高的敏捷性、可伸缩性和可用性。基于这些特点,我们就可以将各个项目中开发得到的应用服务组件化,并达到复用应用服务的效果,以此来避免重复造轮子的情况。
对于同组织内不同项目之间的应用服务共享,我们在之前的文章中已经进行了详细地介绍(具体步骤请参考:Choerodon猪齿鱼实践之应用服务共享);但是如果想将应用服务共享至其他组织中的某个项目,或者将之前在其他平台中开发的应用服务迁移到Choerodon平台之中,我们要怎样实现呢?这就涉及到下面要介绍的“导入应用服务”的功能。
导入应用服务功能介绍
导入应用服务目前有3个来源,分别是:共享应用(组织内其他项目共享至本项目下的应用服务)、GitHub与GitLab。目的是从这些来源中导入已有的应用服务及其对应的代码仓库,并支持在已有应用服务的基础上进行开发,以此来避免重复造轮子的情况。
共享应用
若同组织其他项目下存在符合需求的应用服务,只需通过共享规则的方式将此应用服务共享至本项目即可;而在本项目中导入目标应用服务后,便能在原有代码库的基础上进行二次开发或部署。(注意:选择添加应用服务后,会默认选择该应用服务共享出来的最新版本;若直接导入,此时便会将该服务版本对应的代码库与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猪齿鱼社区,共同为企业数字化服务打造一个开放的生态平台。
本篇文章出自Choerodon猪齿鱼社区毛智伟。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。