Software Development Environment - the Devops Perspective

Total Page:16

File Type:pdf, Size:1020Kb

Software Development Environment - the Devops Perspective Bachelor Degree Project Software Development Environment - the DevOps perspective Author: Olga Christensen ​ Supervisor: Daniel Toll ​ Semester. VT 2020 ​ Subject: Computer Science ​ Abstract DevOps is a collaborative effort based on a set of practices and cultural values developed in order to improve software quality and release cycle while operating at the lowest cost possible. To enable DevOps principles such as automation, collaboration, and knowledge sharing, Continuous Delivery and Deployment, as well as Infrastructure as Code are heavily employed throughout the whole process of software development. One of the main building blocks of this process is a development environment where the application code is being developed and tested before it is released into production. This research investigates with the help of a systematic literature review the DevOps perspective regarding provisioning and deployment of a development environment in a controlled, automated way, specifically the benefits and challenges of this process. Keywords: development environment automation, DevOps, Infrastructure as ​ Code, Configuration management Contents 1 Introduction 4 1.1 Background 5 1.2 Related work 6 1.3 Problem formulation 7 1.4 Motivation 7 1.5 Objectives 8 1.6 Scope/Limitation 8 1.7 Target group 8 1.8 Outline 8 2 Method 10 2.1 Search strategy 10 2.2 Study selection 11 2.3 Data extraction and synthesis 12 2.4 Reliability and Validity 12 2.5 Ethical considerations 13 3 Results 14 4 Analysis 17 4.1 Benefits of provisioning a development environment automatically (RQ1) 17 4.1.1 Consistent environments entail speed, quality, collaboration 17 4.1.2 Low maintenance environments 18 4.1.3 Traceability 19 4.1.4 Reusability 19 4.1.5 Distributed development 19 4.1.6 Cost management 20 4.1.7 Virtualisation 20 4.1.8 Other applications 20 4.2 Challenges of the automatic provisioning of a development environment (RQ2) 20 4.2.1 Learning curve 21 4.2.2 Tools 21 4.2.3 Security 22 4.3 Tools for development environment automation (RQ3) 22 4.3.1 Version Control 23 4.3.2 Build and packaging tools 23 4.3.3 Configuration management tools 23 4.3.4 Virtualisation 23 4.3.5 Web-based IDE 24 4.3.6 Cloud computing 24 4.3.7 Prototypes 24 4.4 Summary 25 5 Discussion 26 6 Conclusion 28 6.1 Future work 28 References 29 Appendix 1 34 1 Introduction At the core of any software development project, you will find a developer and his workstation, where the code is being written, tested and compiled before it is eventually released through a number of stages to the end-user. This workstation has to be set up before the development process can begin, which takes time and effort - numerous tools and applications need to be installed and configured. Additionally, this process has to be repeated for each new member of a software development project, or whenever a developer has to move to a different workstation, or reinstall the setup for some other reasons. This project looks into how DevOps practices, specifically automation, collaboration, and knowledge sharing, can be applied to the configuration of development environments in order to increase the productivity of software developers and consequently improve the quality of produced software. 1.1 Background Today the process of software engineering is quite dynamic and complex: projects are driven by agile principles, development teams are often distributed geographically, source code is updated on a daily basis and involves different programming languages, tools, external libraries, databases, mail servers, etc. [1], [2]. In the days of high demands and constant change, there is one major problem when it comes to software development: how to cut the time from the creation of an idea to the delivery of the end product to the customer without the loss of its quality [3]. As a solution to this problem, a DevOps movement was coined which produced a ​ set of principles and practices that would enforce collaboration between software development, operations and quality assurance teams [3], [4]. DevOps incorporates agile principles by means of continuous feedback and quick response to changes, with the main focus on communication, collaboration and automation [4]. To enable DevOps and to make the process of software development as effective as possible, the principles and practices of continuous delivery ​ should be adopted, which focus on making the process of building, deploying, testing and releasing the software rapid and fully automated [3]. From a technical point of view, this is implemented through an automated continuous delivery pipeline which helps to significantly shorten release cycles without quality degradation. Diverse application environments (development, test, production, etc.) form the key building blocks of a continuous delivery pipeline [3]. Continuous delivery heavily depends on configuration management, ​ ​ which concentrates on the ability to repeatedly recreate any fragment of application infrastructure [3]. The other practices that build the foundation of continuous delivery are continuous integration, continuous testing and ​ ​ continuous deployment, often gathered together under the term continuous ​ ​ practices [3], [5]. To derive maximum benefit of continuous practices the IT ​ infrastructure has to be fully automated and treated as it was software and data, i.e. with Infrastructure as Code approach [6]. ​ ​ As a part of continuous practices, according to J. Humble [3] "It is important for developers’ productivity and sanity that their development environment is carefully managed", and that the company saves "lots of work of individual developers" by sharing deployment scripts among team members. However, often development teams are distributed geographically and starting on a new project, or simply moving your local development environment to a new machine can be time-consuming and frustrating [7]. The results produced with a manual development setup can be unpredictable, working exclusively within that particular environment [6], [8]. Moreover, in some scenarios the application runtime environment is OS-specific making the development setup even more tedious, as with the development of applications built in ASP.NET Framework, which can be run and compiled only on Windows OS [9]. The above-mentioned statements are supported by the vast amount of web search results on the topic of automation of a local development environment setup, which include questions, ideas and expertise, as well as white papers and how-tos. Additionally, according to the ActiveState's Developer Survey from 2019, over 50% of respondents ranked the importance of "ease of sharing an environment configuration" as "important" or "very important". And over 40% of respondents saw the task of "dev environment deployment/isolation" as a challenging one [10]. While performing preliminary research on the principles and patterns of continuous delivery and the practices of configuration management, one thing became apparent - within the academic literature, the focus lies on provisioning different deployment environments and the actual deployment process, which always starts with a developer committing new changes to a Version Control system (VCS) [3]. But there seems to be a lack of academic literature that focuses on the automation of software developer's daily tasks before "pushing" updates to VCS. In particular, how does one set up and run a local development environment and what part its manual vs. automated deployment plays in DevOps and continuous practices? 1.2 Related work The main work found in the field of this thesis is a book Continuous Delivery ​ by Jez Humble and David Farley [3]. There the authors address the issues connected to rapid releases of the software and how continuous practices are meant to solve them. The main focus of this book lies in the configuration of the deployment pipeline and addresses the developer's own workstation only marginally. The authors recommend using configuration management in order to be "able to repeatably re-create every piece of infrastructure used by your application", but focus on automation of production and test environments, mentioning only once that "It is even helpful to keep the configuration files for the development team’s development environments in version control since it makes it easy for everyone on the team to use the same settings". There is no discussion regarding which issues would be addressed and solved with this approach. An article Improving the delivery cycle: A multiple-case study of the ​ toolchains in Finnish software intensive enterprises by Mäkinen et al. [11] is dedicated to examining different tools that are used for rapid software delivery. This multiple case study to some extent addresses the role of local development setup in a bigger picture of continuous delivery, the developers' attitude to the issue, and some tools that could be used for automating the development environment. The main idea behind the automation of a development environment is to make development and production environments compatible and to a large extent identical by using Vagrant virtualisation tools in combination with configuration management tools, such as Chef, Puppet, and Ansible. No other reasons or tools for automation are mentioned, neither the topic of why it is important to have environments compatible is discussed. Information about the tools that are suitable for local environment automation is available in multiple blog posts and guides, such as an online blog Repeatable
Recommended publications
  • An Overview of Platforms for Cloud Based Development G
    Fylaktopoulos et al. SpringerPlus (2016) 5:38 DOI 10.1186/s40064-016-1688-5 REVIEW Open Access An overview of platforms for cloud based development G. Fylaktopoulos1, G. Goumas2, M. Skolarikis1, A. Sotiropoulos3 and I. Maglogiannis4* Abstract This paper provides an overview of the state of the art technologies for software development in cloud environments. The surveyed systems cover the whole spectrum of cloud-based development including integrated programming environments, code repositories, software modeling, composition and documentation tools, and application man- agement and orchestration. In this work we evaluate the existing cloud development ecosystem based on a wide number of characteristics like applicability (e.g. programming and database technologies supported), productiv- ity enhancement (e.g. editor capabilities, debugging tools), support for collaboration (e.g. repository functionality, version control) and post-development application hosting and we compare the surveyed systems. The conducted survey proves that software engineering in the cloud era has made its initial steps showing potential to provide con- crete implementation and execution environments for cloud-based applications. However, a number of important challenges need to be addressed for this approach to be viable. These challenges are discussed in the article, while a conclusion is drawn that although several steps have been made, a compact and reliable solution does not yet exist. Keywords: Cloud computing, Integrated Development Environment (IDE), Code repositories, Software modeling, Orchestration tools Background application side, large families of applications including Within the past few years, cloud computing has emerged desktop, business, entertainment (Simmhan et al. 2010; as a dominant computing model in IT infrastructures, Schmidt 2012; Hobfeld et al.
    [Show full text]
  • Online Programming System for Code Analysis and Activity Tracking
    Paper ID #18916 Online Programming System for Code Analysis and Activity Tracking Tian Qiu, Purdue University Tian Qiu is a senior undergraduate in Computer Engineering and Mathematics-Computer Science. Mr. Mengshi Feng, Purdue University Mengshi Feng is a senior student at Purdue University. He is one of the team member in ACCESS project supervised by Yung-Hsiang Lu. Mr. Sitian Lu, Purdue University Sitian Lu is a junior studying Computer Engineering in Purdue University. He has been working on the online programming system (ACCESS) since later 2015. Sitian Lu has been studying in Purdue University for 3 years. He is also the vice president of Purdue Billiards Club since 2015. Mr. Zhuofan Li Mr. Yudi Wu Dr. Carla B. Zoltowski, Purdue University Carla B. Zoltowski is an assistant professor of engineering practice in the Schools of Electrical and Com- puter Engineering and (by courtesy) Engineering Education at Purdue University. She holds a B.S.E.E., M.S.E.E., and Ph.D. in Engineering Education, all from Purdue. Prior to this she was Co-Director of the EPICS Program at Purdue where she was responsible for developing curriculum and assessment tools and overseeing the research efforts within EPICS. Her academic and research interests include the profes- sional formation of engineers, diversity and inclusion in engineering, human-centered design, engineering ethics, leadership, service-learning, and accessibility and assistive-technology. Dr. Yung-Hsiang Lu, Purdue University Yung-Hsiang Lu is an associate professor in the School of Electrical and Computer Engineering and (by courtesy) the Department of Computer Science of Purdue University.
    [Show full text]
  • Cloud Based Integrated Development Environment for Android Devices
    Special Issue - 2015 International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 NCRTS-2015 Conference Proceedings Cloud based Integrated Development Environment for Android Devices Prof Manjunath R.1 Arunjith C.2 Head of Department Computer Science & Engineering Computer Science & Engineering City Engineering College City Engineering College Bangalore, India Bangalore, India Abstract—Integrated Development Environment is an integration of complete tool suites for software application which provides facilities to programmer for development and the development of language-specific software development such as code completing and fixing, editor services took a tremendous effort for the current source code editing and management, automated testing, generation of IDEs such as Eclipse and Visual Studio. etc. Software is rapidly moving from the desktop to the Web. The Web provides a generic user interface that This paper discusses the implementation of Web allows ubiquitous access, instant collaboration, integration Based Integrated Development Environment (IDE) for with other online services, and avoids installation and Android Devices with the different languages to code, configuration on desktop computers. Moving IDEs to the compile and run the code. The Web Based IDE will allow Web is not just a matter of porting desktop IDEs, a easy development and testing of applications. The users fundamental reconsideration of the IDE architecture is have the privilege to register on to the system write, save necessary in order to realize the full potential that the and manage programs online. After the language is combination of modern IDEs and the Web can offer. chosen by the user the request is forwarded to the This paper discusses implementation of Web based IDE respective compiler.
    [Show full text]
  • Web Based Interface Implementation For: Ruby, Perl, Python, VB & HTML
    International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395 -0056 Volume: 02 Issue: 06 | Sep-2015 www.irjet.net p-ISSN: 2395-0072 Web Based Interface Implementation for: Ruby, Perl, Python, VB & HTML. Poreddy Jayaraju, Vijay Prakash 1. Master of engineering, computer science, Sri Vaishnav Instt. of Tech .&science Indore. RGPV University, Bhopal, Madhya Pradesh, India. 2. Asst professor, computer science, Sri Vaishnav Instt. of Tech .&science Indore. RGPV University, Bhopal, Madhya Pradesh, India. ---------------------------------------------------------------------***--------------------------------------------------------------------- Abstract web based interface is an application and the introduction of HTML5, there is now even a which provides facilities to programmer for software small but growing collection of browser-based code development such as code completing and fixing, editors. Fully fledged integrated development source code editing and management, automated environments (IDEs) are still lagging behind in this pull testing, etc. Software is rapidly moving from the towards the Web. Modern, desktop-based IDEs integrate desktop to the Web. The Web provides a generic user a wide range of software engineering tools, and provide interface that allows ubiquitous access, instant a platform for writing, maintaining, testing, building, collaboration, integration with other online services, running, debugging, and deploying software. They and avoids installation and configuration on desktop increase developer productivity by incorporating many computers. Moving IDEs to the Web is not just a different kinds of editor services specific to the syntax matter of porting desktop IDEs, a fundamental and semantics of a language. These services assist reconsideration of the IDE architecture is necessary in developers in understanding and navigating through the order to realize the full potential that the combination code, they direct developers to inconsistent or of modern IDEs and the Web can offer.
    [Show full text]
  • Router Keygen Git
    Router keygen git Contact RouterKeygen. Feel free to email us to provide some feedback and give us suggestions! exobel@ · Facebook · Twitter · Github. Copyright. routerkeygenAndroid - Router Keygen generate default WPA/WEP keys for several routers. More than 25 million people use GitHub to discover, fork, and contribute to over 69 million Router Keygen generate default WPA/WEP keys for several routers. Qt Port for Linux, Mac OSX and Windows. Contribute to routerkeygenPC development by creating an account on GitHub. Router Keygen generate default WPA/WEP keys for the following router: Thomson based routers (this includes Thomson, SpeedTouch, Orange, Infinitum, BBox. UPC router default WPA2 key generator. Contribute to upcKeygen development by creating an account on GitHub. #NetHunter Terminal Application This application allows to open up one of several kinds of terminals - a chrooted Kali terminal, an Android. Closed. poutrosgit opened this Issue on Nov 28, · 2 comments Perhaps you could integrate router keygen () into csploit? App Information Router Keygen. App Name. Router Keygen. Package Name. keygen. Updated. September 12, File Size. My router keygen github. Fiberglass crack inspection. Motion Download. ?id=keygen&hl=en Router Keygen APK Download - Android Tools Apps. Sep 12, Router Keygen is a tool with which you can decipher Thomson passwords and WiFi I am not able to clone or push to a git repository at Bitbucket in Eclipse: It's. Gogs (Go Git Service) is a painless self-hosted Git service written in Go. Groups; Android Google Code will act as a mirror of Github from now on. Router Keygen generate default WPA/WEP keys for the following router: Thomson.
    [Show full text]
  • Linux Online Virtual Environments in Teaching Operating Systems
    Linux Online Virtual Environments in Teaching Operating Systems Olena Holovnia[0000-0003-0095-7585] Zhytomyr Polytechnic State University, 103, Chudnivska str., Zhytomyr, 10005, Ukraine [email protected] Abstract. The article provides an overview of Linux ready-made online environments based on various virtualization technologies. Linux ready-made online virtual environments are systematized, the advantages and disadvantages of considering groups of online virtual environments are listed. The work also gives the comparison of standalone online Unix/Linux terminals in terms of their possible use for a course in operating systems. The author analyzes the experience of teaching a Linux operating system to students of different specializations, and in particular, discusses the virtualization tools used, including Linux online environments (Amazon EC2, Cloud 9, a virtual machine for NDG Linux Essentials course). The study states the need for developing an individually designed system to provide Linux online virtual environments and elaborates the requirements to this system. The work also discusses potential challenges which the developers of Linux online virtual environments for teaching operating systems may face, including the problem of finding a balance between availability and stability of virtual environments on the one hand and the realism of students’ learning experience on the other hand. Keywords: virtualization, Linux, operating systems. 1 Introduction A course in operating systems (OS) usually includes practical assignments on Unix- like operating systems (particularly, Linux). However, at the same time, university lab computers, students’ laptops and home desktop computers mostly come with Windows installation. That is one important reason why different virtualization technologies are often used for a course in operating systems.
    [Show full text]
  • Online Code Compilation Using Cloud Computing
    International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395 -0056 Volume: 03 Issue: 05 | May-2016 www.irjet.net p-ISSN: 2395-0072 Online Code Compilation using Cloud Computing Jasmeet Chhabra1, Shubham Bhatia2, Vaibhav Kamal Nigam3, Rashik Bhasin4 1Student, Computer Science and Eng., JIIT University, Noida, U.P., India 2Student, Information Technology, JIIT University, Noida, U.P., India 3Student, Information Technology, JIIT University, Noida, U.P., India 4Student, Computer Science and Eng., JIIT University, Noida, U.P., India ---------------------------------------------------------------------***--------------------------------------------------------------------- Abstract - Computer Program that Software Developers use access their respective codes. In case of scarce need of a to create, debug, maintain, or otherwise support other PC editing of code is impossible. Thus, Online Code programs and applications are Programming Tools, Which Editor was proposed to solve this problem. It helps if produces accurate, meticulous and swift results can lead programmers to write or modify their source code at any to Good Quality Error Free Code. This paper proposed the place and any time they want. [4] The online text editor Online Code Editor that was created for Beginners, was built and run on Private cloud computing based on Programmers Designers or Developers who want to code web-based application. Open source software called programs On the Go without use of a Dedicated Software Ace was used to highlight the text. Program can be Installed having Full Portability and Transferability. It saved and complied via web browser and the code will be based on web application running on the Private cloud done at server-side. Then, the output of the compilation is computing.
    [Show full text]
  • Using Docker to Assist Q&A Forum Users
    1 Using Docker to Assist Q&A Forum Users Luis Melo, Igor Wiese and Marcelo d’Amorim Abstract—Q&A forums are today a valuable tool to assist developers in programming tasks. Unfortunately, contributions to these forums are often unclear and incomplete. Docker is a container solution that enables software developers to encapsulate an operating environment and could help address reproducibility issues. This paper reports on a feasibility study to evaluate if Docker can help improve reproducibility in Stack Overflow. We started surveying Stack Overflow users to understand their perceptions on the proposal of using Docker to reproduce Stack Overflow posts. Participants were critical and mentioned two important aspects: cost and need. To validate their criticism, we conducted an exploratory study focused on understanding how costly the task of creating containers for posts is for developers. Overall, results indicate that the cost of creating containers is not high, especially due to the fact that dockerfiles are highly similar and small. Based on these findings we developed a tool, dubbed FRISK, to assist developers in creating containers for those posts. We then conducted a user study to evaluate interest of Stack Overflow developers on the tool. We found that, on average, users spent nearly ten minutes interacting with FRISK and that 45.3% of the 563 FRISK sessions we created for existing posts resulted in a successful access to the corresponding web service by the owners of the post. Overall, this paper provides early evidence that the use of Docker in Q&A forums should be encouraged for configuration-related posts.
    [Show full text]
  • Over 400 Resources for Devops & Sysadmins
    Over 400 Resources for DevOps & SysAdmins 1 In 2014 Google indexed 200 Terabytes of data (1 T of data is equal to 1024 GB, to give you some perspective). And, it’s estimated that Google’s 200 TB is just .004% of the entire internet. Basically the internet is a big place with unlimited information. So in an effort to decrease searching and increase developing, Morpheus Datapublished this massive list of free resources for DevOps engineers and System Admins, or really anyone wanting to build something useful out of the internet. All these resources are free, or offer some kind of free/trial tier. You can use any/all of these tools personally, as a compa- ny, or even suggest improvements (in the comments). It’s up to you. If you find this list useful, please share it with your DevOps/SysAdmin friends on your favorite social network, or visit Morpheus Data to learn how you can 4x your application deployment. Source Code Repos Crash & Exception Handling Issue Tracking & Project 3 Collaboration Tools For Teams 8 Search 13 Management Email Code Quality Storage & Media Processing 4 CND & Protection 14 Design & UI 9 PaaS Code Search & Browsing Data Visualization & Maps 5 CI / CD BaaS 15 Package Build System Automated Browser Testing 10 IDE & Code Editing Security & KPI Analytics, Events & Statistics Web Hosting 16 Intl Mobile Number Verification TABLE OF CONTENTS TABLE Management System 11 DNS API & SDK 6 Log Management IaaS Payment / Billing Verification Translation Management 12 DBaaS 17 Docker Related 7 Monitoring Stun, WebRTC, Web Sock Vagrant Related Servers & Other Routers Misc.
    [Show full text]
  • Cloud Computing
    Volume 6, Issue 9, September 2016 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Cloud Computing: An Integrated Development Environment for Web Design and Development Mandeep Kumar MCA Final Year, Department of Computer Science Central University of Haryana, India Abstract: Cloud computing provides an Integrated Development Environment (IDE) for web developers using this they can design and develop websites or web application in popular web development programming languages like HTML, CSS, PHP, Java, .Net, Python, JavaScript with Node.js, Ruby and so on. Cloud providers provide web services that allow users to build and host a web application or website online and manage relational databases which live in Cloud. It is also provides security scanner which automatically scans web application or websites and remove all vulnerabilities. It is a powerful technology that provides Platform as a Service (PaaS), Infrastructure as a Service (IaaS) and Software as a Service (SaaS). So it is provides everything online includes data center, storage, software, hardware, infrastructure and so on and also provides an online environment for design, coding, publishing and hosting in the popular web technologies are known as LAMP which stands for Linux, Apache, MySQL and PHP. In this paper, discuss about cloud computing and cloud providers which provides an Integrated Development Environment for web design and development. Keyword: Cloud Computing, Cloud Providers, Integrated Development Environment, Web Design, Web Development, Web Developers and Programming Languages I. INTRODUCTION Cloud Computing is a latest technology which provide everything online, includes storage, data center, software, hardware, infrastructure and application and they are on demand, anytime and anywhere with low-cost.
    [Show full text]
  • A Web-Based, Pac-Man-Complete Hybrid Text and Visual Programming Language
    Politechnika Łódzka Wydział Fizyki Technicznej, Informatyki i Matematyki Stosowanej Instytut Informatyki Dariusz Jędrzejczak, 201208 Dual: a web-based, Pac-Man-complete hybrid text and visual programming language Praca magisterska napisana pod kierunkiem dr inż. Jana Stolarka Łódź 2016 ii Contents Contents iii 0 Introduction 1 0.1 Scope . .1 0.2 Choice of subject . .1 0.3 Related work . .2 0.4 Goals . .3 0.5 Structure . .3 1 Background 5 1.1 Web technologies . .5 1.1.1 Document Object Model . .5 1.1.2 JavaScript . .6 1.2 Design and implementation of Lisp . .8 1.2.1 Abstract syntax tree and program representation . 10 1.2.2 Text-based code editors . 10 1.2.3 Visual programming languages . 11 1.2.4 A note on history of VPLs . 13 1.2.5 Common criticisms of VPLs . 14 1.2.6 The problem with structure . 14 1.3 Screenshots . 16 2 Dual programming language 21 2.1 Introduction . 21 2.2 Syntax and grammar . 21 2.2.1 Basic syntax . 22 2.3 Comments . 23 2.4 Numbers . 24 2.5 Escape character . 25 2.6 Strings . 25 2.7 Basic primitives and built-ins . 25 2.7.1 Functions . 26 2.7.2 Language primitives . 27 2.7.3 Values . 30 2.8 Enhanced Syntax Tree . 31 iii CONTENTS CONTENTS 2.8.1 Structural representation of strings . 32 2.9 Syntax sugar for function invocations . 33 2.10 Pattern matching . 34 2.10.1 Destructuring . 36 2.10.2 match primitive . 36 2.11 Rest parameters and spread operator .
    [Show full text]
  • Analysis of Cloud Ides for Software Development Ms
    International Journal of Engineering Research and General Science Volume 4, Issue 4, July-August, 2016 ISSN 2091-2730 Analysis of Cloud IDEs for Software Development Ms. Pooja Arora Dr. Anurag Dixit BCIIT,Delhi. Galgotias University, Greater Noida. [email protected] [email protected] ABSTRACT: In today world using cloud services has become a convenience for software developers to develop application. An integrated development environment(IDE) facilitates the development of apps in shorter software delivery timelines. A cloud based IDE is an „next gen‟ solution and still in the incubation stage because the cloud based private workspace is yet to evolve fully.as of now, there still is not any good java-supporting cloud IDE available. Evaluation of different cloud IDEs is discussed in this paper. This paper discuss an open source virtual environment for cost effective and better community based collaborative software development. In this paper we analyze a cloud based development facility that can be accessible from anywhere and be used without much interfacing in the local developer system such as software installation, network boundary etc. Keywords : IDE, Software development, deployment environment, cloud IDE, Virtual Environment, Java, J2EE 1. INTRODUCTION The development process plays a vital role in developing a software product. The software development process consists of requirement gathering and analysis, designing, coding, testing, deployment and maintenance. The basic requirements for software development are hardware and software tools, a server to deploy and test the application and a coding development environment. Cloud based development brings in a lot of cost savings and efficiency into the process of software development.
    [Show full text]