具有Web应用程序防火墙和性能分析的GitLab 12.3


在相当长的一周时间里,本月的GitLab 12.3版本特别有趣,我们在纽约布鲁克林举行了首次GitLab用户大会,并宣布完成E系列融资阶段:筹集了2.68亿美元 。 有了这笔钱,我们可以大大改善我们对DevOps的所有报价,包括监控,安全性和计划。


Web应用防火墙


现代Web应用程序面临着无处不在的新风险,包括每个发送流量的已连接客户端。 Web应用程序防火墙(WAF)提供监视和规则,以保护生产环境中的应用程序。 在GitLab 12.3中,我们介绍了内置在GitLab SDLC平台中的Web应用程序防火墙的第一个版本。 他将监视和报告Kubernetes集群的安全问题。 在将来的版本中,我们将扩展WAF的功能,以便它可以阻止恶意流量,创建和管理防火墙规则,并在开发的早期阶段接收信息以采取行动并降低风险。


生产力分析第一版


负责交付软件的团队始终需要正确的信息和分析,以提高生产力和效率。 瓶颈和杂乱无章常常使它们等待和浪费时间,而不是采用新功能。 从版本12.3开始,我们提供了新的分析功能,以帮助团队和领导者更好地了解团队和项目的生产力和有效性。 生产力分析帮助团队及其领导者找到提高生产力的最佳方法。 最初着眼于合并合并请求所花费的时间,GitLab将允许您详细研究数据并找出可以改进的内容和方法。 在许多组织中,经理参与多个项目,并且组级别分析工作区提供有关多个项目的生产率和生产率的信息。 这两个功能是旨在提供信息和分析以提高效率的一系列更新中的第一个。


增强合规性


遵守政策和程序会给开发人员带来很多问题。 当开发人员在同一应用程序中一起工作时,许多GitLab用户可以更轻松地执行合规性。 GitLab 12.3发布了一些功能,这些功能可以简化操作以降低合规风险。 合并请求批准规则可防止代码合并引入不支持的许可证。 每个分支都需要代码所有者的批准有助于保护分支 ,因为代码所有者必须批准所有更改。


不仅如此!


GitLab 12.3具有许多很棒的功能,以至于不可能谈论每个人(尽管我真的很想)。 通过全局视图可更方便地查看资源信息,以用于组级环境和群集部署在Git中使用压缩的Git HTTP链接进行更有效的Git检索;对下一个和以前未解决的讨论进行更有效的按键检查。


本月最有价值员工( MVP )- 塞德里克·塔宾CédricTabin)
通过Cedric的努力,GitLab 12.3 为CI作业引入了一个新关键字,该关键字允许中断构建 。 他从事此功能超过9个月,并与我们的验证团队合作将其包含在发行版中。

塞德里克,感谢您所做的宝贵工作!

GitLab 12.3的主要功能


Kubernetes入口的Web应用防火墙


核心,入门,高级,终极,免费,古铜,银,金


现在,当您在Kubernetes集群上安装Ingress应用程序时,GitLab现在将Web应用程序防火墙(WAF)modsecurity插件添加到集群中。


WAF确定传入的HTTP或HTTPS通信是否包含恶意代码,例如SQL注入,crossite脚本或特洛伊木马。 WAF已经具有有效的规则,即OWASP ModSecurity核心规则(CRS),无需额外配置即可定义不同类型的攻击。


文档描述了如何查看WAF日志以及找出您的应用程序在生产环境中暴露于哪种恶意流量。



生产力分析


高级,终极,银,金


现在,数据源和分析相对较少,管理人员需要此信息来了解团队,项目和团队的生产力。 正如彼得·德鲁克(Peter Drucker)曾经说过的:“可以衡量的东西可以改进。” 遵循这一原则,我们发布了生产力分析的第一版,以帮助管理人员了解典型模式并找到提高整体生产力的更好方法。 此版本重点关注基于大小合并合并请求所花费的时间。 用户可以使用现有的过滤器,并在指定的日期范围内研究特定组中特定作者或标签的详细条目。 在未来版本的Productivity Analytics中,我们将添加其他数据,以便我们发现依赖关系,这些依赖关系会增加积极开发或期望的时间。


在Productivity Analytics的第一版中,我们并未开始收集新指标的历史数据,因此该后台流程不会干扰从12.2到12.3的过渡。 您可以在我们正在处理的任务上关注它



集群级环境和部署的全局视图


高级,终极,银,金


