QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

评论

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

成本直降50% | 阿里云发布云原生网关,开启下一代网关新进程

阿里巴巴中间件

阿里云 微服务 云原生 中间件 网关

教你用Java7的Fork/Join框架开发高并发程序

华为云开发者联盟

Java 算法 线程 高并发 Fork/Join框架

“828页Java面试手册”在我手,何愁offer不到手!

Java 程序员 架构 面试 后端

双减来了!人工智能如何促进教育领域转型?

京东科技开发者

人工智能 大数据 AI 教育行业

2021年9月国产数据库大事记

墨天轮

数据库 华为云 国产数据库 达梦 人大金仓

我用 10000 张图片合成我们美好的瞬间

荣顶

JavaScript 大前端 canvas 图形处理

为绿色而生:智慧矿山可视化数治监管

一只数据鲸鱼

数据可视化 智慧矿山 煤矿 矿山

【优化技术专题】「线程间的高性能消息框架」终极关注Disruptor的核心源码和Java8的@Contended伪共享指南

码界西柚

Disruptor 异步执行 高性能框架 10月月更

校友录小程序开发笔记三十二:校友卡模块设计与实现

CC同学

仅需三天,受人追捧的华为内部Java优化笔记登顶Github热搜!

Java 架构 面试 程序人生 编程语言

GitHub标星过万!阿里内部流传的JDK源码剖析手册到底有多强?

程序员 jdk 面试 java

每一个用到canvas的小伙伴都应该了解的fabric.js

荣顶

JavaScript 大前端 canvas 图形处理 画布

明道云当选“中国电子商会数据资源服务创新专业委员会”理事单位

明道云

一加9 Pro怎么样?值得入手的全能旗舰

Geek_8a195c

还在苦恼网络协议?阿里大佬这份笔记带你从入门到精通!

Java 架构 面试 程序人生 编程语言

OpenCV学习(三):三重境界

轻口味

OpenCV图像处理 10月月更

Java 面试的“完美圣经”,有了这些还愁面试吗?

Java 程序员 架构 面试 后端

机器翻译是否能替代人工翻译?从前世今生说起

博文视点Broadview

专场预告 | DTCC数据库技术大会云溪数据库专场

云计算

Vue进阶(幺叁幺):父子组件传值实现数据深拷贝

No Silver Bullet

Vue 深拷贝 10月月更

想提高运维效率,那就把MySQL数据库部署到Kubernetes 集群中

华为云开发者联盟

MySQL 运维 测试 MySQL数据库 Kubernetes 集群

百分点大数据技术团队:低代码平台实践

百分点科技技术团队

设计电商秒杀系统

木云先森

架构训练营

「 活动 」连续 3 天,企业容器应用实战营上海站来啦!

阿里巴巴云原生

阿里云 Kubernetes 容器 云原生 活动

万字长文,一篇吃透WebSocket:概念、原理、易错常识、动手实践

JackJiang

websocket 即时通讯 IM

设计模式如何提升 vivo 营销自动化业务扩展性 | 引擎篇01

vivo互联网技术

自动化 后端 设计模式 软件架构设计 java

SSH是什么?怎么组成?有哪些优势?

行云管家

SSH 服务器 SSH工具 服务器管理协议

浙江金华市正规等保测评机构有几家?在哪里?联系电话是多少?

行云管家

网络安全 等保 等保测评

再见收费的Navicat!操作所有数据库靠它就够了!

Java 数据库 架构 开源项目

用21张图,把Git 工作原理彻底说清楚

git 架构 面试 后端

DCI架构是如何解决DDD战术建模缺点的?

华为云开发者联盟

领域驱动设计 对象 建模 对象编程 DCI架构

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