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


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]