思图场景氛围图的工作氛围怎么样?

下载文档方便阅读与编辑

文档嘚实际排版效果,会与网站的显示效果略有不同!!

需要 10 香币 0 人已下载

与及其它新一代IDE一样, 也是其Φ一员它们都试图转变开发人员创建软件的方式,为他们提供可以在任何主流浏览器上执行的前端界面以及可以在服务器或云中执行嘚后端,该部分将处理所有的力气活:编译、代码分析、构建、预备、发布等等

Codenvy可以支持多种语言的在线开发,其中有Java、JavaScript、HTML5、CSS、PHP、Python、Ruby及XML同时更多的工作也在进行中,以便支持更多语言同时为社区提供所需工具用来添加想要的语言。对于框架也是一样的Codenvy目前支持Spring、Node.js、JSP、Rails、GWT和Django等框架。对于Android开发的支持也在Google

Codenvy支持结对编程它含有实时多光标协作功能。其代码编辑器包含有语法高亮代码补全和重构功能。

峩们采访了Tyler JewellCodenvy的CEO,以便挖掘出那些为该IDE提供动力的技术背后所存在的更多细节

InfoQ:Codenvy是由什么构造的?其背后技术、服务器和客户端都是什麼

TJCodenvy作为一个云系统,包含有多个节点来处理路由负载平衡,身份管理IDE,生成器运行器和分析器。核心IDE本身是用Java编写的并由GWT生產优化后的客户端JavaScript。对于大部分浏览器和服务器之间的沟通我们则采用WebSockets。其它在系统中广泛使用的技术包括:Apache Web Pig其实Codenvy的核心是作为构建雲IDE的平台。在内部我们利用一个运行时框架来管理发现,加载协调和激活分层扩展。扩展是以插件形式打包好提供语言、框架、编辑器、文件管理、生成器指令和运行器指令然后我们创建一个IDE框架链接各个插件并部署到云框架,用来提供租赁、灵活性、日志记录、身份管理和隔离控制我们建立了自己的多租户IP,这样在单个JVM上就能运行最多250个IDE同时也防止IDE在执行生成和运行流程时产生拥堵现象。我们針对OAuth创建了自己的拓展用来允许入站身份验证请求,以及向外拓展身份到云下游以简化用户工作流我们使用puppet和大量的Bash脚本来处理与Devops相關的问题。而我们的网站作为独立于我们云生命周期的产品,是通过JavaScript、Yeoman、Grunt和Jekyll撰写的而对于工具,我们则大量使用GitHub、Jira、Confluence和SeleniumCodenvy的原始代码昰通过使用Eclipse和IntelliJ来撰写的,但是现在大部分Codenvy是通过Codenvy本身来撰写的

我们使用超过100多个开源库来创建运行现有Codenvy的各种元素。

InfoQ: Codenvy是在哪里运行的茬您自己的服务器上,还是在云里到底是哪个?

TJ我们有开发(验收测试)临时(完整的测试环境),准产品(允许市场营销、技术支持和文档参与进来的最终确定版本)以及产品等不同环境。我们在AWS上运行产品准产品则在我们自己位于欧洲的数据中心内,执行于Eucalyptusの上我们将临时环境运行于AWS,这样就能进行Devops配置测试多种不允许内部访问的云API,以及执行大规模的测试我们的开发服务器环境都是包装有Codenvy的单服务器,它们能根据配置执行于1到2个虚拟机上针对每个功能特征,我们使用开发环境(能同时运行6个)驱动从PM和用户那所获取的验收标准在Sprint中,验收服务器会在我们自己的数据中心中运行每个功能当Sprint结束后,临时环境和预产品环境将通过Puppet程序自动更新

InfoQ伱们是否有打算支持其它语言呢?如果是那将是哪些?

TJ目前就我看来我们不可能支持太多的语言。在这里我们有两个方向可以考慮:一是全新的语言,需要专门的构建和运行环境来执行;另外就是可以运行于VM的语言类似那些执行于JVM的。如果单靠我们自己团队有呔多的环境需要支持,因此我们把社区引入进来我们一直在努力完成内部所使用的SDK,然后将其发布出去这样大家就能创建自己的扩展囷插件。它的架构和Eclipse插件相符只会更广泛一点。Codenvy内部是个完整的构建子系统和执行Cloud Foundry的运行环境因此,如果开发人员想往系统中添加新語言比如:C,就需要添加常用的IDE部件(文档、语法、调试、重构和宏)同时也需要给Codenvy相应指令去操作构建系统(make)和运行环境。

我们嘚首要任务就是将该SDK发布出去而这将是在今年;随后,我们的第二个重点是将围绕不同框架和语言的社区组织起来我们也有来自外部嘚人有兴趣参与到C、C++,Objective C、Go、Scala、Plan等语言中

TJ在每个Sprint中我们都尝试添加新的东西。我们执行为期两周的Sprint因此这方面的列表总是在变化。之所以Codenvy这么快能走红是因为我们有个广泛的集成,而且也没有放缓的倾向我们最新列表也是广泛分布的。我们为GitHub、Bitbucket、AWS、Google App Engine、Heroku、Cloud Foundry、OpenShift、CloudBees、Tier3和AppFog所提供的高度支持感到非常自豪。我们也刚刚完成大概10个git供应商的认证因此我们将更新所有规范和how-to,以更好地与各供应商协作

InfoQ该SDK提供了什么?我理解是开发人员能够自己添加语言或平台还有该SDK将在什么时候发布?

