企业 DevOps 的全方位解决方案与深度剖析

161 阅读39分钟

1. 背景

 

1.1. 企业用户IT痛点

 

在找到我们的企业中,或多或少的都存在IT领域中这样和那样的一些问题。其实企业在IT相关部门和领域主要面临的问题包括有几点:1、软件快速交付的挑战, 2、 高可用、高稳定性的挑战,3、高性能的挑战,4、高昂的IT成本的挑战, 这四个主要挑战确实是企业IT软件交付领域的重要问题。让我们分别讨论这些挑战:

 

  1. 软件快速交付的挑战:

● 市场竞争压力: 企业在市场中需要快速推出新功能和产品,以满足客户需求并抢占竞争对手的份额。如果软件开发和交付速度慢,可能会错失商机。

● 敏捷开发和DevOps: 采用敏捷开发和DevOps实践可以加速软件交付。这些方法强调快速迭代、自动化测试和持续交付,有助于减少开发周期并提高响应速度。

 

  1. 高可用、高稳定性的挑战:

● 复杂性管理: 高可用性和高稳定性要求对系统的复杂性和容错性有更高的要求。企业需要有效地管理复杂性,包括监控、容错设计和备份策略。

● 云计算和容器化: 云计算和容器化技术提供了弹性和容错性,有助于提高系统的可用性和稳定性。

 

  1. 高性能的挑战:

● 性能测试: 企业需要进行性能测试,以识别和解决性能瓶颈。这包括负载测试、性能优化和扩展性测试。

● 优化代码和基础设施: 通过优化代码、配置和基础设施,可以提高系统的性能。采用高性能的数据库、缓存系统和CDN等技术也是提高性能的方式。

 

  1. 高昂的IT成本的挑战:

● 自动化和效率: 自动化可以减少人力成本,提高效率。自动化测试、部署和运维操作有助于降低成本,同时减少了人为错误的风险。

● 资源复用:如何最大程度的复用和调度资源, 按照云化的方式进行可伸缩式的调度。这个在必须构建在以容器化的基座下才能做到更多基于应用层面的资源共享。

● 高昂的云成本:通过调研,我们看到很多的云服务的提供商,他们提供的的一些中间件服务,远远高于提供硬件的产品的服务。 而云厂商在这些硬件上投入只是一些基本的运维支持而已。 而这些企业常用的中间件产品,都有一些非常成熟的运维方法和手段。这些是很容易的进行抽象归纳成为一个基础平台。通过这个平台就能管理所有的中间件服务,并提供更低成本的管理方式。 而且边际效应非常低,未来如果企业需要增加更多的中间件也不需要再做更多的投入。

 

当前企业面临的IT软件交付挑战是多方面的,涉及快速交付、高可用、高性能和成本管理等方面。解决这些挑战需要采用现代化的开发实践和技术,以适应市场需求和提高竞争力。同时,持续改进和学习也是关键,以不断适应新的挑战和机会。

 

1.2. DevOPS的重要性

 

从这些痛点中,我们可以看到:如果企业能够引入DevOPS, 能够在多个方面都带来很大收益,比如解决面临软件快速交付的挑战,在稳定性和高可用方面的挑战等方面,特别是如果我们的DevOPS是基于容器化的方式进行构建时, 那么我们就可以构建企业的DevOPS里面获得如下的收益:

● 加快软件的交付速度: DevOps强调自动化、持续集成和持续交付,有助于缩短软件开发到生产部署的周期。基于容器化的DevOps流程可以实现应用程序和其依赖项的一致性打包,简化部署过程,从而更快地交付新功能和修复问题。

● 提高软件的稳定性和可用性: 容器化的应用程序可以更容易地在不同环境中部署和运行,从而提高了系统的稳定性和可用性。DevOps实践也强调自动化测试,有助于早期发现和解决问题,降低系统故障的风险。

● 快速扩展和收缩和更低的硬件成本:基于容器的DevOps流程使应用程序更容易扩展和缩减,以满足变化的工作负载需求。企业可以根据需求自动增加或减少容器实例,而不需要手动干预。容器化技术允许更好地利用资源,因为容器可以在相同的物理主机上运行多个应用程序实例。这有助于降低硬件成本,提高资源利用率,因此而显著降低硬件的成本。

● 环境一致性和自动化协作: 容器化确保应用程序在不同环境中一致运行,从开发、测试到生产。这减少了配置问题和部署差异,有助于减少不稳定性。DevOps鼓励团队自动化协作流程,减少手动干预和错误。容器化技术和DevOps工具可帮助不同团队更紧密地协作,共同关注整个交付过程。

● 更少的依赖: 容器化允许应用程序和其依赖项在容器内打包,减少了与底层基础设施的紧密耦合。这使得应用程序更容易迁移到不同的云平台或基础设施,提高了灵活性。

 

