第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

2025年無服務(wù)器和云原生開發(fā)者必備終極工具棧 ??

无服务器和云原生的目标始终是“更快地构建、发布和扩展”,而无需过多担心基础设施。

随着越来越多的公司全力投入AWS、Google Cloud和Azure(Datadog 2023报告),对合适的技术栈的需求从未如此之高。

但有那么多工具可供选择,选择完美的工具栈可能让人感到不知所措。这就是为什么我选出了7个工具,帮助你轻松构建、部署和扩展云原生应用程序。

开始吧!

GIF 这是一张有趣的GIF图片。

……

Encore – 专为云原生开发者打造的后端框架

Encore

Encore 是一个用于构建类型安全应用的云原生后端框架工具,它让你可以无需手动管理基础架构,就可以轻松构建、测试和部署服务。

这个框架非常适合于 Go 和 TypeScript 开发者,因为它让你可以专注于编写项目的代码和逻辑,而它会自动为你生成云端基础设施。

生成的基础设施将运行和监控你的项目,使整个部署过程变得非常简单且轻松愉快。

另外,它也让构建分布式系统变得更简单。

Encore 2

如果你还是对尝试Encore没兴趣,这里有一些我觉得很有趣的特性可能会让你心动:

  • Encore 生成并更新您系统中创建的 API 和服务的文档。
  • Encore 帮助开发人员专注于应用逻辑,并帮助他们遵循最佳实践,如身份验证、服务间通信、跟踪等。
  • 此外,Encore 还提供了一个可选的 云平台,用于在 AWS 和 GCP 上自动化 DevOps 流程。

对于周期性的或重复性的任务,Encore.ts 提供了一种声明式的方式来使用 Cron Jobs。通过这种方式,你无需担心基础设施的维护,因为 Encore 负责调度、监控和执行这些 Cron Jobs。

这里就有一个简单的 Cron 任务定义示例:

    import { CronJob } from "encore.dev/cron";
    import { api } from "encore.dev/api";

    // 在过去的两小时内向所有人发送欢迎邮件。
    const _ = new CronJob("welcome-email", {
        title: "“发送欢迎邮件”",
        every: "2h",
        endpoint: sendWelcomeEmail,
    })

    // 向最近注册的所有人发送欢迎邮件。
    // 它是幂等的:每个人只会收到一封欢迎邮件。
    export const sendWelcomeEmail = api({}, async () => {
        // 发送欢迎邮件的逻辑...
    });

点击全屏按钮切换到全屏模式,然后点击退出按钮退出全屏

部署完成后,Encore 会自动注册 Cron Job 并按计划运行。

你可以在Encore Cloud控制台上查看定时任务的执行情况:

Encore Cloud

如果你正在使用 GoTypeScript 并希望专注于开发工作,而无需担心手动基础设施管理,Encore 正是为你准备的。

今天就试试Encore吧,更快捷、更智能、更轻松地构建。

快来试试 Encore 🔥

等等

StackQL – 云基础设施的 SQL 接口工具

StackQL

一旦你的应用开始运行,下一个挑战就是通过编程方式管理基础设施。这时候,像StackQL这样的基础设施即代码(IaC)工具就派上用场了。

如果你是一个SQL极客,你会爱上StackQL及其独特的SQL语法。它让基础设施管理变得像写数据库查询一样简单。

StackQL 是我第一次遇到的使用 SQL 命令来管理云资源的工具。它使用 SQL 命令在例如 AWS、GCP 和 Azure 等提供商上创建、查询以及管理云资源。

https://www.youtube.com/watch?v=YuEmv58Ap18
点击链接观看视频

通过 StackQL,您可以构建云基础架构,例如创建数据库,制作报告或查询资源信息,而不必学习特定的脚本语言或针对云的 SDK。

你可以只需一条命令安装 StackQL:

请运行以下命令安装 StackQL:

brew install stackql

全屏 查退出全屏

