logo

SCIENTIA SINICA Informationis, Volume 49, Issue 9: 1119-1137(2019) https://doi.org/10.1360/N112018-00264

Cloud computing development environment: from code logic to dataflow diagram

More info
  • ReceivedOct 12, 2018
  • AcceptedJan 18, 2019
  • PublishedSep 3, 2019

Abstract

Cloud applications possess excellent flexibility and scalability; however, they often require developers to master various cloud computing techniques and build networked systems from scratch, which is difficult and complex for most developers.Recently, there has been considerable growth in development environments that support the partial or complete life cycle of cloud applications because of the growing demand for cloud applications and services from all sectors of the national economy.On the basis of the study of multiple mainstream development environments for cloud applications, we classify them into three categories: home-brewed development environments by users, spontaneously maintained standard components by communities, and managed development environments by public clouds.The third category (managed environments) is further divided into four generations: editor style, application-level, function-level, and integrated development environments.Through in-depth mining of a series of typical cases, we summarize the four major evolution trends of the development environments for cloud applications: virtualization, lightweight, intelligence, and visualization.Using our implemented development environment, named Cloud Studio,we explore possible forms and paradigms of development environments for cloud applications in the future,especially transformation in terms of core concept: from micro-level code logic to macro-level dataflow diagram.We believe that implementing Cloud Studio can effectively reduce requirements on cloud application developers,accelerate development progress, and promote formation of the core competence of China's cloud computing industry.


Funded by

国家高技术研究发展计划(863)(2015AA01A201)


References

[1] Forum. Commun ACM, 2008, 51: 9-11 CrossRef Google Scholar

[2] Armbrust M, Fox A, Griffith R, et al. A view of cloud computing. Commun ACM, 2010, 53: 50--58. Google Scholar

[3] Furht B, Escalante A. Handbook of Cloud Computing. Berlin: Springer, 2010. Google Scholar

[4] Reese G. Cloud Application Architectures: Building Applications and Infrastructure in the Cloud. Sebastopol: O'Reilly Media, Inc., 2009. Google Scholar

[5] Li Z H, Zhang Y, Liu Y H. Towards a full-stack DevOps environment (platform-as-a-service) for cloud-hosted applications. Tsinghua Sci Tech, 2017, 22: 1--9. Google Scholar

[6] Hajjat M, Sun X, Eric Sung Y-W, et al. Cloudward bound: planning for beneficial migration of enterprise applications to the cloud. In: Proceedings of the ACM Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication (SIGCOMM), New Delhi, 2010. 243--254. Google Scholar

[7] Khajeh-Hosseini A, Greenwood D, Sommerville I. Cloud migration: a case study of migrating an enterprise IT system to IaaS. In: Proceedings of the 3rd IEEE International Conference on Cloud Computing (CLOUD), Miami, 2010. 450--457. Google Scholar

[8] Amazon. Amazon AWS Cloud9. 2018. https://aws.amazon.com/cloud9. Google Scholar

[9] Google. Google App Engine. 2018. https://cloud.google.com/appengine. Google Scholar

[10] Aliyun. Aliyun Function Compute. 2018. https://www.alibabacloud.com/zh/product/function-compute. Google Scholar

[11] Huawei. Huawei Devcloud. 2018. https://www.huaweicloud.com/devcloud. Google Scholar

[12] Coding. Coding Web IDE. 2018. https://ide.coding.net. Google Scholar

[13] THUcloud group. Tsinghua Cloud Studio. 2018. http://thucloud.com. Google Scholar

[14] Verma A, Pedrosa L, Korupolu M, et al. Large-scale cluster management at Google with Borg. In: Proceedings of the 10th European Conference on Computer Systems (EuroSys), Bordeaux, 2015. 18. Google Scholar

[15] Wikipedia. LAMP (Linux, Apache HTTP Server, MySQL and PHP). 2018. https://en.wikipedia.org/wiki/LAMP (software bundle). Google Scholar

[16] Gitlab. Gitlab Source Code Management System. 2018. https://gitlab.com. Google Scholar