对于运营商来说,在组级别建立集群非常方便,从而为开发人员提供了应用程序开发平台。 扩展集群资源并不容易。 这需要资源使用的全局视图。 集群页面上新的环境部分概述了使用Kubernetes集群的所有项目,包括准备好的环境和部署以及每种环境中的Pod数量。



批准合并请求以防止合并禁止的许可证


终极金


如果您有严格的许可证限制,则可以将“许可证合规性”配置为在合并请求中存在禁止的许可证时禁止合并。 这将防止明确禁止的许可证。 现在,您可以在项目设置中为“许可证检查”组配置批准者,并根据文档中的说明进行验证。



GitLab 12.3中的其他改进


分析工作区


核心,入门,高级,终极,免费,古铜,银,金


工程师和产品专家可以是不同的GitLab组和项目的成员,但是分析通常是在项目级别进行的。 因此,我们创建了一个工作区,用户可以在其中收集来自不同组,子组和项目的信息。 分析工作区简化了参与者和领导者团队指标的分析和管理。 工作区将在核心级别可用。 但是在某些情况下,某些功能将可用于企业版。 随着分析工作空间的发展,我们保证在移至新工作空间时,社区版用户将可以使用项目级别的现有分析功能。 在GitLab 12.3中,我们在小组和项目级别发布了Productivity Analytics的第一个版本,并在小组级别发布了Cycle Analytics。 在接下来的版本中,可以选择不同的组和子组,并为该实例转移所有分析功能。 我们很高兴听到您对分析和价值流管理策略的看法。



设计管理通知


高级,终极,银,金


在GitLab 12.2中,我们发布了设计管理的第一个版本。 持续开发要求将这些活动通知用户。 设计中的对话现在将为所提到的用户创建任务,并根据他们的设置发送通知。 这样可以确保他们不会错过重要的评论,并且可以采取行动。 在下一个版本中,为方便起见,我们会将这些对话添加到“主要讨论”选项卡中。



合并请求批准规则的API


入门,优质,终极,古铜,银,金


合并请求的批准规则使您可以指定谁应参与代码审查-您分配批准者和最小批准数。 批准规则显示在合并请求小部件中,因此易于查看下一个审阅者。


在GitLab 12.3中,对批准规则的支持已添加到项目和合并请求的API中。


下一个和上一个未解决的讨论的​​键盘快捷键


核心,入门,高级,终极,免费,古铜,银,金


测试,讨论和解决反馈是GitLab代码审查的核心。 使用跳至下一个未解决的讨论按钮,您可以轻松地在讨论之间进行讨论。
在GitLab 12.3中,新的“ n”和“ p”键盘快捷键使您可以跳转到合并请求中的下一个(下一个)和上一个(上一个)未解决的讨论,以使查看更改变得更加容易。



API需要分支机构代码所有者的合并请求批准


高级,终极,银,金


合并请求的批准将代码的发送限制到安全分支,这有助于提高代码的质量并实施控制合规性的措施。 但是,并非所有合并请求都针对稳定分支而设计,也不是所有稳定分支都需要相同的控制。


在GitLab 12.3中,您可以要求代码所有者批准某些分支机构(通过API),以防止更改直接发送到文件或合并更改而无需批准代码所有者。


注意事项 只有通过GitLab 12.3中的API才能使用此功能。 在GitLab 12.4中,它将在安全分支设置中可用。 关注任务13251中的新闻。


灵活的“规则”关键字,用于控制管道行为


核心,入门,高级,终极,免费,古铜,银,金


only/except管道中的规则可以隐含不同的隐式操作,添加的隐式操作越多,则越难理解某个特定任务是否将在不同情况下执行。 我们介绍了新rules:语法,它将大大简化复杂规则的实现和理解。 此语法是可选的,并且可以与当前的“ only/except方法存在于相同的管道中,但不能存在于相同的任务中。


唯一/例外:外部存储库的external_pull_requests


核心,入门,优质,终极,银,金


在GitLab CI中,您可以与外部存储库一起使用以将它们用于版本控制,也可以与GitLab for CI / CD一起使用。 到目前为止, CI_PIPELINE_SOURCE始终显示推送,因为它基于pull镜像,而不是外部存储库或Webhook。 因此,GitLab only/except: merge_requests错误地支持only/except: merge_requests 。 在版本12.3中,我们删除了此限制。


从CI / CD删除容器映像


核心,入门,高级,终极,免费,古铜,银,金


GitLab容器注册表允许用户使用GitLab CI / CD收集图像和标签并将其发送到项目。 通过CI注册用户服务帐户对Container Registry进行更改,该帐户从.gitlab-ci.yml预定义环境变量CI_REGISTRY_USER 。 以前,服务帐户可以将新标签发送到注册表,但是缺少删除这些标签的权限。 这阻止了与分支有关的图像的删除,这导致了额外的存储成本和注册表界面上的导航复杂,因为其中有很多额外的标签。