当在StackQL中构建基础设施时,您可以使用SQL查询来创建Google Cloud上的虚拟机,

    -- 插入到 google.compute.instances (项目, 区域, 数据名称, 数据机器类型, 数据网络接口)
    SELECT
        'my-project',
        'us-central1-a',
        'my-vm',
        'n1-standard-1',
        '[{"network": "global/networks/default"}]';

点击这里进入全屏模式,点击这里退出全屏

此命令会在谷歌云中使用您指定的项目名称、区域(zone)、机器类型和网络接口配置来创建虚拟机实例。

你也可以通过 StackQL 查询云基础设施资源来生成报告。

    SELECT
        项目,
        资源类型,
        SUM(成本) AS 总费用
    FROM
        billing.cloud_costs
    WHERE
        开始使用时间 >= '2025-03-01'
        AND 结束使用时间 <= '2025-03-31'
    GROUP BY
        项目, 资源类型
    ORDER BY
        总费用 DESC;

全屏模式,退出全屏

除了你能够使用 SQL 查询来管理云上的资源这一酷功能之外,我在测试 StackQL 时还发现了两个独特之处:

  • StackQL通过自动化合规检查并生成成本和安全报告,使基础设施管理变得超级简单。
  • 它使用SQL查询语句将云资源的数据集成到您的仪表板中,就像管道一样,让您无需进入云控制台就能审计资源。

StackQL 让你可以按自己的方式进行操作,无论是以声明式还是过程式的方式,无需手动管理状态文件。其简单易懂的 SQL 风格语法,让你可以轻松地与其他基础设施即代码(IaC)和云原生工具集成。

使用StackQL可以部署基础架构、运行云资产报表、检查合规情况、检测配置漂移等操作。

