基础设施即代码(Infrastructure as Code, IaC)是指以预先构建的模板形式利用代码来提供支持基于云的应用所需的基础设施资源的方法。。这是一种高重复性的方法,开发者可以用它来编写、测试和发布代码,创建应用程序运行的基础设施。。このプロセス全体を、継続的インテグレーション・継続的デプロイメント(CI/CD)ソフトウェアパイプラインの一部として自動化できます。
这是一种非常有用的方法,因为当你把新代码推到生产环境时,你不需要手动提供资源。。可重复的任务是自动化的,这样团队就能更快地完成产品。。
安装IaC可以让开发人员更快、更有效率地进行工作,但通常也有缺点。。这种速度的提高往往削弱了平台和DevOps团队的控制和监控,在某些情况下资源被不合理地提供,甚至在最坏的情况下以不安全的方式创建列表就会有泄露的风险。。こうした事態に対抗するためか、Forresterの最近のレポートによれば全球安全部门58%的高级决策者计划在2022年增加应用安全预算。。
但是,如果在开发周期中整合安全的话,SecOps会与DevOps步调一致,尽可能迅速地妥善保护工作负载,因此开发人员和安全负责人之间可能会产生摩擦。利玛窦。
それぞれの環境と目的は異なります。因为不同的工具有适合和不适合的地方,所以需要针对特定的需求调查最适合的工具。。值得注意的是,很多云服务商都在自己的平台上提供本地的工具和服务。。为了避免与采用特定平台时已经设置的功能重复,在进行调查时要考虑到这一点。。
当社のアプローチの詳細を確認:クラウドセキュリティとDevOpsおよびCI/CDツールの統合
Terraform可以帮助用户定义资源和基础设施,这是一种人类可解读形式的声明文件。。我们不仅可以在多个云平台上管理基础设施的生命周期,还可以跟踪整个部署的资源变化。。
Chef Infra允许用户定义可重复的、一致的、可重用的策略,并自动化地进行配置管理。。我们可以将设定和策略定义为代码,可以测试和强制,可以作为自动化管道的一部分大规模分发。。必要に応じて設定からの逸脱を検知し、修正することもできます。
Puppet是一个使用声明代码来帮助管理和自动化服务器设置的工具,它可以扩展基础设施自动化以满足组织的IT需求。。用户可以描述他们想要的系统状态,而不是达到目标所需的步骤。。
AWS CloudFormation可以帮助用户使用DevOps来管理基础设施。CI/CD自动化可以实现自动化、测试和基础设施部署模板。。你也可以扩展和管理基础设施,包括在CloudFormation注册表、开发者社区和用户库中公布的云资源。。
Ansible是一款开源命令行IT自动化软件应用,用于系统配置、软件部署、高级工作流调整,应用程序的部署和执行更新tem等。。Ansible最大限度地减少了所谓的“可移动部分”,传送使用OpenSSH,并且采用了人类可以解读的语言形式,用户可以立刻开始使用。。
SaltStack是一个基于Python的开源软件,用于执行和管理远程任务,帮助用户部署和配置复杂的IT系统。。将人类可解读的YAML和事件驱动型自动化结合起来,为ITOps、DevOps、NetOps和SecOps的各个部门带来好处。。
如上所述,IaC在云环境中的主要优势在于速度,但如果进一步深入挖掘,还可以发现其具体的商业优势。。
現代の企業の大半が達成しようとしているマクロ的な利益としては、壮大な「シフトレフト」が挙げられます。これは、DevOpsとSecOpsを真のDevSecOps将安全转移到CI/CD管道,将安全和合规从事后应对转变为预防措施。。
通过以上的说明,我们可以知道定义IaC的方法有很多。。再深入一点,有两种常见的分类:宣言型IaC和命令型IaC。。简单地说,这些是指如何指导开发人员在IaC自动化平台上做什么。。
在这个方法中,用户宣布他们想要的结果,并让系统根据预先建立的模板和规则来实现这个结果。。因此,用户对设定过程的技术知识要求变少,通过委托提高效率。。在这里,用户基本上是在说:“你希望这个结果在过程完成后发生,但你不在乎你怎么做。”。另外,它还有一个好处,那就是用户可以更有战略地接近整个应用的形成和部署。。
简单地说,IaC在性质上是描述定义代码运行的云基础设施的语句。。声明型IaC是达到期望结果的更快更简单的方法,通常是最常用的方法。。
由用户来定义每个步骤,这听起来像是一个很大的缺点,有时也确实很难做到。。在这种形式下,用户需要对编程语言有很深的了解,也需要完美地执行每一个步骤来让整个程序发挥作用。。它的优点是,用户可以更详细地控制自动化过程和代码,并根据具体情况的需求来定制设置过程。。
其中,对控制器做出“重复该循环,检查该边界条件,在满足条件的情况下执行该操作,在不满足条件的情况下执行该其他操作”等正确的指示。包括:。命令式编程本质上是一种微观管理,通常是由人主导的。。
即使IaC的使用提高了开发生命周期的速度和效率,也要确保安全。。因此,在过程中尽早实现安全控制和检查是必不可少的。。这样你就可以在问题出现之前检测出模板中的问题,从而避免创建不符合组织标准的资源。。我们来看看IaC的一些问题(不用担心,它的好处更大)。。