因此一个企业在缺乏技术中台的情况下, 如何要能最快的方式,通过一些基础设施的投入就能带来最大的效益化,我们认为通过构建DevOPS,搭建CI/CD管线是能给企业整个IT在快速交付领域,高可用领域, 降低成本等领域带来相当巨大的收益。也可以说这是一个性价比颇高的方案。但是并不是所有的DevOPS产品都能解决用户的问题, 它必须具有满足一些重要特性的能力才能真正的解决企业IT的痛点。

 

2. EaseOps 解决方案

 

2.1. EaseOps 是怎么解决痛点的

EaseOps是一个满足众多DevOps平台特性的解决方案。它是基于容器化、拥有应用无侵入、多租户隔离、SCM(软件配置管理)高度可集成性、安全、快速、稳定和简单易用等特性。这些特性在保障在EaseOps 在DevOps领域的先进性和科学性。企业完全可以基于EaseOps更是提供了这些关键特点,更好落地和实施DevOps实践,从而提高软件交付的效率、质量和安全性。这些特性有助于满足企业在快速变化的市场环境中面临的挑战,同时提供了更好的协作和集成,使团队更容易协同工作以实现共同的目标。

 

2.1.1. EaseOps 介绍

EaseOps 是 MegaEase 推出的DevOps解决方案。MegaEase 根据多年从事IT行业的经验,结合业界DevOps的最佳实践。以云原生标准, 设计的分布式DevOps解决方案。 通过采用云原生标准,意味着EaseOps将云计算和容器化技术纳入设计,以提高灵活性、弹性和可伸缩性。这有助于适应现代化云环境的需求。同时EaseOps支持分布式的部署,这意味着,具有高可用性和容错性,允许在不同的地理位置和环境中部署,以提供更稳定的服务。这有助于应对系统故障和地理分布的挑战。并且,EaseOps一直坚持自动化理念, 这意味着EaseOps可提供自动化工作流程,包括持续集成、持续交付和自动化测试,以加速软件交付流程。此外EaseOps支持高度的集成化,提供与各种开发和运维工具的高度集成,包括源代码管理SCM、构建工具、容器编排、等以简化工作流程并提高协作。

EaseOps是一个综合的DevOps解决方案,结合了云原生、分布式架构、自动化、多租户隔离、集成性和安全性等关键特征。这可以帮助企业更好地实施DevOps实践,以提高软件交付的效率、质量和安全性,适应现代化的云环境。这样的解决方案有助于企业更好地满足快速变化的市场需求,并提供更好的协作和集成

2.1.2. EaseOps 的特性

EaseOps 具有如下的特性,基于容器化,应用无侵入,多租户隔离、SCM(软件配置管理)高度可集成性、安全快速稳定和简单易用等特性,下面我们将对这些特性进行介绍和分析,以说明为什么EaseOps是最适合企业落地实施DevOps的解决方案

 

2.1.2.1. 基于容器化

基于容器化的DevOps解决方案意味着EaseOps采用了容器技术作为其DevOps流程的核心组成部分。这对于DevOps来说具有重要意义,因为容器化可以带来许多优势和便捷,包括:

 

● 一致的环境: 容器化可以确保在不同阶段(开发、测试、生产)使用相同的容器镜像,从而消除了“在我的机器上可以工作”的问题。这有助于减少配置错误,提高软件的可移植性。

● 快速部署和扩展: 容器可以在几秒钟内启动,从而加速应用程序的部署和扩展。这对于快速交付和应对高工作负载的需求非常有用。

● 低成本: 容器共享主机操作系统内核,因此它们使用的资源较少,可以在相同硬件上运行多个容器实例。这提高了资源利用率,降低了硬件成本。

● 隔离性和安全性: 容器提供了进程级别的隔离,从而确保一个容器的问题不会影响其他容器。这增强了安全性,同时支持多租户环境。

● 持续集成和持续交付(CI/CD): 容器化与CI/CD流程天然匹配,容器可以轻松集成到CI/CD管道中,实现自动构建、测试和部署。

● 版本控制: 容器镜像可以版本化,从而允许在不同版本之间进行切换,并轻松回滚到之前的版本。这有助于管理应用程序的演进。

● 云原生和微服务: 容器化与云原生和微服务架构高度兼容。容器可用于封装和部署微服务,以实现更大规模的应用程序。

● 跨平台: 容器可以在不同的云平台和操作系统上运行,从而提供更大的灵活性和可移植性。

 

总之,基于容器化的DevOps解决方案利用容器技术的优势,提供更快速、可伸缩、资源有效、隔离性强、安全性高、持续集成和持续交付的DevOps流程。这有助于企业更好地适应快速变化的市场需求,加速软件交付,并提高质量和效率。EaseOps作为这样一种解决方案,可能会提供工具和流程,以帮助企业实现这些优势。

 

