写点什么

掀起云基础设施管理革命的 IfC

作者:Claudio Masolo

  • 2023-02-17
    北京
  • 本文字数:1327 字

    阅读完需:约 4 分钟

掀起云基础设施管理革命的IfC

基于代码基础设施(Infrastructure-from-Code,IfC)是一种创建、配置和管理云资源的方法,它理解软件应用程序的源代码,而无需明确的描述。Infra-from-Code 有四种主要的方法:基于 SDK 的、基于代码注解的、基于两者组合的,以及一种明确定义基础设施的新编程语言。

 

基于 SDK 的方法允许开发人员使用他们的代码,并且在部署时,这些工具会分析服务代码如何使用 SDK 并生成基础设施。基于 SDK 的方法使得根据代码推断使用情况更加可预测,但在利用新的云特性方面,SDK 总是落后一步。基于 SDK 工具的示例有AmptNitric

 

import { api } from '@nitric/sdk';

const helloApi = api('main');

helloApi.get('hello/:name', async(ctx) => { const {name} = ctx.req.params; ctx.res.body = 'Hello ${name}';})
复制代码

向互联网公开端点的 Nitric 示例

 

纯注解方法是仅基于代码内注解的。这种方法侧重于理解开发人员对框架和工具的使用。这种方法的主要工具是Klotho,它更像是一种基于代码架构(Architecture-from-code)的工具。Klotho 引入了诸如 exposepersistentstatic_unit 等功能(关键注解),这些功能可以使现有编程语言成为云原生语言。

 

const redis = require("redis");/*** @klotho:persist{*   id = "UserDB" *}*/

const client = redis.createClient();
复制代码

Redis 客户端持久化数据的 Klotho 示例

 

使用注解和 SDK 方法,开发人员可以对代码进行注解,工具可以将这些注解和 SDK 结合到框架中。该类别的主要工具是EncoreShuttle。这些工具可以托管在 IfC 供应商的平台上,也可以与 GCP、AWS 或 Azure 等第三方云提供商集成。另一个有趣的工具是 AWS Chalice,它允许创建和部署在 Python 中使用 AWS Lambda 的应用程序。

 

// encore:api public method=POST path=/urlfunc Shorten(ctx context.Context, p *ShortenParams)(*URL, error){    id, err := generateID()    if err != nil {       return nil, err    }    return &URL(ID: id, URL: p.URL), nil}
复制代码

API 请求/响应的 Encore 示例。注释指定了 URL 路径

 

基于语言的方法引入了旨在以云为中心的新编程语言。WingDarkLang是最常用的两种编程语言。这种方法允许在现有编程语言中引入难以实现的概念。每种新的编程语言都有一些权衡:软件开发人员需要首先学习它,然后将其集成到现有的工具和服务中。此外,寻找和雇用具有新编程语言专业知识的开发人员可能也需要时间和精力。

 

bring cloud;

let bucket = new cloud.Bucket();

new cloud.Function(inflight (_: str): str => { bucket.put("hello.txt","world");}
复制代码

云函数定义的 Wing 示例

 

ChefAnsiblePuppetTerraform基础设施即代码( Infrastructure-as-Code,IaC)的首批工具,并开始支持云基础设施的创建和管理。第二批 IaC 使用现有的编程语言(Python、Go、TypeScript)来表达与第一批工具相同的想法。PulumiCDK是第二代工具。

 

有关基于代码基础设施现状的更多详细信息,请阅读 Klotho 的 2023基于代码基础设施状况报告。

 

原文链接:

https://www.infoq.com/news/2023/01/google-gitops-observability/


相关阅读:

面向分布式云原生 构筑无处不在的云原生基础设施

揭秘 Meta 的云游戏基础设施

SaaS 初创公司如何选择合适的云基础设施

2023-02-17 11:193698

评论

发布
暂无评论
发现更多内容

递归算法的三个定律是什么?

InfoQ IT百科

计算单链表的长度。

InfoQ IT百科

netty系列之:netty中常用的对象编码解码器

程序那些事

Java Netty 程序那些事 4月月更

给定两个字符串s和t,判断这两个字符串中的字母是不是完全一样。

InfoQ IT百科

进程主要由哪几个部分组成?

InfoQ IT百科

阿里云数字化安全生产平台 DPS V1.0 正式发布!

阿里巴巴云原生

阿里云 云原生 数字化 安全生产平台

什么是“哈希算法”?

InfoQ IT百科

什么是满二叉树?

InfoQ IT百科

什么是完全二叉树?

InfoQ IT百科

易捷行云EasyStack 加入龙蜥社区,共同打造多样化算力创新云平台

OpenAnolis小助手

云计算 开源 龙蜥社区 CLA 易捷行云

图数据库|如何从零到一构建一个企业股权图谱系统

NebulaGraph

数据库 知识图谱

Plato Farm 的MARK 处于永远通缩,经济模型解析

西柚子

动态重定位需要由什么来实现?

InfoQ IT百科

CPU散热器是电脑标配吗?

InfoQ IT百科

大咖说 X 对话开源|论数据库人才发展战略

大咖说

数据库 阿里云 科技

易周金融观点 | 个人养老金制度正式出炉;居民贷款延期还款政策密集落地

易观分析

银行 养老金制度

EventBridge 集成云服务实践

阿里巴巴云原生

阿里云 云原生 事件总线 EventBridge 事件源

如何判断两个字符串是否互为回文?

InfoQ IT百科

单调栈与栈的区别是什么?

InfoQ IT百科

玩转小程序压测

阿里巴巴云原生

小程序 阿里云 云原生 压测 PTS

微服务架构设计实践

鲁米

微服务架构

LAXCUS分布式操作系统如何保障系统安全

LAXCUS分布式操作系统

软件系统安全 量子攻击 分布式软件系统

输入一个链表,输出该链表中倒数第k个结点。

InfoQ IT百科

算法的五大特征是什么?

InfoQ IT百科

企业知识管理平台的作用及功能

小炮

企业知识管理

数组去重的5种方法是什么?

InfoQ IT百科

国厂自研的操作系统都有哪些?

InfoQ IT百科

中关村e谷为产业搭台:中关村论坛(空天专场)黑科技亮相现场

联营汇聚

浅谈MatrixOne如何用Go语言设计与实现高性能哈希表

MatrixOrigin

golang 哈希表 MatrixOrigin MatrixOne 矩阵起源

加密算法有哪几种?

InfoQ IT百科

在Windows中,当一个应用程序窗口被关闭,该应用程序将会保留在哪里?

InfoQ IT百科

掀起云基础设施管理革命的IfC_服务革新_InfoQ精选文章