文檔庫

最新最全的文檔下載
當前位置:文檔庫 > Staged Deployment in Mirage, an Integrated Software Upgrade Testing and Distribution System

Staged Deployment in Mirage, an Integrated Software Upgrade Testing and Distribution System

Staged Deployment in Mirage,an Integrated Software Upgrade Testing and Distribution System?

Olivier Crameri EPFL,Lausanne,Switzerland olivier.crameri@ep?.ch

Nikola Kneˇz evi′c

EPFL,Lausanne,Switzerland

nikola.knezevic@ep?.ch

Dejan Kosti′c

EPFL,Lausanne,Switzerland

dejan.kostic@ep?.ch

Ricardo Bianchini Rutgers University,NJ,USA ricardob@http://www.yjwyjjdk.buzz/doc/dce54dc10c22590102029ded.html

Willy Zwaenepoel EPFL,Lausanne,Switzerland willy.zwaenepoel@ep?.ch

ABSTRACT

Despite major advances in the engineering of maintainable and robust software over the years,upgrading software re-mains a primitive and error-prone activity.In this paper, we argue that several problems with upgrading software are caused by a poor integration between upgrade deployment, user-machine testing,and problem reporting.To support this argument,we present a characterization of software up-grades resulting from a survey we conducted of50system administrators.Motivated by the survey results,we present Mirage,a distributed framework for integrating upgrade de-ployment,user-machine testing,and problem reporting into the overall upgrade development process.Our evaluation fo-cuses on the most novel aspect of Mirage,namely its staged upgrade deployment based on the clustering of user ma-chines according to their environments and con?gurations. Our results suggest that Mirage’s staged deployment is ef-fective for real upgrade problems.

Categories and Subject Descriptors

C.2.4[Computer-Communication Networks]:Distribu-ted Systems;

D.4.5[Operating Systems]:Reliability;D.4.5 [Operating Systems]:Systems Programs and Utilities General Terms

Management,Reliability

Keywords

Upgrade testing,Clustering of machines,Staged software upgrade deployment

This research is supported in part by the Hasler Foundation (grant2103).

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for pro?t or commercial advantage and that copies bear this notice and the full citation on the?rst page.To copy otherwise,to republish,to post on servers or to redistribute to lists,requires prior speci?c permission and/or a fee.

SOSP’07,October14–17,2007,Stevenson,Washington,USA. Copyright2007ACM978-1-59593-591-5/07/0010...$5.00.1.INTRODUCTION

Software upgrades involve acquiring a new version of an application,an improved software module or component,or simply a“patch”to?x a bug,and integrating it into the local system.Upgrades for Linux and Windows are released almost every month,while upgrades of user-level utilities and applications are frequent as well.

For software users,system administrators,and operators (hereafter collectively called users,for conciseness),integrat-ing upgrades is often an involved proposition.First,an up-grade can a?ect multiple applications,and all of them may need to be tested for correct behavior after the upgrade. Second,the e?ects of buggy upgrades may need to be rolled back.Third,upgrades are prone to a variety of incompat-ibility and unexpected behavior problems,especially when components or modules,rather than entire applications or systems,are upgraded.

For software vendors,distributors,and open-source con-tributors(hereafter collectively called vendors,for concise-ness),it is di?cult to deploy the upgrades with high con?-dence that they will integrate properly into the users’sys-tems and that they will behave as users expect.The vendors simply cannot anticipate and test their upgrades for all the applications and con?gurations that may be a?ected by the upgrades at the users’machines.To lessen this problem, vendors sometimes rely on“beta testing”.However,beta testers seldom provide complete coverage of the environ-ments and uses to which upgrades will be exposed.Another approach to reduce integration problems is for vendors to use package-management systems to deploy their upgrades. Dependency enforcement in these systems,however,only tries to enforce that the right packages are in place.They do not provide any help with locally testing the upgrades for correct behavior or reporting problems back to vendors. When integration problems occur,vendors receive only limited and often unstructured information to pinpoint and correct the problems.Most of the time,the vendor at best receives core dumps of applications that crash because of the upgrade or often incomplete problem reports posted to mailing lists or Web forums.Because of this limited infor-mation,it may take several iterations of deployment,testing, and debugging before an upgrade becomes useful to all of its intended users.Furthermore,because reports may come from any source,e.g.,multiple beta testers or regular users with similar installations,there is often much repetition in

广东带鬼麻将技巧口诀 九线水果拉霸安卓版 ds视讯能玩吗 上海十一运夺金 三分彩五星全天计划 网球比分直播 比特币走势图 四川单机麻将四人麻将 深圳北京单场网点 辽宁35选7今天开奖结果查询 云南快乐10分前三走势 澳洲幸运10有官网吗 360广东11选5走势图 mba刷学历 p2p理财风险大吗 全民斗牛牛辅助 七星彩票论坛规律图