写点什么

用 Docker 和 Kubernetes 重做云服务

  • 2020-03-12
  • 本文字数:2505 字

    阅读完需:约 8 分钟

用Docker和Kubernetes重做云服务

重做云服务

在之前的博客中,我写过开源软件如何作为服务被交付,而不是从二进制文件角度来看它们。这些开源服务交付一个免费、开放、灵活的服务,工程师用来帮助创建他们的应用程序,这个过程不需要解决保持软件持续运行的问题。


今天我们来谈进一步的话题,新一代的云服务:Anywhere Cloud Services,即随处安放的云,这一切多亏有了 Docker 和 Kubernetes。

现目前云服务在哪里

现在的应用程序水平云服务,比如说 AWS 的 Kinesis 或者是谷歌的 BigTable,会提供全面管理服务给工程师,在这里你可以在不需要努力维护的基础上创建一个应用程序。这些服务不仅安全、自动调度的、被监控的,登陆中的,还是整合好的,已更新的。个人来说,我爱死这些服务了。但是……


  • 你可以通过代码锁定这些服务(比如,修改数据库备份的时候需要修改软件)

  • 选择一家公有云服务,同时也会要求强制使用他们的硬件。所以,要是你的应用是在微软 Azure 上运行,但是私心却比较偏爱 Big Table,那怎么办?

  • 如果你想要使用开源软件,但是又不想自己操作,调度,也不想自己给开源软件提供安全措施怎么办?

  • 让我们进入 Anywhere Cloud Service。

模型 No.2——Anywhere Cloud Services

anywhere cloud service 服务是全面管理服务,这个管理服务可以在任意地方交付,它有三个特点:


全面托管——用户不需要担心保持服务在线这个事情。服务提供商会承担这个责任。


可以运行在任何地方——用户选择服务所在的地方。可能是主要的云提供商的其中一个,或者是带有标准 API 的私有云。在运行的基础设施中有一个清晰的分界:


被当作 service,而不是软件——以明显可消耗的方法来为使用者提供一个功能。比如,一个 No SQL 服务提供注入数据的方法,并且解析数据。这个服务会自我治愈。当被需要的时候它会自己调度。它为使用者提供指标,日志和警报。这也是高度可用的。安装这个服务跟运行一个命令行或者点击一个按钮一样简单可操作。

举一些例子

为了帮助阐述这个 idea,这里是一些我们可能不久之后就会看到的例子:


  • AWS 上的任意的非基础设施,比如说,No SQL DynamoDB 服务,可以提供在其他所有云提供商上。比如,Azure,谷歌云等等。

  • 谷歌的非基础设施服务,比如他们的 PaaS App Engine,可以被部署在任意公有云上,甚至可以通过 openstack 部署到本地数据中心。

  • 初创公司在 Docker 容器空间后,创建了可以在任意公有云或者私有云上运行你的应用程序/代码的服务。

  • 出于想要受益于开源软件的原因,开发团队决定使用在 Kafka,Spark 和 Cassandra 的数据栈。然而,他们并不想自己雇咨询公司或者自己操作。所以,有些初创公司专门研究在任意期望的位置提供这些软件,他们使用的就是这些初创公司做的新服务。

  • 这些开源软件的创造者会打包他们的软件,这样的话,除了处理源代码和二进制文件,软件可以像配置服务一样轻松。这些公司同时也将花费成本提供这些 service 的“支持”版本。

  • 以上这些皆有可能,多亏 Anywhere Cloud Service。

那么,我们如何做到 Anywhere Cloud Service (ACS)

在到达 ACS 的过程中,有两大障碍:


1、如何用标准和有效的方式跨越多个云服务商,在硬件的前提下,来打包和配置软服务。


2、怎样使用有效的方式来打包、运行、配置、调度和确保你的服务的安全性。

进入 Docker 和 Kubernetes 环节

Docker 令我们可以快速的创建,打包和通过特殊方式打包在多个系统上运行软件。通过使用容器,云服务提供商可以在任意环境运行他们的软件。但是,这还远远不够。我们需要一种可以让软件安装、运行和实现高可用的方法。我们需要 Kubernetes。


一旦软件在 Docker 容器中打包,我们就可以通过使用 Kubernetes 的功能将他们的软件变成 service。Kubernetes 的功能目标就是处理一系列基础设施(不管是哪里的),同时提供 API 在基础设施的基础上创建服务。Kubernetes 包括了负载均衡、弹性扩容、滚动更新、服务发现、命名空间、APIs,弹性调度和可配置的基础设施和阈值限制等等功能。使用这些功能,我们就可以创建声明式服务,并且将这些服务的控制权交给用户。Kubernetes 提高 No 和 NoOps,同时也提供给开发者单个 API,使用户可以进入公有云和私有云。

我们如何使用 ACS?

首先,用户需要有一个或者多个 Kubernetes 集群。安装 Kubernetes,使其运行能够在 5 分钟内,或者几天内运行起来(这个时间的话依据你的不同情况而定)。Kubernetes 支持大部分的公有云,openstack 云和本地数据中心。


用户也可以选择要运行在虚拟机上还是运行在物理机上。我们可以自己运行 kubernetes,如果我们在寻找增加支持,我们也可以使用管理工具来运行。


