云起云涌:PaaS 体系架构与运维系统上云实践

作者 | 刘鹏宇  中国农业银行研发中心

责编 | 李雪敬

出品 | CSDN云计算(ID:CSDNcloud)

今年以来,远程办公、远程会议走进了大多数人的日常工作中,各类云产品相继被人们所熟悉,例如石墨云”OFFice”办公软件、腾讯云平台、云课堂,为实现多人协同办公、远程操控等需求,提供多类渠道。这些应用可能在实现技术上,不是严格意义的上云,但“云”逐渐浸透各个领域,晕染出不一样的风采。

“上云”一词早已流行,各小中大企业为摆脱地域限制、减轻研发成本、实现安全可靠管理保障,纷纷研究“如何上云”。作为一个奔跑在新型IT时代的逐梦人,我踏上了寻找杰克魔豆的旅程,下面是我在探索道路上的所见所闻。


开始

云计算从2006年提出至今,经历了翻天覆地的发展变化,由IaaS到PaaS、SaaS,应用越来越广泛。在其发展初期,IT建设多围绕IaaS进行,包括计算虚拟化、网络虚拟化、存储虚拟化等,使用对象主要是虚拟机。但由于虚拟机承载的是操作系统,我们依然需要在操作系统中安装基础软件,并未减轻开发人员部署环境的压力。然而自Docker为代表的容器技术出现后,实现应用可以在容器中直接运行,切实减轻了程序员部署精力,促进了容器PaaS的迅速发展,并已逐渐形成云生态体系——以Docker、Kubernetes为核心,由Docker提供应用级的主机抽象,Kubernetes提供应用级的集群抽象。在此基础上涌现了红帽OpenShift等优秀企业级PaaS产品。

本文将着重对Docker、Kubernetes、Openshift的发展历史及架构进行分析,并分享“部署自研运维系统到云平台”的实践经验。


标准化的软件构建与分发技术Docker

1.容器技术优势

前文说,容器技术的诞生,为减轻开发人员部署环境压力,提供了可能。容器技术也打造了一套标准化的软件构建和分发流程,为降低运维成本、提高软件安全和运行稳定等方面提供便利。容器技术不仅仅打造一个运输用的“集装箱”,还保证软件在容器内能够运行,在操作系统上构成“独立的箱子”。这需要解决文件系统、网络、硬件等多方面的问题。经过长时间的发展,容器技术现已逐步成熟。使用容器技术后,开发者可以使用熟悉的编程语言开发软件,之后用容器技术打包构建,便可一键运行在所有支持该容器技术的平台上。

2.容器技术的典型代表——Docker 架构

Docker是一个构建、发布、运行分布式应用的平台, Docker平台整体可以看成由 Docker引擎(运行环境+打包工具)、 Docker Registry(API+生态系统)两部分组成。包括Docker Client、Docker daemon、Docker Image、Docker Container等部分,如下图所示。

其中 Docker引擎可以分为守护进程和客户端两大部分。Docker引擎的底层是各种操作系统以及云计算基础设施,而上层则是各种应用程序和管理工具,每层之间都是通过API来通信的。详细介绍如下。

Docker Client 是 Docker 提供命令行界面 (CLI) 工具,是用户与 Docker 进行交互的主要方式。客户端可以构建,运行和停止应用程序,还可以远程与Docker_Host进行交互。

Docker daemon 是服务器组件,以 Linux 后台服务的方式运行,是 Docker 最核心的后台进程。它负责响应来自 Docker Client 的请求,然后将这些请求翻译成系统调用完成容器管理操作。

Docker 镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。

Docker 容器就是 Docker 镜像的运行实例,是真正运行项目程序、消耗系统资源、提供服务的地方。

Docker提供了应用级的主机抽象,可以更容易地实现应用的快速申请和部署。


容器时代的舵手 Kubernetes

如果说Docker是容器时代的大船,Kubernetes就是指引船只的舵手。作为容器集群管理工具,Kubernetes有一套健壮的集群自恢复机制,包括容器的自动重启、自动重调度以及自动备份甚至负载等。

1.Kubernetes 的发展历程

Kubernetes前身是谷歌大规模集群管理系统Brog,它基于容器技术,实现资源管理的自动化,以及跨数据中心资源利用的最大化。Kubernetes于2015年正式对外发布,经过4年多的发展,为容器编排提供强大的解决方案,成为云原生系统的重要支撑。

当前,国内外的很多企业都建立了基于Kubernetes的云平台,如OpenShift、阿里云等。下面分别简述阿里巴巴和美团点评的云平台发展实践历程。