2.1.2.2. 应用无侵入

应用无侵入的DevOps解决方案意味着通过EaseOps接入DevOps的应用无需在代码库上做任何的修改,只要通过简单的webhook配置,便能直接接入EaseOps的软件交付管线,这样可以带来许多优势和便捷,包括

 

● 更低实施成本: 无需对现有应用程序代码进行修改,从而避免了在应用程序级别进行重大更改的成本和风险。这意味应用方无需要在其代码库中放入任何和DevOps相关的内容, 保证了代码库的干净和整洁,从而降低了实施成本。

● 更快速接入: 应用无需在代码库上做任何修改,因此可以迅速接入DevOps流程。这有助于加快软件交付速度,减少上线时间。

● 简化集成: 通过简单的Webhook配置,应用程序可以直接连接到EaseOps的软件交付管线。这降低了集成的复杂性,使应用程序更容易与DevOps工作流程协同工作。

● 更少风险: 由于不需要修改应用程序代码,因此降低了引入错误和问题的风险。这有助于保持应用程序的稳定性和可靠性。

● 更强灵活性: 应用程序无侵入地接入DevOps允许多个应用程序以其自己的方式进行管理,而无需统一的修改。这提供了更大的灵活性,特别是在多个应用程序的环境中。

● 更低学习曲线: 开发团队无需学习新的开发方法或工具,因为他们可以继续使用他们已经熟悉的开发流程。

● 更易复现的工作流程: 应用无侵入的DevOps解决方案允许企业保留现有的工作流程和部署方法,而无需进行根本性的更改。

总之,应用无侵入的DevOps解决方案为企业提供了更简单、更经济和更快速的方式来接入DevOps流程,从而提高软件交付的效率,减少风险,同时保持对现有工作流程和应用程序的灵活性和控制。这种方法有助于企业更好地应对市场需求的快速变化,提高其竞争力。

 

2.1.2.3. 多租户隔离

多租户隔离的DevOps解决方案在EaseOps中意味着各个项目或实施团队之间的相互隔离,确保彼此的DevOps流程不会互相干扰,同时保障各自的数据和信息安全。这种方法带来了多种优势和安全性保障,包括:

 

● 隔离性: 不同项目或团队之间的隔离确保了它们的DevOps流程相互独立,互不影响。这有助于降低意外干扰的风险,确保每个团队可以按照自己的需求进行工作。

● 安全性: 多租户隔离确保了每个项目或团队的数据和信息的安全性。对于敏感信息和代码的保护至关重要,防止不相关的团队访问或获取到不应该知道的信息。

● 资源分配: 各个项目或团队可以独立分配和管理资源,以满足其特定的需求。这有助于更好地控制和优化资源使用,避免资源浪费。

● 性能预测: 隔离的环境允许每个项目或团队更容易预测性能,因为它们不需要担心其他项目对共享资源的影响。

● 减少冲突: 多租户隔离可以减少不同团队之间的冲突和争夺资源的问题,有助于团队之间更好地合作和协作。

● 多租户管理: EaseOps可能提供多租户管理工具,以简化不同项目或团队的管理和配置。

 

总之,多租户隔离的DevOps解决方案在EaseOps中为各个项目或团队提供了安全、独立和可管理的DevOps环境。这有助于确保每个团队能够独立开展工作,同时提供资源控制和安全性,以满足各自的需求。这种方法在多项目或多团队的环境中尤其有用,有助于提高效率、减少风险,同时保护敏感信息。

2.1.2.4. SCM(软件配置管理)高度可集成性

高度可集成性的DevOps解决方案,如EaseOps,可以快速接入各种现代流行的SCM(软件配置管理)工具,如GitHub和GitLab。通过简单的Webhook配置或主动拉取SCM的代码数据,它可以将代码的变更通知发送给EaseOps,从而带来了多种便利和优势,包括:

 

● 自动化构建和部署: 集成SCM工具使得EaseOps可以自动监测代码库中的变更,一旦有代码提交,就能触发自动构建和部署流程,从而加速交付速度。

● 持续集成: EaseOps的高度集成性允许团队快速实现持续集成,确保每次代码提交都经过自动构建和测试,从而提高软件质量。

● 实时通知: EaseOps能够即时接收到代码变更通知,以便及时采取行动。这有助于团队快速发现问题并及时解决。

● 协作和可见性: 集成SCM工具提供了更好的协作和可见性。团队可以共享代码库,进行代码评审,并监控项目的进展。

● 可扩展性: EaseOps的高度可集成性意味着它可以轻松地集成到不同的工具和服务中,以满足不同团队的需求,从而增强了可扩展性。

● 版本控制: 集成SCM工具可以有效地管理代码版本,确保每个构建都是基于正确的代码版本,从而减少错误。