在版本12.3中,我们扩展了CI_REGISTRY_USER的权限,并允许它删除图像标签,以便它可以在正常CI / CD工作流程中删除与分支相关的标签,并使用Gi​​tLab CI / CD自动执行清理脚本。 由于改进了存储管理,此任务是降低Container Registry成本的重要史诗的一部分。



运行完整的活动DAST扫描时的域验证


终极金


现在,您可以确保DA​​ST仅运行专门为DAST扫描配置的活动域扫描。


这样,您将确保在提供内容或用作工作的域中不会意外执行活动DAST扫描。


在被动DAST扫描中,没有任何变化。 他们没有打扰任何人。


SAST Spotbugs Analyzer针对Java 11进行了更新


终极金


SAST SpotBugs分析器已更新,如果您在项目中设置SAST_JAVA_VERSION环境SAST_JAVA_VERSION ,现在可以扫描Java 11代码。


用于合并请求的管道运行管道按钮


高级,终极,银,金


合并请求的管道最近收到了一种在合并请求的上下文中启动管道的新方法,但是您只能为此使用push。 在此版本中,我们添加了一个用于启动新管道的按钮,现在重新启动失败的管道更加容易。


用户定义的CI变量,用于使用Auto DevOps进行Docker构建


核心,入门,高级,终极,免费,古铜,银,金


CI变量使您可以自定义在CI管道中构建应用程序的过程执行。 从GitLab 12.3开始,可以在Auto DevOps的docker build阶段访问用户定义的变量。 数据作为新的build secret值提供。


使用AUTO_DEVOPS_BUILD_IMAGE_FORWARDED_CI_VARIABLES变量打印一个或多个变量,它将在AUTO_DEVOPS_BUILD_IMAGE_FORWARDED_CI_VARIABLES docker build使用。


适用于集群和实例集群


核心,入门,高级,终极,免费,古铜,银,金


现在,组和实例集群支持Knative的安装, Knative是基于Kubernetes的平台,用于部署和管理无服务器负载。 因此,多个项目将能够在同一集群上使用GitLab Serverless功能


公制面板的折线图


核心,入门,高级,终极,免费,古铜,银,金


通常,用户希望根据度量标准选择图表的类型(例如,CPU的折线图,具有磁盘空间区域的图表)。 为此,我们添加了折线图以改进仪表板。



在任务中添加和删除Zoom约会的快速步骤


核心,入门,高级,终极,免费,古铜,银,金


在紧急情况下,同步协作非常重要。 通过使用Zoom直接将此功能集成到任务中,我们优化了会议开始过程并吸引了所有必要的专家。


