探讨基于阿里云容器技术架构(一)

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 这是一个基于阿里云容器技术架构的系列文章。

为什么有这个主题?

记得2018年参加上海KubCon大会时,演讲人现场对国内生产使用Kubernetes情况的调查,现场举手的寥寥无几。时至今日,参加2019“MVP闭门大会”和“云栖大会”,感受到“云原生”无处不在。那么当容器、容器编排遇到传统微服务架构,会擦出怎样的火花,这其中有哪些坑?人类对科学的追求总是义无反顾的,进化到云原生时代,我们的机遇和挑战是什么?

希望在这个场合一起探讨下,没有对错,只有适合与否。关键是当开始有沟通,才可能继续往前走。

这个系列文章采用总分总的方式写,第一篇主要探讨整体架构,后面文章探讨各部分更具体的技术方案,最后总结。

探讨整体架构

让我们从一张图开始第一篇正式内容,这是一个可能的最小化服务化架构:
阿里云微服务技术架构.png
这是一个传统架构和容器技术混合的架构,在全面介绍之前,我们先分别看下各自的发展史,“知道从哪儿来,方知道我们往哪儿去”。

从传统部署时代到容器部署时代

下面这张图从运维角度描述了,应用从传统部署时代如何发展到容器部署时代。也折射出企业上云的发展过程。
image.png

在国内,阿里云吹响了企业上云的号角,可归纳为以下几个阶段:

  • 第一阶段,是IT基础设施云化,包括虚拟机、网络等上云,降低企业运维成本、提升弹性伸缩能力。
  • 第二阶段,是核心架构云化,包括阿里云数据库、阿里云微服务引擎 ( Microservice Engine, 简称:MSE )、全局事务服务GTS等,Kubernetes或许也算。
  • 第二阶段的升级版,可能是全面拥抱Cloud Native,随着有状态应用和无状态应用全面拥抱Kubernetes,我们可以猜测走向了面向Kubernetes编程时代,开发人员不必关心微服务治理的各种技术栈和开发语言(诸如:Golang、Java等),写好业务代码,定义好云原生开放应用模型(OAM),发布上线即可,应用将变得更轻量、接入成本更低、迭代更敏捷。

IT行业发展是如此迅速,却又是如此必然。类比下,编程语言从汇编、C++、Java到新型语言Golang,无不是从复杂到易用的过程。易用、轻量贯穿整个行业的发展脉络,所以我们有理由相信这一天的到来,尽管过程比较曲折,Istio如今还不尽如人意。

那些年,我们折腾过的微服务架构

下图来源于蚂蚁金服@卓与( 一个帅又专业的小伙:) )的一次SOFAMesh分享。基本代表了,传统微服务架构Dubbo、SOFABoot、Spring Cloud等微服务架构核心能力和应用之间的关系。这类微服务架构提供“胖客户端”集成到应用,这个小胖每次升级都会影响到应用,也增加了中间件开发团队和业务团队沟通、协调成本,因为耦合太紧了。让我们寄希望于Cloud Native来解吧!
image.png

混合架构

熟悉Kubernetes的同学知道,他有几个对于微服务架构来讲重要能力:
容器编排能力
架起了容器镜像和硬件资源的桥梁,通过yarml声明轻松发布“可执行”程序,配合Liveness 和 Readiness可以做到不停机滚动发布,这都减轻了微服务运营成本。
服务发现能力
Kubernetes可以使用DNS(这是一个较早的基于服务端的服务发现模式)名称暴露一个应用集群的服务地址。Kubernetes还可以用负载均衡,把流量分配到Pod,从而使服务更稳定。这部分看着是否和“胖客户端”的服务发现有点儿像。

在Service Mesh没有完全落地之前,我们是否可以结合Kubernetes上述能力和传统微服务架构能力,各自发挥所长,组成一个混合架构呢,于是有了开篇第一张大图。

本篇总结

我们探讨了容器技术和传统微服务架构特点,并且尝试结合各自优势,组成一个混合架构。
后面我们就具体的技术领域做探讨和可能的坑。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
6天前
|
运维 Kubernetes Cloud Native
云原生技术:容器化与微服务架构的完美结合
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术以其灵活性和高效性成为企业的新宠。本文将深入探讨云原生的核心概念,包括容器化技术和微服务架构,以及它们如何共同推动现代应用的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务,揭示云原生技术的强大能力和未来潜力。
|
1月前
|
专有云 Serverless 持续交付
亚太唯一,阿里云再度入选Gartner®容器管理魔力象限领导者
Gartner正式发布 2024《容器管理魔力象限》报告,阿里云再度成为中国唯一一家入选「领导者象限」的科技公司。
|
10天前
|
人工智能 云计算 网络架构
阿里云引领智算集群网络架构的新一轮变革
11月8日~10日在江苏张家港召开的CCF ChinaNet(即中国网络大会)上,众多院士、教授和业界技术领袖齐聚一堂,畅谈网络未来的发展方向,聚焦智算集群网络的创新变革。
阿里云引领智算集群网络架构的新一轮变革
|
6天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
6天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
6天前
|
安全 持续交付 Docker
微服务架构和 Docker 容器化部署的优点是什么?
微服务架构和 Docker 容器化部署的优点是什么?
|
7天前
|
存储 监控 Docker
探索微服务架构下的容器化部署
本文旨在深入探讨微服务架构下容器化部署的关键技术与实践,通过分析Docker容器技术如何促进微服务的灵活部署和高效管理,揭示其在现代软件开发中的重要性。文章将重点讨论容器化技术的优势、面临的挑战以及最佳实践策略,为读者提供一套完整的理论与实践相结合的指导方案。
|
10天前
|
人工智能 运维 网络架构
阿里云引领智算集群网络架构的新一轮变革
11月8日至10日,CCF ChinaNet(中国网络大会)在江苏张家港召开,众多院士、教授和技术领袖共聚一堂,探讨网络未来发展方向。阿里云研发副总裁蔡德忠发表主题演讲,展望智算技术发展趋势,提出智算网络架构变革的新思路,发布高通量以太网协议和ENode+超节点系统规划,引起广泛关注。阿里云HPN7.0引领智算以太网生态蓬勃发展,成为业界标杆。未来,X10规模的智算集群将面临新的挑战,Ethernet将成为主流方案,推动Scale up与Scale out的融合架构,提升整体系统性能。
|
14天前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
52 1
|
24天前
|
缓存 前端开发 JavaScript
前端的全栈之路Meteor篇(二):容器化开发环境下的meteor工程架构解析
本文详细介绍了使用Docker创建Meteor项目的准备工作与步骤,解析了容器化Meteor项目的目录结构,包括工程准备、环境配置、容器启动及项目架构分析。提供了最佳实践建议,适合初学者参考学习。项目代码已托管至GitCode,方便读者实践与交流。