5.0 应用工作台能力介绍¶
如今随着云原生理念迅速普及,云原生技术给企业数字化转型的过程中带来了巨大的便利。但是企业云原生过程化中面临着一些列挑战:
- 多租户设计下如何满足逻辑层面的资源隔离?如何满足物理资源的隔离?
- 频繁的持续构建,如何及时在更早的阶段找到问题、修复 bug,持续保证代码和环境符合预期?
- 云原生下的技术种类复杂,如何利用好云原生建设云原生下的 CI/CD 系统?
- 云原生技术带来了应用部署复杂性,如何降低开发者的认知负担?
- 全自动的应用部署,如何让新功能发布可控、可预测、可逆?
面对这样的挑战,DCE 5.0 基于 Kubernetes 等云原生技术打造的应用工作台应运而生,集 DaoCloud DevOps 实践、云原生社区前沿研发理念于一体。 为企业建立一套自动化的从源代码构建到持续部署应用,且可以覆盖云原生下所有形态应用全生命周期管理的开发运维一体化的环境。帮助企业缩短研发周期,提供应用交付效率。
图形化用户交互¶
数字经济时代,云原生的应用已成为企业数字化转型的必选项,所以应用工作台以应用为中心,基于 DevOps 理念,解决云原生应用开发、自动化交付、运维全生命周期。降低企业应用云原生门槛,提高应用交付频率。应用工作台涉及:层级多租户资源、云原生应用、流水线CI/CD 流水线、GitOps、渐进式交付等模块。
用户在使用过程中主要存在三个阶段:开发阶段、交付阶段、运维阶段。
-
在开发阶段:应用工作台提供了流水线功能,企业可以在流水线中定义编译代码、代码检查、构建云原生制品流程,帮助开发者及时测试代码,从而提高代码质量。另外整个流水线一次设置,多次复用,大大降低了开发人员的工作负担,减少了不必要的重复劳动。
-
在交付阶段:应用工作台给予目前GitOps 理念,以自动化方式,频繁且持续性的将企业的应用部署到生产环境。作为上一阶段的延伸,自动化的持续部署起到了承上启下的作用,是对软件的研发的全流程管控的闭环。应用工作台可自动且持续监测代码仓库与生产环境中的应用进行比对,来确保生产环境与仓库中的期望状态保持一致,以实现全自动化部署。另外应用工作台还支持在持续部署的基础上对接外部能力,从而实现渐进式交付下的灰度发布等高级发布策略。
-
在运维阶段:应用工作台针对多种形态的云原生应用,提供了统一的观测平面,包含监控、告警、日志等信息。还提供了对应用升级、回滚、停止和删除应用等功能。
功能特性¶
应用工作台提供了层级资源管理、云原生应用、CI/CD流水线、GitOps、渐进式交付核心服务,来满足企业不同场景的需求。
层级资源管理¶
在企业环境中,企业下的每一个部门由不同的项目构成,一个一个的项目就映射到了我们的工作空间(workspace)。下图是应用工作台提供了基于Kubernetes的多租户管理方案。
前提条件:用户可以在5.0全局管理模块被设置为工作空间的管理员来参与工作空间的管理,从而参与项目的协同。
特点:
- 工作空间是最小的租户单元。
- 工作空间支持弱绑定集群的模式,从而使用户获得跨集群、跨命名空间共享资源的能力。
- 工作空间支持强绑定集群的模式,从而使用户获得独享集群资源的能力。
- 工作空间的管理员可以在该工作空间关联的集群中创建命名空间资源,并为命名空间进行配额管理。
支持多种形态云原生应用的部署,包括源代码、Jar 包、镜像一键完成应用部署,并且在创建过程中可使用微服务的注册发现、服务治理能力,还支持通过应用商城一键部署Helm 应用、OLM应用。降低了企业上云的门槛,简单易用、敏捷高效。
云原生应用¶
应用工作台以应用为中心,涵盖了云原生技术下多种形态的应用,应用工作台对云原生社区内的不用形态应用采取了更包容的态度,而不是按照自己对应用的理解,在平台中定义一套自己的应用规范。旨在帮助用户无需学习云原生知识,即可“用好云”。
目前应用工作台支持的云原生应用有:
应用工作台面向应用开发和运维,覆盖应用全生命周期,包括应用的创建、删除、 配置修改、自动扩缩及自动运维。 并且支持 SpringCloud、Dubbo、ServiceMesh 服务治理架构,与 5.0 微服务引擎、5.0 服务网格无缝集成:
CI/CD 流水线¶
流水线是一个自定义的 CI/CD 流水线模式,定义了包含构建、测试和发布的完整构建过程。应用工作台基于流水线能力具有以下优势:
- 不同来源构建应用:支持使用源码、软件包(Jar)实现应用的一键部署。
- 双引擎:支持 Jenkins 和 Tekton 作为应用工作台的流水线系统引擎。
- 丰富的流水线模板:内置了多条流水线官方模板,大大降低了用户的使用门槛,可以适应不同业务场景,满足用户的日常需求。
GitOps¶
GitOps 是一种为云原生应用实现持续部署的理念。应用工作台全面拥抱 GitOps,GitOps 的核心思想是拥有一个 Git 仓库,并将应用系统的申明式基础架构和应用程序存放在 Git 仓库中进行版本控制。 GitOps 结合 Kubernetes 能够利用自动交付流水线将更改应用到指定的任意多个集群中,从而解决跨云部署的一致性问题。
渐进式发布¶
为了应用部署的安全性,企业都采取了灰度发布的解决方案,这种部署策略使应用部署更加安全,但是仍然缺乏自动化。将服务发布到生产和分析指标的过程仍然是一个手动过程。这将促使我们进入下一阶段,即渐进式交付。
应用工作台基于 Argo Rollouts 实现了渐进式的灰度发布,可以让开发人员可以选择他们自己的分析指标,自定义他们的渐进式发布的步骤,甚至选择他们自己的入口或服务网格提供商来进行流量控制。
常见问答¶
-
什么是 DevOps
DevOps 是开发 (Dev) 和运营 (Ops) 的综合体,是指将开发、质量保证和 IT 运营集成到统一的环境以及软件交付过程中。 通过采用 DevOps 文化、做法和工具,企业能够更好地响应业务需求、更快的构建应用程序,并更快地实现业务目标。
DevOps 包括以下活动和操作:
- 持续集成 (CI) 是指如下的做法:将所有开发人员代码频繁合并到一个中央代码库中,然后执行自动化生成和测试过程。 目标是快速发现和纠正代码问题、简化部署并确保代码质量。
- 持续交付 (CD) 是指如下的做法:自动生成、测试代码并将其部署到类似生产的环境。目标是确保代码始终可供部署。 添加持续交付来创建完整 CI/CD 流水线的做法有助于尽早检测到代码缺陷。并确保能够在极短的时间内发布已经过适当测试的更新。
- 持续部署 是一个附加的过程,可自动引入通过 CI/CD 流水线传递的所有更新,并将其部署到生产环境。 持续部署需要可靠的自动测试和高级过程规划, 不一定适合所有团队。
- 持续监视 是指在 DevOps 和 IT 运营生命周期的每个阶段中整合监视功能所要采用的流程和技术。 监视有助于确保应用程序在从开发环境转移到生产环境时,应用程序和基础结构保持正常的运行状况、性能和可靠性。持续监视是基于 CI 和 CD 的概念。
-
什么是流水线?
流水线可以自动生成和测试代码项目,使其可供他人使用。 适用于任何语言或项目类型。将持续集成 (CI) 和持续交付 (CD) 组合在一起,可以测试并生成代码,并将代码发送给任何目标。 应用工作台还支持可视化的方式来编排流水线,企业可以将现有研发流程通过流水线以可视化的方式呈现出来。
-
流水线如何构建一个应用程序?
应用工作台提供了从 Git 导入代码、上传 Jar 包来创建应用程序。 在创建的过程中,只要填写流水线所需的部分信息,应用工作台就会帮您创建一条流水线资源,自动化完成从源码构建、测试、发布应用至 Kubernetes 集群环境中。 旨在帮助企业以更快的速度将软件持续交付,同时降低风险。
-
支持哪些云原生应用?
Kubernetes 原生应用、Helm 应用、OAM 应用、OLM 应用。
-
如何运维多种形态的云原生应用?
应用工作台推出以应用为中心,统一观测平面,包含监控、告警、日志等信息。 让不同形态的云原生应用运维更轻松方便。
下载 DCE 5.0 安装 DCE 5.0 申请社区免费体验