图片来源:阿里巴巴云原生公众号

阿里巴巴于2013年开始探索由容器替换虚拟机,2018年开始自研容器调度系统向Kubernetes转型,2019年阿里业务全面上云,2019年双十一中,基于Kubernetes的生态体系支撑了阿里史上规模最大的集群。

图片来源:about云开发-aB7758133

美团点评于2013年开始搭建云计算平台,2016年基于Docker搭建自研容器管理平台,2018年引入Kubernetes到云平台中,提升了平台的稳定性和资源使用效率。

2.Kubernetes 的架构

在Kubernetes中,Service是分布式集群架构的核心。它是一种抽象概念,每一个Service后端有多个Pod,所有的容器均在Pod中运行。下图是一个典型的Kubernetes架构图。

图片来源:Kubernetes官网

Kubernetes由两种节点组成:Master节点,为管理节点;Node节点,为容器运行结点。

Service是架构的核心,提供远程服务,它的后端有多个Pod,每个容器均在Pod中运行。一个Service可以横跨多个Node,也可能一个Node里包含多个Service,一个Pod里也可以包含多个Container(容器)。

Pod是Kubernetes的最小调度单位,所以在我行实际应用中,一般一个Pod中只部署一个容器,以提高稳定性,降低风险。一个Label是一对键/值对,用来传递用户定义的属性。例如,可以用“Taihangboot”来标记一个太行应用。

Replication Controller,用来确保任意时间都有指定数量的Pod“副本”在运行。如果为某个Pod创建了Replication Controller并且指定2个副本,它会创建2个Pod,并且持续监控它们。

Kubernetes是强大的云原生体系工具,对容器进行编排,实现了集群化的管理。


企业级PaaS平台中的翘楚 OpenShift

红帽OpenShift平台在Kubernetes的基础上,提高了平台运行稳定性,集成了Jeckins等工具,更易于实现Devops,可以为企业提供全面的应用上云服务。

1.OpenShift 的发展历程

OpenShift 是由红帽公司推出的 PaaS 云计算平台,它诞生于2011年,核心架构采用自研容器编排平台Gear。Kubernetes推出后,红帽决定对OpenShift进行重构。2015年6月,红帽推出了基于Kubernetes1.0的OpenShift3.0。2018年6月,OpenShift4.1发布,它与OpenShift3.0相比,较大的变化是引入了CoreOS作为默认操作系统。当前最新版本的OpenShift平台是2019年12月17日发布的4.2.11,新版系统进一步实现了混合云环境企业级服务的简化和自动化,同时可以让开发者通过云原生应用实现创新并提高业务价值。