[17] Apache. Mesos Distributed Resource Management Framework. 2018. http://mesos.apache.org. Google Scholar

[18] Grafana. Grafana Monitoring System. 2018. https://grafana.com. Google Scholar

[19] The Linux foundation. Prometheus Alarm System. 2018. https://prometheus.io. Google Scholar

[20] Jenkins. Jenkins Continuous Integration System. 2018. https://jenkins.io. Google Scholar

[21] Jaeger. Jaeger Distributed Tracking System. 2018. https://www.jaegertracing.io. Google Scholar

[22] CodeAnywhere. CodeAnywhere cloud development environment. 2018. https://codeanywhere.com. Google Scholar

[23] Jupyter. Jupyter Notebook. 2018. http://jupyter.org. Google Scholar

[24] ShiftEdit. ShiftEdit Online Editor. 2018. https://shiftedit.net. Google Scholar

[25] NeutronDrive. NeutronDrive Editor. 2018. https://super.neutrondrive.com. Google Scholar

[26] Amazon. Amazon AWS Elastic Beanstalk App Engine. 2018. https://aws.amazon.com/elasticbeanstalk. Google Scholar

[27] Heroku. Heroku App Engine. 2018. https://www.heroku.com. Google Scholar

[28] Google. Google Firebase. 2018. https://firebase.google.com. Google Scholar

[29] Redhat. OpenShift. 2018. https://www.openshift.com. Google Scholar

[30] Codio. Codio. 2018. https://codio.com. Google Scholar

[31] Sina. Sina App Engine. 2018. https://sae.sina.com.cn. Google Scholar

[32] Baidu. Baidu App Engine. 2018. https://cloud.baidu.com/product/bae.html. Google Scholar

[33] LeanCloud. LeanCloud. 2018. https://leancloud.cn. Google Scholar

[34] AppScale. AppScale App Engine. 2018. https://www.appscale.com. Google Scholar

[35] Amazon. Amazon AWS Lambda. 2018. https://aws.amazon.com/lambda. Google Scholar

[36] Google. Google Cloud Functions. 2018. https://cloud.google.com/functions. Google Scholar

[37] Microsoft. Microsoft Azure Functions. 2018. https://azure.microsoft.com/en-us/services/functions. Google Scholar

[38] IBM. IBM OpenWhisk. 2018. https://www.ibm.com/cloud/functions. Google Scholar

[39] Tencent. Tencent Cloud Function. 2018. https://cloud.tencent.com/product/scf. Google Scholar

[40] Auth0. Auth0 WebTasks. 2018. https://webtask.io. Google Scholar

[41] Kubeless. Kubeless Cloud Function. 2018. https://github.com/kubeless/kubeless. Google Scholar

[42] Platform9. Fission Cloud Function. 2018. https://github.com/fission/fission. Google Scholar

[43] Spotinst. Spotinst SaaS. 2018. https://spotinst.com. Google Scholar

[44] Google. Google Cloud AutoML Vision. 2018. https://cloud.google.com/automl. Google Scholar

[45] IBM. IBM Watson Internet of Things Platform. 2018. https://www.ibm.com/internet-of-things. Google Scholar

[46] The Fourth Paradigm. Prophet. 2018. https://www.4paradigm.com/product/prophet. Google Scholar

[47] Aliyun. Aliyun PAI. 2018. https://data.aliyun.com/product/learn. Google Scholar

[48] Amazon. Amazon AWS SageMaker. 2018. https://aws.amazon.com/sagemaker. Google Scholar

[49] Jingdong. Jingdong NeuHub. 2018. https://neuhub.jd.com. Google Scholar

[50] Microsoft. Microsoft Azure Bot Service. 2018. https://azure.microsoft.com/en-us/services/bot-service. Google Scholar

[51] Tencent. Weixin IoT. 2018. https://iot.weixin.qq.com. Google Scholar

[52] Baidu. Baidu IoT. 2018. https://cloud.baidu.com/solution/iot/index.html. Google Scholar

[53] Ubidots. Ubidots IoT. 2018. https://ubidots.com. Google Scholar

