可重用的云基础设施代码与Pulumi和JFrog Artifactory

JFrog和Pulumi

这篇客座文章由Pulumi的Chris Smith提交,并与Pulumi的博客共同发布。

Pulumi使您能够指定云基础设施代码.这使您能够使用最喜欢的语言对云进行编程,并从静态分析、类型检查、ide等有用且熟悉的编码特性中获益。

Pulumi模型的一个主要优势是,您可以创建和重用云基础设施组件使用npm这样的包管理器。

使用Pulumi创建云应用程序

下面是一个Pulumi程序的浓缩视图,展示了实践中的以代码为中心的模型。(你可以看到完整的源在GitHub上。)Pulumi应用程序允许你将视频上传到云端,然后使用人工智能服务分析视频中的常见对象,例如“停止标志”或“棕榈树”。然后为每一个找到的物体提取一个缩略图。

这个示例强调了在Pulumi中使用代码包的优势。不是直接针对各种产品(如Amazon Web Services的Lambda、Fargate和其他hth华体会最新官方网站产品)编程,而是使用包以便在更高的抽象级别上编写程序。

Pulumi程序使用用于存储的包(通过)和Docker容器上的任意计算(通过任务).对于更专门的对象识别任务,它使用自定义视频它依赖于亚马逊的Rekognition服务。

通过在可重用包中描述云基础设施,客户机可以自由地将更多时间花在手头任务的特定逻辑上,而将有关云提供者服务和api的细节留给包的实现。

const videoUploads = new cloud.Bucket(…);const extractThumbnailTask = new cloud.Task(…);const videoProcessor = new video.VideoLabelProcessor();...//当一个。mp4文件被上传到S3桶时,启动一个新的分析作业。videoUploads。onPut("onNewVideo", (newBucketObject: BucketArgs) => {videoProcessor.analyzeVideo(videoUploads.get(), newBucketObject.key);...}, {keySuffix: ".mp4"});... // Whenever an analysis job completes, the onLabelComplete callback is called. The function // defined here is run on the cloud using AWS Lambda, which then will kick off an AWS Fargate // task to perform the image extraction. videoProcessor.onLabelingComplete((file: string, labels: VideoLabels[]) => { ... // Spin up our Docker container to perform the image extraction process, // uses AWS Fargate under the hood. extractThumbnailTask.run(...); ... });


Pulumi项目的架构图如下所示。导出的
VideoLabelProcessor课程处理与AWS Rekogntion和SNS的交互,因此客户只需要打电话analyzeVideo并提供一个回调函数onLabelingComplete

Pulumi架构

但是可重用包的好处不仅仅是生产力。通过重用组件,可以更容易地遵循安全最佳实践,因为任何更新都只需要对包进行。包还可以提供更高级的场景,例如处理与组织的日志记录和警报系统挂钩的细节。

不过,使用Pulumi管理云基础设施的一个缺点是,您现在需要处理这些不同包的版本控制和分发。您如何确保团队或组织内的人使用的是最新版本?或者是视频包吗?或者Docker容器是使用正确的基础映像构建的?

Artifactory的拯救

这就是JFrog Artifactory是否可以介入并处理整个包/依赖项管理问题。

Artifactory处理代码依赖关系并构建各种类型的工件。无论它们是用于标准网站的软件包,还是用于使用Pulumi管理云基础设施的软件包,Artifactory的工作原理都是一样的。

通过使用Artifactory作为您的npm注册表为了托管用于图像识别的NPM包,我们可以可靠地实施版本控制,并提供一种安全、可靠的方式来分发包。同样,Artifactory也可以用作Docker容器注册表了。

Pulumi提供了一种思考和使用软件包的新方法JFrog Artifactory继续成为那些工件的存储、管理和分发的最佳解决方案。

准备好让编写云基础设施像“编程101”一样简单了吗?

了解更多关于使用Pulumi与Artifactory和访问pulumi.io