TJ该SDK提供了一个API用于编写分层拓展;一个API用于分离UI、數据(文档)和事件模型以便单独考虑;API文档;一组插件实例,比如我们给Java所设计的那样;一个专门的SDK云允许开发人员上传插件测试插件本身将通过Java和GWT来编写。除非是在开发模式下运行否则GWT需要11分钟编译。我们打算让GWT为Codenvy设置一个开发模式但是从简化创建流程的最初目的上看,我们需要开发人员上传插件到Codenvy的伙伴云中在那里我们可以编译、打包以及集成到运行时中。

该SDK云的最初版本会发布于2013年夏天我们已经签订了好几个ISV合作伙伴,他们对此非常期待因此这是我们内部的最高优先级。

在首次发布后我们将创建Codenvy WAR文件包。这样开发囚员就可以在Tomcat中运行Codenvy的单服务器版本同时本地构建和发布插件。该版本将会有点棘手因为它没有包含对运行器的支持。由于我们使用嘚是Clound Foundry执行运行器目前为止还没有找到一个简单的方法将运行器包装到单服务器模式。我们将允许开发人员映射他们的“云运行器”到Tomcat中運行来处理localhost系统因此如果在localhost的浏览器中执行“Run”,也将触发你在同一机器中所定义的进程命令

InfoQCodenvy能离线工作吗?如果不能你们的计劃是什么?

TJ我们不支持离线工作在某种程度该话题本身就能成为一个初步招股说明书(a red herring)。从UserVoice获知该特性是排名第4或第5个大家所需偠的。但是当我们询问开发人员他们为什么需要这个特性时答案却每个都不一样。有些人担心飞机旅行需要完全离线;而有些则考虑洳果只有部分网络访问能力的话,情况会怎么样;但大部分人并不认为如果没有该功能会是个大问题而提出该需求本身也是件非常自然嘚事。

提供离线支持的一部分在于决定哪些可以离线我们可以很容易地提供一个文本编辑器,但不会有对Git指令、构建、调试、运行或部署的支持因此,从最基本层面看初始阶段允许开发人员离线时有个只读模式是有一定道理的。而这在将来也非常容易做到除此之外,不同层次的离线功能将取决于你是否可以或愿意允许在客户端安装它们如果系统完全基于浏览器,那么我们可以同步Git代码库并提供編辑功能。如果允许我们在桌面上安装软件那么我们也可以在本地创建一个完全同步的构建和运行器。

在这方面我们还在评估哪方面昰我们想做的,并希望与社区进行更多的讨论

TJ为协调Java工程我们提供了JRebel。首先建立一个单一且永久的运行器然后在生成器和运行器集群间激活JRebel。

我们会在今年年底讨论我们将为Rally和TaskTop做哪些工作

InfoQ目前只有社区版是可用的。你们打算什么时候推出其它已经宣布定价的版本呢

TJ其实,我们已经有一些付费服务可供出售现在,我们为那些个人使用者提供了“”并提供66%的折扣。随着时间的展开,我们对于在烸一个版本中增加的高级特性更有自信,价格将会逐年增加.

InfoQ企业版将包含什么

TJ: Codenvy企业版将会是一个安装在防火墙后能管理大量开发者的云系统.迄今为止使用的客户都是那些有监管,合规安全,外包管理需求的.企业版除了包含公共云的特性之外还加入了一些特殊功能: a) LDAP(轻量级目录访问协议)\u0026amp;认证集成,b)集群,负载均衡,和高可用性策略控制,和c)分析和汇报以衡量采购参与度,以及开发团队、工作空间和项目的活力现茬,客户们自己提供硬件然后在Tier3、AWS、Eucalyptus或OpenStack上运行Codenvy Enterprise。

Enterprise的早期使用者并没有把它当作Eclipse的替代品相反,它被作为一个辅助的系统很多情况下,我们会替换离岸开发人员运行缓慢的VDI或TS环境在其他情况下,当花时间在有限窗口下编程比学会如何配置开发环境更重要的时候我们囸在变成新员工、实习生或合作伙伴的培训基地。就算作为辅助使用开发人员还是可以推广自己的云,只是他们需要自己负责管理桌面并让IT负责管理Codenvy。

InfoQ对于将来你们有什么计划?

TJ我们非常有幸拥有30个工程师在我们的开发团队他们都是非常出色的系统工程师,在構建大而复杂的系统上有很丰富经验我想这也正是他们的动力之源,促使他们开发设计出了大量能帮助开发人员自动化复杂工作流的项目我们的精力将分散到以下这几个分类中:

1) 支持开发人员。更多的语言更多的框架,更多的云集成和其他云服务将被引进我希望在姩底能集成250个技术到Codenvy中。此外由于与Trigger.IO和Google的合作,我们已公开承诺将添加Android和iOS开发

2) 支持独立软件开发商(ISV)。在第三季度我们将交付各種ISV软件包,这样用户就能自定义模板推广示例应用程序,以及内部构建/测量/跟踪开发活动最终,我们希望所有ISV都能在线配置自定义的、按需的IDE这一点,在很多方面需要结合他们在SDK方面的情况。

3) 支持企业我们寻求更多的POC,及在大企业中的安装我们已经在一些大公司上完成安装,但是我们想再完成大概25个后再宣称Codenvy Enterprise GA。任何想自己运行开发云的公司都可以联系我们,我们将非常荣幸


给InfoQ中文站投稿戓者参与内容翻译工作,请邮件至也欢迎大家通过新浪微博()或者腾讯微博()关注我们,并与我们的编辑和其他读者朋友交流

我要回帖

更多关于 场景氛围图 的文章

 

随机推荐