● 日志和审计: EaseOps可以记录和审计与代码变更和构建相关的所有活动,以便追踪问题、分析性能和确保合规性。

 

总之,高度可集成的DevOps解决方案EaseOps,提供了更快速、更自动化、更可协作和可见的DevOps流程。这有助于团队更好地适应快速变化的需求,提高交付速度,确保质量,并加强协作。同时,它还允许团队将DevOps集成到他们已经使用的工具和流程中,以提高效率和可扩展性。

 

2.1.2.5. 简单易用

具有简单易用性的DevOps解决方案EaseOps,屏蔽了大量的容器化的编排的细节内容和管线构建的复杂逻辑,用户只需要通过非常简单的UI界面和配置,就能快速上手接入应用代码到DevOps管线。这样的特性带来了多种便利和优势,包括:

 

● 降低学习成本,缩短上手时间。对于缺乏DevOps经验的团队和个人,可以在不需要学习大量新概念和技术的情况下,使用EaseOps实现自动化部署。

● 减少出错机会。简单的配置取代了复杂的编排脚本,避免了脚本语法错误等问题的出现。

● 提高开发效率。开发团队可以更专注于业务代码本身,而不需要花费大量时间学习和配置底层技术。

● 易于监控和运维。EaseOps提供了直观的界面来查看管线执行情况、资源分配、日志等信息,便于快速定位问题。

● 具有扩展性。EaseOps支持模块化和插件式扩展,可以根据团队需求轻松接入公司现有系统、第三方服务等。

● 统一和标准化流程。利用EaseOps可以制定出统一的部署、测试、发布流程,有助于不同项目之间的协作。

● 提高部署频率。简化的部署流程可以帮助团队实现更频繁的迭代更新。

● 降低成本。简单易用可以减少人力和训练成本,无须专门的DevOps人员即可使用。

● 降低门槛和快速上手: 用户无需深入了解复杂的容器编排和管线构建概念,从而降低了学习和使用的门槛。这有助于吸引更广泛的用户,包括不擅长技术的团队成员。: 用户只需通过UI界面和配置完成必要的设置,即可快速上手使用EaseOps。这加速了DevOps的迁移速度,减少了实施和部署的时间。

● 节省时间: 简单易用的特性意味着用户不需要花费大量时间来学习和维护DevOps工具,从而释放更多时间来专注于开发和创新

 

 

2.1.2.6. 安全快速稳定

具有安全快速的DevOps解决方案EaseOps,通过租户隔离的手段保障了项目数据的安全,webhook 等机制提供了自动化快速构建的通道,这样的特性带来了多种便利和优势,包括:

 

● 数据安全: 租户隔离确保了不同项目之间的数据分离,从而保护了敏感信息和代码的安全性。这有助于防止未经授权的访问和数据泄露。

● 自动化构建: EaseOps通过Webhook等机制提供了自动化构建的通道,允许团队快速构建、测试和部署应用程序。这有助于加速交付速度。

● 持续集成: 集成Webhook机制意味着每次代码提交都可以自动触发构建和测试,确保每个更改都经过验证。这有助于提高软件质量。

● 实时通知: Webhook机制允许及时将代码变更通知发送给EaseOps,从而使团队能够迅速采取行动,快速解决问题。

● 快速迭代: 自动化构建和部署允许团队更快速地进行配置更改和实验,以不断改进其DevOps流程。

● 加强安全性: 租户隔离和自动化构建的机制有助于提高安全性,防止潜在的威胁和错误。

● 降低风险: 自动化构建和测试减少了人为错误的风险,提高了系统的稳定性和可靠性。

总之,安全快速的DevOps解决方案结合了安全性和自动化,以确保项目数据的安全性并加速软件交付。这有助于提高软件质量、降低风险,同时加强协作和可见性。这样的解决方案有助于团队更好地适应市场需求的快速变化,提高效率,同时提供更好的安全性保障。

 

2.2. EaseOps 的产品架构

如前所述, EaseOps中包含了众多有利于DevOps的特性, 例如:基于容器化, 应用无侵入,多租户隔离等等,那么现在让我们从技术架构的角度来看看EaseOps的整体构成的组件和相互之间是如何进行交付的是什么样的。我们以一次管线触发为例的视角来观察这个管线情况:

image.png

上图中只包含了在管线触发时会涉及到相关EaseOps组件和工作流,具体的流程如下:

 

1.请求触发和管线引擎预处理: 开发人员可以通过提交请求或EaseOps平台触发管线。这些请求经过管线引擎预处理,其中包括根据请求信息渲染管线引擎的请求。请求中包括元信息、上下文和环境变量等关键信息。

