论文标题

使用P#建立可靠的云服务(经验报告)

Building Reliable Cloud Services Using P# (Experience Report)

论文作者

Deligiannis, Pantazis, Ganapathy, Narayanan, Lal, Akash, Qadeer, Shaz

论文摘要

云服务通常必须在大量机器上分发,以便使用多个计算和存储资源。这为程序员打开了几种复杂性的来源,例如并发,消息传递的顺序,有失误的网络,超时和失败,所有这些都会施加高认知负担。本文提供了证据表明,作为编程框架的一部分,受正式方法启发的技术可以帮助应对这些挑战。特别是,我们描述了Microsoft Azure中多个工程团队的经验,该团队使用开源P#编程框架来构建多个可靠的云服务。 P#强加了一种原则性的设计模式,该模式允许编写正式规格与可以系统测试的生产代码以及不偏离常规工程实践的情况。一直使用P#的工程团队报告了生产率急剧提高(随着时间的推移将新功能推向生产)以及已经在使用P#开发和测试的功能中没有任何问题的服务。

Cloud services must typically be distributed across a large number of machines in order to make use of multiple compute and storage resources. This opens the programmer to several sources of complexity such as concurrency, order of message delivery, lossy network, timeouts and failures, all of which impose a high cognitive burden. This paper presents evidence that technology inspired by formal-methods, delivered as part of a programming framework, can help address these challenges. In particular, we describe the experience of several engineering teams in Microsoft Azure that used the open-source P# programming framework to build multiple reliable cloud services. P# imposes a principled design pattern that allows writing formal specifications alongside production code that can be systematically tested, without deviating from routine engineering practices. Engineering teams that have been using P# have reported dramatically increased productivity (in time taken to push new features to production) as well as services that have been running live for months without any issues in features developed and tested with P#.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源