Abstract
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.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
References
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)
Mell, P., Grance, T.: The NIST definition of cloud computing. NIST Publication SP 800-145 (2011). https://csrc.nist.gov/publications/detail/sp/800-145/final
Creasy, R.J.: The origin of the VM/370 time-sharing system. IBM J. Res. Dev. 25(5), 483–490 (1981)
Marshall, D.: Understanding Full Virtualization, Paravirtualization, and Hardware Assist. VMWare White Paper (2007)
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)
Bridgwater, A.: What is bare-metal cloud? Computer Weekly Application Developer Network (2013). http://www.computerweekly.com/blog/CW-Developer-Network/What-is-bare-metal-cloud
Amazon.com: Using the Query API (2017). http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Using_the_Query_API.html
Fielding, R.T., Taylor, R.N.: Principled design of the modern Web architecture. ACM Trans. Internet Technol. 2(2), 115–150 (2002)
Cattell, R.: Scalable SQL and NoSQL data stores. ACM SIGMOD Rec. 39(4), 12–27 (2011)
Free Software Foundation: Why the Affero GPL (2015). https://www.gnu.org/licenses/why-affero-gpl.en.html
Verma, D.C.: Supporting Service Level Agreements on IP Networks. MacMillan Technical Publishing, Basingstoke (1999)
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)
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)
Garfinkel, S., Abelson, H.: Architects of the Information Society: 35 Years of the Laboratory for Computer Science at MIT. MIT Press, Cambridge, MA (1999)
Ritchie, O.M., Thompson, K.: The UNIX Time-Sharing System. Bell Syst. Tech. J. 57(6), 1905–1929 (1978)
Foster, I., Kesselman, C. (eds.): The Grid 2: Blueprint for a New Computing Infrastructure. Elsevier (2003)
Dean, J., Ghemawat, S.: MapReduce: Simplified data processing on large clusters. Commun. ACM. 51(1), 107–113 (2008)
Bialecki, A., Cafarella, M., Cutting, D., O’Malley, O.: Hadoop: A Framework for Running Applications on Large Clusters Built of Commodity Hardware. http://hadoop.apache.org/
White, T.: Hadoop: The definitive guide. O’Reilly Media, Sebastopol, CA (2012)
Barr, J.: Amazon EC2 Beta. Amazon AWS Blog (2006). https://aws.amazon.com/blogs/aws/amazon_ec2_beta/
Wardley, S.: On open source, gameplay and cloud. “Bits or Pieces” blog (2015). Archived at http://web.archive.org/web/20160308014753/http://blog.gardeviance.org/2015/02/on-open-source-gameplay-and-cloud.html
Google: App Engine. https://cloud.google.com/appengine/
Bianchi, A.: Upstarts: ASPs. INC Magazine (2000). https://www.inc.com/magazine/20000401/18093.html
Craddock, D. (2010). A Short History of Hotmail. Archived at https://web.archive.org/web/20100426043450/http://windowsteamblog.com/blogs/windowslive/archive/2010/01/06/a-short-history-of-hotmail.aspx
McCarthy, B. (2016). A Brief History of Salesforce.com. http://www.salesforceben.com/brief-history-salesforce-com/
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)
Lamanna, D.D., Skene, J., Emmerich, W.: SLAng: A Language for Service Level Agreements. IEEE Computer Society Press, Los Alamitos, CA (2003)
Tsidulko, J.: The 10 Biggest Cloud Outages of 2016. CRN (2016) http://www.crn.com/slide-shows/cloud/300083247/the-10-biggest-cloud-outages-of-2016.htm
Barr, J.: AWS Import/Export: Ship Us That Disk! Amazon AWS Blog (2009). https://aws.amazon.com/blogs/aws/send-us-that-data/
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)
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). https://bigdatawg.nist.gov/pdf/MGI_big_data_full_report.pdf
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Dashofy, E.M. (2019). Software Engineering in the Cloud. In: Cha, S., Taylor, R., Kang, K. (eds) Handbook of Software Engineering. Springer, Cham. https://doi.org/10.1007/978-3-030-00262-6_13
Download citation
DOI: https://doi.org/10.1007/978-3-030-00262-6_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-00261-9
Online ISBN: 978-3-030-00262-6
eBook Packages: Computer ScienceComputer Science (R0)