2.SCM请求和代码获取: 管线引擎使用元信息、上下文和环境变量向SCM(软件配置管理)系统发出请求,以获取与管线相关的代码。这确保了管线引擎在构建过程中使用正确的代码版本。

3.多个构建阶段: 构建管线通常包括多个阶段,每个阶段执行不同的任务。这些阶段包括拉取代码的阶段、构建制品的阶段、发布制品的阶段以及容器编排更新的阶段。每个阶段都有特定的任务和目标。

4.多种内置管线: EaseOps内置了多种不同类型的管线,以满足不同的需求。这意味着团队可以选择合适的管线来处理特定的任务或工作流程,从而增强了灵活性和可定制性。

 

除了上面的预置流程外, EaseOps还提供了管线模板定制化的方式,来对管线进行扩展。这意味着。 对于不同用户的需求

 

这些流程和组件的结合使EaseOps成为一个强大的DevOps平台,可以支持自动化构建、测试、部署和容器编排等各种DevOps任务。通过内置的多种管线,EaseOps使团队能够更轻松地满足其特定的需求,并以一种高效且可控的方式进行软件交付。这对于现代软件开发和交付过程至关重要,可以提高效率、质量和可靠性。

image.png

 

EaseOps的最下层是管线引擎以及管线引擎Drvier

当前的EaseOps使用是的是 Jenkins 作为管线引擎,使用Jenkins作为管线引擎的优点是:

● 强大的自定义能力: Jenkins是一个高度可定制的持续集成和持续交付工具。它允许开发团队根据其特定需求创建和自定义管线。这种自定义能力非常有价值,因为不同项目可能需要不同的CI/CD流程。

● 丰富的插件生态系统: Jenkins拥有大量的插件,可以与各种工具和服务集成。这意味着你可以轻松地将Jenkins与SCM工具、构建工具、测试框架、部署工具等集成,以满足你的需求。

● 开源和社区支持: Jenkins是一个开源项目,拥有庞大的社区支持。这意味着你可以充分利用社区贡献的插件和解决方案,以提高CI/CD流程的效率。

● 持续更新和改进: Jenkins的活跃社区意味着它经常得到更新和改进。这有助于确保你的CI/CD工作流程能够跟上最新的最佳实践和技术趋势。

● 强大的扩展性: Jenkins支持水平和垂直的扩展,允许你在需要时轻松扩展其性能和资源。这对于处理大型和复杂的项目非常有帮助。

● 多平台支持: Jenkins可在各种操作系统上运行,包括Windows、Linux和macOS。这使得它能够适用于各种开发和部署环境。

 

EaseOps封装了管线引擎的Driver。通过对管线引擎的API进行抽象,EaseOps可以实现更高的可扩展性和灵活性,从而为将来切换或集成其他管线引擎创造了机会,同时尽量减少对EaseOps更上层代码的修改。同时通过对管线引擎的API进行抽象,EaseOps为未来的发展提供了更多的可能性,同时降低了风险,提高了灵活性,使其能够适应不断变化的技术需求。这是一种有前瞻性的架构设计,具有以下优势:

● 未来的可替代性: 通过Driver的抽象,EaseOps为将来引入更强大的管线引擎提供了可能性,而无需进行大规模的修改。这意味着你可以随着技术的发展和新的最佳实践而迭代和改进你的DevOps流程。

● 降低风险: EaseOps的架构使得切换管线引擎变得相对较容易,因为许多底层细节已经被抽象化。这降低了更改或升级管线引擎时的风险。

● 灵活性: EaseOps的用户可以根据其需求选择适合的管线引擎,无需过多的自定义代码。这意味着可以根据项目的特定需求进行灵活配置。

● 社区驱动: 如果社区推出了更好的管线引擎,你可以更容易地集成它,因为你已经抽象了Driver层,不需要重写太多代码。

● 易维护性: Driver的抽象层使得维护EaseOps和管线引擎之间的接口更加清晰和稳定,减少了维护工作的复杂性。

● 技术选择的自由: 你可以在不受限制的情况下选择最适合你项目的管线引擎,而不必担心与EaseOps的整合问题。

在管线引擎Drvier 之上, 包含了EaseOps的核心的功能模块, 这些功能模块中包含了:

多租户管理, 模板管理, 环境和管线管理, 通知管理和WebHook

EaseOps 的多租户管理中包含了用户的认证,授权,以及权限管理和会话管理。EaseOps通过多组管理,完成了对用户的管线构建的隔离。 具体这些功能是:

● EaseOps的多租户管理系统包括了多个重要功能,以确保用户的认证、授权、权限管理和会话管理。这些功能有助于实现用户和管线构建的隔离,提供了多租户环境下的安全和有效的管理。以下是这些功能的具体内容:

● 用户认证: EaseOps提供了用户认证功能,以确保只有经过身份验证的用户才能访问系统。这通常涉及使用用户名和密码、单一登录 (SSO)、OAuth等身份验证方法。