[54] Lin L, Shi W C. Survey of open source software for building cloud computing platforms. Comput Sci, 2012, 39: 1--7. Google Scholar

[55] Bernstein D. Containers and Cloud: From LXC to Docker to Kubernetes. IEEE Cloud Comput, 2014, 1: 81-84 CrossRef Google Scholar

[56] Zaharia M, Chowdhury M, Franklin M J, et al. Spark: cluster computing with working sets. In: Proceedings of the 2nd USENIX Workshop on Hot Topics in Cloud Computing (HotCloud), Boston, 2010. 95. Google Scholar

[57] Zaharia M, Chowdhury M, Das T, et al. Resilient distributed datasets: a fault-tolerant abstraction for in-memory cluster computing. In: Proceedings of the 9th USENIX Conference on Networked Systems Design and Implementation (NSDI), San Jose, 2012. 2. Google Scholar

[58] Christensen J H. Using RESTful web-services and cloud computing to create next generation mobile applications. In: Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems, Languages, and Applications (OOPSLA), Orlando, 2009. 627--634. Google Scholar

[59] Xiao H, Li Z H, Zhai E N, et al. Towards web-based delta synchronization for cloud storage services. In: Proceedings of the 16th USENIX Conference on File and Storage Technologies (FAST), Oakland, 2018. 155--168. Google Scholar

[60] Pautasso C, Zimmermann O, Leymann F. RESTful web services vs. “Big” web services: making the right architectural decision. In: Proceedings of the 17th International Conference on World Wide Web (WWW), Beijing, 2008. 805--814. Google Scholar

[61] Pimentel V, Nickerson B G. Communicating and displaying real-time data with WebSocket. IEEE Internet Comput, 2012, 16: 45--53. Google Scholar

[62] Malawski M, Kuzniar M, Wojcik P. How to Use Google App Engine for Free Computing. IEEE Internet Comput, 2013, 17: 50-59 CrossRef Google Scholar

[63] Wright W, Schroh D, Proulx P, et al. The sandbox for analysis - concepts and methods. In: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, Montréal, 2006. 801--810. Google Scholar

[64] Han H, Kim S, Jung H, et al. A RESTful approach to the management of cloud infrastructure. In: Proceedings of the 2nd IEEE International Conference on Cloud Computing (CLOUD), Bangalore, 2009. 139--142. Google Scholar

[65] Adzic G, Chatley R. Serverless computing: economic and architectural impact. In: Proceedings of the 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE), Paderborn, 2017. 884--889. Google Scholar

[66] Hendrickson S, Sturdevant S, Harter T, et al. Serverless computation with OpenLambda. In: Proceedings of the 8th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud), Denver, 2016. Google Scholar

[67] Eivy A. Be Wary of the Economics of "Serverless" Cloud Computing. IEEE Cloud Comput, 2017, 4: 6-12 CrossRef Google Scholar

[68] Paraiso F, Haderer N, Merle P, et al. A federated multi-cloud PaaS infrastructure. In: Proceedings of the 5th IEEE International Conference on Cloud Computing (CLOUD), Honolulu, 2012. 392--399. Google Scholar

[69] Ducasse S, Lienhard A, Renggli L. Seaside: a flexible environment for building dynamic web applications. IEEE Softw, 2007, 24: 56--63. Google Scholar

[70] Benson T, Akella A, Shaikh A, et al. CloudNaaS: a cloud networking platform for enterprise applications. łinebreak In: Proceedings of the 2nd ACM Symposium on Cloud Computing (SoCC), Cascais, 2011. 8. Google Scholar

[71] Sherry J, Hasan S, Scott C, et al. Making middleboxes someone else's problem: network processing as a cloud service. In: Proceedings of the ACM Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication (SIGCOMM), Helsinki, 2012. 13--24. Google Scholar

[72] Xu T Y, Zhang J Q, Huang P, et al. Do not blame users for misconfigurations. In: Proceedings of the 24th ACM Symposium on Operating Systems Principles (SOSP), Farminton, 2013. 244--259. Google Scholar

