Software Engineering in the Cloud

  • Eric M. DashofyEmail author


The computing infrastructure on which engineers develop and deploy software has evolved significantly in recent years. The rapid growth of cloud computing services mean that infrastructure and platform components are becoming more decentralized (owned by others, often far away from the development or operating organization) and more elastic (with the ability to provision and de-provision them at will). Infrastructure-as-a-Service (IaaS) capabilities provide the raw resources needed to deploy software—computing, storage, and networking. Platform-as-a-Service (PaaS) offerings provide important software components as commodity services—databases, identity and access management, security, analytics, various kinds of middleware, and much more. New virtualization and packaging techniques for software that can take advantage of cloud computing, such as containers, provide new opportunities for rapid and automated testing, deployment, and scaling of software systems. This enables new software delivery models, such as continuous deployment of new software to production environments and frequent, transparent A/B testing of new features. These changes are having an impact on software development environments, as well, with more development tasks and workflow steps moving to the cloud. This chapter will briefly explore these technologies and their relationships to one another, and explore their impacts on the practice of software engineering.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Fox, A., Griffith, R., Joseph, A., Katz, R., Konwinski, A., Lee, G., et al.: Above the clouds: A Berkeley view of cloud computing. Department of Electrical Engineering and Computer Sciences, University of California, Berkeley, Rep. UCB/EECS, 28(13) (2009)Google Scholar
  2. 2.
    Mell, P., Grance, T.: The NIST definition of cloud computing. NIST Publication SP 800-145 (2011).
  3. 3.
    Creasy, R.J.: The origin of the VM/370 time-sharing system. IBM J. Res. Dev. 25(5), 483–490 (1981)CrossRefGoogle Scholar
  4. 4.
    Marshall, D.: Understanding Full Virtualization, Paravirtualization, and Hardware Assist. VMWare White Paper (2007)Google Scholar
  5. 5.
    Kreutz, D., Ramos, F.M., Verissimo, P.E., Rothenberg, C.E., Azodolmolky, S., Uhlig, S.: Software-defined networking: A comprehensive survey. Proc. IEEE. 103(1), 14–76 (2015)CrossRefGoogle Scholar
  6. 6.
    Bridgwater, A.: What is bare-metal cloud? Computer Weekly Application Developer Network (2013).
  7. 7.
  8. 8.
    Fielding, R.T., Taylor, R.N.: Principled design of the modern Web architecture. ACM Trans. Internet Technol. 2(2), 115–150 (2002)CrossRefGoogle Scholar
  9. 9.
    Cattell, R.: Scalable SQL and NoSQL data stores. ACM SIGMOD Rec. 39(4), 12–27 (2011)CrossRefGoogle Scholar
  10. 10.
    Free Software Foundation: Why the Affero GPL (2015).
  11. 11.
    Verma, D.C.: Supporting Service Level Agreements on IP Networks. MacMillan Technical Publishing, Basingstoke (1999)Google Scholar
  12. 12.
    Soltesz, S., Pötzl, H., Fiuczynski, M.E., Bavier, A., & Peterson, L.:. Container-based operating system virtualization: A scalable, high-performance alternative to hypervisors. In: ACM SIGOPS Operating Systems Review, vol. 41, no. 3, pp. 275–287. ACM (2007)Google Scholar
  13. 13.
    Barham, P., Dragovic, B., Fraser, K., Hand, S., Harris, T., Ho, A., et al.: Xen and the art of virtualization. In: ACM SIGOPS Operating Systems Review, vol. 37, no. 5, pp. 164–177. ACM (2003, October)CrossRefGoogle Scholar
  14. 14.
    Garfinkel, S., Abelson, H.: Architects of the Information Society: 35 Years of the Laboratory for Computer Science at MIT. MIT Press, Cambridge, MA (1999)Google Scholar
  15. 15.
    Ritchie, O.M., Thompson, K.: The UNIX Time-Sharing System. Bell Syst. Tech. J. 57(6), 1905–1929 (1978)CrossRefGoogle Scholar
  16. 16.
    Foster, I., Kesselman, C. (eds.): The Grid 2: Blueprint for a New Computing Infrastructure. Elsevier (2003)Google Scholar
  17. 17.
    Dean, J., Ghemawat, S.: MapReduce: Simplified data processing on large clusters. Commun. ACM. 51(1), 107–113 (2008)CrossRefGoogle Scholar
  18. 18.
    Bialecki, A., Cafarella, M., Cutting, D., O’Malley, O.: Hadoop: A Framework for Running Applications on Large Clusters Built of Commodity Hardware.
  19. 19.
    White, T.: Hadoop: The definitive guide. O’Reilly Media, Sebastopol, CA (2012)Google Scholar
  20. 20.
    Barr, J.: Amazon EC2 Beta. Amazon AWS Blog (2006).
  21. 21.
    Wardley, S.: On open source, gameplay and cloud. “Bits or Pieces” blog (2015). Archived at
  22. 22.
  23. 23.
    Bianchi, A.: Upstarts: ASPs. INC Magazine (2000).
  24. 24.
  25. 25.
  26. 26.
    Keller, A., Ludwig, H.: The WSLA framework: Specifying and monitoring service level agreements for web services. J. Netw. Syst. Manag. 11(1), 57–81 (2003)CrossRefGoogle Scholar
  27. 27.
    Lamanna, D.D., Skene, J., Emmerich, W.: SLAng: A Language for Service Level Agreements. IEEE Computer Society Press, Los Alamitos, CA (2003)Google Scholar
  28. 28.
    Tsidulko, J.: The 10 Biggest Cloud Outages of 2016. CRN (2016)
  29. 29.
    Barr, J.: AWS Import/Export: Ship Us That Disk! Amazon AWS Blog (2009).
  30. 30.
    Gubbi, J., Buyya, R., Marusic, S., Palaniswami, M.: Internet of Things (IoT): A vision, architectural elements, and future directions. Futur. Gener. Comput. Syst. 29(7), 1645–1660 (2013)CrossRefGoogle Scholar
  31. 31.
    Manyika, J., Chui, M., Brown, B., Bughin, J., Dobbs, R., Roxburgh, C., Byers, A.H.: Big data: The next frontier for innovation, competition, and productivity. McKinsey Global Institute Report (2011).

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.The Aerospace CorporationEl SegundoUSA

Personalised recommendations