Handbook of Software Engineering pp 491-516 | Cite as
Software Engineering in the Cloud
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.
Preview
Unable to display preview. Download preview PDF.
References
- 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.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
- 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.Marshall, D.: Understanding Full Virtualization, Paravirtualization, and Hardware Assist. VMWare White Paper (2007)Google Scholar
- 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.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
- 7.Amazon.com: Using the Query API (2017). http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Using_the_Query_API.html
- 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.Cattell, R.: Scalable SQL and NoSQL data stores. ACM SIGMOD Rec. 39(4), 12–27 (2011)CrossRefGoogle Scholar
- 10.Free Software Foundation: Why the Affero GPL (2015). https://www.gnu.org/licenses/why-affero-gpl.en.html
- 11.Verma, D.C.: Supporting Service Level Agreements on IP Networks. MacMillan Technical Publishing, Basingstoke (1999)Google Scholar
- 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.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.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.Ritchie, O.M., Thompson, K.: The UNIX Time-Sharing System. Bell Syst. Tech. J. 57(6), 1905–1929 (1978)CrossRefGoogle Scholar
- 16.Foster, I., Kesselman, C. (eds.): The Grid 2: Blueprint for a New Computing Infrastructure. Elsevier (2003)Google Scholar
- 17.Dean, J., Ghemawat, S.: MapReduce: Simplified data processing on large clusters. Commun. ACM. 51(1), 107–113 (2008)CrossRefGoogle Scholar
- 18.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/
- 19.White, T.: Hadoop: The definitive guide. O’Reilly Media, Sebastopol, CA (2012)Google Scholar
- 20.Barr, J.: Amazon EC2 Beta. Amazon AWS Blog (2006). https://aws.amazon.com/blogs/aws/amazon_ec2_beta/
- 21.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
- 22.Google: App Engine. https://cloud.google.com/appengine/
- 23.Bianchi, A.: Upstarts: ASPs. INC Magazine (2000). https://www.inc.com/magazine/20000401/18093.html
- 24.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
- 25.McCarthy, B. (2016). A Brief History of Salesforce.com. http://www.salesforceben.com/brief-history-salesforce-com/
- 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.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.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
- 29.Barr, J.: AWS Import/Export: Ship Us That Disk! Amazon AWS Blog (2009). https://aws.amazon.com/blogs/aws/send-us-that-data/
- 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.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