什么是PaaS平台

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
日志服务 SLS,月写入数据量 50GB 1个月
简介: PaaS平台通常是基于IaaS平台构建的,PaaS平台和IaaS平台最大的差别是需求即服务。所有的管理都是以服务为粒度的,在IaaS以资源管理为中心的平台上提供了更高层次的抽象。

PaaS平台概述


PaaS平台通常是基于IaaS平台构建的,PaaS平台和IaaS平台最大的差别是需求即服务。所有的管理都是以服务为粒度的,在IaaS以资源管理为中心的平台上提供了更高层次的抽象。

PaaS的本质


(1)运维自动化,故障的自动恢复,在不需要人为干涉的情况下能够自愈;

(2)面向服务化的管理,围绕服务的发布、升级、调用、监控、日志及服务域名等;

(3)软件开发流程化,代码自动编译打包及更新,持续发布,持续集成和更新。

PaaS平台分层


首先是资源调度层,这一层是直接在构建在物理资源之上的,完成资源调度、集群管理、存储管理等基础服务;


中间层是一些服务的依赖中间件服务和监控日志服务


CI/CD自动构建


最上面的层是开放给平台用户的能力,提供应用服务管理、权限管理及日志检索等功能。

e02532b1083a496280c2ff9c6cabec6e.png

PaaS平台化如何实现?


平台的实现有多种方式,并不一定需要Kubernetes或者Docker,只不过当前大多数PaaS平台都是基于“Kubernetes+容器”的方案的,这里还需要区分清楚。


个人拙见: 目前k8s已经成为PaaS平台建设最重要的组成,甚至是标准,自己实现维护那一套,大概率不如k8s稳定,且k8s提供了很强的扩展性。

服务和应用管理


PaaS平台和IaaS平台最大的区别是面向服务管理的,所有的资源也都是以服务为最小管理单元。用户不用担心基础资源配置(部署在哪台机器、IP地址多少、配置的内存多大等),所有的操作都是针对服务的。服务管理包括服务列表查询、服务创建和删除、服务的副本数修改、服务自动伸缩、服务的滚动升级和灰度发布等。


应用是将多个服务组合到一起维护的。一个应用包含了多个服务,譬如,一个网站是一个应用,这个应用是由MySQL、Spring Boot等多个服务组成。可以针对一个应用启动和关闭,以及编排。应用和服务逻辑关系图如图

68f84c7749f84be89dac2b039233c990.png

监控告警


日志管理


针对一个Kubernetes集群的日志,则需要借助一套针对日志的采集、检索、分析及预警系统。

●Fluentd主要负责日志采集,通常和应用服务安装在一起,读取日志文件或者从网络流中接收文本日志并发送到Kafka中。除了Fluentd以外,还有很多采集插件,如Fluent Bit、Filebeat、Flume Agent等。


●Kafka主要负责汇聚数据,并提供数据整流,避免突发日志流量直接冲击后端系统。在实际生产环境中,Kafka是集群部署,通过将数据分区到不同节点实现数据的负载均衡。


●Logstash负责日志整理,可以过滤、修改日志内容,比如过滤日志中的敏感信息。


●Elasticsearch负责日志的存储和检索。自带分布式存储,可以将采集的日志分片存储。为保证数据的高可用性,Elasticsearch引入多副本概念,并通过Lucene实现日志的索引和查询。


●Kibana是一个日志查询组件,负责日志展现。

日志具备的功能


(1)多租户隔离,每个用户只能读取自己的业务容器;

(2)实时日志查看,读取当前最新实时日志,而非从Elasticsearch中检索;

(3)基于日志的告警,当多次出现某个写关键字后触发告警;

(4)基于服务的日志查询,不仅可以查询单个容器的日志,还可以针对这一组容器进行检索。

镜像管理


Harbor

CICD


CICD全称为Continuous Integration Continuous Delivery(持续集成持续交付),CICD整体流程图如图,如同一个流水线一样持续运行,循环反馈,不断迭代更新。