[73] Wang Q, Ren K, Meng X Q. When cloud meets eBay: towards effective pricing for cloud computing. In: Proceedings of the 31st Annual IEEE International Conference on Computer Communications (INFOCOM), Orlando, 2012. 936--944. Google Scholar

[74] Mellor S J, Balcer M, By-Jacoboson I F. Executable UML: a Foundation for Model-driven Architectures. Boston: Addison-Wesley Longman Publishing Inc., 2002. Google Scholar

[75] Tian L C, Zhang L, Zhou B S. Research and realization of UML-based integrated software development environment. J Beijing Univ Aeronaut Astronaut, 2003, 29: 935--938. Google Scholar

[76] Fang M Y, Dai X P. Research and realization of UML - base integrated case environment. Comput Tech Develop, 2006, 16: 26--31. Google Scholar

[77] Mei H, Chen F, Feng Y D, et al. ABC: an architecture based, component oriented approach to software development. J Softw, 2003, 14: 721--732. Google Scholar

[78] Huang G, Wang Q X, Mei H, et al. Research on architecture-based reflective middleware. J Softw, 2003, 14: 1819--1826. Google Scholar

[79] Kerrigan M, Mocan A, Tanler M, et al. The web service modeling toolkit - an integrated development environment for semantic web services. In: Proceedings of the 4th European Semantic Web Conference (ESWC), Innsbruck, 2007. 789--798. Google Scholar

[80] Hatcliff J, Deng X H, Dwyer M B, et al. Cadena: an integrated development, analysis, and verification environment for component-based systems. In: Proceedings of the 25th IEEE International Conference on Software Engineering (ICSE), Portland, 2003. 160--173. Google Scholar

[81] Chafle G, Das G, Dasgupta K, et al. An integrated development environment for web service composition. łinebreak In: Proceedings of the IEEE International Conference on Web Services (ICWS), Salt Lake City, 2007. 839--847. Google Scholar

[82] Bragdon A, Reiss S P, Zeleznik R, et al. Code bubbles: rethinking the user interface paradigm of integrated development environments. In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE), Cape Town, 2010. 455--464. Google Scholar

[83] Sugerman J, Venkitachalam G, Lim B-H. Virtualizing I/O devices on VMware workstation's hosted virtual machine monitor. ACM Trans Comput Syst, 2001, 15: 1--14. Google Scholar

[84] Watson J. VirtualBox: bits and bytes masquerading as machines. Linux J, 2008, 166: 1. Google Scholar

[85] Uhlig R, Gil N, Dion R, et al. Intel virtualization technology. Computer, 2005, 38: 48--56. Google Scholar

[86] Barham P, Dragovic B, Fraser K, et al. Xen and the art of virtualization. In: Proceedings of the 19th ACM Symposium on Operating Systems Principles (SOSP), Bolton Landing, 2003. 164--177. Google Scholar

[87] Rami R. Linux containers and the future cloud. Linux J, 2014, 240: 86--95. Google Scholar

[88] Google. Google gVisor container runtime sandbox. 2018. https://github.com/google/gvisor. Google Scholar

[89] Brewer E A. Kubernetes and the path to cloud native. In: Proceedings of the 6th ACM Symposium on Cloud Computing (SoCC), Kohala Coast, 2015. 167--167. Google Scholar

[90] Xu T Y, Jin X X, Huang P, et al. Early detection of configuration errors to reduce failure damage. In: Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI), Savannah, 2016. 619--634. Google Scholar

[91] Zhang Y Q, Prekas G, Fumarola G M, et al. History-based harvesting of spare cycles and storage in large-scale datacenters. In: Proceedings of the 12th USENIX conference on Operating Systems Design and Implementation (OSDI), Savannah, 2016. 755--770. Google Scholar

[92] JS Foundation. Nodered IoT orchestration tool. 2018. https://nodered.org. Google Scholar

[93] Peltz C. Web services orchestration and choreography. Computer, 2003, 10: 46--52. Google Scholar

[94] Chinnici R, Moreau J-J, Ryman A, et al. Web Services Description Language (WSDL) version 2.0. W3C Recommendation, 2007, 26: 19. Google Scholar

