来自 DDOS 2022-06-09 13:00 的文章

cc攻击防御_游戏ddos防护_秒解封

cc攻击防御_游戏ddos防护_秒解封

DevOps内部:保持合规性,保持生产力Palantirfollow 2019年5月24日6分钟阅读

成长型公司经常面临速度和合规性之间的权衡,被迫在快速发展和突破之间做出选择,app如何防御cc,使用马克·扎克伯格(Mark Zuckerberg)现在臭名昭著的口头禅,或者严格遵守规则和政策,落后于愿意承担更多风险的竞争对手。在Palantir,我们经常考虑这种权衡,因为我们的商业模式依赖于对它的挑战;我们已经在世界上最重要的机构中建立了自己的声誉,在这些机构中,速度和合规性都是不可谈判的。

Palantir的DevOps组织的责任之一是帮助避免这种权衡。我们为减少摩擦和消除低效而自豪,我们构建的工具可以将勾选复选框的工作转化为符合设计要求的流程,并增强工程流程。为此,我们最近开发并开源了两个对我们的工作流程至关重要的GitHub应用程序:Policy Bot和推土机。本帖的其余部分将探讨我们构建这些工具的动机以及它们的工作方式。

策略Bot

任何合规制度的基本要求之一是,无论是对软件还是对基础设施的更改,在投入生产之前都要进行审查。由于Palantir遵循基础架构作为代码实践,因此此审查几乎总是以代码审查的形式进行。要求代码评审听起来像是一个简单的问题,但当我们调查了具有不同工作流的开发团队时,需求变得更加微妙。例如:

针对特定分支机构的变更,如临时分支机构,公司网站ddos攻击防御,不需要审查。某些类型的变更可能需要我们的信息安全或法律团队的额外批准。某些类型的变更,如文件,是预先批准的,不需要审查。当多个环境的配置集中在一个存储库中时,开发人员应该能够在获得同行批准的情况下更改各自的环境(例如通过存储库中的子文件夹进行标识),没有阻止DevOps团队成员的批准。

如果这些条件中的任何一个不自动化,都会使开发人员中断他们的流程,迫使他们寻求并中断其他人的批准,并且不必要地延迟更改。当团队在地理位置上分散或忙于其他工作时,可能需要几天时间才能合并更改。

因为我们使用GitHub进行源代码管理,第一个候选解决方案是GitHub的required reviews功能。不幸的是,我们很快发现这一点太过局限:审查不能以文件或分支更改为条件,所有具有写访问权限的用户都可以留下批准更改的请求审查,并且随着需求的发展,没有扩展点。构建与GitHub集成的我们自己的审批工具似乎是最好的选择,这导致了策略Bot。

策略Bot通过将多个规则与逻辑和/或运算符相结合来定义审批条件。每个规则都有谓词,用于确定何时应用。例如,如果DevOps团队成员批准或拉动请求仅更改测试文件,则以下策略批准拉动请求:

策略:批准:-或:-DevOps团队批准-仅更改测试文件批准规则:-名称:DevOps团队批准要求:计数:1个团队:palantir/DevOps"]-名称:仅更改测试文件if:only_changed_files:path:test/*"]

。其他受支持的谓词允许用户表达与拉取请求的作者、目标分支和贡献者有关的规则。

策略在每个存储库的YAML文件中定义,使它们与常规代码受相同的批准条件约束。虽然策略被设计为人类可读,但理解某个pull请求的每个规则的状态可能很有挑战性。这就是为什么Policy Bot还提供一个显示所有规则状态的UI:

cc攻击防御_游戏ddos防护_秒解封

策略Bot在产品和基础设施团队中得到了广泛采用。根据经验,我们发现对复杂审批规则的要求是有根据的:Middian项目使用五条规则——已经超过GitHub本机支持的规则——而最复杂的配置存储库之一使用了上百条规则。

推土机

策略机器人提供了我们所需的细粒度审批条件,我们很快就遇到了另一个问题:提交了批准的更改的开发人员无法合并他们自己的请求,因为他们没有写权限。这消除了策略Bot启用的自助服务的许多好处,在DevOps工程师能够执行合并之前阻止了进程。不幸的是,GitHub的写入权限非常粗糙,因此不能让所有用户都对这些敏感的存储库进行写入访问,这样他们就可以合并他们批准的更改。