写点什么

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

评论

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

捷行2024Train-the-Trainer微课程系列 - 第三期 · 从产品敏捷开发升华到企业转型策略

ShineScrum

敏捷 #敏捷开发

【YashanDB知识库】yasql / as sysdba无法登录

YashanDB

数据库 yashandb

【YashanDB知识库】启动yasom时报错:sqlite connection error

YashanDB

数据库 yashandb

【YashanDB知识库】安装过程报错: unable to authenticate, attempted methods [none password], no supported methods remain

YashanDB

数据库 yashandb

面试官:不会“不定高”虚拟列表,你在简历上面提他干嘛?

EquatorCoco

Java 面试

谷云科技数据集成社区焕新登场:功能、资源、会员权益全面升级

RestCloud

ETL 集成社区

成功迁移客户推荐|ONES 的迁移能力和服务专业性值得信赖!

万事ONES

项目管理 研发管理工具ONES

为什么并发编程是Java程序员的必修课?

了不起的程序猿

高并发 架构师 java程序员 java面试 Java并发编程

Java面试八股文(20w字)

Geek_Yin

Java 面试 #java #程序员 #Java面试题 #Java面试八股文

3分钟理清QPS、TPS、RT 以及它们之间的关系

秃头小帅oi

如何利用RocketMQ事务消息,来实现分布式事务?比如下单清空购物车的场景

架构师之道

Java 分布式

体育直播源码是什么?为什么会使用源码开发平台?

软件开发-梦幻运营部

关于Mysql查询的那些事儿

伤感汤姆布利柏

ONES 联合中国信通院权威发布《企业级研发管理系统迁移指南》

万事ONES

项目管理 研发管理 研发管理工具ONES

“AI+Security”系列第4期(二):LLM辅助的模糊测试增强技术

云起无垠

Selenium自动化防爬技巧:从入门到精通,保障爬虫稳定运行

小白的大数据之旅

爬虫 反爬策略 反爬虫 爬虫实战

微店API接口深度解析:如何高效获取商品详情与店铺所有商品数据

代码忍者

微店商品详情API接口 微店商品列表API

【YashanDB知识库】使用vmware虚拟机安装的YashanDB,本机无法访问

YashanDB

数据库 yashandb

NFT交易所开发全解析:流程、技术要点与市场趋势

V\TG【ch3nguang】

NFT交易所开发

京东按图搜索京东商品(拍立淘)API接口的开发、应用与收益

科普小能手

数据挖掘 电商 京东 API 接口 跨境电商运营

Native Instruments Kontakt 7 for Mac(强大音频采样器)v7.7.3激活版

小玖_苹果Mac软件

实践指南|如何构建高效、准确、敏感的指标体系

Aloudata

数据分析 指标体系 指标管理 指标平台 指标开发

一线大厂 最新Java面试题大全(整理版)

采菊东篱下

Java 面试

@所有人 2024 IT行业项目管理调查问卷,邀您参与!【有奖问卷】

禅道项目管理

项目管理 程序员 IT 调查报告 禅道

【YashanDB知识库】密码带特殊符号登录报错YAS-02143 invalid username/password, login denied

YashanDB

数据库 yashandb

不愧是阿里Redis神级手册,从基础到源码,从头到尾没有一句废话

架构师之道

redis 编程

京东店铺所有商品数据接口(JD.item_search_shop)丨京东API接口指南

tbapi

京东API接口 京东店铺所有商品数据接口

benchANT 性能榜单技术解读 Part 1:写入吞吐

KaiwuDB

数据库

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