写点什么

掀起云基础设施管理革命的 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:193906

评论

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

所谓生产力

ES_her0

3月日更

远程协助软件向日葵分析

lenka

3月日更

配置引起事故复盘

风翱

3月日更

《Redis 核心技术与实战》学习笔记 05

escray

redis 学习 28天写作 3月日更 Redis 核心技术与实战

架构 idea

型火🔥

架构 原则 架构之道

(继续码字) 因果有顺序吗?是一种必要充分条件吗?

mtfelix

28天写作 bewriting 胡思乱想

Seldon使用(一):简介及入门

托内多

tensorflow kubeflow Kubernetes PyTorch seldon

新年上班第一天生产环境分布式文件系统崩了!!

冰河

高可用 分布式存储 fastdfs 可扩展 无限扩容

JVM - 类加载器

insight

3月日更

源码分析-Netty: 高性能之道

程序员架构进阶

Netty RPC 源码剖析 28天写作 3月日更

正则表达式的使用与匹配原理解析

Guanngxu

正则表达式

uni-app跨端开发H5、小程序、IOS、Android(四):了解uni-app项目结构

程序员潘Sir

html5 微信小程序 uni-app android iOS Developer

MongoDB中的null类型查询

Kylin

mongodb 3月日更 21天挑战 数据库查询 NoSql查询语法

FISCO BCOS 开发环境节点搭建 | 联盟链开发(一)

李大狗

区块链 联盟链 FISCO BCOS 狗哥

《码农歌》

臧萌

加班

Python PyAutoGUI 库

HoneyMoose

数据库备份真的很重要!很重要!很重要!

xiezhr

oracle sql MySQL 运维 数据备份

一口气面了腾讯两个部门!

我是程序员小贱

3月日更

避免失控:谈谈人与人交往中的恶

boshi

职场 心理 七日更

分享18个常用的ECMAScript 6代码片段

devpoint

reduce URL参数解析 Form表单数据解析

还有高仿项目吗

GitHub指北

好想做个女孩子,编程第一步,女装身上穿

GitHub指北

在离开新手村后,你该如何的走出呢?打造属于你的快与慢的能力。

叶小鍵

一些人的某些目标

sadhu

生涯规划 职业规划 个人提升

【LeetCode】矩阵置零Java题解

Albert

算法 LeetCode 28天写作 3月日更

领域驱动设计101 - 通用语言

luojiahu

领域驱动设计 DDD

蚂蚁二面:MQ消费端遇到瓶颈除了横向扩容外还有其他解决办法?

中间件兴趣圈

面试 RocketMQ 消息中间件

GitOps | 一种云原生的持续交付模型

xcbeyond

CI/CD gitops 3月日更

初识Golang之调用方法

Kylin

3月日更 Go 语言

苹果笔记本充不进电的解决方案

石云升

电脑故障 28天写作 3月日更

Wireshark数据包分析学习笔记Day17

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

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