云应用开发不会在一夜之间完成。开发者必须仔细的,根据云资源的需求来设计云应用的使用,运行和规模。此外,云应用的开发过程往往比传统的应用开发更加灵活,通常遵循DevOps的原则和做法。
一些开发者开始转向开源平台即服务(PaaS),以支持快速的云应用开发和部署周期。但是,开源开发平台也会给开发者和企业带来了新挑战。以下是开源PaaS可能会产生的六个问题,以及如何克服它们的步骤。
成功的开源PaaS需要管理层支持
开发者的投入对于开源PaaS的成功至关重要,但更重要的是获得业务上层和管理团队的认可。企业内部应对DevOps原则和云软件开发有着共同的愿景,并且了解迁移到开源PaaS的好处和风险。
企业方需要以DevOps的目标来监督团队重组,并且在必要时批准增加工作人员。企业***还应该帮助制定开发日程,并合理计算出平台的集成和支持费用。
如果缺乏企业方面的支持,会阻碍云软件的发展目标。你最不希望的事情是部署一个云开发平台,然后,在六个月到一年之后,企业却决定要使用别的方式。
一些PaaS平台发展缓慢
云计算相对来说仍然还不成熟,新服务和功能会一直出现。云开发平台和PaaS也会在新的功能登场时不断演变。然而,由于用户社区对开源软件的影响很深,因此无法保证新功能会以足够快的速度出现以满足你的开发需求。
虽然每个PaaS产品都有着类似的功能,但具备这些功能的速度却有所不同。例如,Pivotal的开源PaaS产品Cloud Foundry以其对语言的支持,服务整合,以及与其它如Chef,Puppet,Jenkins和NoSQL这样的开源工具的集成著称。然而,Cloud Foundry上只提供初步的容器支持,用户界面主要靠命令行,支持数量有限的软件部署商业模式以及在应用的性能指标衡量上偏弱。
监控一个平台的发展路线图然后再作出决定。那些发展缓慢或者正在经历某种艰难的发展模式的平台可能会为你的应用开发团队和你的业务带来问题 。
为PaaS项目找到相关文档
开源云开发平台有着复杂且要求很高的框架,承载着大量的详细文档。随着这些平台的发展,它们的文档必须不停更新,每一个文档必须提供一致的功能和特性的信息。
那些支持他们各自开源项目的商业机构,如Pivotal对Cloud Foundry,Red Hat对OpenShift以及Salesforce对Heroku的支持,有助于对更新的简化和划分优先级。例如,Cloud Foundry在网页中提供了大量的文档链接,介绍关于其命令行接口,部署和集成,管理,故障排除,服务创建等等的内容。相比之下,红帽也为OpenShift提供了类似的文档。
然而,在开源PaaS的发展过程中,我们无法保证所有的改动和更新都能够被明确或及时的记录下来。这可能会使开发者失去许多机会,伴随代价高昂的错误和混乱。
从开源社区获得PaaS支持
围绕一个开源PaaS展开评估,部署,整合和建立一个软件的开发计划是很艰巨的任务。对于内部的专家来说,肯定会碰到不少难以解决的集成,性能和自动化上的障碍。这意味着你会需要平台的技术支持。
开源社区通常负责支持开源平台。但是,尽管社区可以帮助解决不寻常或小众的问题,没人能够保证你一定会得到可行的解决方案。例如Pivotal和Red Hat之类的母公司以论坛,wiki和可搜索的知识库来提供一些基础的支持,但仍然无法做出提供一个快速解决方案的承诺。
在某些情况下,企业可以选择开源平台的商业版本,来结合开源代码的可扩展性与企业级的技术支持。例如,Pivotal为Cloud Foundry的商业版本提供高级和开发者的支持。然而,一定要考虑这种方法的利弊和成本。
衡量免费软件的成本
开源软件通常不需要花费就能获得,但从长期来看并不总是免费的。大多数企业都做好了厂商提供企业级别支持的费用准备,但还有一些其他不那么明显的隐性开源成本。
额外的开销可能包括了服务器,存储,初始评估,概念证明项目,部署和与第三方工具的整合。组织还需要将维护,管理和报表的成本也算进来。
开源PaaS可以简化云软件开发,同时***限度地降低企业的采购成本。但平台非常复杂,需要大量的专业知识来部署,集成和高效的使用。花时间慢慢选择满足你当前和未来需求的合适工具。