首页 > 最新文献

Proceedings of the 4th International Workshop on Release Engineering最新文献

英文 中文
A model driven method to deploy auto-scaling configuration for cloud services 为云服务部署自动缩放配置的模型驱动方法
Pub Date : 2016-11-18 DOI: 10.1145/2993274.3011285
H. Alipour, Yan Liu
Vendor lock-in is the issues in auto-scaling configuration; scaling configuration of a service cannot automatically transfer when the service is migrated from one cloud to another cloud. To facilitate fast service deployment, there is a need to automate the operations of auto-scaling configuration and deployment.
厂商锁定是自动扩展配置中的问题;当服务从一个云迁移到另一个云时,服务的伸缩配置不能自动转移。为了方便快速部署服务,需要自动化自动扩展配置和部署的操作。
{"title":"A model driven method to deploy auto-scaling configuration for cloud services","authors":"H. Alipour, Yan Liu","doi":"10.1145/2993274.3011285","DOIUrl":"https://doi.org/10.1145/2993274.3011285","url":null,"abstract":"Vendor lock-in is the issues in auto-scaling configuration; scaling configuration of a service cannot automatically transfer when the service is migrated from one cloud to another cloud. To facilitate fast service deployment, there is a need to automate the operations of auto-scaling configuration and deployment.","PeriodicalId":143542,"journal":{"name":"Proceedings of the 4th International Workshop on Release Engineering","volume":"15 5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115202842","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
The SpudFarm: converting test environments from pets into cattle SpudFarm:将测试环境从宠物转换为牛
Pub Date : 2016-11-18 DOI: 10.1145/2993274.2993280
Benjamin Lau
About a year ago I was trying to improve our automated deployment and testing processes but found that getting access to a functioning environment reliably just wasn't possible. At the time our test environments were pets. Each was built partially by script and then finished by hand with a great expenditure of time, effort and frustration for everyone involved. After some period of use, that varied depending on what you tested on the environment, it would break again and you'd have to make some, frequently wrong, decision about whether to just start fresh (that could take up to a week) or try to debug the environment instead (that could take even longer and often did). Here's how we went about automating the creation and management of our test environment to increase developer productivity, reduce costs and increase our ability to experiment with infrastructure configuration with reduced risk.
大约一年前,我试图改进我们的自动化部署和测试流程,但发现不可能可靠地访问一个正常运行的环境。当时我们的测试环境是宠物。每个都是部分由脚本构建,然后手工完成,每个人都花费了大量的时间,精力和挫折。经过一段时间的使用后(这取决于您在环境中测试的内容),它可能会再次中断,您必须做出一些(通常是错误的)决定,决定是重新开始(可能需要长达一周的时间),还是尝试调试环境(可能需要更长的时间,而且经常需要)。下面是我们如何自动化测试环境的创建和管理,以提高开发人员的生产力,降低成本,并增加我们在降低风险的情况下对基础结构配置进行实验的能力。
{"title":"The SpudFarm: converting test environments from pets into cattle","authors":"Benjamin Lau","doi":"10.1145/2993274.2993280","DOIUrl":"https://doi.org/10.1145/2993274.2993280","url":null,"abstract":"About a year ago I was trying to improve our automated deployment and testing processes but found that getting access to a functioning environment reliably just wasn't possible. At the time our test environments were pets. Each was built partially by script and then finished by hand with a great expenditure of time, effort and frustration for everyone involved. After some period of use, that varied depending on what you tested on the environment, it would break again and you'd have to make some, frequently wrong, decision about whether to just start fresh (that could take up to a week) or try to debug the environment instead (that could take even longer and often did). Here's how we went about automating the creation and management of our test environment to increase developer productivity, reduce costs and increase our ability to experiment with infrastructure configuration with reduced risk.","PeriodicalId":143542,"journal":{"name":"Proceedings of the 4th International Workshop on Release Engineering","volume":"143 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124545902","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Escaping AutoHell: a vision for automated analysis and migration of autotools build systems 逃离AutoHell: autotools构建系统的自动化分析和迁移愿景
Pub Date : 2016-11-18 DOI: 10.1145/2993274.2993279
Jafar M. Al-Kofahi, T. Nguyen, Christian Kästner
GNU Autotools is a widely used build tool in the open source community. As open source projects grow more complex, maintaining their build systems becomes more challenging, due to the lack of tool support. In this paper, we propose a platform to build support tools for GNU Autotools build systems. The platform provides an abstraction of the build system to be used in different analysis techniques.
GNU Autotools是开源社区中广泛使用的构建工具。随着开源项目变得越来越复杂,由于缺乏工具支持,维护它们的构建系统变得更具挑战性。在本文中,我们提出了一个为GNU Autotools构建系统构建支持工具的平台。该平台提供了构建系统的抽象,可以在不同的分析技术中使用。
{"title":"Escaping AutoHell: a vision for automated analysis and migration of autotools build systems","authors":"Jafar M. Al-Kofahi, T. Nguyen, Christian Kästner","doi":"10.1145/2993274.2993279","DOIUrl":"https://doi.org/10.1145/2993274.2993279","url":null,"abstract":"GNU Autotools is a widely used build tool in the open source community. As open source projects grow more complex, maintaining their build systems becomes more challenging, due to the lack of tool support. In this paper, we propose a platform to build support tools for GNU Autotools build systems. The platform provides an abstraction of the build system to be used in different analysis techniques.","PeriodicalId":143542,"journal":{"name":"Proceedings of the 4th International Workshop on Release Engineering","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115297933","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
Analysis of marketed versus not-marketed mobile app releases 分析已营销与未营销的手机应用发行情况
Pub Date : 2016-11-18 DOI: 10.1145/2993274.2993281
Maleknaz Nayebi, Homayoon Farrahi, G. Ruhe
Market and user characteristics of mobile apps make their release managements different from proprietary software products and web services. Despite the wealth of information regarding users' feedback of an app, an in-depth analysis of app releases is difficult due to the inconsistency and uncertainty of the information. To better understand and potentially improve app release processes, we analyze major, minor and patch releases for releases following semantic versioning. In particular, we were interested in finding out the difference between marketed and not-marketed releases. Our results show that, in general, major, minor and patch releases have significant differences in the release cycle duration, nature and change velocity. We also observed that there is a significant difference between marketed and non-marketed mobile app releases in terms of cycle duration, nature and the extent of changes, and the number of opened and closed issues.
移动应用的市场和用户特性使得其发布管理不同于专有软件产品和web服务。尽管用户对应用的反馈信息非常丰富,但由于信息的不一致性和不确定性,对应用发布进行深入分析是很困难的。为了更好地理解和潜在地改进应用程序的发布过程,我们分析了语义版本控制下的主要版本、次要版本和补丁版本。我们特别感兴趣的是找出市场营销和非市场营销发行之间的区别。研究结果表明,总体而言,主要版本、次要版本和补丁版本在发布周期、性质和变化速度上存在显著差异。我们还观察到,在周期持续时间、变化的性质和程度、开放和关闭问题的数量等方面,市场营销和非市场营销手机应用发行之间存在显著差异。
{"title":"Analysis of marketed versus not-marketed mobile app releases","authors":"Maleknaz Nayebi, Homayoon Farrahi, G. Ruhe","doi":"10.1145/2993274.2993281","DOIUrl":"https://doi.org/10.1145/2993274.2993281","url":null,"abstract":"Market and user characteristics of mobile apps make their release managements different from proprietary software products and web services. Despite the wealth of information regarding users' feedback of an app, an in-depth analysis of app releases is difficult due to the inconsistency and uncertainty of the information. To better understand and potentially improve app release processes, we analyze major, minor and patch releases for releases following semantic versioning. In particular, we were interested in finding out the difference between marketed and not-marketed releases. Our results show that, in general, major, minor and patch releases have significant differences in the release cycle duration, nature and change velocity. We also observed that there is a significant difference between marketed and non-marketed mobile app releases in terms of cycle duration, nature and the extent of changes, and the number of opened and closed issues.","PeriodicalId":143542,"journal":{"name":"Proceedings of the 4th International Workshop on Release Engineering","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134229528","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 16
Adopting continuous delivery in AAA console games 在AAA主机游戏中采用持续交付
Pub Date : 2016-11-18 DOI: 10.1145/2993274.2993276
Jafar Soltani
Introduction Games are traditionally developed as a boxed-product. There is a development phase, followed by a bug-fixing phase. Once the level of quality is acceptable, game is released, development team moves on to a new project. They rarely need to maintain the product and release updates after the first few months. Games are architected as a monolithic application, developed in C++. Game package contains the executable and all the art contents, which makes up most of the package. During the development phase, the level of quality is generally low, game crashes a lot. Developers mainly care about implementing their own feature and do not think too much about the stability and quality of the game as a whole. Developers spend very little time writing automated tests and rely on manual testers to verify features. It's a common practice to develop features on feature branches. The perceived benefit is developers are productive because they can submit their work to feature branches. All features come together in the bug-fixing phase when all different parts are integrated together. At this stage, many things are broken. This is a clear example of local optimisation, as a feature submitted in a feature branch does not provide any values until it’s integrated with the rest of the game and can be released. Number of bugs could be several thousands. Everyone crunches whilst getting the game to an acceptable level. Rare’s Approach At Rare, we decided to change our approach and adopt Continuous Delivery. The main advantages compared to traditional approach are: •Sustainably delivering new features that are useful to players over a long period of time. •Minimising crunch and having happier and productive developers. •Applying hypothesis-driven development mind-set and getting rapid feedback on whether a feature is achieving the intended outcome. This allows us to listen to user feedback and deliver a better quality game that’s more fun and enjoyable for players. •Reduce the cost of having a large manual test team.
游戏通常是作为盒装产品开发的。有一个开发阶段,然后是bug修复阶段。一旦质量水平达到可接受的水平,游戏就会发布,开发团队就会转向新项目。在最初几个月之后,他们很少需要维护产品并发布更新。游戏的架构是一个用c++开发的整体应用程序。游戏包包含可执行文件和所有美术内容,这构成了包的大部分内容。在开发阶段,质量水平普遍较低,游戏经常崩溃。开发者主要关心的是执行自己的功能,而不会过多考虑游戏整体的稳定性和质量。开发人员花很少的时间编写自动化测试,并依赖于手动测试人员来验证特性。在特性分支上开发特性是一种常见的做法。这样做的好处是开发人员可以提高生产力,因为他们可以将工作提交给特性分支。当所有不同的部分集成在一起时,所有的功能都在bug修复阶段集中在一起。在这个阶段,很多东西都坏了。这是一个明显的局部优化例子,因为在功能分支中提交的功能在与游戏的其余部分整合并发布之前不会提供任何价值。bug的数量可能有几千个。每个人都在做仰卧起坐的同时将游戏提升到一个可接受的水平。在Rare,我们决定改变我们的方法并采用持续交付。与传统方法相比,这种方法的主要优势在于:•可持续地向玩家提供长期有用的新功能。•最小化加班时间,让开发人员更快乐、更高效。•应用假设驱动的开发思维模式,并获得关于功能是否实现预期结果的快速反馈。这让我们能够听取用户反馈,并为玩家提供更有趣、更优质的游戏。•减少大型手工测试团队的成本。
{"title":"Adopting continuous delivery in AAA console games","authors":"Jafar Soltani","doi":"10.1145/2993274.2993276","DOIUrl":"https://doi.org/10.1145/2993274.2993276","url":null,"abstract":"Introduction Games are traditionally developed as a boxed-product. There is a development phase, followed by a bug-fixing phase. Once the level of quality is acceptable, game is released, development team moves on to a new project. They rarely need to maintain the product and release updates after the first few months. Games are architected as a monolithic application, developed in C++. Game package contains the executable and all the art contents, which makes up most of the package. During the development phase, the level of quality is generally low, game crashes a lot. Developers mainly care about implementing their own feature and do not think too much about the stability and quality of the game as a whole. Developers spend very little time writing automated tests and rely on manual testers to verify features. It's a common practice to develop features on feature branches. The perceived benefit is developers are productive because they can submit their work to feature branches. All features come together in the bug-fixing phase when all different parts are integrated together. At this stage, many things are broken. This is a clear example of local optimisation, as a feature submitted in a feature branch does not provide any values until it’s integrated with the rest of the game and can be released. Number of bugs could be several thousands. Everyone crunches whilst getting the game to an acceptable level. Rare’s Approach At Rare, we decided to change our approach and adopt Continuous Delivery. The main advantages compared to traditional approach are: •Sustainably delivering new features that are useful to players over a long period of time. •Minimising crunch and having happier and productive developers. •Applying hypothesis-driven development mind-set and getting rapid feedback on whether a feature is achieving the intended outcome. This allows us to listen to user feedback and deliver a better quality game that’s more fun and enjoyable for players. •Reduce the cost of having a large manual test team.","PeriodicalId":143542,"journal":{"name":"Proceedings of the 4th International Workshop on Release Engineering","volume":"124 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133303985","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Your build data is precious, donźt waste it! leverage it to deliver great releases 您的构建数据是宝贵的,donźt浪费它!利用它来交付出色的版本
Pub Date : 2016-11-18 DOI: 10.1145/2993274.3011283
Rishika Karira, Vinay Awasthi
Installers generate a huge amount of data such as product files, registries, signature bits, and permissions.Product stakeholders require the ability to compare the difference between two builds. Usually, this comparison is performed manually by deploying the builds every time such a comparison is required, followed by running some script or tool like Beyond Compare to evaluate the differences or verifying signing/registry or permission issues. The data is then stored in XLS or CSV files for further actions. The real problem occurs when a similar comparison needs to be accomplished for multiple builds in a release cycle. In this scenario, the above-mentioned process becomes extremely inefficient as it requires an enormous amount of time and is also prone to errors or faults. To solve this problem efficiently, we have developed a system that allows users to view their product’s structural changes and run comparisons across releases, builds and versions.
安装程序会生成大量的数据,如产品文件、注册表、签名位和权限。产品涉众需要能够比较两个构建之间的差异。通常,这种比较是通过在每次需要进行这种比较时部署构建来手动执行的,然后运行一些脚本或工具(如Beyond Compare)来评估差异或验证签名/注册表或权限问题。然后将数据存储在XLS或CSV文件中,以供进一步操作。当需要对一个发布周期中的多个构建完成类似的比较时,真正的问题就出现了。在这种情况下,上述过程变得极其低效,因为它需要大量的时间,而且还容易出现错误或故障。为了有效地解决这个问题,我们开发了一个系统,允许用户查看他们产品的结构变化,并在发布、构建和版本之间进行比较。
{"title":"Your build data is precious, donźt waste it! leverage it to deliver great releases","authors":"Rishika Karira, Vinay Awasthi","doi":"10.1145/2993274.3011283","DOIUrl":"https://doi.org/10.1145/2993274.3011283","url":null,"abstract":"Installers generate a huge amount of data such as product files, registries, signature bits, and permissions.Product stakeholders require the ability to compare the difference between two builds. Usually, this comparison is performed manually by deploying the builds every time such a comparison is required, followed by running some script or tool like Beyond Compare to evaluate the differences or verifying signing/registry or permission issues. The data is then stored in XLS or CSV files for further actions. The real problem occurs when a similar comparison needs to be accomplished for multiple builds in a release cycle. In this scenario, the above-mentioned process becomes extremely inefficient as it requires an enormous amount of time and is also prone to errors or faults. To solve this problem efficiently, we have developed a system that allows users to view their product’s structural changes and run comparisons across releases, builds and versions.","PeriodicalId":143542,"journal":{"name":"Proceedings of the 4th International Workshop on Release Engineering","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116857279","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Get out of Git hell: preventing common pitfalls of Git 摆脱Git的地狱:防止Git的常见陷阱
Pub Date : 2016-11-18 DOI: 10.1145/2993274.3011284
David A. Lippa
At Amazon, Release Engineering falls under what we call Operational Excellence: designing, implementing, maintaining, and releasing a scalable product. There is an even more basic component that is often ignored: source control. Good source control practices are necessary but not sufficient for delivering good software. Over the 25+ years source control has been used, each tool has come with its own set of pitfalls: CVS, subversion, mercurial, and most recently, git. For decades, the unwritten rule has been for each organization to identify and mitigate these pitfalls independently, with an expectation that the next innovation would remediate it. This approach scales neither for large organizations such as Amazon nor the software engineering community at large. The real source of this dysfunction—remote collaboration between software engineers—must be examined and ultimately fixed. In the interim, it is up to the engineering community to share practices independent of software process to make up the difference. At its core, source control is a fundamental tool of software engineers, expected to be easily understood and “just work;” this assumption is invalid on a number of dimensions. Neither Software Configuration Management (SCM) nor the tools used are intuitive to new practitioners, and must be taught. The changing landscape of newer tools misleads even expert users of past tools who are not screened for this critical skill. And finally, success is dependent upon synthesis of past experience and tuning a pre-determined process to both project goals and the team. Success, then, is stacked against the engineering team—so what happens when source control usage goes horribly wrong? The baseline and team end up in “Git Hell,” slowed down, or even blocked, by the very tool that facilitates collaboration and parallel development. “Git Hell” originates from various sources: poor tool design, misuse or misconfiguration of the command line interface, and lack of understanding of the “nuts and bolts” of the tool. For example, poor interface design or configuration, even with the command line interface, has widespread impact. A substantial flaw in the mechanics of git push caused substantial pain at multiple engineering firms. The interface was straightforward: a push sends all branches with updates to the server; adding the -f option forces an update; combining them proved disastrous, as an engineer with minimal knowledge of git could harm the integrity of the baseline without even realizing it. This prior version required each developer to add local configuration to his workstation, ensuring others in the future would repeat the mistake. These classes of issues are repeated at company after company, group after group—illustrating a systemic problem with git, its configuration, the instruction in its usage, and the interaction between collaborating engineers. To combat this, I generalized preventative measures as a workaround in a workshop entitled “Get
在Amazon,发布工程属于我们所谓的卓越运营:设计、实现、维护和发布可伸缩的产品。还有一个更基本的组件经常被忽略:源代码控制。好的源代码控制实践对于交付好的软件是必要的,但还不够。在使用源代码控制的25年多的时间里,每个工具都有自己的一组缺陷:CVS、subversion、mercurial,以及最近的git。几十年来,每个组织都有一个不成文的规则,即独立地识别和减轻这些缺陷,并期望下一次创新能够弥补这些缺陷。这种方法既不适用于像Amazon这样的大型组织,也不适用于整个软件工程社区。这种功能失调的真正根源——软件工程师之间的远程协作——必须被检查并最终解决。在此期间,由工程社区共享独立于软件过程的实践来弥补差异。在其核心,源代码控制是软件工程师的基本工具,期望易于理解和“正常工作”;这个假设在许多维度上是无效的。软件配置管理(SCM)和所使用的工具对新的从业者来说都不是直观的,必须教授。新工具不断变化的前景甚至误导了过去工具的专家用户,他们没有被筛选出这一关键技能。最后,成功依赖于对过去经验的综合,并根据项目目标和团队调整预先确定的过程。那么,成功是对工程团队不利的——那么,当源代码控制的使用出现严重错误时会发生什么呢?基线和团队最终会陷入“Git地狱”,被促进协作和并行开发的工具拖慢,甚至阻碍。“Git地狱”源于各种各样的原因:糟糕的工具设计、命令行界面的误用或错误配置,以及对工具的“具体细节”缺乏理解。例如,糟糕的界面设计或配置,即使使用命令行界面,也会产生广泛的影响。git推送机制中的一个重大缺陷给多家工程公司带来了巨大的痛苦。界面很简单:推送将带有更新的所有分支发送到服务器;添加-f选项强制更新;将它们结合在一起被证明是灾难性的,因为一个对git知之甚少的工程师可能会在没有意识到的情况下损害基线的完整性。之前的版本要求每个开发人员将本地配置添加到他的工作站,以确保其他人在将来会重复这个错误。这类问题在一个接一个的公司、一个接一个的小组中反复出现——说明git的一个系统性问题、它的配置、它的使用说明以及协作工程师之间的交互。为了解决这个问题,我在一个名为“Get out of Git Hell”的研讨会上将预防措施概括为一种解决方法,可以在工程师之间共享,无论经验或过程如何,至少直到可以研究和补救根本原因为止。
{"title":"Get out of Git hell: preventing common pitfalls of Git","authors":"David A. Lippa","doi":"10.1145/2993274.3011284","DOIUrl":"https://doi.org/10.1145/2993274.3011284","url":null,"abstract":"At Amazon, Release Engineering falls under what we call Operational Excellence: designing, implementing, maintaining, and releasing a scalable product. There is an even more basic component that is often ignored: source control. Good source control practices are necessary but not sufficient for delivering good software. Over the 25+ years source control has been used, each tool has come with its own set of pitfalls: CVS, subversion, mercurial, and most recently, git. For decades, the unwritten rule has been for each organization to identify and mitigate these pitfalls independently, with an expectation that the next innovation would remediate it. This approach scales neither for large organizations such as Amazon nor the software engineering community at large. The real source of this dysfunction—remote collaboration between software engineers—must be examined and ultimately fixed. In the interim, it is up to the engineering community to share practices independent of software process to make up the difference. At its core, source control is a fundamental tool of software engineers, expected to be easily understood and “just work;” this assumption is invalid on a number of dimensions. Neither Software Configuration Management (SCM) nor the tools used are intuitive to new practitioners, and must be taught. The changing landscape of newer tools misleads even expert users of past tools who are not screened for this critical skill. And finally, success is dependent upon synthesis of past experience and tuning a pre-determined process to both project goals and the team. Success, then, is stacked against the engineering team—so what happens when source control usage goes horribly wrong? The baseline and team end up in “Git Hell,” slowed down, or even blocked, by the very tool that facilitates collaboration and parallel development. “Git Hell” originates from various sources: poor tool design, misuse or misconfiguration of the command line interface, and lack of understanding of the “nuts and bolts” of the tool. For example, poor interface design or configuration, even with the command line interface, has widespread impact. A substantial flaw in the mechanics of git push caused substantial pain at multiple engineering firms. The interface was straightforward: a push sends all branches with updates to the server; adding the -f option forces an update; combining them proved disastrous, as an engineer with minimal knowledge of git could harm the integrity of the baseline without even realizing it. This prior version required each developer to add local configuration to his workstation, ensuring others in the future would repeat the mistake. These classes of issues are repeated at company after company, group after group—illustrating a systemic problem with git, its configuration, the instruction in its usage, and the interaction between collaborating engineers. To combat this, I generalized preventative measures as a workaround in a workshop entitled “Get ","PeriodicalId":143542,"journal":{"name":"Proceedings of the 4th International Workshop on Release Engineering","volume":"98 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115325661","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Building a deploy system that works at 40000 feet 建立一个能在40000英尺高空工作的部署系统
Pub Date : 2016-11-18 DOI: 10.1145/2993274.2993275
Kat Drobnjakovic
Shopify is one of the largest Rails apps in the world and yet remains to be massively scalable and reliable. The platform is able to manage large unexpected spikes in traffic that accompany events such as new product releases, holiday shopping seasons and flash sales, and has been benchmarked to process over 25,000 requests per second, all while powering more than 300,000 businesses. Even at such a large scale, all our developers still continue to push to master and regularly deploy Shopify within 4 minutes. My talk will break down everything that can happen when deploying Shopify or any really big application.
Shopify是世界上最大的Rails应用程序之一,但仍然具有大规模可扩展性和可靠性。该平台能够管理伴随新产品发布、假日购物季和限时抢购等活动而来的大量意外流量峰值,并以每秒处理超过2.5万个请求为基准,同时为30多万家企业提供支持。即使在如此大的规模,我们所有的开发人员仍然继续推动掌握和定期部署Shopify在4分钟内。我的演讲将分解部署Shopify或任何大型应用程序时可能发生的一切。
{"title":"Building a deploy system that works at 40000 feet","authors":"Kat Drobnjakovic","doi":"10.1145/2993274.2993275","DOIUrl":"https://doi.org/10.1145/2993274.2993275","url":null,"abstract":"Shopify is one of the largest Rails apps in the world and yet remains to be massively scalable and reliable. The platform is able to manage large unexpected spikes in traffic that accompany events such as new product releases, holiday shopping seasons and flash sales, and has been benchmarked to process over 25,000 requests per second, all while powering more than 300,000 businesses. Even at such a large scale, all our developers still continue to push to master and regularly deploy Shopify within 4 minutes. My talk will break down everything that can happen when deploying Shopify or any really big application.","PeriodicalId":143542,"journal":{"name":"Proceedings of the 4th International Workshop on Release Engineering","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130382527","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
GitWaterFlow: a successful branching model and tooling, for achieving continuous delivery with multiple version branches GitWaterFlow:一个成功的分支模型和工具,用于实现多版本分支的持续交付
Pub Date : 2016-11-18 DOI: 10.1145/2993274.2993277
R. B. Rayana, S. Killian, Nicolas Trangez, A. Calmettes
Collaborative software development presents organizations with a near-constant flow of day-to-day challenges, and there is no available off-the-shelf solution that covers all needs. This paper provides insight into the hurdles that Scality's Engineering team faced in developing and extending a sophisticated storage solution, while coping with ever-growing development teams, challenging - and regularly shifting - business requirements, and non-trivial new feature development. The authors present a novel combination of a Git-based Version Control and Branching model with a set of innovative tools dubbed GitWaterFlow to cope with the issues encountered, including the need to both support old product versions and to provide time-critical delivery of bug fixes. In the spirit of Continuous Delivery, Scality Release Engineering aims to ensure high quality and stability, to present short and predictable release cycles, and to minimize development disruption. The team's experience with the GitWaterFlow model suggests that the approach has been effective in meeting these goals in the given setting, with room for unceasing fine-tuning and improvement of processes and tools.
协作软件开发为组织提供了几乎恒定的日常挑战流,并且没有可用的现成解决方案可以覆盖所有需求。本文深入介绍了Scality的工程团队在开发和扩展一个复杂的存储解决方案时所面临的障碍,同时还要应对不断增长的开发团队、具有挑战性的业务需求(以及定期变化的业务需求)和重要的新特性开发。作者提出了一种基于git的版本控制和分支模型的新颖组合,以及一组被称为GitWaterFlow的创新工具来处理遇到的问题,包括支持旧产品版本和提供时间紧迫的错误修复交付的需求。在持续交付的精神下,规模发布工程的目标是确保高质量和稳定性,呈现短而可预测的发布周期,并将开发中断最小化。团队使用GitWaterFlow模型的经验表明,该方法在给定的环境中有效地实现了这些目标,并为不断微调和改进流程和工具提供了空间。
{"title":"GitWaterFlow: a successful branching model and tooling, for achieving continuous delivery with multiple version branches","authors":"R. B. Rayana, S. Killian, Nicolas Trangez, A. Calmettes","doi":"10.1145/2993274.2993277","DOIUrl":"https://doi.org/10.1145/2993274.2993277","url":null,"abstract":"Collaborative software development presents organizations with a near-constant flow of day-to-day challenges, and there is no available off-the-shelf solution that covers all needs. This paper provides insight into the hurdles that Scality's Engineering team faced in developing and extending a sophisticated storage solution, while coping with ever-growing development teams, challenging - and regularly shifting - business requirements, and non-trivial new feature development. The authors present a novel combination of a Git-based Version Control and Branching model with a set of innovative tools dubbed GitWaterFlow to cope with the issues encountered, including the need to both support old product versions and to provide time-critical delivery of bug fixes. In the spirit of Continuous Delivery, Scality Release Engineering aims to ensure high quality and stability, to present short and predictable release cycles, and to minimize development disruption. The team's experience with the GitWaterFlow model suggests that the approach has been effective in meeting these goals in the given setting, with room for unceasing fine-tuning and improvement of processes and tools.","PeriodicalId":143542,"journal":{"name":"Proceedings of the 4th International Workshop on Release Engineering","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122287668","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
System for meta-data analysis using prediction based constraints for detecting inconsistences in release process with auto-correction 用于元数据分析的系统,使用基于预测的约束来检测发布过程中的不一致,并具有自动纠正功能
Pub Date : 2016-11-18 DOI: 10.1145/2993274.2993278
A. Bhushan, Pradeep R. Revankar
The Software product release build process usually involves posting a lot of artifacts that are shipped or used as part of the Quality Assurance or Quality Engineering. All the artifacts that are shared or posted together constitute a successful build that can be shipped out. Sometimes, a few of the artifacts might fail to be posted to a shared location that might need an immediate attention in order to repost the artifact with manual intervention. A system and process is implemented for analyzing metadata generated by an automated build process to detect inconsistencies in generation of build artifacts. The system analyzes data retrieved from meta-data streams, once the start of an expected metadata stream is detected the system generates a list of artifacts that the build is expected to generate, based on the prediction model. Information attributes of the meta-data stream are used for deciding on the anticipated behavior of build. Events are generated based on whether the build data is consistent with the predictions made by the model. The system can enable error detection and recovery in an automated build process. The system can adapt to changing build environment by analyzing data stream for historically relevant data properties.
软件产品发布构建过程通常包括发布许多工件,这些工件作为质量保证或质量工程的一部分被交付或使用。所有共享或发布在一起的工件构成了一个可以发送出去的成功构建。有时,一些工件可能无法发布到共享位置,这可能需要立即引起注意,以便通过人工干预重新发布工件。实现了一个系统和过程,用于分析由自动化构建过程生成的元数据,以检测构建工件生成中的不一致性。系统分析从元数据流中检索到的数据,一旦检测到预期元数据流的开始,系统就会根据预测模型生成构建期望生成的工件列表。元数据流的信息属性用于决定构建的预期行为。事件是基于构建数据是否与模型的预测一致而生成的。系统可以在自动构建过程中启用错误检测和恢复。通过分析数据流中与历史相关的数据属性,系统可以适应不断变化的构建环境。
{"title":"System for meta-data analysis using prediction based constraints for detecting inconsistences in release process with auto-correction","authors":"A. Bhushan, Pradeep R. Revankar","doi":"10.1145/2993274.2993278","DOIUrl":"https://doi.org/10.1145/2993274.2993278","url":null,"abstract":"The Software product release build process usually involves posting a lot of artifacts that are shipped or used as part of the Quality Assurance or Quality Engineering. All the artifacts that are shared or posted together constitute a successful build that can be shipped out. Sometimes, a few of the artifacts might fail to be posted to a shared location that might need an immediate attention in order to repost the artifact with manual intervention. A system and process is implemented for analyzing metadata generated by an automated build process to detect inconsistencies in generation of build artifacts. The system analyzes data retrieved from meta-data streams, once the start of an expected metadata stream is detected the system generates a list of artifacts that the build is expected to generate, based on the prediction model. Information attributes of the meta-data stream are used for deciding on the anticipated behavior of build. Events are generated based on whether the build data is consistent with the predictions made by the model. The system can enable error detection and recovery in an automated build process. The system can adapt to changing build environment by analyzing data stream for historically relevant data properties.","PeriodicalId":143542,"journal":{"name":"Proceedings of the 4th International Workshop on Release Engineering","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-11-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129885250","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
Proceedings of the 4th International Workshop on Release Engineering
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1