过渡到新的DevOps技术可能是一项艰巨的任务,特别是当它可能影响到全球数百万开发人员使用的解决方案时。JFrog自己的DevOps团队最近采用了Terraform来支持JFrog SaaS产品,并在此过程中帮助指导Artifactory创建对Terraform模块、提供者和状态文件的支持。

加入我们30分钟的网络研讨会,Amit Daniel, JFrog DevOps团队负责人,Ben Ifrach, JFrog产品经理,坐下来讨论采用Terraform的经验,以及这些经验如何直接影响在Artifactory中支持它。我们将讨论:

  • 是什么促使JFrog使用Terraform
  • 在做出改变时克服的障碍
  • 影响产品开发的经验教训
  • 快速查看如何使用Artifactory存储/管理terrraform文件

阅读我们最新的博客

视频记录

大家早上好,下午好,晚上好取决于你们在哪里
今天加入我们,我是Sean Pratt,你们友好的市场经理,我将是今天网络研讨会的主持人,我们为你们准备的主题是:用Jfrog实现terraform的幕后之路,我们非常兴奋地与你们分享Jfrog是如何使用terraform的,以及我们是如何在Artifactory中实现新的terraform支持的。
在我们开始之前,有一些家务事要做
录音,所以如果你错过了什么不要担心,因为我们会发出录音
24小时内。
如果您对本次网络研讨会有任何问题或在活动后有进一步的问题
请发邮件至webinars www.si-fil.com,我们会回复你的
另外提醒一下,请使用屏幕底部的q a聊天窗口我们今天有我们的专家在电话会议上他们很乐意回答你们的问题,所以不要害羞,有问题尽管提出来,我们会及时回答的所以我将继续今天的活动,通过介绍我们的主讲人来开始。
今天我们非常幸运地请到了amit danielle,他是我们的开发人员
jfrog的团队领导,也是jfrog的软件工程师废话不多说,我们开始吧amit先把它拿走谢谢Sean大家好今天能邀请到你有个问题要问观众你在初始化terrform环境上浪费了多少时间,我可以和你们分享,我们过去常常花几个小时来初始化我们的电话环境,这正是我们今天要讨论的内容,我们将展示我们改变了什么,以及它将如何改善你的日常工作,然后我们开始讨论
演示。
我只是想为那些不熟悉我们的人做一个关于jfrog的超级简短的介绍,我们的使命是通过提供快速和安全的持续发布的最佳解决方案,使每一个软件都获得成功,我们用jfrog devops平台做到这一点,包括你在这里看到的不同应用程序,今天我们将花一些时间讨论artifactory,最后一点是关于我们的组织。
我们为世界上最大的一些公司提供服务,涉及几乎每个垂直领域,全球有超过1000只青蛙,在北美设有办事处,欧洲和亚洲让我简单介绍一下jfrog基础设施层,我们在三个公共云提供商aws azure和gcp中有大约50个kubernetes集群,jfrog在40个不同的地区运行工作负载,devops基础设施管理大约130个电话工作区,规模巨大,你可以看到,换句话说,我们是大量的terraform用户。
今天我在这里和你分享我的经验和故事,自从我加入JFrog,我做了什么与terraform,我们从这个过程中学到了什么,让我们谈谈五个主要步骤,提高我们的terraform使用一致的恐怖,从目前的基础设施管理,只使用基础设施护送两个主要分支的发展
工作空间,生产空间和电话流程,我们可以改变
该模块没有打破工作区,是模型的一个主分支
存储库我们标签每个模块采用一个编配器通过电话我们
需要每天自动运行我们所有的电话工作区,以检测漂移
在使用电话代码的不同组之间划分权限
的计划之前或之后的每个步骤之后运行逻辑代码
应用等,当然还有模块模块解耦,显然我们面临着一些挑战,管理整个JFK sas基础设施层,没有适当的基础设施作为代码配置几乎是不可能的,命名约定安全标准交付时间,没有基础设施作为代码,我们无法监控生产变更,每个资源中的错误配置,大量更改等,如何在没有基础设施的情况下发现云资源中的变化,这是超级的,不仅我们有手工工作我们还面临着分布在多个分支的terrform代码,然后才开始使用两个主要分支的电话,我们发现自己有一个
这导致了很多漂移,我们无法理解在每个环境上运行的配置,解决方案是将terraform代码分成两个主要的存储库:一个用于活动代码,一个用于活动代码的terraform模块。所有的开发阶段都反对开发分支将terraform模块移动到一个专用的存储库
分支和每个模块都有自己的标记,活动代码将使用它
在这种情况下,你可以将运行在每个工作区管理哪些模型的解决方案来减少依赖我们对每一个电话现在工作空间模块解耦为观众对我有一个问题,为什么我们不能添加一个数据库如果我们有漂移kubernetes电话模块集群空间分割成四个主要模型的网络层将包含不vpc子网网关等kubernetes层作为数据使用网络资源2022世界杯阿根廷预选赛赛程
数据库层和对象存储的这种分离让我们可以选择继续在一个层上行走,而不修复漂移,如果在另一个模块中有漂移,确保我们可以在没有依赖的情况下构建我们的基础设施。
我还有一个问题要问观众你有多少次建立了一个资源
你发现这个资源有安全漏洞,现在你无法修复它,神奇的是,你需要创建一个数据库,数据库实例已经准备好了,我们很高兴客户开始使用这个数据库,他们也很高兴,但现在安全团队发现这个数据库没有加密
现在需要创建一个新数据库并迁移所有工作负载
现在在电话计划之后,我们正在运行一个用于基础设施的开源应用程序,叫做安全漏洞扫描,我们在资源创建之前就看到了漏洞,用这种方法j4创建了一个没有漏洞的资源,当你扫描你的计划时也是如此
状态始终可以看到当前的漏洞和缓解措施
如果有一件事我想让你从这次网络研讨会中了解到,那就是如果没有devops和RND在jfrob中的强有力合作,我们就无法得到这个解决方案,我们更喜欢喝我们自己的威士忌,为此我们合作
整个开发阶段与RND关于电话功能的艺术性
这有助于我们实现这个惊人的里程碑,并继续讨论这个过程。我想把这一切都交给巴拉克。
谢谢,这是一个很好的故事和一个很好的教训,现在让我们看看事情是如何发生的。
让我们开始讨论terraform artifactory的jfrog解决方案,它为terraform注册表提供了本地远程和虚拟存储库实现,它们都支持
的模块和提供程序都有好处
每种存储库类型,远程存储库(最可能指向工件到hashicorp的官方terraform注册表)保存您的外部网络流量,为您提供更稳定和更快的下载速度,本地存储库将您从源代码控制模块过渡到二进制文件,devops用于直接从源代码控制解析模块,现在使用artifactory,这些模块变成二进制文件,从中获得所有好处,您可以得到校验和和检查deploy immutability as opposed to source code without the git reaction how can you Tell which commit or tag is newer source code is mutable binaries are not and therefore they are more secured beside that you get the version in replication release bundles and many other advantages you’re getting with artifactory by using the latest release of the jfox cli we are also allowing you to publish your entire modules monorepo to our defactory terraform red repository in
一个动作,最后我们有虚拟回购解决方案,将让你聚合所有
您的本地和远程terrform存储库到一个单一的源
真相现在让我们来看看事情到底是怎么发生的
我已经为模块创建了一个本地存储库
一个本地存储库用于提供者一个远程存储库指向官方的hashicorp terraform注册表一个存储库将三者聚合在一起这里是我们内部aws模块的monorepo我们将首先发布artifactory我们将创建一次性配置来选择artifactory实例和目标存储库因此我们选择terraform模块本地回购在这里你可以看到创建的配置文件夹,现在我们将运行terraform发布动作我们将提供命名空间基础提供者文件夹模块当然还有标签完美在这里我们可以看到目标
模块被发布到这里,现在让我们了解一下这些模块有点我们有新的kubernetes v10模块在其artifactory info选项卡中我们可以看到一些额外的数据提供者和输入输出模块依赖关系,甚至readme文件没有下载整个模块旁边,你也能够浏览和搜索在所有您发布的模块和提供者现在让我们回到代码并创建一些简单的模块我们将定义一个供应商和一个aws提供者模块,当然我们想要解析它从a到工厂,模块的源代码是从artifactory域构建的,存储库键双下划线
最后给出了模块结构中所需的命名空间和模块名称
基础提供者现在我们几乎准备初始化,但让我们创建一个令牌的原生起程拓殖incommand首先artifactory起程拓殖登录支持本机命令它将自动打开浏览器看看,因为我们已经登录管理我们只需要批准和令牌是自动创建我们可以关闭这个页面现在起程拓殖init运行我们的行动,所有的模块和提供者越来越从artifactory下载你可以看到我们已经安装了efs模块的最新版本,我们刚刚部署了v10
因为我们还没有把任何版本的模块本身,所以它采取了最新的标签,现在我们能够初始化我们的环境与我们的自定义模块,让我们看看我们可以如何受益于terrraform后端存储库解决方案
Artifactory有一个本地存储库实现,支持terrform远程后端,包括工作区和锁定机制,只需几分钟
你能够将现有的后端解决方案迁移到artifactory和享受很多其他好处是易于维护管理你所有的用户在一个地方是安全的国家所有的内容在实际加密对象存储有一个完整的国家文件历史包括发布时间和用户之间创建它和你有一个聪明的div国家文件允许您监控您的更改很容易当问题辐条,让我们来参观这里所以现在我们迁移
现有kubernetes工作区使用artifactory端首先我们将配置后端指向artifactory tf的后端存储库和第二我们会初始化环境我们需要创建一个新的工作区首先让我们创建一个工作空间对我们的网络研讨会,现在我们已经准备好再次运行起程拓殖,顺便我们已经令牌从预览artifactory域服务器的形式再次所以我们不需要再次登录现在我们已经有了令牌完美,最后我们准备将我们现有的状态导入到artifactory
按一下,现在我们要编辑我们的模块,我们要添加一些新的仲裁,所以我们会有一些不同于现有的状态,让我们运行一些terrraform计划。很好,让我们应用这些变化很好让我们导航回ui,探索我们的状态。
我们可以看到当前活动状态和状态的最新状态。时间戳的国家我们还可以看到创建的用户状态文件创建时当然阅读和搜索的实际状态的内容和最后一个最新最好的特性是比较老的状态,所以我们可以看到连续改变了但可能大多数为我们更有趣的是阿拉伯语的规则,我们添加了所以你可以看到是多么容易呃沸腾状态之间的差异文件和班长是什么改变的人我们幸存了下来
今天在这里介绍了jfrog使用terraform的方式以及jfrog使您的电话解决方案更好、更快、更可靠地工作的方式感谢您今天加入我们,愿青蛙与您同在,非常感谢巴拉克和阿米特花时间向我们展示这些信息,也你知道把它们放在一起。
打电话的人如果你们还没问问题或者想问的话
现在是提问的好机会希望你们已经提过了
并在会议进行时让他们回答
但我们有几个人来过
这是我们想让我们的演讲者感受到的,我们将继续做下去
我认为第一个问题最好省略这个问题是你为什么这么做
需要解耦你的模型,如果你每天运行
自动化构建。
谢谢,肖恩,这是一个非常好的问题。它实际上不仅与地形漂移有关,还与维护多层基础设施有关。kubernetes层和数据库层之间没有关系,所以为什么它们需要处于相同的状态是非常棒的。
谢谢你举了这么好的例子,阿米特。
巴拉克的另一个问题,我认为也许你可以回答是有什么好处哦使用artifactory作为后端与说常规s3后端好,这其实也是一个很好的问题,首先我们有完整的历史从一开始的时间和状态文件智能div能力它允许您监控您的整个工作空间的变化完美这是一个很大的优势和旁边,你可以管理你的用户和权限的地方
而不是两个,这让事情变得更简单,更好地维持所以鉴于我们的时间有点短我们有机会再回答一个问题,我想这个问题可能是
很多参会者都很好奇,尤其是那些
现有的j4客户,但何时jfrog将支持基础设施
作为代码扫描可能会中断,你想回答这个问题。
当然哦这是一个简单的问题来回答我们上周刚刚宣布沼泽了,基础设施被称为扫描进入q3所以留意功能即将棒谢谢奥大嗯所以我们要继续,结束我们今天的研讨会,如果你没有你的问题不用担心我们会跟进你直接回答我想再次感谢哦今天奥和阿米特提出,当然每个人都加入我们哦更多的JFR网络研讨会即将到来,谢谢大家,我们下次见

要么快速释放,要么死亡