https://dl.acm.org/doi/10.1145/3593856.3595909 skip to main content ACM Digital Library home ACM home * Advanced Search * Browse * About * + Sign in + Register * * Advanced Search * Journals * Magazines * Proceedings * Books * SIGs * Conferences * People * * More * Search ACM Digital Library[ ] SearchSearch Advanced Search 10.1145/3593856.3595909acmconferencesArticle/Chapter ViewAbstract Publication PageshotosConference Proceedingsconference-collections hotos * Conference * Proceedings * Upcoming Events * Authors * Affiliations * Award Winners * More * Home * Conferences * HOTOS * Proceedings * HOTOS '23 * Towards Modern Development of Cloud Applications research-article Open Access Share on * * * * * Towards Modern Development of Cloud Applications * Authors: * #Sanjay Ghemawat Google, Mountain View, United States of America Google, Mountain View, United States of America [o]https://orcid.org/0009-0005-6843-3093 View Profile , * #Robert Grandl Google, Mountain View, USA Google, Mountain View, USA [o]https://orcid.org/0009-0006-2864-8353 View Profile , * #Srdjan Petrovic Google, Mountain View, United States of America Google, Mountain View, United States of America [o]https://orcid.org/0009-0007-4320-6673 View Profile , * #Michael Whittaker Google, Mountain View, United States of America Google, Mountain View, United States of America [o]https://orcid.org/0009-0005-7427-0630 View Profile , * #Parveen Patel Google, Mountain View, USA Google, Mountain View, USA [o]https://orcid.org/0009-0000-5193-3706 View Profile , * #Ivan Posva Google, Mountain View, USA Google, Mountain View, USA [o]https://orcid.org/0009-0009-8358-9968 View Profile , * #Amin Vahdat Google, Mountain View, United States of America Google, Mountain View, United States of America [o]https://orcid.org/0000-0002-4866-1698 View Profile Authors Info & Claims HOTOS '23: Proceedings of the 19th Workshop on Hot Topics in Operating SystemsJune 2023Pages 110-117https://doi.org/10.1145/ 3593856.3595909 Published:22 June 2023Publication HistoryCheck for updates on crossmark * 4citation * 7,068 * Downloads Metrics Total Citations4 Total Downloads7,068 Last 12 Months7,068 Last 6 weeks3,206 * Get Citation Alerts New Citation Alert added! This alert has been successfully added and will be sent to: You will be notified whenever a record that you have chosen has been cited. To manage your alert preferences, click on the button below. Manage my Alerts New Citation Alert! Please log in to your account * Save to Binder Save to Binder [loader-7e6] Create a New Binder Name [ ] + Cancel + Create * Export Citation * Publisher Site * * eReader * PDF HOTOS '23: Proceedings of the 19th Workshop on Hot Topics in Operating Systems Towards Modern Development of Cloud Applications Pages 110-117 PreviousChapterNextChapter ACM Digital Library ABSTRACT When writing a distributed application, conventional wisdom says to split your application into separate services that can be rolled out independently. This approach is well-intentioned, but a microservices-based architecture like this often backfires, introducing challenges that counteract the benefits the architecture tries to achieve. Fundamentally, this is because microservices conflate logical boundaries (how code is written) with physical boundaries (how code is deployed). In this paper, we propose a different programming methodology that decouples the two in order to solve these challenges. With our approach, developers write their applications as logical monoliths, offload the decisions of how to distribute and run applications to an automated runtime, and deploy applications atomically. Our prototype implementation reduces application latency by up to 15x and reduces cost by up to 9x compared to the status quo. References 1. Acorn. https://www.acorn.io/.Google ScholarGoogle Scholar 2. Actor model. https://en.wikipedia.org/wiki/Actor_model.Google ScholarGoogle Scholar 3. Akka. https://akka.io.Google ScholarGoogle Scholar 4. Amazon Web Services. https://aws.amazon.com/.Google ScholarGoogle Scholar 5. Apache avro. https://avro.apache.org/docs/1.2.0/.Google Scholar Google Scholar 6. Apache thrift. https://thrift.apache.org/.Google ScholarGoogle Scholar 7. AWS Cloud Map. https://aws.amazon.com/cloud-map/.Google Scholar Google Scholar 8. Azure Machine Learning. https://docs.microsoft.com/en-us/azure/ machine-learning.Google ScholarGoogle Scholar 9. Blue/green deployments. https://tinyurl.com/3bk64ch2.Google ScholarGoogle Scholar 10. The c++ actor framework. https://www.actor-framework.org/.Google ScholarGoogle Scholar 11. Cloudflare Workers. https://workers.cloudflare.com/.Google ScholarGoogle Scholar 12. Continuous integration and delivery - circleci. https:// circleci.com/.Google ScholarGoogle Scholar 13. Dapr - distributed application runtime. https://dapr.io/.Google ScholarGoogle Scholar 14. Distributed systems safety research. https://jespen.io.Google ScholarGoogle Scholar 15. Docker compose. https://docs.docker.com/compose/.Google Scholar Google Scholar 16. Google Cloud. https://cloud.google.com/.Google ScholarGoogle Scholar 17. Google Cloud AI Platform. https://cloud.google.com/ai-platform. Google ScholarGoogle Scholar 18. grpc. https://grpc.io/.Google ScholarGoogle Scholar 19. Helm. http://helm.sh.Google ScholarGoogle Scholar 20. Horizontal Pod Autoscaling. https://kubernetes.io/docs/tasks/ run-application/horizontal-pod-autoscale/.Google ScholarGoogle Scholar 21. Istio. https://istio.io/.Google ScholarGoogle Scholar 22. Jenkins. https://www.jenkins.io/.Google ScholarGoogle Scholar 23. Json. https://www.json.org/json-en.html.Google ScholarGoogle Scholar 24. Kalix. https://www.kalix.io/.Google ScholarGoogle Scholar 25. Kubernetes. https://kubernetes.io/.Google ScholarGoogle Scholar 26. Locust. https://locust.io/.Google ScholarGoogle Scholar 27. Micro | powering the future of cloud. https://micro.dev/.Google ScholarGoogle Scholar 28. Pods. https://kubernetes.io/docs/concepts/workloads/pods/.Google ScholarGoogle Scholar 29. Postgresql. https://www.postgresql.org/.Google ScholarGoogle Scholar 30. Protocol buffers. https://developers.google.com/protocol-buffers. Google ScholarGoogle Scholar 31. RabbitMQ. https://www.rabbitmq.com/.Google ScholarGoogle Scholar 32. Remote direct memory access. https://en.wikipedia.org/wiki/ Remote_direct_memory_access.Google ScholarGoogle Scholar 33. REST API. https://restfulapi.net/.Google ScholarGoogle Scholar 34. Scaling up the Prime Video audio/video monitoring service and reducing costs by 90%. https://tinyurl.com/yt6nxt63.Google ScholarGoogle Scholar 35. Skaffold. https://skaffold.dev/.Google ScholarGoogle Scholar 36. Temporal. https://temporal.io/.Google ScholarGoogle Scholar 37. Terraform. https://www.terraform.io/.Google ScholarGoogle Scholar 38. The Go programming language. https://go.dev/.Google ScholarGoogle Scholar 39. To Microservices and Back Again - Why Segment Went Back to a Monolith. https://tinyurl.com/5932ce5n.Google ScholarGoogle Scholar 40. WebSocket. https://en.wikipedia.org/wiki/WebSocket.Google Scholar Google Scholar 41. Online boutique. https://github.com/GoogleCloudPlatform/ microservices-demo, 2023.Google ScholarGoogle Scholar 42. M. Abadi, P. Barham, J. Chen, Z. Chen, A. Davis, J. Dean, M. Devin, S. Ghemawat, G. Irving, M. Isard, M. Kudlur, J. Levenberg, R. Monga, S. Moore, D. G. Murray, B. Steiner, P. Tucker, V. Vasudevan, P. Warden, M. Wicke, Y. Yu, and X. Zheng. Tensorflow: A system for large-scale machine learning. In OSDI, 2016.Google ScholarGoogle ScholarDigital LibraryDigital Library 43. A. Adya, R. Grandl, D. Myers, and H. Qin. Fast key-value stores: An idea whose time has come and gone. In HotOS, 2019.Google ScholarGoogle ScholarDigital LibraryDigital Library 44. A. Adya, D. Myers, J. Howell, J. Elson, C. Meek, V. Khemani, S. Fulger, P. Gu, L. Bhuvanagiri, J. Hunter, R. Peon, L. Kai, A. Shraer, A. Merchant, and K. Lev-Ari. Slicer: Auto-sharding for datacenter applications. In OSDI, 2016.Google ScholarGoogle ScholarDigital LibraryDigital Library 45. D. Ardelean, A. Diwan, and C. Erdman. Performance analysis of cloud applications. In NSDI, 2018.Google ScholarGoogle Scholar Digital LibraryDigital Library 46. S. Ashok, P. B. Godfrey, and R. Mittal. Leveraging service meshes as a new network layer. In HotNets, 2021.Google ScholarGoogle ScholarDigital LibraryDigital Library 47. A. Basiri, N. Behnam, R. De Rooij, L. Hochstein, L. Kosewski, J. Reynolds, and C. Rosenthal. Chaos engineering. In IEEE Software, 2016.Google ScholarGoogle ScholarDigital LibraryDigital Library 48. B. Bloom, J. Field, N. Nystrom, J. Ostlund, G. Richards, R. Strnisa, J. Vitek, and T. Wrigstad. Thorn: Robust, concurrent, extensible scripting on the jvm. In OOPSLA, 2009.Google Scholar Google ScholarDigital LibraryDigital Library 49. J. C. Corbett, J. Dean, M. Epstein, A. Fikes, C. Frost, J. J. Furman, S. Ghemawat, A. Gubarev, C. Heiser, P. Hochschild, W. Hsieh, S. Kanthak, E. Kogan, H. Li, A. Lloyd, S. Melnik, D. Mwaura, D. Nagle, S. Quinlan, R. Rao, L. Rolig, Y. Saito, M. Szymaniak, C. Taylor, R. Wang, and D. Woodford. Spanner: Google's globally-distributed database. In OSDI, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library 50. D. Crankshaw, X. Wang, G. Zhou, M. J. Franklin, J. E. Gonzalez, and I. Stoica. Clipper: A low-latency online prediction serving system. In NSDI, 2017.Google ScholarGoogle ScholarDigital Library Digital Library 51. J. Dean and S. Ghemawat. Mapreduce: Simplified data processing on large clusters. In OSDI, 2004.Google ScholarGoogle ScholarDigital LibraryDigital Library 52. J. Eker, J. Janneck, E. Lee, J. Liu, X. Liu, J. Ludvig, S. Neuendorffer, S. Sachs, and Y. Xiong. Taming heterogeneity - the ptolemy approach. In Proceedings of the IEEE, 2003.Google Scholar Google ScholarCross RefCross Ref 53. M. J. Fischer, N. A. Lynch, and M. S. Paterson. Impossibility of distributed consensus with one faulty process. In ACM Journal, 1985.Google ScholarGoogle Scholar 54. Y. Gan, M. Liang, S. Dev, D. Lo, and C. Delimitrou. Sage: Practical and Scalable ML-Driven Performance Debugging in Microservices. In ASPLOS, 2021.Google ScholarGoogle Scholar Digital LibraryDigital Library 55. Y. Gan, Y. Zhang, D. Cheng, A. Shetty, P. Rathi, N. Katarki, A. Bruno, J. Hu, B. Ritchken, B. Jackson, et al. An open-source benchmark suite for microservices and their hardware-software implications for cloud & edge systems. In ASPLOS, 2019.Google ScholarGoogle ScholarDigital LibraryDigital Library 56. Y. Gan, Y. Zhang, K. Hu, Y. He, M. Pancholi, D. Cheng, and C. Delimitrou. Seer: Leveraging Big Data to Navigate the Complexity of Performance Debugging in Cloud Microservices. In ASPLOS, 2019. Google ScholarGoogle ScholarDigital LibraryDigital Library 57. R. Grandl, G. Ananthanarayanan, S. Kandula, S. Rao, and A. Akella. Multi-resource packing for cluster schedulers. In SIGCOMM , 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library 58. M. Henning. The rise and fall of corba: There's a lot we can learn from corba's mistakes. In Queue, 2006.Google ScholarGoogle ScholarDigital LibraryDigital Library 59. M. Isard, M. Budiu, Y. Yu, A. Birrell, and D. Fetterly. Dryad: Distributed data-parallel programs from sequential building blocks. In Eurosys, 2007.Google ScholarGoogle ScholarDigital LibraryDigital Library 60. K. Jay, N. Neha, and R. Jun. Kafka : a distributed messaging system for log processing. In NetDB, 2011.Google ScholarGoogle Scholar 61. A. Joe. Erlang. In Communications of the ACM, 2010.Google Scholar Google Scholar 62. L. Lamport. The temporal logic of actions. In ACM TOPLS, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library 63. A. Langley, A. Riddoch, A. Wilk, A. Vicente, C. Krasic, D. Zhang, F. Yang, F. Kouranov, I. Swett, J. Iyengar, J. Bailey, J. Dorfman, J. Roskind, J. Kulik, P. Westin, R. Tenneti, R. Shade, R. Hamilton, V. Vasiliev, W.-T. Chang, and Z. Shi. The quic transport protocol: Design and internet-scale deployment. In SIGCOMM, 2017.Google ScholarGoogle ScholarDigital LibraryDigital Library 64. N. Lazarev, N. Adit, S. Xiang, Z. Zhang, and C. Delimitrou. Dagger: Towards Efficient RPCs in Cloud Microservices with Near-Memory Reconfigurable NICs. In ASPLOS, 2021.Google Scholar Google ScholarDigital LibraryDigital Library 65. S. Lee, Z. Guo, O. Sunercan, J. Ying, T. Kooburat, S. Biswal, J. Chen, K. Huang, Y. Cheung, Y. Zhou, K. Veeraraghavan, B. Damani, P. M. Ruiz, V. Mehta, and C. Tang. Shard manager: A generic shard management framework for geo-distributed applications. In SOSP, 2021.Google ScholarGoogle ScholarDigital LibraryDigital Library 66. B. Livshits and E. Kiciman. Doloto: Code splitting for network-bound web 2.0 applications. In FSE, 2008.Google Scholar Google ScholarDigital LibraryDigital Library 67. S. Luo, H. Xu, C. Lu, K. Ye, G. Xu, L. Zhang, Y. Ding, J. He, and C. Xu. Characterizing microservice dependency and performance: Alibaba trace analysis. In SOCC, 2021.Google ScholarGoogle ScholarDigital LibraryDigital Library 68. N. A. Lynch. Distributed algorithms. In Morgan Kaufmann Publishers Inc., 1996.Google ScholarGoogle ScholarDigital Library Digital Library 69. S. McClure, S. Ratnasamy, D. Bansal, and J. Padhye. Rethinking networking abstractions for cloud tenants. In HotOS, 2021.Google ScholarGoogle ScholarDigital LibraryDigital Library 70. P. Moritz, R. Nishihara, S. Wang, A. Tumanov, R. Liaw, E. Liang, M. Elibol, Z. Yang, W. Paul, M. I. Jordan, and I. Stoica. Ray: A distributed framework for emerging ai applications. In OSDI, 2018.Google ScholarGoogle Scholar 71. H. Qiu, S. S. Banerjee, S. Jha, Z. T. Kalbarczyk, and R. K. Iyer. FIRM: An intelligent fine-grained resource management framework for SLO-Oriented microservices. In OSDI, 2020.Google Scholar Google Scholar 72. D. Raghavan, P. Levis, M. Zaharia, and I. Zhang. Breakfast of champions: towards zero-copy serialization with nic scatter-gather. In HotOS, 2021.Google ScholarGoogle Scholar Digital LibraryDigital Library 73. F. Romero, Q. Li, N. J. Yadwadkar, and C. Kozyrakis. Infaas: Automated model-less inference serving. In ATC, 2021.Google ScholarGoogle Scholar 74. B. Sergey, G. Allan, K. Gabriel, L. James, P. Ravi, and T. Jorgen. Orleans: Cloud computing for everyong. In SOCC, 2011. Google ScholarGoogle Scholar 75. M. Waseem, P. Liang, G. Marquez, and A. D. Salle. Testing microservices architecture-based applications: A systematic mapping study. In APSEC, 2020.Google ScholarGoogle ScholarCross RefCross Ref 76. Wikipedia contributors. Fallacies of distributed computing.Google ScholarGoogle Scholar 77. M. Zaharia, M. Chowdhury, T. Das, A. Dave, J. Ma, M. McCauly, M. J. Franklin, S. Shenker, and I. Stoica. Resilient distributed datasets: A fault-tolerant abstraction for in-memory cluster computing. In NSDI, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library 78. Y. Zhang, J. Yang, Z. Jin, U. Sethi, K. Rodrigues, S. Lu, and D. Yuan. Understanding and detecting software upgrade failures in distributed systems. In SOSP, 2021.Google ScholarGoogle Scholar Digital LibraryDigital Library Cited By View all [loader-7e6] Index Terms 1. Towards Modern Development of Cloud Applications 1. Computer systems organization 1. Architectures 1. Distributed architectures 1. Client-server architectures 2. Cloud computing Recommendations * Towards a Semantic Engine for Cloud Applications Development CISIS '12: Proceedings of the 2012 Sixth International Conference on Complex, Intelligent, and Software Intensive Systems (CISIS) In this paper we propose a Semantic Engine for Cloud applications development: a semantically enabled Search Engine that can be used by cloud applications developers as development support. The Semantic Engine will be a component of the EU project ... Read More * Java EE Applications on Oracle Java Cloud: Develop, Deploy, Monitor, and Manage Your Java Cloud Applications Read More * Towards systematic and accurate environment selection for emerging cloud applications Read More Comments Please enable JavaScript to view thecomments powered by Disqus. Login options Check if you have access through your login credentials or your institution to get full access on this article. Sign in Full Access Get this Publication * Information * Contributors * Published in cover image ACM Conferences HOTOS '23: Proceedings of the 19th Workshop on Hot Topics in Operating Systems June 2023 247 pages ISBN:9798400701955 DOI:10.1145/3593856 + General Chair: + #Malte Schwarzkopf, + Program Chairs: + #Andrew Baumann, + #Natacha Crooks Copyright (c) 2023 Owner/Author(s) This work is licensed under a Creative Commons Attribution International 4.0 License. Sponsors In-Cooperation Publisher Association for Computing Machinery New York, NY, United States Publication History + Published: 22 June 2023 Check for updates Check for updates on crossmark Qualifiers + research-article Conference Funding Sources * [loader-7e6] Other Metrics View Article Metrics * Bibliometrics * Citations4 * Article Metrics + 4 Total Citations View Citations + 7,068 Total Downloads + Downloads (Last 12 months)7,068 + Downloads (Last 6 weeks)3,206 Other Metrics View Author Metrics * Cited By View all PDF Format View or Download as a PDF file. PDF eReader View online with eReader. eReader Digital Edition View this article in digital edition. View Digital Edition * Figures * Other * * Share this Publication link https://dl.acm.org/doi/10.1145/3593856.3595909 Copy Link Share on Social Media Share on * * * * * * * * * 0References * * * Close Figure Viewer Browse AllReturnChange zoom level[ ] Caption View Table of Contents Export Citations Select Citation format[BibTeX ] * Please download or close your previous search result export first before starting a new bulk export. Preview is not available. By clicking download,a status dialog will open to start the export process. The process may takea few minutes but once it finishes a file will be downloadable from your browser. You may continue to browse the DL while the export process is in progress. Download + Download citation + Copy citation Categories * Journals * Magazines * Books * Proceedings * SIGs * Conferences * Collections * People About * About ACM Digital Library * ACM Digital Library Board * Subscription Information * Author Guidelines * Using ACM Digital Library * All Holdings within the ACM Digital Library * ACM Computing Classification System * Digital Library Accessibility Join * Join ACM * Join SIGs * Subscribe to Publications * Institutions and Libraries Connect * Contact * Facebook * Twitter * Linkedin * Feedback * Bug Report The ACM Digital Library is published by the Association for Computing Machinery. Copyright (c) 2024 ACM, Inc. * Terms of Usage * Privacy Policy * Code of Ethics ACM Digital Library home ACM home Your Search Results Download Request We are preparing your search results for download ... We will inform you here when the file is ready. Download now! Your Search Results Download Request Your file of search results citations is now ready. Download now! Your Search Results Download Request Your search export query has expired. Please try again.