四关键点告诉你私有PaaS该怎么搞云和虚拟化

2015-06-10    来源:机房360    编辑:佚名
随着Docker的兴起,基于Docker构建适合企业内部的应用开发平台(PaaS),成为一个热门话题。公有PaaS由于要做到通用和普适性,所以往往很难真正满足企业业务开发需求。

  PaaS最终应该是解决方案,适应客户需求的解决方案,而且是需要随着业务需求的变化可以不断演变。而不是客户削足适履去适应PaaS这个工具。

  私有PaaS相比公有PaaS最大的区别在于,其规范是自己根据需求来定制和实施。那么PaaS究竟有哪些规范,又如何结合企业自身需求和业务特点来制定规范?

  首先,明确引入私有PaaS解决什么问题?

  开源中间件软件的提供,比如Tomcat、MySQL、PHP等

  应用部署自动化,快速升级或者回滚

  运维平台化和自动化,提升运维效率

  资源池化,共享运行,提升服务器利用率

  面向应用的管理,包括应用创建、监控、报表等

  提升DevOps水平。PaaS的特点是更加标准化和自动化

  对于拥有应用开发部门的企业,需要能够将开发、测试和生产三个环境打通,更快的开发、更快的测试、更简单的部署和管理。

  对于应用外包给第三方的甲方企业而言,其IT部门希望生产环境的应用更好管理,并希望在开发、测试阶段,就考虑到应用如何在生产环境的运行,避免企业的信息化建设杂乱无章。相比于拥有应用软件开发的企业,维护难度更大。因为这类企业面对的软件开发商,开发能力、开发语言和工具差异较大。

  当然每个企业对PaaS的需求肯定都会有不同,上面只是一个笼统的概括。具体到案例,需要结合具体需求分析。

  PaaS包含哪些规范?

  开发、运维在过去都形成了很多方法论.比如ITLE流程规范、SOA面向服务的软件架构,以及最近几年流行的DevOps实践、CI持续集成、CD持续交付、甚至最近流行的微服务架构。

  这些令人眼花缭乱的名词概念背后其实都是对于软件如何开发、如何交付以及如何运行维护的实践总结。

  那么PaaS的规范应该包含哪些内容,又具体细到什么程度,这个度如何把握?

  比如开发规范可以包含代码编写规范、开发协作规范,运维规范如果按照ITLE,包括:基于配置管理和工单管理的事件管理、问题管理、变更管理、发布管理等等。

  我们认为,PaaS规范的粒度需要把握好。这个粒度,和PaaS的使用者/管理者的需求有关。

  对于私有PaaS平台使用者需要关心:

  支持的编程语言、web服务器或者应用服务器

  支持的数据库软件类型

  支持的数据库模式,cluster还是主从

  数据库主从分离是否透明

  支持的文件存储类型,如何操作

  其它类型服务,如何访问?是否有SDK或API文档

  如何部署应用

  代码目录路径和布局的规范

  名字服务,代码如何访问这些服务(connect),是通过环境变量,还是通过域名,或者通过封装的类或者库,还是通过kv名字服务的查询获取?

  对于PaaS平台的管理方需要关心:

  统计报表

  监控报警

  面向应用的监控

  如何给开发人员提供一致的开发环境

  如何给测试人员提供一致的测试环境

  容量管理,如何增减节点

  数据保障,备份管理和灾备管理

  消息发布管理,如平台对某个软件进行升级的通知

  工单管理,处理使用方提出的疑问

  上面描述的这些需求,其实就是PaaS平台的开发规范/运维规范,说白了就是如何用和如何管。

  如何制定规范

  我们说需要结合企业自身特点来定制规范,那么具体到细节层面,我们应该考虑哪些因素呢?

  组织结构

  是否拥有软件开发部门。如果软件都是外包开发,那么如何让外包开发快速了解并立即可以开发?如果是自己内部部门开发,那么如何做好培训让他们理解更深刻才能更好地在PaaS上开发。

  同时也需要考虑开发和运维是在一个部门,还是一个公司,他们的绩效管理模式,是否会导致部门推诿扯皮。这些都会影响PaaS规范具体包含哪些,开发和运维的边界线在哪里?

  人员架构

  人员的技能水平,对PaaS的设计也有很多影响.一般而言,技能越好的团队,希望的自由度越高。但又需要考虑好开发和运维团队的技能是否能够相匹配。如果开发方能力过强,运维方在管理生产环境时可能就吃力。如果运维方能力强,开发方就能更省事。

  企业已经存在的IT资产

  这些资产包括硬件和软件两个方面。引入的私有PaaS平台,过去的资产哪些可以继续使用避免过去的投资浪费,这是CIO关心的问题。

  硬件方面的资产如交换机、存储往往标准化程度很高,比较容易复用。软件方面,比如企业过去购买过一套监控系统,如果想将PaaS平台的监控对接进去,难度可能就比较大,技术上也很可能失败。这些都需要根据实际情况评估。

  可定制和修改的PaaS

  PaaS的规范绝不是一成不变,随着组织、技术栈的变化,PaaS的规范也应该能够不断修改适应。

  基于docker的PaaS能够胜任这一点。docker本身的特点是轻量灵活。基于docker构建PaaS,不仅可以提供“可定制实施”的PaaS,特别是可以简化PaaS平台的运维管理。

1
3