给StackQL点个星 🌟 (点击这里查看)[https://git.new/stackql]

...

Pulumi – 使用代码定义现代基础设施

Pulumi标志

Pulumi 是一种现代的基础设施即代码(IaC)工具,帮助你在云上管理和部署无服务器应用。它是一个云开发工具包(SDK),让你可以使用所选编程语言中的真正变量、函数、类和循环等来定义基础设施。

使用 Pulumi,你可以通过代码管理你的云基础设施(比如服务器、数据库和网络)。它自动进行配置,而不是通过云服务提供商手动配置。

您可以使用 Pulumi 在 AWS 上新建 S3 存储桶:

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";

    //  the following creates a private S3 bucket
    const bucket = new aws.s3.Bucket("my-bucket", {
        acl: "private",
    });

    // export the bucket name
    export const bucketName = bucket.id;

进入全屏状态,退出全屏状态

你也可以使用 Pulumi 部署运行 Nginx 容器的 Kubernetes 副本集,这能够让你定义基础设施的状态并使部署更简单。

import * as pulumi from "@pulumi/pulumi";
import * as k8s from "@pulumi/kubernetes";

// 部署一个 Pod
const pod = new k8s.core.v1.Pod("my-pod", {
    metadata: {
        name: "example-pod",
    },
    spec: {
        containers: [
            {
                name: "nginx",
                image: "nginx:latest",
                ports: [
                    {
                        containerPort: 80,
                    },
                ],
            },
        ],
    },
});

// 导出 Pod 名
export const podName = pod.metadata.name;

全屏模式 退出全屏

Pulumi 2

那么,你为什么应该用 Pulumi

  • Pulumi 允许您使用诸如 Go、Python、TypeScript、C# 和 Java 等编程语言来构建您的基础设施。
  • 在 Pulumi 中定义云资源时,它会设置所需的资源,例如虚拟机或存储桶,因此您无需在云提供商的控制台上进行操作。
  • Pulumi 可以让您在编写基础设施代码时创建可重用的组件,并且可以原生构建 CI/CD 管道。
  • 这可能就是我喜欢 Pulumi 的原因;它可以与任何云提供商很好地配合使用,因此不受限制,非常适合动态云环境。

当你构建云基础设施时,Pulumi 最有用的地方包括避免 YAML 或 JSON 的地狱、重用基础设施中的管道或组件,以及让基础设施代码与应用程序逻辑代码并行工作,以便更好地理解或协同。

现在你的基础设施已经搭建完毕,你接下来需要自动化持续集成和持续交付(CI/CD)流程,并管理部署和工作流程,以部署和管理你的无服务器应用程序。

了解 Pulumi

……

Serverless 框架(Serverless Framework) — 久经考验的经典

Serverless Framework

想象这样一个平台,它可以让你在 AWS 上自动伸缩应用,无论你使用的是哪种编程语言。它让你的扩展和性能管理超级简单,让你专注于构建你出色的程序。

无服务器框架就是那个东西。它是一个用于在云提供商比如 AWS、Azure、Google Cloud 上构建和部署无服务器应用程序的框架。构建此工具时,它最初是为了 AWS Lambda 而设计的,后来也得到了其他云提供商的支持。

无服务器框架让你能够以这样的方式定义 YAML 配置,就像定义一个简单的服务和函数一样。

service: my-service
provider:
  name: aws
  runtime: nodejs14.x
functions:
  hello:
    handler: handler.hello
    events:
      - http:
          path: hello
          method: get

点击全屏按钮或者退出全屏按钮

你也可以在本地测试你的函数。

    serverless invoke local --function hello

在本地运行函数 'hello' 的命令。

进入全屏 退出全屏

您还可以部署您的无服务器应用。

运行以下命令来部署无服务器应用:

serverless deploy

全屏,退出全屏

为什么你应该用这个工具?

  • 无服务器模型为开发人员提供了一个轻松的DevOps流程,自动扩展以及按需计费的定价模式。这对于任何小项目来说都是完美的选择,因为直接管理无服务器基础设施可能会变得让人难以招架。
  • Serverless框架可以自动执行任务和部署,并且可以在任何云提供商上运行,因此不必受限于某个特定的云提供商。
  • 使用此框架的另一个绝佳理由是其广泛的、丰富的插件生态系统,这使得开发人员可以扩展监控或安全功能。

无服务器2

无服务器框架是一种工具,在您构建AWS Lambda(或类似平台)上的自动化工作流、API 或其他自动化任务时非常有用。或者当您需要一个强大的函数即服务(FaaS)或无服务器计算生态系统,提供基本模板时也非常有用。

试试 Serverless Framework 🔥 https://www.serverless.com/framework 真的不错!


Jozu — 用于AI应用程序的DevOps平台

图片:佐助

Jozu 旨在帮助您管理 AI/ML 项目。该工具支持 ModelKits,ModelKits 实际上是一种打包方案,可以将项目的组件、代码、数据集或配置整合成一个单一包。现在,这些 ModelKits 可以作为独立包部署到云端。

Jozu的主要目的是帮助您管理和部署AI/ML项目通过ModelKits,同时与KitOps合作来创建并部署ModelKits。

比如说,您可以使用KitOps CLI创建一个ModelKit模型,并将它推送到Jozu:

# 创建一个新的 ModelKit
kit init my-modelkit

# 将文件加入 ModelKit(例如,数据集、代码、配置)
cp my-dataset.csv my-modelkit/
cp my-model.py my-modelkit/

# 推送 ModelKit 到 Jozu Hub
kit push jozu.ml/my-organization/my-modelkit latest

进入全屏,退出全屏

使用Jozu,你可以为你的ModelKit创建Docker容器,它们可以本地部署或者在Kubernetes集群中部署。


    # 拉取 ModelKit 镜像
    docker pull jozu.ml/my-organization/my-modelkit:latest

    # 本地运行容器
    docker run -it --rm -p 8000:8000 jozu.ml/my-organization/my-modelkit:latest

全屏 退出全屏

乔祖2的图片 如图所示

Jozu 是一个能够帮助你的 ML/AI 项目工具;这里有一些令人惊艳的功能,你应该关注一下:

  • 与其它公共注册表相比,Jozu 让你更能掌控你的部署项目。
  • 当你在 ModelKit 中更新文件或代码时,Jozu 让你和你的团队可以轻松跟踪 ModelKit 的哪些版本已被修改及其修改内容。如果当前版本有问题或错误,你可以轻松回滚到之前的版本。
  • Jozu 让你轻松审计你的 AI/ML 项目,通过将每个版本保存为不可更改的 ModelKit 版本。你或你的团队可以在任何时候查看并获取准确的数据。

如图所示的 Jozu 3 点击可查看图片

有了 Jozu,你就不用为如何部署和更新你的 AI/ML 项目而烦恼了。

这个工具非常适合从事机器学习的开发者和需要简单、安全且可扩展AI/机器学习工作流程的企业。

点击这里查看 Jozu 🔥(火热)(https://dub.sh/Jozu)


ClaudiaJS: 一个无服务器的 JavaScript.

ClaudiaJS

ClaudiaJS 也是一个部署无服务器应用的好选择。对于希望在 AWS Lambda 上部署 Node.js 项目的 JavaScript 开发者来说,这个工具非常棒。这个工具非常适合希望尝试无服务器环境的开发者。

此工具通过打包NodeJS项目的依赖并进行管理,使用单个命令进行代码上传到AWS。此外,它还设置了例如安全角色和API网关等配置,从而帮助部署。

    {
      "scripts": {
        "deploy": "claudia create --region us-east-1 --api-module api",
        "update": "claudia update"
      }
    }

点击此处进入或退出全屏模式。

你也可以使用 Claudia 在生产环境中添加一个发布步骤。

{
  "scripts": {
    "release": "claudia 设置版本 --版本 生产"
  }
}

全屏进入,退出全屏

你也可以使用 ClaudiaJS 构建 CI/CD 流水线以实现自动化部署:

    jobs:
      deploy:
        runs-on: ubuntu-latest
        steps:
          - name: 检出代码到仓库
            uses: actions/checkout@v2
          - name: 安装依赖包
            run: npm install
          - name: 部署到 AWS Lambda 服务
            run: npm run deploy

点击此处进入全屏模式,点击此处退出全屏模式

ClaudiaJS的一个很大的优点是它使用了JavaScript开发者已经熟悉的标准的NPM打包方式。它还在AWS Lambda上管理上传项目的多个版本,以适应生产和测试环境下的开发需求。

你为什么用ClaudiaJS?

  • ClaudiaJS 简化了 AWS Lambda 和 API Gateway 的设置,让开发者能更专注于构建项目,而不是管道流程。
  • 它十分轻便,不需要任何运行时依赖,容易集成到现有项目中。

ClaudiaJS 让你可以轻松地部署任何 Node.js 项目,提供一个创新且无缝的无服务器应用部署流程。

当你的无服务器应用在云端运行时,你需要自动化工作流程的过程,并监控可能的停机时间或软件故障,以确保其平稳运行无阻。

试试 ClaudiaJS 🔥


Kestra - Kestra,一个开源编排平台

Kestra 如图所示的Kestra

Kestra 这款工具在您的云原生环境中管理流程和工作流,例如数据工作流或支持应用程序运行的自动化任务。

这款工具提供了一种管理YAML配置或与其他工具或平台集成的简便方法。

使用 Kestra,您可以管理并定义无服务器应用的流水线和工作流程。

    const workflow = {
        id: "simple-workflow",
        namespace: "教程空间",
        tasks: [
            {
                id: "提取数据",
                type: "io.kestra.plugin.core.http.Download",
                uri: "https://example.com/data.json",
            },
            {
                id: "转换数据",
                type: "io.kestra.plugin.scripts.python.Script",
                containerImage: "python:3.11-alpine",
                inputFiles: {
                    "data.json": "{{ outputs['提取数据'].uri }}"
                },
                script: `
                    import json
                    with open("data.json", "r") as file:
                        data = json.load(file)
                    transformed_data = [{"key": item["key"], "value": item["value"]} for item in data]
                    with open("transformed.json", "w") as file:
                        json.dump(transformed_data, file)
                `,
                outputFiles: ["*.json"],
            },
            {
                id: "上传数据",
                type: "io.kestra.plugin.aws.s3.Upload",
                accessKeyId: "{{ secret('AWS_ACCESS_KEY_ID') }}",
                secretAccessKey: "{{ secret('AWS_SECRET_KEY_ID') }}",
                region: "us-east-1",
                bucket: "my-bucket",
                key: "transformed-data.json",
                from: "{{ outputs['转换数据'].outputFiles['transformed.json'] }}"
            },
        ],
    };
    默认导出工作流;

全屏模式 退出全屏

你也可以搭建一个ETL(提取、转换和加载)流水线。这个流水线会从不同的来源处收集数据,将其转换为特定格式,然后加载到你选择的系统,例如数据库。

    const etlPipeline = {
        id: "etl-pipeline",
        namespace: "company.team",
        tasks: [
            {
                id: "下载订单数据",
                type: "io.kestra.plugin.core.http.Download",
                uri: "https://example.com/orders.csv",
            },
            {
                id: "下载产品数据",
                type: "io.kestra.plugin.core.http.Download",
                uri: "https://example.com/products.csv",
            },
            {
                id: "合并订单与产品数据",
                type: "io.kestra.plugin.jdbc.duckdb.Query",
                inputFiles: {
                    "orders.csv": "{{ outputs.download-orders.uri }}",
                    "products.csv": "{{ outputs.download-products.uri }}",
                },
                sql: `
                    SELECT o.order_id, o.product_id, p.product_name
                    FROM read_csv_auto('{{ workingDir }}/orders.csv') o
                    JOIN read_csv_auto('{{ workingDir }}/products.csv') p
                    ON o.product_id = p.product_id
                `,
                store: true,
            },
            {
                id: "上传合并数据",
                type: "io.kestra.plugin.aws.s3.Upload",
                accessKeyId: "{{ secret('AWS_ACCESS_KEY_ID') }}",
                secretKeyId: "{{ secret('AWS_SECRET_KEY_ID') }}",
                region: "us-east-1",
                bucket: "my-bucket",
                key: "joined-data.csv",
                from: "{{ outputs.join-data.uri }}",
            },
        ],
    };
    export default etlPipeline;

全屏;退出全屏

为什么要用Kestra?

  • 大多数应用程序依赖于数据管道或自动化工作流来顺畅运行,而在大规模管理这些工作流时可能会感到手忙脚乱。Kestra 提供了一个可以与任何云服务或数据库集成的可扩展引擎,解决了这一问题。
  • 与传统工具如 Apache Airflow 不同,Kestra 是为任何现代容器化环境而构建的,并内置了可观察性。

Kestra
这是Kestra(图片来自网络)

Kestra 在管理复杂数据管道或实现基于 Kubernetes 的云原生工作流自动化时最有用。它是一个比 Apache Airflow 更好的选择。

试试 Kestra 🔥


结论

近年来,云原生技术和无服务器计算领域变得更为灵活和模块化。

不再需要使用复杂的工具时,这些工具和框架变得非常容易使用,比如Encore、ClaudiaJS、Serverless框架,以及StackQL、Jozu、Kestra和Pulumi等。

这些工具不仅节省了我们的时间和精力,还让我们在构建和使用基础设施时拥有独特的创意控制权。

还有哪些必备的工具你知道吗?在评论区留言吧——我很想知道你的推荐哦。

也关注我,获取更多精彩内容。

arindam_1729 图片

Arindam Majumder 关注 Arindam Majumder

开发者代言人 | 技术作家 | 超过50万次阅读 | Mail for Coll

对于付费合作项目,请邮件联系我:arindammajumder2020@gmail.com

谢谢你的阅读!感谢您的支持,我们会继续努力!

GIF 这是一张GIF图片

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消