注意,在这里,用户完全处于控制地位,摆脱任意的锁定,自己控制自己的应用程序在哪里运行。多亏普通 API,这些 API 存在于任意的基础设施环境,用户可以使用他们的集群在多个云提供商上进行交付,或者他们可以创建一个真实的混合策略。


其次,通过将这些服务将他们的代码配置到用户的 Kubernetes 集群上,这样用户可以简单的使用这些服务。通过 app store,或者通过开发人员,用户可以搜索满足他们需求的服务,然后点击安装。服务提供商会在云端或者是在本地接触 Kubernetes 集群问题,并且安装服务。开发人员会马上开始使用服务。服务提供商的工作就是确保服务运行,健康的,并且按照需要调度。


在这个新世界,用户对自己的应用程序和他们所依赖的服务有越来越大的控制权。他们可以在云间,在私有云、公有云上移动我们的应用程序。使用者可以在多个集群间积极运行应用程序或准备好 active-standby。

总结,Anywhere Cloud Service

有了 anywhere cloud service,开发人员就能够按照他们想要的方式创建他们的应用程序,同时不需要担心运行和操作后端服务的问题。科技高管有云端锁定的自由,同时也有真正的混合解决方案。公有云提供商可以在其它不想移动的云上面访问用户。开源项目又有了收费的新途径。企业家正迎来新一波的淘金热,也面临众多的机遇与挑战。

总结——Anywhere 和开源服务

在 5 年内,新一代云服务将会像软件一样,你可以随意买一些,然后随意安装在你想要的地方,我预言一切就是会变的这么容易。


本文转载自才云 Caicloud 公众号。


原文链接:https://mp.weixin.qq.com/s/fhwcpAu-qmyPG146jVpHcQ


2020-03-12 22:54949

评论

发布
暂无评论
发现更多内容

一文搞懂一致性hash的原理和实现

万俊峰Kevin

微服务 hash Go 语言

Pandas高级教程之:稀疏数据结构

程序那些事

Python 数据分析 pandas 程序那些事 稀疏矩阵

【LeetCode】滑动窗口的最大值Java题解

Albert

算法 LeetCode 7月日更

【设计模式】总览

Andy阿辉

编程 程序员 设计模式 23种设计模式

【设计模式】抽象工厂

Andy阿辉

编程 程序员 设计模式 23种设计模式 编程思想

基于RNN和CTC的语音识别模型,探索语境偏移解决之道

华为云开发者联盟

语音 RNN ASR CTC 语音识别模型

获客达人app系统开发

获客I3O6O643Z97

大数据

360 政企安全集团基于 Flink 的 PB 级数据即席查询实践

Apache Flink

flink

统一语言 = 领域模型 ?

escray

学习 极客时间 7月日更 如何落地业务建模

Go语言,你必须掌握的--高效并发模式!

微客鸟窝

Go 语言

架构实战营 模块二作业

脉醉

#架构实战营

Vue进阶(六十二):理解$nextTick()

No Silver Bullet

Vue 7月日更 nextTick

【Flutter 专题】81 图解 Android Native 集成 FlutterBoost 小尝试 (三)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

Vue进阶(十六):vue项目结构启动原理详解

No Silver Bullet

Vue 7月日更 启动原理

HCIA-HarmonyOS Application Developer 应用方向认证资料

爱吃土豆丝的打工人

HarmonyOS HCIA认证 应用开发方向

华为云MVP周峥:气象预报是个技术活,大数据、超算、AI,缺一不可

华为云开发者联盟

人工智能 大数据 环保 气象 超算

bash: docker-compose: 未找到命令

阿呆

Docker-compose

基于用户角色的数据库智能监控系统应用场景分析

华为云开发者联盟

数据库 架构 监控 用户 智能监控

优化和调整Spark应用程序(七)

Databri_AI

spark 缓存 持久化

什么是MircoPython?

华为云开发者联盟

Python 编程语言 物联网 MicroPython 嵌入式应用

Python OpenCV 图像处理再循环,第一阶段复盘

梦想橡皮擦

7月日更

抖音霸屏系统软件开发

获客I3O6O643Z97

大数据 抖音霸屏

深度解析 Lucene 轻量级全文索引实现原理

vivo互联网技术

lucene 检索 索引技术

重磅消息!写给安卓软件工程师的3条建议

欢喜学安卓

android 程序员 面试 移动开发

重磅来袭!全网最具深度的三次握手、四次挥手讲解

欢喜学安卓

android 程序员 面试 移动开发

Rust从0到1-并发-可扩展性

rust 并发 sync Concurrency send

【设计模式】工厂模式

Andy阿辉

编程 程序员 设计模式 23种设计模式

网易传媒数据指标体系建设实践

网易数帆

大数据 数据仓库 指标体系

赋能中小银行数字营销:索信达助力深圳农商行建设标签系统

索信达控股

金融 银行 用户标签

Linux - 零拷贝

大海

Linux zero copy

数字化转型下的数字经济新发展

CECBC

用Docker和Kubernetes重做云服务_服务革新_才云科技_InfoQ精选文章