Envoy 宣布了对 Windows 原生支持的 Alpha 版本。
Envoy 是用于云原生应用的边缘和服务代理,它最初由 Lyft 开发,是一个为单一服务和应用程序设计的高性能 C++ 分布式代理,以及为大型微服务 Service Mesh 体系结构设计的通信总线和通用数据平面。Enovy 通过管理微服务之间的交互以确保应用的性能,有助于简化云原生架构的过渡和操作。 2018 年,Envoy 成为继 Kubernetes 和 Prometheus 之后的第三个 CNCF 毕业项目。
目前,Envoy 已经被许多公司投入生产使用,Windows 支持应该会开放它的使用到额外的云原生服务、遗留的 .NET 应用程序,以及一大堆其他的应用架构。特别有前景的是,用户可以将 Envoy 与运行在数据中心或公共云中Windows服务器上的Windows应用程序、基于Windows的容器,甚至桌面应用程序一起部署。
Windows 上的 Alpha 支持意味着什么?
在 Windows 上对 Envoy 的 Alpha 支持意味着 Envoy 代码库已经达到了一个阶段,贡献者和维护者社区相信它在 Windows 上足够稳定,可以供公众评估。通用可用性(General Availability,GA)也即将发布。官方表示,其希望通过发布这个 Alpha 版本,可以加快收集社区反馈和贡献的过程,从而推动一个 GA 版本的发布。
由于进入了 Alpha,Envoy 在 Windows 上编译,现在每个 pull 请求和合并提交都需要通过 CI 测试。此外,还有一组专门的开发人员为 Windows 做出贡献,他们花时间筛选报告的问题和 bug、修复 CI 失败和测试缺陷,并与维护人员一起确保代码质量和正确性。
值得注意的是,Alpha 版本并不意味着 Envoy 适合或支持生产工作负载。
在 Windows 上如何开始使用 Envoy?
该项目一直将 Envoy 的的主分支视为发布候选质量,许多组织在生产中跟踪并部署主分支。因此,没有“标记的”Alpha 发布提交,而是主分支应该被认为是 Windows 上的 Alpha 发布质量,直到一个 GA 发布发生。总的来说,Envoy 代码库会持续快速发展,所以官方建议经常刷新源代码签出,以充分利用贡献者社区的反馈和改进。
从源代码构建
目前还不提供 Envoy on Windows 的二进制文件,必须从源代码构建。关于在 Windows 上使用 Bazel 设置构建环境和编译静态链接 Envoy 可执行文件的文档可以在这里找到。官方还提供了一个基于 Windows Server 2019 服务器核心 Docker 容器镜像与所有需要的 工具 来构建和静态链接 Envoy,请参阅此文件的更多细节。
- https://github.com/envoyproxy/envoy/tree/master/bazel#building-envoy-with-bazel
- https://github.com/envoyproxy/envoy/blob/master/ci/README.md
使用例子
当你有了一个 Envoy 二进制文件,并且想开始熟悉在 Windows 上使用 Envoy,本教程是一个很好的起点。你将运行前端代理沙箱示例的一个修改版本,该示例演示了将 Envoy 与你的服务并行运行的优点:所有请求都由服务 Envoy 处理,并有效地路由到你的服务。
- https://blog.envoyproxy.io/envoy-proxy-on-windows-containers-193dffa13050
- https://www.envoyproxy.io/docs/envoy/latest/start/start#sandboxes
有什么特定于 windows 的区别需要注意吗?
Windows 支持方面的工作仍在迅速进行,在这个 Alpha 版本中,大部分核心 Envoy 功能应该与 Linux 相同。服务网格支持需要额外的平台功能,开发团队表示,他们希望在即将发布的 Windows 中启用这个功能。Envoy 的配置和使用在不同的平台之间不应该有任何区别,除非有通用平台的特定细节,如文件路径、套接字选项等。也就是说,Envoy 的一些现有功能是在设计和实现时首先考虑到 Linux 的,因此可能会在 Windows 上被禁用或在有限的能力下工作。
你可以在这里找到 Windows 上功能退化或禁用的 Envoy API 列表:
猜你喜欢: