看云栖说云栖 —— 容器、云原生、微服务

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 阿里云上的容器、云原生、微服务

“基础设施的云化、核心技术的互联网化、应用的数据化和智能化”是云的三大趋势和核心价值所在。
—— 行癫观点

在年初的阿里云北京峰会上,阿里云新任掌门行癫张建峰的首次亮相,提出了升级以后的阿里云智能意味着:

  • 基础设施的云化
  • 核心技术的互联网化
  • 应用的数据化和智能化

前面的《看云栖说云栖》讲的大多都是和基础设施的云化相关的内容,而这次的内容还和核心技术的互联网化有关。

本文内容提取自2019杭州云栖大会《容器专场》、《云原生开发者峰会》。

先从《容器专场》开始,Kubernetes已经成为云原生应用底层平台的事实标志,当下互联网核心技术体系的基础平台。今天再去谈容器,讲的多半还是和Kubernetes有关的内容。在这次云栖大会上,阿里云发布了阿里云Kubernetes服务(ACK)2.0版,这个版本的“新”体现在:

  • 新基石、ACK实现了全球化部署,并且支持边缘节点,在ACK2.0中集成了对边缘计算节点的管控、打通了混合云架构,交付效率3倍提升。
  • 新算力、可在一分钟内实现上千个节点的伸缩、支持GPU等异构计算资源、提供沙箱容器选项,增加容器平台安全性。
  • 新生态、集成了容器应用市场,基于ACK的应用部署更加便捷,提供合作伙伴计划助力生态建设。

在容器专场的最后,是由蚂蚁金服的专家和阿里云的专家介绍了安全容器的关键技术、kata-container、和阿里云的沙箱容器。目前,沙箱容器已经在阿里云ACK服务上线提供公测,适合对容器平台安全有更高要求的客户使用,在创建集群时勾选沙箱容器选项即可。

在《云原生开发者峰会》,阿里巴巴介绍了自己的云原生实践:

  • 阿里巴巴容器集群节点超十万、容器组超百万,可能已经是全球最大规模的云原生应用实践者了。
  • 因为引入云原生技术,双11 IT成本下降75%,日常IT成本下降30%。
  • 目前整个阿里经济体都运行在阿里云上。

作为CNCF(云原生计算基金会)的9位TOC(技术监督委员会成员)之一,阿里云李响做了《阿里巴巴的云原生之路》的演讲。阿里选择云原生的理由可以总结为三个方面:

  • 资源效率、利用容器可以提升资源利用率,提高调度效率,尤其是在阿里巴巴大量使用了离线业务和在线业务混合部署的架构,利用在线业务系统的闲置时段进行离线计算。
  • 开发效率、程序开发人员和运维人员利用容器和编排系统可以更好的协作,更易于实现CI/CD,基于服务网格可以让多语言环境的微服务系统更易于构建和运维。
  • 标准与开放、基于共同的开放标准,行业生态伙伴更容易进行协同技术演进。

什么是CNCF:云原生计算基金会构建可持续的生态系统,并培育社区,以支持云原生开源软件的增长和健康。
CNCF下的开源项目包括:

  • Kubernetes :集群中管理跨多台主机容器化应用的开源系统;
  • Prometheus :专注于时间序列数据,为客户端依赖及第三方数据消费提供广泛集成支持的开源监控解决方案;
  • OpenTracing:与厂商无关的分布式追踪开源标准;
  • Fluentd:创建统一日志层的开源数据收集器。
  • Linkerd:为微服务提供可靠性支持、自动化负载均衡、服务发现和运行时可恢复性的开源“服务网格”项目;
  • gRPC:现代化高性能开源远程调用框架;
  • CoreDNS:快速灵活的构建 DNS 服务器的方案;
  • containerd:将容器运行时及其管理功能从 Docker Daemon 剥离的镜像管理和容器执行技术;
  • rkt:帮助开发者打包应用和依赖包,简化搭环境等部署工作,提高容器安全性和易用性的容器引擎。

其实不仅这些项目,符合CNCF理念的开源项目还有很多,CNCF将这些项目整合成了一张全景图:https://landscape.cncf.io/images/landscape.png

landscape(小).png
(全景图缩小版)

阿里云结合自身的使用实践,基于Kubernetes开源了OpenKruise项目,提供一组额外的Kubernetes控制器:

  • BroadcastJob Controller、用于把Job跑在每一个节点上。类似于DaemonSet会在每一个节点上去运行,区别是Job会结束而Daemon会一直运行并占用资源。
  • Sidecar Set、类似于Istio的Sidecar 容器自动注入,便于管理人员将日志、监控等一些业务无关的Sidecar容器的管理集中统一起来。
  • Advanced StatefullSet Controller、提供StatefullSet的原地升级能力,保留pod而只对容器镜像进行升级,避免销毁pod重建对应用网络拓扑造成的冲击。

最后的内容是和微服务相关,阿里云资深技术专家司徒放(姬风)做了《微服务遇见云原生》的演讲。姬风认为微服务架构走向云原生有三个关键:

  • 在kubernetes上运行、kubernets已经是云原生的事实标准、kubernetes天然为微服务设计、kubernetes为分布式、可弹性扩缩容应用提供运维支持。
  • 基于Service Mesh治理、Service Mesh提供多语言异构技术栈的统一监控、智能、Service Mesh通用组建与业务逻辑完全解耦,独立升级、但Service Mesh尚未完全成熟,待提升规模化能力、需进一步提升兼容性、性能。
  • 应用Serverless化、Serverless 不等于FaaS,阿里云应用引擎SAE在不需要对应用作大量修改的同时即可享受到Serverless极速扩容和成本降低的好处。

