总结:本次大会,京东云将为对云原生感兴趣的研发和运维人员分享如何利用延迟加载快速启动容器的话题。 云原生也是如此,它是今天聊天的支柱。
2019年6月24-26日,云原生计算基金会 KubeCon + CloudNativeCon +由Native(CNCF)主办的开源峰会(上海)即将在中国上海拉开帷幕。 本届KubeCon将吸引来自世界各地的数千名工程师参加活动,参与所有CNCF项目和主题的深入讨论,参与案例分析并听取CNCF项目运营商和用户的意见。 。
本次KubeCon,京东云将为对云原生感兴趣的研发和运维人士分享主题“通过延迟加载更快地启动Docker容器”。
读完这篇文章,你不觉得有点头晕吗? 怎么会有这么多东西啊!
我们特别推出了“云原生系列”,帮助您更深入地了解云原生。 今天是这个系列的最后一篇文章。 即使您从未了解过云原生或CNCF,我们也希望这篇文章能让您从0到1全面深入地了解云原生。
什么是云原生?
计算领域每隔几年就会推出网格计算、云计算、物联网、微服务、区块链、边缘计算等新技术。一个新的概念出现了。 任何新概念都很难理解。 这个名字是不言自明的,所以一开始每个人都想知道 X-Calculation 是什么。 几年后,似乎每个人都知道X的计算,但当要求解释它时,大多数人仍然无法清楚地表达出来。 今天聊天的主题“云原生”也是如此。
(对于云原生的定义,众说纷坛,本文介绍仅代表个人理解,欢迎指正。)
01
/云原生是一种利用云快速交付应用程序的方式/
/
Pivotal 是云原生概念的早期采用者和 Spring 的推动者。 。 以下是云原生框架的定义和 Spring Cloud 的主要贡献者。
“Cloud-native 是一种构建和运行应用程序的方法,可以利用云计算交付的优势。” ” - 云原生是一种构建和运行利用云交付效率的应用程序的方法。
同时,他补充道:
“组织需要 DevOps、持续交付、微服务以及
自动化和集成容器概念来构建和运营云 - 原生应用程序和服务。
你需要一个平台。”——组织需要一个平台: 构建和运行云原生应用程序,包括DevOps、持续交付、微服务和容器简而言之,云原生的目的是充分利用我可以说的能力。 使用云加速应用程序交付。 DevOps、持续交付、微服务和容器等概念和技术用于实现这一目标。
此外,谈到云原生,业界人士还谈论另一个术语:云原生基础。 那么云原生和云原生计算基金会(CNCF)之间是什么关系?
云原生基金会致力于推进云原生。构建计算模型并维护供应商中立的开源生态系统以使公众受益。 云原生计算使用开源软件堆栈构建微服务,将其打包为容器,并动态调整容器以最大化资源利用率。 CNCF 在软件容器领域培育了著名的 Kubernetes 项目以及围绕该项目的许多其他项目,而 Kubernetes 现在已成为云原生应用程序的重要基础。
所以云原生是一个概念,也是一种应用交付模型。 云原生基金会推广这一概念和模型,并培育支持该模型的开源项目。 需要注意的是,这里的“云”一词并不是特指公有云,而是各种能够动态提供资源的平台的总称。 应用云原生涉及微服务、容器、交付等多项核心技术。 我们来看看为什么云原生如此依赖这些技术。
02
/微服务、容器、交付/微服务这仅仅意味着将应用程序所需的功能划分为小型独立软件服务或“微服务”。 每个微服务专注于一个独特的任务,可以独立部署、更新、扩展和重启,同时基于 API 通信协同工作,形成大型、可扩展的应用程序。 微服务最重要的不是它们有多小,而是它们如何删除应用程序本身关注的所有非业务逻辑。 应用程序开发人员不必担心其他应用程序在哪里,也不必实现其他应用程序失败时如何重试和容忍失败的逻辑。 也无需开发灰度和 AB 测试代码。 您需要实现逻辑来监视应用程序的行为。 状态...应用程序开发人员只专注于实现业务逻辑。 同时,每个服务实现的业务逻辑应该尽可能清晰,并且具有高度耦合的功能集。
容器是应用程序的执行环境,是微服务的完美载体。 在容器而不是虚拟机中运行可以提高性能,但更重要的是,它改变了主要焦点。 运行虚拟机时,主要关注的是虚拟机。 有多少应用程序,哪些具体应用程序是您不关注的? 当运行容器时,重点是打包在容器中的应用程序,使它们成为整个操作的中心。 然而,仅仅因为您使用虚拟机并不意味着您不是云原生的。 使用虚拟机进行基于云的快速交付也是一种云原生最佳实践。
交付是实际使用容器内服务的过程。 传统运维关注的是每一个运维动作,而交付型运维关注的是应用本身。 重点是应用程序最终需要服务的实例数量,或者应用程序支持的并发调用数量。 这些运维动作不是应用的重点,都应该由底层平台来解决。 因此,在声明性模型中,应用程序只需要少量实例,平台本身负责如何启动和从设备故障中恢复。 在无服务器架构中,应用程序不关心实例数量或启停逻辑,平台根据调用压力动态分配计算资源。
很多人一提到云原生就会想到Kubernetes,一方面是因为Kubernetes是云原生基金会培育的杰作,另一方面它有很多特性。这是有原因的。 使用该功能执行此操作。 作为市场领先的编排解决方案,Kubernetes 能够以容器的形式快速交付应用程序,因此应用程序不再需要担心系统和网络差异、部署和扩展细节,并且拥有丰富的生态系统(例如 Istio)。 、Envoy、Prometheus、Jaeger等)为应用程序提供微服务管理能力,解决应用程序迁移到云端的问题。
03
/构建云原生应用/什么是云? 了解原生,如何使您的应用程序符合云原生交付模型?
首先,您需要云。 该云不一定是公共云;它可以是私有云、混合云、区块链服务或任何其他动态提供资源的平台。 该云需要以下基本功能: 能够管理程序包/容器镜像/虚拟机镜像。 能够通过容器/虚拟机灵活交付应用程序。 能够对应用程序进行灵活的服务管理。 能够管理各种应用程序能够临时/永久保存状态并保护应用程序安全屏障能力。
第二,你必须使用云的能力,不要将云平台提供的能力实现到你的应用程序中。 一些团队在使用云服务时选择仅使用云托管和存储,并担心其他云功能将与该云服务绑定。 虽然这种担心是有道理的,但最好选择和使用更加开放和兼容的云产品。 例如,京东云的Kubernetes集群和微服务平台与开源项目完全兼容,您可以放心使用。 如果你不喜欢它们,你可以随时切换到自己的开源项目进行运维。
同时,您还需要改造您的应用程序,使其适合在各种云平台上快速交付。 当谈到如何设计云原生应用时,Heraku团队提出的Twelve-Factor提供了许多宝贵的建议。 这12个要素包括:
根据12要素的要求,必须明确定义和规范编码、开发、构建、运维等任务,以定义应用程序。 当你需要关注业务逻辑时,部署环境、运行依赖、保存状态、并发、日志等问题都由云平台处理。 开发云原生应用程序的过程是通过开发用于构建精简应用程序的标准包,将其动态部署到具有不同配置的不同环境,并使用云平台以不同方式运行来解决依赖关系,从而快速响应业务需求。 。 根据这些原则设计自己的应用程序,您的应用程序将更容易使用云服务提供的标准功能,更容易实现快速交付,更容易弹性扩展。
《十二因素》发布后,由 Pivotal 公司的 Kevin Hoffman 撰写的《Beyond the Twelve-Factor App》一书添加了三个新内容。
最后,我们在应用开发和上线过程中提供了一些构建云原生应用的建议。
代码应该关注业务逻辑而不是其他逻辑。
不要在代码中包含状态。 此外,该状态必须存储在云服务中。
代码不得包含任何与此应用程序无关且必须通过其他应用程序的 API 调用的业务逻辑。
没有实现运维、服务治理和监控的具体逻辑,依赖第三方库和云服务
地址等硬配置不要编码。在配置中,这段代码将在许多环境中运行。
不要假设此代码将部署在何处或将部署多少个实例。
不要假设您的程序永远不会被部署。 die,确保它是单个实例。 不影响其他实例。
构建结果就是全部。 部署构建的代码后,您将无法更改代码包的内容。
什么是云原生?
云原生是一个基于IaaS基础架构的有效应用平台,其使命是提供更好的技术环境。面向企业级信息化应用。
作为一家具有较强工业属性的云智能制造商,京东云依靠云原生技术来满足其业务需求,从电商前端网站到下单、结算、支付。正在进行大量投资。 后端仓库、配送、客服、售后、采购和销售人员使用的各种业务系统,包括搜索和推荐,都面临着前所未有的挑战。 京东拥有数千个系统和数以万计的应用程序。 只有各个环节都发挥好,整个业务才能顺利进行。 云原生技术是京东零售技术的技术基础。
经过多年的实践,京东已经构建了全球最大的 Kubernetes 集群,积累了大量的云原生开发和运维经验,并加入了云原生计算基金会,现在已经是白金级了。会员,最高级别。 。
作为社区成员,京东云积极拥抱CNCF项目,参与开发贡献,并与其他成员合作共建社区。 在即将举行的 KubeCon+CloudNativeCon 暨开源峰会(中国,2019)活动中,我们的技术专家将通过我计划做的容器分享“使用延迟加载快速启动 Docker 容器”这一主题。 京东云自研的镜像延迟加载技术优化了Docker镜像加载流程,显着提升容器启动速度。 还有京东商城技术专家为您带来的文章:《Kubernetes 中 MySQL 容器的正确大小调整和自动扩展》、《Vitess 两年:京东是世界上最大的 Vitess》《如何操作》、《 “使用 Kubernetes”关于经济高效地调度大量容器的主题演讲。
自2016年京东云开始向集团外部提供服务以来,我们将集团内部多年积累的云原生开发和运维能力运用到了Kubernetes集群和微服务平台上。 、DevOps、功能服务、云安全、API网关等数百种标准云服务,客户可以利用京东云服务的强大能力快速、安全、可靠地交付产品。
通知
本次大会京东云展区将围绕“云原生”和“云原生”我会的。 “赋能工业互联网”展示了京东云在支持企业级信息应用技术环境方面的良好业绩。
欢迎大家来到京东云展区。 在您了解更多京东云原生的同时,参与互动还可获得京东云神秘大礼包~
2019年6月24-26日,2019 KubeCon + CloudNativeCon +开源峰会上海世博中心,京东云外观 我们期待见到您!
点击“云原生”了解更多信息
关注微信公众号“京东云开发者社区”
免费使用还有很多实用文档
/strong>
评论前必须登录!
注册