OpenShift在 Kubernetes的基础上扩展提供了软件定义网络、软件定义存储、权限管理、企业级镜像仓库、统一入口路由、持续集成流程( S2/Jenkins统一管理控制台、监控日志等功能,形成覆盖整个软件生命周期的解决方案,提供了企业级的服务支持。当前其提供三种产品:OpenShift Online、OpenShift Enterprise 和 OpenShift Origin。其中,OpenShift Online 是面向普通开发者和小微企业的线上公有云平台;OpenShift Enterprise 是面向企业的私有云平台;OpenShift Origin 是一个开源项目,是构成前两个的基础。

2.OpenShift 的技术架构

OpenShift平台可以安装于几乎所有的基础平台上,例如裸机、虚拟机、私有云、公有云等。整个OpenShift平台可以分为Container Storage、CoreOS、Kubernetets、Automated operations、Services等几个层级。下面分别进行介绍。

OpenShift平台可以安装于几乎所有的基础平台上,例如裸机、虚拟机、私有云、公有云等。整个OpenShift平台可以分为Container Storage、CoreOS、Kubernetets、Automated operations、Services等几个层级。下面分别进行介绍。

Container Storage是持久化的存储结构,它为整个基于容器的环境提供存储支持。CoreOS是Linux的一个发行版,提供容器执行的基础操作系统。Kubernetes即容器编排的调度平台。Automated operations指的是对于集群上运行的容器宿主机、Kubernetes集群和应用等服务,进行自动化的更新、管理等功能。Services包含平台所提供的具体服务,如集群服务(监控、扩缩容、镜像仓库、日志系统),应用服务(融合中间件、基础软件服务),Service Mesh(管理微服务应用),开发服务(开发工具、自动构建、持续集成、持续交付)等。

可以看出,OpenShift在Kubernetes的基础上,提供了底层支持,扩展了应用功能,以提供更全面、更便捷的服务。


智能运维系统上云实践

智能运维系统是一个全面的运维平台,可以实现监控相关系统的主要运行指标、发现异常后匹配应急方案、发起应急操作及验证、系统配置、用户管理等功能。

将该系统部署于OpenShift平台简要来说可分为3个步骤:创建容器、将生成的容器打好标签推送至镜像仓库、在OpenShift平台拉取镜像开始配置运行。介绍如下。

1.创建容器

通过Dockerfile来组合基础镜像和软件,Dockerfile中包含的内容包括基本镜像、要安装的软件包,要复制到容器中的软件,网络端口和挂载的存储卷等信息。编写好Dockerfile后,可通过运行docker build 命令来创建一个存储在本地的容器镜像。

2.将生成的容器打好标签推送至镜像仓库

使用docker tag命令向新容器镜像添加标签,以标识其在镜像仓库的位置。然后,通过运行  docker push 命令将该镜像推送到镜像仓库。

3.在 OpenShift 平台配置运行容器

在OpenShift平台配置Deployment、Service、Router等运行策略,即可从镜像仓库拉取相关镜像,自动分配Pod,相关应用即可对外提供服务。

如上图所示即为该系统运行情况。

到此,有关云平台技术的介绍已经分享完毕。从基础容器技术Docker,到集群容器编排Kubernetes,最后到企业级PaaS平台OpenShift,云技术越来越成熟,并逐步形成生态体系。云原生应用体系对于Devops、微服务等的实现也具有天然的优势,在持续集成、持续部署上更加高效、安全,极大的提高了生产效率,将在企业数字化转型中发挥巨大的作用。


最后

作为一个奋战在一线的运维人员,经常遇到集群扩容、环境迁移、频繁的变更等等一系列繁杂的任务与问题,处理起来费时且容易出错。在接触到云原生应用后,被其标准化、轻量、高效的运行、部署模式所吸引,感受到应用上云对运维方式带来的巨大改变,故障自愈、一键迁移、一键部署等都轻易实现,随后对各个技术的官网文档、相关书籍、网络博客进行了研究,形成了本文,希望能对未来的系统建设添砖加瓦。

作者介绍:

刘鹏宇  中国农业银行研发中心
作为支持一线的“急诊科医生”,在快速响应、敏捷迭代的同时,也在探索更加高效、智能的运维方式,总结实践与优化经验,保障系统服务更可靠、更安全。

更多阅读推荐

  • 该买哪家二手手机呢?程序员爬取京东告诉你

  • 17 年安全界老兵,专注打造容器安全能行吗?

  • 让安全威胁无所遁形,全方位掌握攻击“前世今生”的黑科技来了

  • 多模、AI 齐上阵,Deepfake 换脸术克星驾到!

  • 35 岁一刀切?任正非:华为没有年龄限制,如只看年龄自己早被淘汰

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云李飞飞:传统数据库步履蹒跚,未来的机会在哪里?

在采访中李飞飞表示,随着计算和数据上云的趋势快速发展,传统数据库步履蹒跚,云原生数据库和数据仓库利用云原生技术最大化的发挥池化的计算和存储资源弹性将是未来。同时随着AI技术的不断深入使用,数据库也将会越来越智能化&#…

从零开始入门 K8s | K8s 安全之访问控制

作者 | 匡大虎 阿里巴巴技术专家 本文整理自《CNCF x Alibaba 云原生技术公开课》第 27 讲,点击直达课程页面。 关注“阿里巴巴云原生”公众号,回复关键词“入门”,即可下载从零入门 K8s 系列文章 PPT。 导读:访问控制是云原…

把人脑智能化后,能再创造出更强的人工智能吗?

近日,埃隆马斯克投资1 亿多美元的脑机接口初创公司Neuralink在现场发布会展示了新一代的脑机接口设备。脑机接口是什么?可能这个名词在我们日常生活中是不常见的。脑机接口是最前沿的研究领域,建立人(或动物)与外部的设…

阿里巴巴副总裁肖力:云原生安全下看企业新边界——身份管理

作者 | kirazhou 导读:在 10000 多公里之外的旧金山,网络安全盛会 RSAC2020 已经落下了帷幕。而身处杭州的肖力,正在谈起今年大会的主题——Human Element。2020 年,从“人”出发,这颗石子将在国内的安全市场池子里激起…

轻松搭建基于Serverless的Go应用(Gin、Beego 举例)

首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源&#xff…

超详细 | 21张图带你领略集合的线程不安全

来源 | 悟空聊架构本篇主要内容如下:本篇主要内容本篇所有示例代码已更新到 我的Github本篇文章已收纳到我的Java在线文档线程不安全之ArrayList集合框架有Map和Collection两大类,Collection下面有List、Set、Queue。List 下面有 ArrayList、Vector、Lin…

快速迁移Next.js应用到函数计算

首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源&#xff…

《我想进大厂》之 MYSQL 夺命连环13问

来源 | 科技缪缪想进大厂,mysql不会那可不行,来接受mysql面试挑战吧,看看你能坚持到哪里?能说下 myisam 和 innodb 的区别吗?myisam引擎是5.1版本之前的默认引擎,支持全文检索、压缩、空间函数等&#xff0…

心动网络:PolarDB助力心动网络打造爆款手游

公司介绍 心动网络,国内极具知名度的游戏公司,中国互联网百强企业。旗下业务涉及游戏研发运营、动画制作、偶像娱乐等多个产业。公司创立于2002年,前身为中国最早的互联网分享网站之一的VeryCD。2009年起,公司开始打造心动网络的…

Vue文件在VsCode工具中红色波浪线的问题解决方法

在setting.json种添加 "vetur.validation.template": false, //vue文件取消波浪线

数云:PolarDB助力数云轻松应对双十一

公司介绍 我们杭州数云信息技术有限公司成立于2011年,伴随着电子商务、大数据应用和零售企业互联网化的趋势快速发展,目前已成为国内领先的数据化营销软件产品和服务提供商。我们致力于为消费品牌和零售品牌商提供整合软件产品、数据模型和专业服务的一…

点触科技:构建实时计算和数据仓库解决方案

公司介绍 厦门点触科技股份有限公司,新三板挂牌企业(股票代码:870702),成立于2013年,是一家以历史养成类游戏研发与发行为主,专业从事手机游戏的策划、研发制作、商业化运营的创新型发展公司。…

定位云原生数据中台,「智领云」获数千万元A轮融资

来源 | 智领云科技据消息,「智领云」获金沙江联合资本领投,线性资本跟投的数千万元A轮融资。本轮融资将主要用于市场拓展和产品线完善。此前,智领云在2019年5月获得线性资本千万级人民币Pre-A轮融资。智领云成立于2016年,是一家数…

写给大家看的“不负责任” K8s 入门文档

作者 | 邓青琳(轻零) 阿里巴巴技术专家 导读:本文转载自阿里巴巴技术专家邓青琳(轻零)在内部的分享,他从阿里云控制台团队转岗到 ECI 研发团队(Serverless Kubernetes 背后的实现基石),从零开…

腾讯智慧交通战略重磅升级 打造以人为中心的未来交通

在新基建加速布局下,智慧交通正在成为新基建的主力军,不仅可以助力新基建与传统基建融合,还将推动智慧城市建设,推动我国实现“交通大国”向“交通强国”的升级。9月10日,腾讯全球数字生态大会智慧交通分论坛云上召开&…

GitHub 标星 11000+,阿里开源微服务如何连续 10 年扛住双十一大促

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 作者 | 宿何,阿里云高级开发工程师 责编 | 唐小引 封图 | CSDN 下载自东方 IC 出品 | CSDN(ID&#x…

轻松构建基于 Serverless 架构的弹性高可用音视频处理系统

作者 | 罗松(西流) 阿里巴巴技术专家 本文整理自架构师成长系列 2 月 12 日直播课程。 关注“阿里巴巴云原生”公众号,回复 “212”,即可获取对应直播回放链接及 PPT 下载链接。 前言 随着计算机技术和 Internet 的日新月异,视频点播技…

学不动?Apache Member 教你评估实用技术的思路

导读:笔者从 2008 年开始工作到现在也有 11 个年头了,一路走来都在和数据打交道,做过很多大数据底层框架内核的开发 ( Hadoop,Pig,Tez,Spark,Livy ),现在是多个 Apache 项目的 PMC。…

linux异步IO的几种方法及重点案例

异步IO的方法 在Linux下,有几种常见的异步I/O(Asynchronous I/O)机制可供选择。以下是其中一些主要的异步I/O机制: POSIX AIO(Asynchronous I/O):POSIX AIO是一种标准的异步I/O机制&#xff0c…

AI赋能案例—阿里云身份证OCR识别助力实现“无接触”式政务服务!

2020年初的这场疫情,是一场对突发性公共卫生事件应急处置的大考,也是对数字政务体系能力的检验。在保证不影响办事效率的情况,如何减少人员的接触是政务场景下的“防疫”关键!日前由一窗(北京)互联网科技研…