基于Kubernetes来构建微服务,阿里云可以集成的服务产品包括:

  • Istio & Envoy、Service Mesh的事实标准Istio 和Envoy已经是阿里云ACK(阿里云Kubernetes) 服务的内置组件。
  • 日志服务SLS、阿里云日志服务提供事件安全审计、业务日志收集、ingress(kubernetes的服务路由组件)大盘。
  • 应用实时监控ARMS、ARMS可与jaeger/Zipkin/Skywalking等链路追踪服务集成;Prometheus作为下一代的开源监控系统,提供了Kubernetes,数据库,消息队列,基础架构等各类技术组件的监控能力 ,ARMS提供Prometheus全托管式云服务,无需安装运维;Grafana 是一个大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,提供了包括Kubernetes,主机,MySql,kafaka等各类技术的监控大盘,在阿里云上可以一键开启,并支持导入现有大盘数据。
  • 链路追踪、阿里云链路追踪服务支持OpenTracing API,使用阿里云链路追踪服务可比自行构建节省80%成本。
  • 微服务引擎MSE、微服务引擎 MSE(Microservice Engine )是微服务注册中心和配置管理的全托管式平台,提供高可用且免运维的服务注册和配置管理集群,如 ZooKeeper、Nacos 和 Eureka 等。
  • 企业级分布式应用EDAS、同时支持ECS和Kubernetes应用托管、支持Dubbo/Spring Cloud无侵入的微服务治理。
  • 应用高可用AHAS服务、Sentinel是阿里云开源的限流降级引擎,AHAS提供Sentinel的云上版本,除了限流降级AHAS还提供架构感知和故障演练的功能。
  • 应用配置管理ACM、应用配置管理 ACM(Application Configuration Management)前身为淘宝内部配置中心 Diamond,现已作为 Nacos 的配置中心模块开源。

什么是Service Mesh 服务网格?按照服务网格概念的提出者Willian Morgan(Linker 的 CEO)的定义:
A service mesh is a dedicated infrastructure layer for handling service-to-service communication. It’s responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud native application. In practice, the service mesh is typically implemented as an array of lightweight network proxies that are deployed alongside application code, without the application needing to be aware.
服务网格是一个用于处理服务间通信的基础设施层,它负责为构建复杂的云原生应用传递可靠的网络请求。在实践中,服务网格通常实现为一组和应用程序部署在一起的轻量级的网络代理,但对应用程序来说是透明的。
Istio 作为最流行的ServiceMesh 项目,通过自动注入的Sidecar容器来解决服务路由、安全认证、监控调度等非常重要又和业务本身无关的任务。Istio最初只支持Kubernetes。

servicemesh1.png

(蓝色部分即为SideCar容器)

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
17天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
12天前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
12天前
|
人工智能 Kubernetes Cloud Native
阿里云容器服务,智算时代云原生操作系统
2024云栖大会,阿里巴巴研究员易立分享了阿里云容器服务的最新进展。容器技术已成为云原生操作系统的基石,支持多样化的应用场景,如自动驾驶、AI训练等。阿里云容器服务覆盖公共云、边缘云、IDC,提供统一的基础设施,助力客户实现数字化转型和技术创新。今年,阿里云在弹性计算、网络优化、存储解决方案等方面进行了多项重要升级,进一步提升了性能和可靠性。
|
13天前
|
Cloud Native API 微服务
微服务引擎 MSE 及云原生 API 网关 2024 年 11 月产品动态
微服务引擎 MSE 及云原生 API 网关 2024 年 11 月产品动态。
|
14天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 11 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
18天前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器化到微服务
本文将带领读者踏上云原生的旅程,深入探讨容器化和微服务架构的概念、优势以及它们如何共同推动现代软件的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务应用,并解释相关的配置和操作。无论你是云原生新手还是希望深化理解,这篇文章都将为你提供有价值的见解和实操指南。
|
21天前
|
Cloud Native API 持续交付
云原生时代的微服务架构设计
随着云计算的蓬勃发展,云原生概念逐渐成为IT行业的热点。本文将通过深入浅出的方式,介绍在云原生环境下,如何设计一个高效、可扩展的微服务架构。文章不仅涉及理论概念,还将结合实际代码示例,帮助读者理解微服务架构的核心要素和设计原则,以及如何在云平台上实现这些设计。
|
24天前
|
Kubernetes Cloud Native 开发者
云原生入门:从容器到微服务
本文将带你走进云原生的世界,从容器技术开始,逐步深入到微服务架构。我们将通过实际代码示例,展示如何利用云原生技术构建和部署应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
17天前
|
Cloud Native API 持续交付
云原生架构下的微服务治理策略与实践####
本文旨在探讨云原生环境下微服务架构的治理策略,通过分析当前面临的挑战,提出一系列实用的解决方案。我们将深入讨论如何利用容器化、服务网格(Service Mesh)等先进技术手段,提升微服务系统的可管理性、可扩展性和容错能力。此外,还将分享一些来自一线项目的经验教训,帮助读者更好地理解和应用这些理论到实际工作中去。 ####
34 0
|
14天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
147 77