用户启动Zoom会议时,可以通过输入会议的URL(例如/zoom https://gitlab.zoom.us/s/123456 ),通过快速操作将其附加到任务上。 可直接访问电话会议的按钮将显示在任务顶部。 解决事件后,可以使用/remove_zoom删除Zoom会议。


这是GitLab.com上的一项公共功能,在自我管理的实例中,您需要使用该开关。 如果要在自我管理的GitLab实例中使用此功能,操作员可以打开issue_zoom_integration函数的开关。 在下个月发布的GitLab 12.4中,我们计划删除功能开关 ,并向所有自我管理实例用户公开使用Zoom集成任务。



Geo通过Git HTTP显示推操作期间辅助节点的延迟


优质,极致


如果用户离得很远,获取大量数据可能很耗时。 使用Geo复制存储库可以加快克隆过程和获取大型存储库的速度,因为它会在远程用户旁边创建只读辅助节点。 辅助节点位于主要节点之后,因此当通过git push over HTTP使用时,GitLab现在显示出近似的复制延迟。 用户在使用“地理”节点时会获得更多信息,他们可能会注意到延迟增加,并将其报告给系统管理员。


由于协议限制,使用git pull时此消息不可用。


对某些OAuth提供程序禁用两因素身份验证


核心,入门,高级,终极,免费,古铜,银,金


如果组织使用强制性两因素身份验证并且身份提供商也使用2FA ,则用户可能会对双重身份验证不满意。 感谢社区的投入,您现在可以在GitLab中为某些OAuth提供程序禁用2FA。 因此,使用具有2FA的提供程序的组织将更方便地登录到GitLab。


感谢您的贡献, dococat


IP限制支持多个子网


终极金


作为通过IP地址限制组操作功能的一部分 GitLab 12.3提供了指定多个IP子网的功能。 这对于地理位置分散的组织非常方便:大型组织现在可以根据特定需求限制传入流量,而不是指定授予过多权限的单个范围。


亚搏体育app Runner 12.3


核心,入门,高级,终极,免费,古铜,银,金


今天我们发布了GitLab Runner 12.3! GitLab Runner是一个开源项目,
用于运行CI / CD作业并将结果发送回GitLab。


变化:



可以在GitLab Runner更改日志中找到完整的更改列表: CHANGELOG


性能增强


核心,入门,高级,终极,免费,古铜,银,金


对于任何大小的GitLab实例,每个版本都将继续提高GitLab的性能。


GitLab 12.3中的一些改进:



设计管理中讨论的状态和数量


高级,终极,银,金


在GitLab 12.2中,我们引入了设计管理的第一个版本,该版本允许您将设计直接加载到任务中。 它们被加载到任务中的单独选项卡上,并且设计的每个版本中的操作对于用户而言都是难以理解的。 现在,在加载设计时,状态图标会添加到每个版本中,以区分新设计和已更改的旧设计。 我们还对设计进行了许多讨论,以向用户提供更多信息。 我们很高兴在设计管理中添加了这些内容,可以改善设计人员和工程师在GitLab上的协作和讨论。



Git HTTP链接广告压缩


核心,入门,高级,终极,免费,古铜,银,金


当在Git存储库中收到更改时,Git服务器将列出存储库中的所有分支和标记。 这就是所谓的链接声明,如果项目很大,它可能会占用许多兆字节。


在GitLab 12.3中,当通过HTTP接收时,将为受支持的客户端压缩链接声明,以减少传输的数据量并加快接收操作。


在一个典型的工作日中,GitLab.com处理大约850 GB的HTTP链接广告。 启用链接压缩后,此体积减少了约70%。



Git推送事件(测试版)的审核日志


入门,优质,终极,古铜,银,金


可以重写Git的历史记录以更改提交,作者和时间戳,并为将来的开发人员留下一个清晰易懂的故事。 但是对于审核,这是一个问题。


在GitLab 12.3中,可以将发送提交,重写历史记录或以其他方式更改存储库的Git推送事件添加到审核日志中。 默认情况下,禁用推送事件的审核日志,以免由于高Git写流量而损害GitLab实例的性能。


在下一版本中,默认情况下将启用Git推送事件的审核日志。 请继续关注任务7865中的新闻。


Web IDE中更智能的默认提交


核心,入门,高级,终极,免费,古铜,银,金


以前,默认情况下,在Web IDE中选择了对当前分支提交 。 但是在这种情况下,具有权限的用户可能会意外地将更改发送到主服务器或其他受保护的分支。 现在,当对Web IDE进行更改时,默认的提交选项不允许将更改发送到错误的分支。 更聪明的提交选项可防止意外发送到向导,并为具有写权限的用户保护分支安全。 如果用户没有写许可权,则会提供有关为什么选项不可用的信息。 另外,新的提交选项支持在有或没有现有合并请求的情况下提交到非默认分支。



CI / CD管道中作业的等待时间不同


核心,入门,优质,终极


不同的任务具有不同的执行特征,因此等待时间也可能有所不同。 您可以timeout:.gitlab-ci.yml中的作业中指定timeout:关键字来配置timeout:指定一个数字来指示作业失败之前需要等待多少分钟。


感谢您的贡献, Michal Siwek


interruptible关键字指示是否可以安全地取消作业。


核心,入门,高级,终极,免费,古铜,银,金


使用新的interruptible关键字,可以指定是否在再次启动同一任务后不再需要该任务时取消该任务。 默认情况下,关键字为false ,可用于可以安全停止的任务。 仅在启用了不必要的自动管道取消功能后才能指定此值。


这避免了管道中不必要任务的重复,降低了成本并提高了管道效率。


由于Runner中错误,某些正在执行的程序在取消后不会停止运行任务。 我们计划在12.4中修复此问题。

检查管道触发器的状态


高级,终极,银,金


最近,我们改进了不同项目中的管道相互启动的方式,但是缺少了一个-触发管道必须等待或确认下一个管道的成功完成。 可以通过API轮询来做到这一点,但是在此版本中,我们引入了dependwait策略来自动解决此问题。 如果选择depend ,则先前的管道将等待该管道完成并验证其成功,然后再完成启动任务。 如果选择wait ,则管道将等待完成,但是即使发生故障也将继续做自己的事情。


用于输出Docker组标签/图像的API端点


核心,入门,高级,终极,免费,古铜,银,金


使用GitLab容器注册表,您可以从命令行,CI / CD或API收集Docker标签/图像并将其发送到项目。 但是在GitLab 12.3发行之前,尽管用户经常要求,但我们并未在组级别提供有关标签和图像的信息。


我们添加了两个API端点,这些端点将显示组级别上存在哪些图像和标签。 这是提高容器注册表的可见性和搜索的第一步。 然后,我们使用API Container Registry用户界面中创建组级浏览器


没有Docker-in-Docker的SAST扫描


终极金


可以选择在没有Docker-in-Docker的情况下执行SAST扫描。


也就是说,您可以配置SAST扫描,使其不需要提升的特权。


编辑忽略漏洞的原因


终极金


现在可以编辑和删除忽略此漏洞的原因。


如果您有更多信息,则可以通过这种方式添加和更改漏洞的上下文。



初始页面设置更方便


核心,入门,高级,终极,免费,古铜,银,金


为了更方便地使用Pages,我们添加了一个标语,用于通知用户大约的初始设置时间。 我们了解当出现祝贺消息且该页面不可用时的烦人程度。 标语可以帮助您了解期望。



映射用于部署的Kubernetes集群


核心,入门,高级,终极,免费,古铜,银,金


作业详细信息页面现在将显示用于特定部署的Kubernetes集群的名称。 项目所有者和维护者会看到一个链接,该链接带有指向集群详细信息页面的集群名称。



JupyterHub用于组级Kubernetes集群


核心,入门,高级,终极,免费,古铜,银,金


组级集群现在支持JupyterHub的安装, JupyterHub是一种多用户服务,可轻松启动笔记本并为操作员创建说明 。 这扩展了JupyterHub对于项目和组集群的可用性。


Slash命令关闭Slack中的任务


核心,入门,高级,终极,免费,古铜,银,金


没有聊天,对现代IT事件的解决方案是不完整的。 该工具应与您管理的系统以及解决情况的工具紧密集成。 建议您在还原服务并通知第三方利益相关者时,最小化上下文并在工具之间进行切换。


在版本12.3中,我们在基于Slack的ChatOps中的命令集中添加了一个额外的斜杠命令。 现在,您无需打开其他工具即可在Slack中关闭任务-只需找到任务并手动将其关闭即可。 您可以在工作所在的位置关闭任务。



Geo原生支持Docker Registry复制


优质,极致


Geo原生支持主要和次要Geo节点之间的Docker Registry复制。 地理用户现在可以在最近的辅助站点上使用Docker Registry。 此方法不考虑存储,可用于存储对象(例如S3)或本地存储。


将分布式对象存储(例如,S3)用于Docker Registry时,主要和辅助Geo节点可以使用相同类型的存储。 此方法不使用本地地理复制。


API操作包含在组IP地址限制中


终极金


GitLab 12.0引入了对按IP地址进行的组操作限制 。 我们开发了此功能,并在其中包含通过API进行的操作。 现在,如果传入请求不符合组限制,则将被拒绝。 对于具有严格要求和高级访问控制方法的企业来说,这解决了一个重要问题,因为此处考虑了用户界面和通过API的操作。


用于更新项目成员和组的系统挂钩


核心,入门,高级,终极,免费,古铜,银,金
系统挂钩通过在GitLab上发生各种事件而启动请求,从而为自动化提供了充足的机会。 多亏社区的投入,系统挂钩现在支持对项目成员和组的更改。 对于需要新的监督和自动化水平来更改参与者的人员来说,这是一个很大的补充。


感谢您的输入,布兰登·威廉姆斯!


使用S / MIME签名电子邮件


核心,入门,高级,终极,免费,古铜,银,金


现在可以使用S / MIME对GitLab电子邮件通知进行签名,以增加实例级的安全性。


感谢西门子, @ bufferoverflow@dlouzan的贡献!


综合增强功能


核心,入门,优质,终极



不推荐使用的功能


.gitlab-ci.yml , , GitLab 12.3


.gitlab-ci.yml, DEP_SCAN_DISABLE_REMOTE_CHECKS DS_DISABLE_REMOTE_CHECKS , — .


, .
GitLab 12.0 .


: GitLab 12.3


gitlab-monitor gitlab-exporter.


GitLab Monitor, gitlab-monitor gitlab-exporter. gitlab-exporter — - Prometheus, GitLab, GitLab Monitor , GitLab. Omnibus, gitlab.rb .


: 22 2019 .


.


GitLab 10.0 , . , , .


, GitLab 12.5.


, .


: 22 2019 .

Source: https://habr.com/ru/post/zh-CN469623/


All Articles