本博客迁移到部署在jae上的独立博客系统wordpress,博客地址:点击打开独立博客。欢迎大家一起来讨论IT技术。

现在很多企业都在搭建自己的私有PAAS平台,当然也有很多大型互联网公司搭建共有PAAS平台(例如SAE/BAE/JAE(jae.jd.com))。那么使用PAAS平台来部署SAAS应用有哪些好处呢?除了大家都知道方便部署管理,节约资源和成本,今天我主要给大家介绍另一个好处就是让部署在PAAS平台上的应用很容易做到7×24小时不服务器运行(哪怕需要重新部署和更新应用),这个对于一般的企业和普通开发者来说是很难办到的。当然如果要在PAAS平台做到其实也不是那么简单的,需要很强的技术力量。下面就主要介绍一下在PAAS平台怎样实现让部署在PAAS平台上的应用达到7×24小时运行的方案。

在介绍方案设计之前需要强调一下,这个前提是PAAS平台本身是7×24小时高可靠的。

本方案设计主要涉及下面几方面的改进:

(1)应用运行调度模块:能够将应用的多个实例调度到不同的服务器和机架上进行运行;

(2)应用运行状态的监控模块:对应用的运行状况进行监控;

(3)优雅重启应用模块:能够在应用重新部署和升级时不停服务;

一,首先我们来看看调度模块

调度模块应该是PAAS平台(不管是私有还是共有的)标配,只是不同的PAAS平台有自己特色的调度方法和策略,例如根据服务器资源使用来调度(这个里面有涉及到各种资源的调度,例如根据CPU或者内存等),或者根据部署的应用个数来调度。当然好的调度策略绝对不只使用一种评判标准来作为调度的策略,肯定是结合各种情况考虑。因为今天主要介绍的是应用的高可靠性,所以主要介绍怎样通过调度算法保证应用的高可靠性。假如应用为了提高自己的服务能力和可靠性运行了3个实例,那么怎么的调度算法是最佳的(仅仅针对高可靠性这一点来说的)?我们都知道设计一个高可靠性系统都会考虑到服务器出问题和网络(交换机)出问题,所以调度模块为了保证这个应用的高可靠性应该需要保证这三个实例应用不在同一个服务器上运行,同时保证三个实例不应该在同一个机架下运行,当然如果有条件的PAAS平台可以考虑跨数据中心调度(不过应该没有几个PAAS平台能够做到跨数据中心部署PAAS平台上的应用)。

要做到上面说的调度结果,调度模块应该能够知道所有部署应用的服务器的部署情况,或者至少能够通过某种方法查询到。我相信所有的PAAS都应该有资源管理模块(或者叫做PAAS平台的服务器监控模块)能够提供这些信息。除了知道服务器的部署情况,调度模块应该还需要能够知道或者查询到某一个应用实例运行在哪一台服务器上,因为只有这样调度模块才能够保证不会把后面的实例调度到同一个服务器上。例如应用启动三个实例,已经启动2个实例了,还需要启动第三个实例,那么调度模块启动第三个实例之前需要知道其他连个实例运行的服务器和机架,这样才能保证把第三个实例调度到其他机架上去运行。同样如果应用运行的三个实例,突然某个时候其中一个实例挂掉了,那么需要把第三个实例重新运行起来,还是需要使用调度模块来完成不同服务器和不同机架的调度。至于调度模块怎么知道挂掉了一个实例,这个不是调度模块关心的事情,下面介绍的应用运行状态监控模块会很好的解决这个问题。

预知方案设计完整详情,请移步本人独立博客,谢谢。这篇博客的地址是:点击打开这篇文章