● 用户授权: 一旦用户经过认证,EaseOps使用用户授权来确定用户可以访问哪些资源和执行哪些操作。这确保了用户只能执行其获得授权的任务。

● 权限管理: EaseOps的权限管理功能允许管理员为每个用户或用户组分配不同的权限级别。这包括访问不同的项目、管线、环境和功能等。权限管理有助于确保只有合适的用户能够执行特定任务。

● 会话管理: EaseOps跟踪用户的会话,以确保他们在登录后可以与系统保持连接。会话管理涉及到会话超时、单点登录、注销等功能,以增强用户体验和安全性。

● 多租户隔离: EaseOps通过多租户隔离确保不同组织、项目或团队的数据和管线构建得到隔离。这意味着一个租户的数据和操作不会影响其他租户。

● 用户组织和角色管理: EaseOps通常允许管理员组织用户成为不同的团队或组织,同时分配不同的角色。这有助于更好地管理和组织用户,以满足组织的需求。

● 审计和日志记录: EaseOps通常记录用户的操作和活动,以便管理员可以审计和监控系统的使用。这有助于追踪问题、确保合规性和安全性。

 

EaseOps的模板管理中,包含了预置模板,模板的版本,模板的版本管理, 模板的同步,模板资源管理等。 模板在EaseOps里面是一个非常重要的功能, 他定义了管线具体的执行的各个阶段,以及相关阶段设计到的代码, 目前EaseOps 预置了EaseStack的模板,这个模板 包含了“代码Clone”阶段、“代码构建”阶段、“制品发布”阶段、以及“服务镜像更新”等阶段。通过模板管理,EaseOps提供了强大的定制化功能。 用户可以写自己的模板来设计自己的流水线。 并且EaseOps还提供了简单的模板的版本管理功能。并保证模板能同步到管线引擎执行。以及模板所需要的相关资源的管理。这样的好处是:

● 可扩展性:引入模板的功能是为了提供流水线的可定制化的扩展性。因为EaseOps的设计者知道当靠预置模板是无法解决所有管线构建的需求。 通过对模板定制, 用户可以创建模板,修改模板等。在模板中用户可以编写特定的代码完成对模板的定制化。以扩充EaseOps能力而无需修改EaseOps的核心代码。

● 标准化流程:EaseOps的预置EaseStack模板是MegaEase 公司总结的行之有效的一套构建标准流程。 目前这套流程被广泛的用于MegaEase公司自己的流程, 也用于MegaEase的用户们。 所以在大部分情况,标准的EaseStack模板可以覆盖大多数的Java应用的构建,发布,和更新。

● 加速开发: 使用模板管理,团队可以更快地启动新项目,因为他们可以基于现有的标准或自定义模板构建管线,而无需从头开始。

● 易于维护: 模板的管理和版本控制使得维护和更新流程变得更加简单。团队可以定期审查和改进模板,以适应变化的需求。

 

接下来就是EaseOps的管线和环境管理, 环境主要用于管理不同的环境, 比如Dev 开发环境, Test 测试环境, Stagging 预发个环境等。 不同环境中相互隔离,每个环境中存在着一些全局所有管线都能共享的环境变量以简化管线的构建。管线管理包括对管线的基本操作, 如定时触发构建,手工触发构建,构建记录及日志等:

环境管理

● 环境隔离: 不同的环境(如Dev、Test、Staging)被隔离,确保了在不同阶段的开发和测试中的数据和配置的独立性。这有助于防止由于环境之间的冲突而引起的问题。

● 全局环境变量: 每个环境可以包含全局的环境变量,这些变量对于所有管线都是可共享的。这减少了在多个管线中重复定义相同变量的需求,提高了配置的一致性。

● 环境版本控制: EaseOps通常支持环境的版本控制,使你能够管理环境的变化和演进。这对于跟踪环境配置的历史记录和回滚是非常有用的。

 

管线管理:****

● 基本操作: 管线管理允许用户执行基本操作,如手动触发构建、定时触发构建以及查看构建记录和日志。这使得用户能够有效地控制管线的执行。

● 可视化: 管线管理通常提供可视化界面,让用户能够轻松地查看管线的状态、历史记录和构建日志。这有助于监控和分析管线的执行。

● 自动化: 管线管理还支持自动化操作,例如根据代码提交或其他触发条件来自动触发构建。这有助于实现持续集成和持续交付。

● 版本管理: EaseOps通常提供管线版本管理功能,以跟踪管线的演进。这对于维护和改进管线的稳定性和性能非常有帮助。

 

