基础架构作为代码和无服务器计算。
基础架构作为代码(IAC)多年来一直在软件开发行业中浪潮。从本质上讲,IAC是通过代码而不是手动配置管理和配置基础架构(考虑服务器,存储,网络等)的过程。通过这种方法,开发人员可以使用与他们用于代码相同的版本控制系统来控制其基础架构,从而使协作,测试和部署基础架构更改变得更加简单。
尽管如此,随着无服务器计算的趋势,许多开发人员正在将注意力从管理基础架构和编码转向。无服务器计算使开发人员能够创建和操作应用程序,而无需基础架构管理负担。这种方法具有许多优势,包括更快的上市时间,更少的运营开销和自动缩放。
但是,有一个陷阱。当您从无服务器堆栈开始时,很难切换到其他提供商或托管模型。与无服务器基础架构交互的API嵌入了您的代码,即使它承诺节省成本或出色的功能,也将迁移到另一个提供商的挑战。
配置的未来:代码的基础架构
如果您可以专注于编码并让基础架构照顾自己怎么办?如果基础架构可以理解您的代码和规定本身怎么办?这是供应的未来,并且已经在动作。
最近,我偶然发现了Encore。 Encore通过使用注释和后端应用程序或微服务中使用的框架来陈述基础架构来简化后端开发。您可以绕过编写大量的Terraform,样板和配置。几乎就像魔术!
import (
"context"
)
// This is a REST API that responds with a personalized greeting.
//
//encore:api public path=/hello/:name
func World(ctx context.Context, name string) (*Response, error) {
msg := "Hello, " + name + "!"
return &Response{Message: msg}, nil
}
type Response struct {
Message string
}
这个示例是用Golang编写的REST API,以个性化的问候做出回应。我们使用* encore:api
**指令/注释来告诉Encore此功能应作为API公开,我们指定了应使用的路由来访问它。*
使用Encore的好处。
Encore的方法是基于理解您的代码库的原则。这使微服务的开发超级流畅,并具有构建整体应用的所有特权。在本地和您的云基础架构上运行非常简单,团队甚至提供了免费的开发环境。这表明了他们对产品对初创企业的影响以及如何帮助他们迅速成长的影响。
所有使Encore如此酷的东西都是开源的,因此,如果您决定不继续使用该工具,则仍然可以运行您的应用程序。而且,如果您想迁移,这很简单,因为您编写的大多数代码都是Golang。这很棒,因为当您夸耀防止供应商锁定时,只有确保您不会成为预防的事情才是正确的。
所有这些都是可行的,因为Encore可以理解您的代码库。它采用静态分析来了解您的应用程序,使您可以编写可以在各种不同的基础架构提供商上运行的便携式代码。这意味着您可以使用Encore开发后端应用程序,然后将其部署到您选择的云提供商,无论是AWS,GCP还是Azure。 Encore处理基础架构资源的供应和管理,使您可以专注于创建应用程序并为用户提供价值。
对我来说,这种方法感觉更合适。当您对代码有深入的了解时,一切都会变得可能。通过访问所有变量,包括代码如何使用资源,Encore可以做出有关基础架构的更明智的决定。这种方法优先考虑开发人员的经验,而不是要求他们学习如何提供,减少部署所需的时间和精力。
Encore能够理解您的代码和提供给您首选的云提供商的能力使得必要时更容易迁移到另一个提供商。此外,仅提供必要资源的能力会导致更具成本效益的解决方案,优化基础架构使用并减少不必要的费用。
Encore的一个限制是它目前仅支持Golang API/Apps。但是,在与创始人安德烈斯的电话中,他提到他们希望将来支持其他语言。
Encore提供了几种业务优势,包括更快的上市时间,缩短的运营开销和节省成本。
接下来的地平线
来自代码的基础架构是基础架构管理发展的下一步,因为它使开发人员在编码时能够在编码时提供和管理基础架构资源。这种方法允许开发人员和运营团队之间更有效的合作并加速开发过程。
Encore正在使用静态分析以自动理解您的代码库并自动提供所需的资源。这不仅允许开发人员专注于编写代码,还可以促进团队之间的合作,从而导致交付时间更快,运营费用减少和节省成本。
随着技术的发展,至关重要的是,我们保持领先地位并采用创新的方法,例如基础架构,以保持竞争力。 Encore就是一个很棒的例子,我很高兴看到这种革命性技术的未来。
要了解有关Encore的更多信息,探索他们的documentation或与他们不断增长的社区互动 here.