PAAS平台构建7×24小时高可用应用的方案设计的更多相关文章

  1. 干货 | 携程多语言平台-Shark系统的高可用演进之路

    https://mp.weixin.qq.com/s/cycZslUlfyVNm2GVrZm1Cw 干货 | 携程多语言平台-Shark系统的高可用演进之路 原创 Fenlon 携程技术 2020-1 ...

  2. Ubuntu构建LVS+Keepalived高可用负载均衡集群【生产环境部署】

    1.环境说明: 系统版本:Ubuntu 14.04 LVS1物理IP:14.17.64.2   初始接管VIP:14.17.64.13 LVS2物理IP:14.17.64.3   初始接管VIP:14 ...

  3. 构建LVS-DR+Keepalive高可用集群

    ------client----------主LVS----------从LVS------------WEB1-------------WEB2--------- 2.2.2.250  2.2.2. ...

  4. 【Linux】【Services】【SaaS】Docker+kubernetes(11. 构建复杂的高可用网络)

    1. 简介 flannel在实战阶段貌似不能胜任在灾难恢复时候异地的网络,打算用openvswith试试

  5. PAAS平台7×24小时可用性应用设计

    如今非常多企业都在搭建自己的私有PAAS平台,当然也有非常多大型互联网公司搭建共同拥有PAAS平台(比如SAE/BAE/JAE(jae.jd.com)).那么使用PAAS平台来部署SAAS应用有哪些优 ...

  6. 魅族资深DBA:利用MHA构建MySQL高可用平台

    龙启东 魅族资深DBA 负责MySQL.Redis.MongoDB以及自动化平台建设 .擅长MySQL高可用方案.SQL性能优化.故障诊断等. 本次分享主要包括以下几方面: 如何利用MHA 改造MHA ...

  7. 【mysql】Mha实现高可用数据库架构

    MySQL高可用平台需要达到的目标有以下几点: 1.数据一致性保证这个是最基本的同时也是前提,如果主备的数据的不一致,那么切换就无法进行,当然这里的一致性也是一个相对的,但是要做到最终一致性. 2.故 ...

  8. 如何做到MySQL的高可用?

    本课时的主题是“MySQL 高可用”,主要内容包含: 什么是高可用性 MySQL 如何提升 MTBF MySQL 如何降低 MTTR 避免单点失效 基础软硬件避免单点 MySQL 高可用架构选型 故障 ...

  9. Redis|Sentinel 高可用架构

    一 前言 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端 ...

随机推荐

  1. [转]linux /proc/cpuinfo 文件分析

    在Linux系统中,提供了proc文件系统显示系统的软硬件信息.如果想了解系统中CPU的提供商和相关配置信息,则可以通过/proc/cpuinfo文件得到.本文章针对该文件进行简单的总结. 基于不同指 ...

  2. Redis 的Lua Script脚本功能

    从 Redis 2.6.0 版本开始,通过内置的 Lua 解释器,可以使用 EVAL 命令对 Lua 脚本进行求值 Redis2.6内置的Lua Script支持,可以在Redis的Server端一次 ...

  3. Spring 4集成 Quartz2(转)

    本文将演示如何通过 Spring 使用 Quartz Scheduler 进行任务调度.Spring 为简化 Quartz 的操作提供了相关支持类.本文示例使用的相关工具如下: Spring 4.2. ...

  4. INNO SETUP 5.5.0以上版本中文语言包

    ; *** Inno Setup version 5.5.0+ Chinese messages ***;; To download user-contributed translations of ...

  5. gdal编译C#开发版本

    gdal的编译比较麻烦,情况有很多种,今天我编译的gdal遇到的问题就和以前的有点不一样,仅供参考借鉴. 1.下载gdal源码 gdal源码下载地址:https://trac.osgeo.org/gd ...

  6. No module named yum错误的解决办法

    今天用yum安装软件的时候出现如下错误: There was a problem importing one of the Python modules required to run yum. Th ...

  7. UVA315 (无向图求割点)

    题目大意:给定一个无向图,问共存在多少个割点.(割点:去掉此点后此图会断开连接)割点有两种存在:一种是第一次搜索的根节点,若其子节点数超过两个,则此点去掉后图会 断开连接,因此此点为割点:或者此点为搜 ...

  8. 小甲鱼python视频第九讲(课后习题)

    1.列表里可以存放什么东西? 可以存放任何的数据类型, list1 = ['我爱你','i love you',1314] print(list1) 2.向列表中添加元素 append(将参数作为一个 ...

  9. Java集合类之ArrayList

    学习Java的集合类 (1)成员变量以及初始化 private static final int DEFAULT_CAPACITY = 10; private static final Object[ ...

  10. ABP的事件总线和领域事件(EventBus & Domain Events)

    http://www.aspnetboilerplate.com/Pages/Documents/EventBus-Domain-Events EventBus EventBus是个单例,获得Even ...