当前位置: 首页 > 软件库 > 云计算 > Serverless 系统 >

Pulumi

架构即是代码
授权协议 Apache
开发语言 Google Go TypeScript
所属分类 云计算、 Serverless 系统
软件类型 开源软件
地区 不详
投 递 者 张心水
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Pulumi 是一个架构即是代码的开源项目,可在任何云上创建和部署使用容器,无服务器功能,托管服务和基础架构的云软件的最简单方法。

只需用您喜欢的语言编写代码,Pulumi就可以使用基础架构即代码方法自动配置和管理您的AWS,Azure,Google Cloud Platform和/或Kubernetes资源。 跳过YAML,使用您已经熟悉和喜爱的标准语言功能,如循环,函数,类和包管理。

如下代码可创建三个 Web 服务器:

let aws = require("@pulumi/aws");
let sg = new aws.ec2.SecurityGroup("web-sg", {
    ingress: [{ protocol: "tcp", fromPort: 80, toPort: 80, cidrBlocks: ["0.0.0.0/0"]}],
});
for (let i = 0; i < 3; i++) {
    new aws.ec2.Instance(`web-${i}`, {
        ami: "ami-7172b611",
        instanceType: "t2.micro",
        securityGroups: [ sg.name ],
        userData: `#!/bin/bash
            echo "Hello, World!" > index.html
            nohup python -m SimpleHTTPServer 80 &`,
    });
}

或者一个简单的无服务器定时器,在每天早上八点半抓取 Hacker News 的信息:

const aws = require("@pulumi/aws");

const snapshots = new aws.dynamodb.Table("snapshots", {
    attributes: [{ name: "id", type: "S", }],
    hashKey: "id", billingMode: "PAY_PER_REQUEST",
});

aws.cloudwatch.onSchedule("daily-yc-snapshot", "cron(30 8 * * ? *)", () => {
    require("https").get("https://news.ycombinator.com", res => {
        let content = "";
        res.setEncoding("utf8");
        res.on("data", chunk => content += chunk);
        res.on("end", () => new aws.sdk.DynamoDB.DocumentClient().put({
            TableName: snapshots.name.get(),
            Item: { date: Date.now(), content },
        }).promise());
    }).end();
});

更多的例子请看 pulumi/examples.

该项目包含 Pulumi 的命令行工具、语言 SDK 和核心引擎。

  • Pulumi在其用于Kubernetes和云供应与管理的开源工具中增加了.NET语言支持。 Pulumi基础结构即代码工具现在允许开发人员使用Microsoft .NET语言以声明方式配置云基础结构。 借助Pulumi,开发人员可以使用.NET语言(包括C#,VB.NET和F#)在AWS,Azure,Google Cloud Platform和Kubernetes上以声明方式配置基础架构。 该工具

 相关资料
  • 时间序列异常检测学件的架构 时间序列异常检测工程的整体分层,可以分为以下五层: 数据层(DB):存储检测异常信息、样本信息、任务信息等 服务层(SERVICE): 服务层划分为两大模块 数据驱动模块DAO: 封装了和DB层常见的数据操作接口。 业务模块service: 完成API层的具体业务逻辑。 学件层(LEARNWARE):学件层划分为三大模块 检测模块detect: 提供时间序列异常检测接口

  • 本文向大家介绍ElasticSearch是否有架构?相关面试题,主要包含被问及ElasticSearch是否有架构?时的应答技巧和注意事项,需要的朋友参考一下 ElasticSearch可以有一个架构。架构是描述文档类型以及如何处理文档的不同字段的一个或多个字段的描述。Elasticsearch中的架构是一种映射,它描述了JSON文档中的字段及其数据类型,以及它们应该如何在Lucene索引中进行索

  • 使用耦合度量来支持系统架构 大多数设计良好的软件架构都趋向于支持系统的可扩展性、可维护性和可靠性。遗憾的是,对质量问题的疏忽极可能使软件架构师的努力白费。在追求代码质量 系列的这一期文章中,质量专家 Andrew Glover 解释如何持续地监视并纠正会影响软件架构的长期生存能力的代码质量方面。 上一期文章中,我展示了如何使用代码度量来评估代码质量。尽管在那一期介绍的圈复杂度针对低级细节,如方法中

  • 我有Kafka的以下配置 我试图通过版本得到主题,我得到如下 我使用插件<;代码>;avro-maven插件>;生成>;CreateBankAccount>;代码< 然后,我用一个字符串键和一个avro序列化的有效负载向主题推送一条消息,但是我有一个错误 轨道: ProducerConfig值: KafkaAvroSerializerConfig值:

  • RMI 架构 RMI 是一个三层架构(见图)。最上面是 Stub/Skeleton layer(存根/骨架层)。方法调用从 Stub、Remote Reference Layer (远程引用层)和 Transport Layer(传输层)向下,传递给主机,然后再次经传 Transport Layer 层,向上穿过 Remote Reference Layer 和 Skeleton ,到达服务器对象

  • ​软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计,它包括了软件组件、组件之间的关系,组件特性以及组件间关系的特性。 架构图 如上图所示,从底至上,LCUI 由如下几大模块组成: 平台支持(Platform Support):将来自不同操作系统的接口进行抽象,为 LCUI 上层提供统一的驱动接口。 图形抽象层( Graphics Abstraction Layer):