owin 怎么部署在云中
关于“ 云 ”及其功能的宣传很多。
我感兴趣的事情之一是云解决方案,它可以帮助小型软件公司,尤其是对启动软件初创公司有所帮助。 开发团队可以利用这些好的工具来构建和测试自己的东西,而无需内部IT的所有麻烦和开销,购买和配置自己的设备,设置工具,系统和网络以及寻找了解所有这些知识的人它足够好,可以正确执行并保持运行。
我想找到一种可以对软件团队起作用的基于云的技术,就像Salesforce.com对客户服务业务所做的那样,以便软件团队可以快速上手,并从一开始就做事。
软件团队需要一组核心的共享工具和功能:
- 源代码管理/版本控制
- 错误追踪
- 协作和共享文档构建和持续集成
- 源代码扫描和静态分析
- 单元和功能测试
- 系统,负载和压力测试
- 代码部署。
云可以有效地提供所有这些功能吗?
在云中管理和构建代码
我不断遇到使用GitHub托管其源代码存储库的人们。 不仅是从事开源项目的人们,还有使用GitHub在托管的私有存储库中管理商业项目的公司,该服务由许多创业公司使用 。 在GitHub中,开发人员拥有一个用于使用Git分布式版本控制系统管理代码的平台,并且他们可以为开发团队(尤其是分布式团队)使用一系列良好的工具:控制权限的管理功能, Wiki , 错误跟踪系统和在线代码审查工具 。
GitHub的一种替代选择是使用Mercurial DVCS的BitBucket 。 像GitHub一样,BitBucket可用于管理开源和私有项目,看起来它提供了一组类似的管理功能和工具。 GitHub 对于开源项目是免费的,对于小型团队来说是便宜的,而BitBucket的定价基于用户数量,小型团队(最多5个用户)对于开放源代码或封闭源代码都是免费的。
基于Mercurial构建的另一个On Demand SCM平台是Fog Creek Software的Kiln ,它与Fog Creek的错误跟踪和计划系统FogBugz很好地集成在一起。
Atlassian 去年购买了BitBucket,它还为Jira Studio提供了一个全面的托管开发平台,该平台以Subversion代码存储库为中心,并与Atlaissian的其他强大开发工具集集成在一起: Jira bug跟踪, FishEye用于代码搜索, Confluence Wiki, Greenhopper用于敏捷团队计划,用于在Amazon EC2和Crucible上进行构建和持续集成的Elastic Bamboo ,用于在线代码审查。 这几乎是团队所需的一切(缺少的只是静态分析以及功能和负载测试平台)。 尽管BitBucket和Jira Studio之间已经存在一些重叠,但随着时间的推移,相同的集成开发工具支持可能会扩展到BitBucket。
还有CloudBees Dev @ cloud ,它提供了安全的Git,SVN或Maven存储库以及通过托管的Jenkins服务器进行的持续集成的选择。
Spring Source的Code2Cloud可能是一个不错的选择,特别是对于Java / Spring开发人员来说,当它准备就绪时–细节目前还很模糊。
对于企业而言,IBM 最近宣布了 Smart Business Development and Test Cloud和IBM Cloud上的 IBM Smart Business Development and Test (也称为SmartCloud Enterprise –我不确定它们之间有什么区别,我已经厌倦了阅读营销术语),以及各种IBM技术和合作伙伴工具。 这些东西不适合胆小的人或小的钱包。
持续集成在云中
持续集成是开发团队必须解决的一个问题,才能使他们走得太远,而设置CI服务器并使其保持运行并非易事。 这是云的弹性按需模型的另一个很好的选择,仅在需要时才购买更多基础架构。
除了Atlassian托管的端到端平台以及CloudBees的Jenkins即服务 (可用于构建可通过Internet访问的存储库中托管的代码)之外,Cloud中的CI也有一些选择(由Pascal Thivent on Stack提供)溢出 ):
对于开源项目,有基于TeamCity构建服务器的 CodeBetter 。 对于专有项目,存在在Amazon EC2上托管的Mike CI ,其中包括与Subversion,Git和Mercurial存储库的接口。 和CI Foundry 。 但是,我不知道这些服务的真实性。 迈克·CI(Mike CI)在我去检查它的最后几次失败了,CI Foundry的主页上包含了这个不太令人信服的证明:
人们在说什么...
Lorem ipsum dolor坐下,一直保持良好状态。 毛里斯quis ligula vel ligula varius cursus tristique eget sem。 毛里斯人马座(Mauris sagittis),不道德的先导者,sem mi condimentum neque,quis feugiat quam dui dictum risus。
–克里斯·里德 持续部署专家
Thivent建议您可以在Amazon EC2上滚动自己的CI解决方案,也可以使用“盒装CI”之类的东西 。 利用随需应变的平台,像EC2有意义的CI,而不是供应自己的装备:这是为你做的设置更多的工作,但你可以依靠亚马逊的基础设施,以降低成本,简化操作。
云中的错误跟踪
有一些不错的价格合理的基于云的错误跟踪系统,适合小型团队,包括Fog Creek Software的FogBugz和Atlassian的Jira Hosted选项,这两个选项也都包含在其托管代码管理套件中。
在云中测试
云对应用程序测试(特别是大规模性能和负载测试)有很大的希望。 您正在构建一个很酷的新Web平台,该平台需要根据您的业务计划支持10,000或100,000个并发会话。 在您的投资者投入更多资金之前,他们想看看您的软件有多真实,距离交付可行的产品还有多远。 当然,此时您没有金钱,时间或IT技能来建立自己的大型测试中心,这样做有很多浪费–您需要很多设备,但是您不会无需经常使用所有内容。
你可以比较快地旋转起来在EC2上测试场,甚至一个大的-只要你不需要跑很长一段时间的考验,你不要求太高的服务水平,它赢得了”根本不花很多钱 。 您在需要时支付所需的费用。
要运行压力测试,您不仅需要在服务器场中部署应用程序,还需要更多。 您还需要可扩展的压力测试工具来驱动负载情况并测量结果。 如今,云中提供了一些可行的选择: SOASTA及其CloudTest解决方案,用于负载测试和极端压力测试,可以从小型站点扩展到大型站点; 在EC2上运行的云中的HP Load Runner ; 云中的JMeter ; LoadStorm和BrowserMob 。
还有一些其他有趣的测试功能,包括来自Sauce Labs的技术,该技术使您可以在云中的Web应用程序上运行Selenium测试,或针对不同的基于云的即时可用浏览器手动测试您的应用程序,所有这些都包含失败测试的视频记录和其他找到问题了。 简单,有用和酷。
适用于初创企业和小型公司的基于云的测试的另一种方式是众包测试服务,如uTest ,您可以让人们“在云中”测试您的应用程序(Web应用程序,桌面应用程序和移动应用程序),包括功能覆盖率和回归测试(您给他们测试,他们运行它们甚至可能帮助改善它们),探索性测试,可用性测试,负载测试以及测试计划和管理。 与其他基于云的按需解决方案一样,您可以在需要时为工作付费。 uTest有大约40,000个测试人员可用的社区,尽管尚不清楚其中有多少人非常有用。
Mob4Hire是另一种专门针对移动应用程序的众包解决方案–它们提供功能测试和可用性测试以及其他服务,例如市场研究。
云中的静态分析
一些领先的静态分析供应商也已使用云。 惠普提供Fortify on Demand来扫描代码中的安全漏洞,而IBM具有Rational Appscan OnDemand ,其中包括经验丰富的团队的帮助,以帮助您解释结果并计划补救措施。 与小型团队相比,这两种解决方案都更针对企业。
仅通过云提供Veracode ,该软件运行用于安全漏洞的二进制代码分析,并且现在还提供Web漏洞扫描。 他们提供了针对小型Java应用程序的XSS和SQL Injection缺陷(两个最常见和致命的Web应用程序漏洞)的免费试用版扫描 。
对于那些关心构建可靠和安全应用程序的初创公司(其中大多数应该如此,尤其是Web 2.0初创公司和移动应用程序开发人员)来说,看一看更简单的基于IDE的开发人员工具(例如Findbugs和Google的CodePro Analytix) (更免费)可能更有意义或Klocwork Solo for Java (按用户定价)。
权衡
在云端管理代码,构建代码并对其进行测试具有许多明显的优势:
- 加快产品上市时间–您可以以最少的麻烦和设置时间快速访问基础架构和工具。
- 节省成本和资本支出-尤其是对于负载测试-您无需先付钱,只需要为使用时所用的东西付费,因此您可以更好地管理现金流。
- 便利性-您不必自己配置和操作齿轮,也不会增加操作上的麻烦。
- 获得专业技能的知识–您的云提供商将以比您所能承受的更好的方式更多地了解这些技术以及如何解决特定问题,因此您无需签约或聘请专家来帮助解决问题或确保一切就绪正确地工作,或者浪费时间自己弄清楚。
- 服务级别–他们将有更多的人来帮助保持运行状态,以确保备份了代码和数据,清理并监视和修补了系统。 与您相比,他们丢失您的代码和数据的可能性较小。
在安全性方面,与基于云的提供商一起工作的普遍论据是,与大多数客户现在或将来相比,他们将对安全性更加负责和认真。 由于规模经济,他们可以投资于做正确的事,并且因为他们必须有安全的竞争能力。 例如,GitHub似乎已经建立了良好的安全程序,并且由Rackspace托管,因此数据中心,网络和服务器的安装和维护要比小型公司(尤其是初创公司)能够承受或愿意承受的要好得多。知道该怎么办。
使用这样的云平台的担忧归结为一些基本点:
1.这是一个共享平台,许多公司都在使用。 平台越成功,他们管理的客户和有趣,有价值的数据/ IP就越多,他们对坏蛋的吸引力就越大。 小公司本身就是一个容易的目标,但并不是特别有趣或不容易找到。 但是,为许多小型创新型公司保存数据的平台吗? 美味…。[以浓浓的声音发出,带有外国口音]
2.每当您外包对您的业务至关重要的核心内容时,您都会承担一些重要的风险。 您的数据/代码/客户群对您而言比对您将此责任外包给谁更重要。 如果发生严重错误,由于Cloud服务无法正常工作而导致您无法对客户进行重要更改或重要错误修复,或者如果代码的完整性或机密性受到损害,他们会感到悲伤,他们将失去一个客户(您)……但是您可能会倒闭。
您可以要求并支付良好的SLA,但今年早些时候Amazon的主要EC2中断表明,即使是最好的提供商也无法履行其SLA承诺。 尽管亚马逊在处理和恢复故障方面做了很多正确的事情,但它影响了很多客户的时间太长了。
3.除了使用SSL和网络防火墙并在良好的数据中心中运行之外, 安全的在线平台还可以提供更多功能 –假装是天真的。 作为客户,您需要对云服务提供商在多租户分区方案和软件安全控制以及他们的多租户分区方案中如何设计和构建软件架构和平台以保护IP和数据的机密性和完整性充满信心。 SDLC。 应用程序代码中的安全漏洞是Web上企业的严重风险来源 ,而且大多数公司在以安全方式构建应用程序方面仍然做得很差 。
DropBox (基于云的文档存储工具)是一个平台的示例,该平台似乎是安全且机密的,直到有人开始对其进行深入研究 ,然后他们继续遇到基本安全问题,不幸的是,没有托管的平台提供有关我可以找到的安全SDLC的任何形式的陈述,以及他们为确保安全设计和实施平台所采取的步骤。
在云中进行测试,尤其是对Web应用程序的负载测试,似乎是一件容易的事-商业案例太引人注目,无法忽略。 许多其他工具也有很大的希望:像Atlassian的端到端托管工作室之类的东西可以为小公司节省很多时间和麻烦,并且可以节省前期成本。
这取决于您可以对云提供商及其SLA的可用性和支持给予多少信任,以及最终您是否有能力将核心IP信任给其他人。 37 Signals构建并运营自己的用于项目管理和文档共享的云解决方案, 但认为这不是一个好主意 :
出于明显的安全原因,我们在内部托管了应用程序的所有源代码。 这并不是说Github的私有存储库托管不是一个好的选择,特别是如果您想要轻松的设置。 只是不适合我们。
JH 08年8月22日
对于某些公司,尤其是初创公司而言,其代码中包含的IP至关重要-这可能是它们拥有的全部。 具有讽刺意味的是,正是这些公司最有可能使用GitHub,Jira Studio或BitBucket等云平台。 决定是否信任您对云的未来并非易事。 但是随着技术的不断进步,这是一个值得提出的问题。
参考: Building Real Software博客的 JCG合作伙伴 Jim Bird提供了在云中进行开发和测试的信息 。
翻译自: https://www.javacodegeeks.com/2011/07/developing-and-testing-in-cloud.html
owin 怎么部署在云中