[95] Curbera F, Duftler M, Khalaf R. Unraveling the Web services web: an introduction to SOAP, WSDL, and UDDI. IEEE Internet Comput, 2002, 6: 86-93 CrossRef Google Scholar

[96] Balalaie A, Heydarnoori A, Jamshidi P. Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture. IEEE Softw, 2016, 33: 42-52 CrossRef Google Scholar

[97] Balalaie A, Heydarnoori A, Jamshidi P. Migrating to cloud-native architectures using microservices: an experience report. In: Proceedings of the European Conference on Service-Oriented and Cloud Computing (ESOCC), Taormina, 2015. 201--215. Google Scholar

[98] Kang H, Le M, Tao S. Container and microservice driven design for cloud infrastructure DevOps. In: Proceedings of the IEEE International Conference on Cloud Engineering (IC2E), Berlin, 2016. 202--211. Google Scholar

[99] Lee E, Bahn H, Noh S H. Unioning of the buffer cache and journaling layers with non-volatile memory. In: Proceedings of the 11th USENIX Conference on File and Storage Technologies (FAST), San Jose, 2013. 73--80. Google Scholar

[100] Abadi M, Barham P, Chen J M, et al. TensorFlow: a system for large-scale machine learning. In: Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI), Savannah, 2016. 265--283. Google Scholar

[101] Liu S L, Du Z D, Tao J H, et al. Cambricon: an instruction set architecture for neural networks. In: Proceedings of the 43rd International Symposium on Computer Architecture (ISCA), Seoul, 2016. 393--405. Google Scholar

  • Figure 1

    (Color online) Coding WebIDE, an editor-level development environment. (a) Screenshot; (b) basic architecture

  • Figure 2

    (Color online) Google App Engine (GAE), an application-level development environment. (a) Screenshot; protectłinebreak (b) basic architecture

  • Figure 3

    (Color online) Aliyun function compute service. (a) Screenshot; (b) basic architecture

  • Figure 4

    (Color online) Amazon Cloud9, an integrated development environment (screenshot)

  • Figure 5

    (Color online) Examples of Cloud Studio's basic building blocks

  • Figure 6

    (Color online) Process orchestration of Cloud Studio (screenshot)

  • Figure 7

    (Color online) Automatic system monitoring of Cloud Studio (screenshot)

  • Figure 8

    (Color online) Run-time system architecture of Cloud Studio

  • Table 1   Mainstream cloud computing development environments
    Classification Systems (sorted mostly by popularity)
    Home-brewed development environments LAMP [15]
    Spontaneously maintained standard components by communities Google Kubernetes, Docker, OpenStack, Hadoop, Spark, Gitlab [16], Mesos [17],Grafana [18], Prometheus [19], Jenkins [20], Jaeger [21]
    Managed development environments Editor-style development environments CodeAnywhere Cloud IDE [22],Jupyter Notebook [23],Coding WebIDE [12],ShiftEdit [24],NeutronDrive [25]
    Application-level development environments Google App Engine (GAE) [9],AWS Elastic Beanstalk [26],Heroku [27], Google Firebase [28],Red Hat OpenShift [29],Huawei DevCloud [11], Codio [30], Sina App Engine (SAE) [31],Baidu App Engine (BAE) [32], Leancloud [33], AppScale [34]
    Function-level development environments AWS Lambda [35],Google Cloud Functions [36],Microsoft Azure Functions [37],IBM OpenWhisk [38],Aliyun Function Compute [10],Tencent Cloud Function [39],Auth0 WebTasks [40],Kubeless [41],Fission [42],Spotinst [43]
    Integrated development environments AWS Cloud9 [8],Tsinghua Cloud Studio [13]
    Domain-specific development environments Google AutoML Vision [44],IBM Watson IoT [45],4 Paradigm Prophet [46],Aliyun PAI [47],Amazon Sagemaker [48],JD AI NeuHub [49],Microsoft Azure Bot Service [50],WeChat IOT service [51],Baidu IOT platform [52],Ubidots [53]

Copyright 2020 Science China Press Co., Ltd. 《中国科学》杂志社有限责任公司 版权所有

京ICP备18024590号-1