专栏首页全栈码农画像谈到云原生, 绕不开"容器化"

谈到云原生, 绕不开"容器化"

Containers

现在谈到云原生, 绕不开“容器”。

在《Cloud Native Patterns》一书中,作者Cornelia Davis指出:“容器是云原生应用的基石”; 云原生基金会将微服务容器化作为云原生旅行的第一步。

很容易就想到将微服务容器化, 过程也很简单。 将代码、依赖项和运行时打包到一个称为容器镜像的二进制文件中。镜像存储在镜像仓库,Docker官方维护了Docker Hub镜像仓库。

需要时,可以将镜像转换为可运行的容器实例,该实例可在装有容器运行时引擎的任何计算机上运行,你可以按需部署任意数量的容器实例。

下图显示了三个微服务在单主机以容器化运行。

每个容器维护自己的依赖关系和运行时,这可能会有所不同,上图我们看到在同一主机上运行的Product微服务的不同版本。每个容器共享基础主机操作系统,内存和处理器的一部分,但彼此隔离。

容器模型遵守“十二要素应用”的Dependencies原则。

要素2指定“每个微服务隔离并打包其自己的依赖项、更改项(不影响整个系统)”

容器同时支持Linux和Windows工作负载。

虽然存在多个容器供应商,但Docker已经成为打包、部署和运行云原生应用程序的事实标准,Docker占据了最大的市场份额,该公司一直在推动软件容器的发展。

Why containers

  • 容器提供了移植性,并保证在跨环境时,能输出一致。通过将所有内容封装进单个程序包,可以将微服务+依赖项与基础设施隔离。
  • 你可以在安装Docker运行时引擎的 任何环境部署同一容器,容器化消除了预先配置环境的时间开销 (for框架、程序库文件、和运行时)。
  • 通过共享底层操作系统和主机资源,容器的占用空间比完整的虚拟机小很多,小体积,高密度,在一台主机上可以运行多个微服务。

容器编排

Docker Api/工具创建镜像和容器,你还需要工具管理容器。

管理容器的软件称为"容器编排器",大规模使用容器时,容器编排器至关重要。

容器编排器做了什么 ?

任务

描述

Scheduling

自动配置、调度容器实例

Affinity/anti-affinity

在附近或相距较远的位置调配容器,以提高可用性和性能

Health monitoring

自动探测并修复故障

Failover

自动将失败的实例转移到状况良好的机器

Scaling

自动增减容器 去匹配预期状态

Networking

给容器提供覆盖网络

Service Discovery

容器之间互相发现

Rolling Upgrades

零停机增量升级,零停机自动回滚

容器编排器遵循“十二要素应用程序”中的disposabilityconcurrency原则。

要素9:强调“服务实例应该是一次性的,这样有利于快速启动(提供可伸缩能力),优雅关闭让系统保持正确状态”, 要素8:强调“服务在大量小的相同进程(副本)上扩展,而不是在可用的功能最强大的计算机上扩展单个大型实例”。

目前市面上存在多个容器编排器,但Kubernetes已成为云原生世界的事实标准,这是一个可移植、可扩展的、开源的、管理容器的平台。

你可以自建k8s集群,自行调配和管理k8s资源,这可能很复杂。 Azure云将K8s作为托管服务(AKS),你只需要利用K8s功能,而不需要维护K8s集群。

Azure Kubernets Services在第2章“Scaling Cloud-Native Applications”中详细介绍。

本文分享自微信公众号 - Dotnet Plus(nodotnet),作者:小码甲

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-02-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 云原生关乎文化,而不是容器

    本文译自 Cloud-Native Is about Culture, Not Containers[1],文章洋洋洒洒上万字,作者总结了她见过的云原生失败的各...

    xcbeyond
  • 初探云原生私有化容器云平台

    本文的主要目的是分享一些企业在私有化场景下关于容器化改造方面的经验,这也是我们站在平台提供者的角度和业务方交流沟通后的一些思考,希望能够对大家有所启发。

    腾讯云原生
  • 甲骨文容器原生云开发解决方案

    甲骨文容器云原生开发解决方案。使用Wercker 做持续集成和持续交付,部署到基于K8s的容器平台。 使用2分钟时间可以做一次迭代,实现修改,构建,测试,部署上...

    首席架构师智库
  • 腾讯云EMR基于YARN针对云原生容器化的优化与实践

    导语 | 传统HADOOP生态系统使用YARN管理/调度计算资源,该系统⼀般具有明显的资源使⽤周期。实时计算集群资源消耗主要在⽩天,而数据报表型业务则安排在离线...

    腾讯云大数据团队
  • 腾讯云EMR基于YARN针对云原生容器化的优化与实践

    导语 | 传统HADOOP生态系统使用YARN管理/调度计算资源,该系统⼀般具有明显的资源使⽤周期。实时计算集群资源消耗主要在⽩天,而数据报表型业务则安排在离...

    腾讯QQ大数据
  • 腾讯云EMR基于YARN针对云原生容器化的优化与实践

    ? 导语 | 传统HADOOP生态系统使用YARN管理/调度计算资源,该系统⼀般具有明显的资源使⽤周期。实时计算集群资源消耗主要在⽩天,而数据报表型业务则安排...

    腾小云
  • 转发有礼 | 50篇+云原生系列干货文章汇总,请查收!

    云原生技术干货文章合集,来咯~ ? 2020 年,要说咱们技术圈子里什么最火? 云原生肯定是那 NO.1 ? 截止目前,我们不难看出,K8s 容器、服务...

    腾讯云原生
  • 如何评估云原生NFV中的容器化VNF部署

    SDNLAB
  • 云原生 (Cloud Native) = 微服务 + DevOps + 持续交付 + 容器化 ?

    https://dzone.com/articles/cloud-native-seeing-through-the-hype

    一个会写诗的程序员

扫码关注云+社区

领取腾讯云代金券