写点什么

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

评论

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

如何设计大型互联网系统架构

天天向上

极客大学架构师训练营

给新入职工程师的10条建议

supernova

管理 职场 工作方式

自学编程,看书还是视频?

沉默王二

程序员 读书 自学编程 视频

用Python绘制地理图

计算机与AI

Python 绘图

架构师训练营第四周学习总结

Gosling

极客大学架构师训练营

马化腾的区块链理想

CECBC

区块链 马化腾

第11周总结

Vincent

极客时间 极客大学

每天都要写吗?

Nydia

Week 3命题作业

balsamspear

极客大学架构师训练营

第四课系统架构课后作业

Geek_michael

极客大学架构师训练营

架构师训练营第四周学习总结

吴传禹

极客大学架构师训练营

大区块链的必然性

CECBC

区块链技术

Flink时间服务和计时器-6-5

小知识点

scala 大数据 flink

架构师训练营第四周作业

我是谁

极客大学架构师训练营

大型互联网系统常用的技术方案

天天向上

极客大学架构师训练营

第四周总结

Geek_ac4080

手把手教你分析Mysql死锁问题

捡田螺的小男孩

MySQL 死锁

架构师训练营第四周课后作业

Gosling

极客大学架构师训练营

职场求生攻略答疑篇之 4 —— 社会有多真实,人心就有多虚伪

臧萌

职场 职场成长

十五、深入Python输入和输出

刘润森

Python

Linux的信号

菜鸟小sailor 🐕

c++

一次用户故事地图之旅

Bruce Talk

敏捷开发 用户故事 Product Owner 用户故事地图

架构师训练营第四周作业

吴传禹

极客大学架构师训练营

典型的大型互联网应用方案

garlic

极客大学架构师训练营

Week 3学习总结

balsamspear

极客大学架构师训练营

迭代开发中的微服务拆分

码猿外

架构 微服务 架构演进

区块链要如何解决供应链金融痛点?

CECBC

区块链 金融

三步法解析Express源码

执鸢者

面试 大前端 Node Express

甲方日常 32

句子

随笔杂谈

十六、深入Python字符串

刘润森

Python

第11周作业

Vincent

极客时间 极客大学

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