从 re:Invent 看 AWS 对开源和社区的新贡献
图拍摄于 AWS Community Day Shanghai 2020
从 re:Invent 看 AWS 对开源和社区的新贡献
和支持者,贡献涵盖代码、运营、基础等诸多方面。除了构建的 2500 多个 GitHub 存储库之外,我们还参与了数千个第三方开源项目,并培育起数十万人的开源社区。
图1: AWS 对开源的贡献逐年增加
图2: AWS参与的一些开源项目
图3: AWS发起的一些开源项目
首先我们来看一下 DevOps。
谈到 DevOps,我们首先就会想到容器和 Kubernetes,它们成为了 DevOps 工具落地的新一代基础架构。Amazon Elastic Kubernetes Service (EKS) 为众多开发者提供了操作安全、稳定可靠的托管Kubernetes云服务,但是也有很多开发者由于各种原因只能在本地运营 Kubernetes。为了同样帮助这些开发者不把精力耗费在管理 Kubernetes 基础架构的大量繁重工作,我们发布了开源的 Amazon EKS Distro。它是Amazon EKS 所使用的 Kubernetes 发行版,可以帮助您在任何地方手动运行 Kubernetes 集群,包括 Amazon EC2 上、其他云中以及本地硬件。EKS Distro 包括上游开源 Kubernetes 组件和第三方工具,包括创建集群所需的配置数据库、网络和存储组件,其中有Kubernetes 控制平面组件(kube-controller-manager、etcd 和 CoreDNS)和 Kubernetes 工作节点组件(kubelet、CNI 插件、CSI Sidecar 映像、Metrics Server 及 AWS-IAM-authenticator)等。
同时,我们也提供了一个全新的 Kubernetes 部署选项 Amazon EKS Anywhere。Amazon EKS Anywhere 基于 Amazon EKS Distro 创建集群,可以让您在本地轻松创建及操作 Kubernetes 集群,包括在您自己的虚拟机和裸机服务器上。EKS Anywhere 提供可在本地创建和操作 Kubernetes 集群的可安装软件包,并提供用于集群生命周期支持的自动化工具。
有了这两个全新发布,可以说在 Kubernetes 领域,AWS 为开发者提供了跨本地和云的相同的使用和运营体验。
图4: Kubernetes跨本地和云的相同运营体验
持续的可观测性是 DevOps 流水线的关键组件,可观测性三大支柱包括跟踪、日志记录和指标,而这些需要作为一套统一的集成工具,使每位开发者都能在一个地方查看所有观测数据。在 re:Invent 2020 中,AWS 全新推出了三种开源解决方案,以便在云中集成更好的可观测性。首先是 AWS Distro for OpenTelemetry,它是一个安全、生产就绪、由 AWS 支持的 OpenTelemetry 项目发行版,可用于在 EC2、Lambda 和 AWS 容器服务上运行的应用以及本地应用,将相关指标和跟踪发送到多个云原生和开源监控组件。其次是 Amazon Managed Service for Prometheus (AMP) 。Prometheus 是一种流行的开源监控和警报解决方案,针对容器环境进行了优化。尽管在 AWS 上部署单个 Prometheus 服务器很容易,但可能需要长达数周的手动工作才能跨多台服务器进行扩展,并配置环境以获得高可用性。需要更多容量的客户必须部署其他开源项目,如 Thanos 和 Cortex,并投入更多工程工作来优化内存和存储等资源,以控制成本和优化查询重新响应时间。借助 AMP 托管服务,您可以使用与开源 Prometheus 相同的数据模型和查询语言来监视容器化工作负载的性能,并获得改进的可扩展性、可用性和安全性,而无需管理底层基础架构。再次是 Amazon Managed Service for Grafana (AMG)。AMG 基于开源的 Grafana 项目,是一项完全托管的服务,具有丰富的交互式数据可视化,可帮助客户分析,监视多个数据源中的指标,日志和跟踪并对其发出警报。您可以创建交互式仪表板,并使用自动缩放,高度可用且企业级安全的服务。至此,AWS 已经在其云服务中提供了完备的云原生和开源持续观测解决方案,为开发者构建DevOps 提供了更多的选择。
图5: 云原生和开源持续观测解决方案
接下来,我们再来看一下数据与分析。
图6: Babelfish的工作原理
最后我们再看一下机器学习与边缘计算。
图7: SageMaker data parallelism vs. PyTorch DDP
图8: AWS加入的一些开源基金会