综合而言,环境和管线管理是EaseOps的关键功能,有助于确保不同环境之间的隔离性,同时提供了灵活性和可视化工具来管理管线的执行。这使得团队能够更有效地开发、测试和交付软件,同时确保了环境的一致性和可维护性。管线版本控制和自动化操作也有助于提高流程的效率和可靠性。

 

具有通知管理和WebHook功能EaseOps, 通过WebHook和SCM进行集成, 通过通知管理,将管线引擎执行构建整个过程的结果能接收下来,并通过多渠道的方式(邮件、短信、Slack等)进行实时的通知,把软件交付过程的错误能够及时的反馈给相关的人员。这样做的优点在于:

● 实时反馈: 通过通知管理,EaseOps可以实时将管线引擎执行构建过程的结果反馈给相关人员。这意味着任何问题、错误或失败都可以立即被捕捉,有助于快速响应和解决问题。

● 团队协作: 通过多渠道的通知,EaseOps促进了团队成员之间的协作和沟通。团队成员可以迅速了解构建状态,共同合作解决问题。

● 可见性: 通知管理提供了更大的可见性,使团队能够全面了解软件交付过程的进展和质量。这对于管理和决策制定非常有帮助。

● 多渠道通知: EaseOps支持多种通知渠道,包括电子邮件、短信、Slack等。这意味着团队可以选择他们最喜欢的通信方式,确保消息能够迅速被接收。

● 自定义通知: EaseOps通常允许用户自定义通知,以适应他们的需求。这允许团队针对不同的事件和情况设置不同的通知规则。

 

2.3. EaseOps 的产品功能

本章节描述EaseOps的产品功能特点。通过本章节的描述,用户可以快速的了解EaseOps的功能特性,以及了解EaseOps如何通过这些功能去解决用户在DevOps领域的痛点。

2.3.1. 租户管理

租户管理功能包含了基础的平台用户管理, 安全认证,以及权限管理,多租户管理的功能。

2.3.1.1. 用户管理

用户注册: 用户通过这个功能进行注册

image.png

 

双因认证功能: 用户通过这个功能可以绑定双因认证,让帐号更加安全

image.png

双因认证(Two-Factor Authentication,2FA)是一种用于增强账户安全性的措施,它要求用户在登录时提供两个不同的身份验证因素,通常是以下两者之一:

● 知识因素: 用户知道的信息,通常是密码或PIN码。

● 物理因素: 用户拥有的物理设备,如手机或硬件令牌。

 

双因认证的目的是在用户提供密码之外,还需要提供第二个身份验证因素,从而增加账户的安全性。这有助于防止未经授权的访问,即使密码泄漏也难以滥用。

通过启用双因认证,EaseOps为用户提供了额外的安全层,有以下优点:

● 增强账户安全性: 双因认证增加了账户的安全性,即使密码泄露,攻击者仍需要第二个因素才能访问账户。

● 防止未经授权的访问: 双因认证有效防止了未经授权的访问,因为攻击者需要物理因素,而不仅仅是知识因素。

● 降低密码泄露的风险: 即使用户的密码被泄露,由于需要第二个因素,账户仍然相对安全。

● 符合合规要求: 在某些行业和情境中,双因认证是合规性的一部分,启用它可以确保遵守相关法规和标准。

● 用户友好: 大多数双因认证方法相对容易使用,用户只需在登录时提供额外的因素,通常是通过手机应用程序生成的临时验证码。

总之,双因认证是提高账户安全性的重要措施,它有助于防止未经授权的访问,降低了密码泄露的风险,为用户提供了额外的安全保护。 EaseOps为用户提供双因认证功能是一个重要的安全措施,可以很好的保护用户账户的安全。

 

修改密码功能: 用户通过这个功能,可以修改密码

用户登录和登出功能: 用户通过这个功能可以登录DevOps或登出DevOps

租户管理:  在用户的租户下,用户添加/删除其他用户加入自己的租户之中

2.3.1.2. 权限管理

平台内置了三类权限,系统管理员,租户管理员, 租户成员等三种身份,其中:

系统管理员是内置角色身份,有如下的系统管理的权限:

● 管线引擎管理

● 流水线管理

● 模板管理

● 流水线授权管理

租户管理员, 有流水创建,删除,修改,执行的权限。除此之外租户管理员还可以授权流水编辑权限给特定的租户成员。

租户成员,只能观察流水线执行的结果。

 

目前这三类权限是固化在代码层面,根据MegaEase多年的实践经验,我们认为目前的权限设计是能够满足企业级的流水线管理的权限需求的。如果有实在特殊的权限管理,EaseOps可以根据特定场景进行一定程度的定制化。

 

2.3.1.3. 多租户管理

对于多租户,EaseOps对于不同租户的数据、项目,流水线是完全隔离的。隔离的含义是,当A租户下有一条流水线, 对于B租户是无法查看到这条流水线的存在的。但是对于平台的管理员是可以查看到所有存在的流水线。

同样和流水线相关的其他的数据等也是无法查看的,比如流水线的日志,流水线的执行记录等这些信息对于不同租户来说也是完全隔离。

多租户是平台实现的功能因此当用户注册到平台时,平台会自动为这个用户生成一个租户信息,并且将这个租户设置成平台的管理员。作为一个租户的租户管理员, 他可以邀请其他的用户加入他的租户,并对这些用户进行授权。默认加入租户的角色为租户成员,租户成员对流水线只有查看的权限。租户管理员可以为租户成员进行授权, 让租户成员可以启动流水线的权限。

 

2.3.1.4. 安全认证

EaseOps的安全认证主要包括以下关键方面:

● 身份认证(Authentication): EaseOps支持多种身份认证方式,确保用户只有合法访问权限。这包括用户名和密码认证、单一登录(Single Sign-On,SSO)认证,以及双因认证(2FA)等。

● 权限管理(Authorization): EaseOps具有细粒度的权限管理,允许管理员和团队领导为用户和组织分配不同的权限级别。这确保了用户只能访问其所需的资源和功能。

● 数据加密: EaseOps通过加密技术保护数据的传输和存储安全。这包括使用SSL/TLS加密来保护数据在网络上传输,以及数据存储时的加密技术。

● 多租户隔离: EaseOps为多租户环境提供了数据和资源的完全隔离,确保不同租户的数据相互隔离,以提高隐私和安全性。

● 审计日志: EaseOps记录了所有关键操作和事件,以便进行审计和安全监控。这有助于发现异常活动和潜在的威胁。

 

2.3.2. 环境管理和管线引擎管理

环境管理用于定义用户使用的环境, 环境信息是在所有租户中共享的。环境管理包括环境的定义和删除。

管线引擎管理主要包括有管线引擎的定义和删除。

2.3.2.1. 管线引擎管理

 

管线引擎列表: 管线引擎列表,用于显示现有的管线引擎信息,通过管线引擎列表可以对管线引擎执行更新和删除。

image.png

 

管线引擎新增: 新增管线引擎,通过管线引擎的新增功能,可以新增多个管线引擎。

image.png

 

2.3.2.2. 环境管理

环境列表: 环境列表可以查看当前的环境列表, 并可以针对特定环境进行其他的一些维护操作

image.png

环境新增删除修改: 维护环境相关信息的功能,主要用于绑定特定管线引擎

image.png  

2.3.3. 管线管理

 

2.3.3.1. 管线维护

 

管线新增,编辑、和停用:  管线新增用于新增管线,管线新增是一个向导页面。根据向导页面可以快速填写完管线

image.png

通过源码步骤可以选择需要用于管线执行的SCM的接入点。

image.png

触发这里,可以选择选择4类触发方式(可以同时选择), 分别是定时构建,轮讯SCM, Github WebHook, 以及GitLab Webhook 他们分别含义是:


定时构建: 指定一个类似crontab格式的定时器。EaseOps会在指定的时间进行无条件的构建。

轮询SCM: 指定一个类似crontab格式的定时器,EaseOps会在指定的时间,插件SCM是否有更新,如果有更新则构建。

Github WebHook: 如果SCM是GitHub, 则将我们的特定WebHook 填入到Github的WebHook中, Github的指定仓库当发生代码变化时,则进行构建了。

GitLab WebHook: 如果SCM是GitLab, 则将我们的特定WebHook 填入到Github的WebHook中, Github的指定仓库当发生代码变化时,则进行构建。

image.png

image.png

管线停用:管线停用,可以停用相关的管线

 

 

2.3.3.2. 管线构建

管线列表****

可以通过列表的方式查看到管线的详细情况。并执行管线的构建和详情的查看

image.png

管线详情****

在管线的详情页,我们可以查看到管线的构建的详细记录。 并且对不同的触发方式,做了不同的分类。可以分别查看到定时类触发的记录, Webhook触发的记录,以及手动触发的记录。

  image.png

在具体的记录中,我们还可以看到相关的代码变更的情况,通过点击变更可以看到:

image.png

通过日志我们可以看到构建过程中的日志,以方便使用EaseOps的用户能够调试相应的构建的脚本:

image.png

 

管线构建:****

通过管线列表,点击构建后,可以看到管线构建的一些参数设置,这些参数都是和特定的模板挂钩。当前平台预置的模板中有如下的参数需要填写。

  image.png

 

 

2.3.4. 通知管理和WebHook

在EaseOps中,提供了多渠道通知管理的能力。可以通过Email/Sms/Slack/Discord 等为渠道将消息。这样可以将DevOps构建成功和失败的消息推送通过通知渠道进行推送。

image.png

同时,EaseOps也提供DevOps,可以让接收来自与SCM的推送消息。

(全文完)