经过以前的文章《Choerodon猪齿鱼实践之应用生命周期管理》,咱们已经基本了解了Choerodon平台中应用服务的特性和微服务架构的特色。在此基础上,本文将为你们介绍Choerodon平台中导入应用服务的功能。前端
因为Choerodon平台采用的是微服务架构,所以其中的应用会被分解为更小、彻底独立的服务组件,这使得它们拥有更高的敏捷性、可伸缩性和可用性。基于这些特色,咱们就能够将各个项目中开发获得的应用服务组件化,并达到复用应用服务的效果,以此来避免重复造轮子的状况。git
对于同组织内不一样项目之间的应用服务共享,咱们在以前的文章中已经进行了详细地介绍(具体步骤请参考:Choerodon猪齿鱼实践之应用服务共享);可是若是想将应用服务共享至其余组织中的某个项目,或者将以前在其余平台中开发的应用服务迁移到Choerodon平台之中,咱们要怎样实现呢?这就涉及到下面要介绍的“导入应用服务”的功能。github
导入应用服务目前有3个来源,分别是:共享应用(组织内其余项目共享至本项目下的应用服务)、GitHub与GitLab。目的是从这些来源中导入已有的应用服务及其对应的代码仓库,并支持在已有应用服务的基础上进行开发,以此来避免重复造轮子的状况。web
若同组织其余项目下存在符合需求的应用服务,只需经过共享规则的方式将此应用服务共享至本项目便可;而在本项目中导入目标应用服务后,便能在原有代码库的基础上进行二次开发或部署。(注意:选择添加应用服务后,会默认选择该应用服务共享出来的最新版本;若直接导入,此时便会将该服务版本对应的代码库与commit导入到项目之中;此处版本可自主切换)架构
若目标应用服务的代码已经被上传至GitHub之中,此时只需在导入应用服务中选择“从GitHub导入”,再输入GitHub的HTTP地址,便能将应用服务的仓库克隆至本项目下进行二次开发。Choerodon平台目前支持从GitHub公库导入应用服务,且不能导入空库。app
此外,Choerodon还在GitHub上预置了多个经常使用的应用服务模板供各个项目团队选择。只需在“从GitHub导入”的选项中,选择导入来源为“系统预设模板”便可。其中的应用服务模板是由同类型应用服务的代码库整理而成的,引用了相应的应用服务模板后,便可在gitlab中快速地建立初始代码库。其中包括:微服务
在这些模板中,至少都包含了 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猪齿鱼社区毛智伟。