持续集成


所谓持续集成是不断进行代码提交、构建和测试。传统的软件开发是每个人或者团队单独负责一个模块,在产品即将发布时,才将各个模块组合到一起。但这种开发模式只适用于产品迭代周期比较长的情况,无法满足当前互联网快速产品迭代的需求。


持续集成允许开发工程师将代码不断提交,然后自动触发构建流程,确保代码可以顺利构建(编译),并执行自动单元测试确保功能完善。


持续集成需要做好版本控制和自动化构建,每个用户在功能分支(feature分支)上面开发后,可以随时合并到主干分支中。构建并发布到测试环境,期间以自动化单元测试、功能测试、性能测试工具进行测试,发现问题后及时回滚版本,并进行反馈。构建的过程不单单是代码的编译,还包括依赖、配置及环境。

持续部署


持续交付也叫做持续部署,是指在构建和测试完成通过后,将部署包发布到生产环境中运行。部署的方式可以通过Ansible、Puppet等部署工具,也可以通过容器的方式发布。让最新的功能能够尽快地更新到生产环境中,并通过运营反馈需求,促进产品进一步迭代。持续部署需要保障整个过程的平滑和安全,通常借助蓝绿发布或者金丝雀发布确保过程的平滑和安全。

af1d42e88bb245138624bae30213faab.png

CICD本身和PaaS平台的关系


CICD本身和PaaS平台没有必然关系,它是在容器兴起之前就已经存在,只不过在缺乏容器的时代,CICD很难落地。通过容器可以很好地完成应用从测试环境到生产环境的快速迁移,所以,CICD也成为容器平台的标配。


Jenkins目前已经成为CICD中最流行的构建工具,通过CICD系统构建任务,并将镜像推送到Harbor镜像仓库,最后触发Kubernetes滚动升级。

53b4c421cd874dfd8e896c617180360e.png

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
Python
MyEduChat 平台
MyEduChat 平台是一个在线教育平台,提供各种在线课程、学习资源和互动工具,帮助学生
304 5
|
Oracle 关系型数据库
集成平台即服务(iPaaS)软件
本文研究全球及中国市场集成平台即服务(iPaaS)软件现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势
|
4月前
|
运维 Kubernetes 监控
PaaS平台
【7月更文挑战第2天】PaaS平台
241 58
|
6月前
|
机器学习/深度学习 人工智能 数据可视化
PAI平台
近年来,随着人工智能技术的飞速发展,越来越多的企业开始关注如何将AI技术应用到业务场景中,以提高效率、降低成本。然而,对于大多数企业来说,AI技术的应用仍然面临着许多挑战,例如高昂的计算资源需求、复杂的模型训练和部署流程等。
161 2
|
6月前
|
监控 数据可视化 测试技术
集成阿里云 RPA 与现有系统
随着企业对自动化和数字化转型的需求不断增长,阿里云 RPA(机器人流程自动化)技术成为了提升业务效率和减少人工操作的重要工具。本文将介绍如何集成阿里云 RPA 与现有系统,以实现更高效的业务流程自动化。
|
移动开发 开发框架 API
mPaaS是一个移动开发平台
mPaaS是一个移动开发平台
135 1
|
移动开发 运维 监控
低代码开发云平台源码,支持多种企业应用场景,快速构建CRM、ERP、OA、BI、IoT、大数据应用程序
基于 moleculer 微服务架构开发,提供微服务的应用开发、配置管理、服务注册与发现、服务认证与授权、服务网关、服务监控、统一日志分析等,提供微服务应用的开发、部署、监控、运维等应用生命周期管理。
154 0
低代码开发云平台源码,支持多种企业应用场景,快速构建CRM、ERP、OA、BI、IoT、大数据应用程序
|
运维 监控 前端开发
从中台到平台(上)
从中台到平台(上)
282 0
从中台到平台(上)
汽车资讯平台
本文研究全球及中国市场汽车资讯平台现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势
下一篇
无影云桌面