什么是PaaS平台

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 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

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
10月前
|
Python
MyEduChat 平台
MyEduChat 平台是一个在线教育平台,提供各种在线课程、学习资源和互动工具,帮助学生
233 5
|
Oracle 关系型数据库
集成平台即服务(iPaaS)软件
本文研究全球及中国市场集成平台即服务(iPaaS)软件现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势
|
6天前
|
运维 Kubernetes 监控
PaaS平台
【7月更文挑战第2天】PaaS平台
101 58
|
2月前
|
机器学习/深度学习 人工智能 数据可视化
PAI平台
近年来,随着人工智能技术的飞速发展,越来越多的企业开始关注如何将AI技术应用到业务场景中,以提高效率、降低成本。然而,对于大多数企业来说,AI技术的应用仍然面临着许多挑战,例如高昂的计算资源需求、复杂的模型训练和部署流程等。
77 2
|
11月前
|
传感器 运维 安全
智慧工地平台源码 (PC端+APP端)项目平台、监管平台、数据平台
在设备管理方面,智慧工地可以实现设备的智能化管理和维护。通过物联网和数据分析技术,可以实时监测设备的运行状态和性能,如:塔机、升降机、高支模的运行参数进行实时监测,当检测数据超过预警值时,实时报警并发送云平台。提前发现潜在的故障和问题,并采取相应的维修和保养措施,减少设备故障造成的停工时间和成本损失。
|
监控 安全 开发者
文友管理平台
本平台是大学生为参加创新创业比赛制作的一个对相关入库数据信息进行管理的平台,该平台针对不同的用户有两套不同的系统。管理者系统的内容主要包括相关信息的审核与管理,用户系统的内容主要包括相关信息的查看与申请。
文友管理平台
阿里云平台
搭建了个TS语言平台的服务器
|
运维 监控 前端开发
从中台到平台(上)
从中台到平台(上)
253 0
从中台到平台(上)
汽车资讯平台
本文研究全球及中国市场汽车资讯平台现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势