Software development in the cloud

24
SOFTWARE DEVELOPMENT IN THE CLOUD

description

Software development in the cloud. introduction. How do you develop in the cloud? Browser based services (IDE’s, Source Control) Developing in Platform-as-a-Service Using pay-as-you-go style companies Building your own cloud based developing environment. Introduction cont. - PowerPoint PPT Presentation

Transcript of Software development in the cloud

SOFTWARE DEVELOPMENT IN THE CLOUD

INTRODUCTION

• How do you develop in the cloud?

• Browser based services (IDE’s, Source Control)

• Developing in Platform-as-a-Service

• Using pay-as-you-go style companies

• Building your own cloud based developing environment

INTRODUCTION CONT.

• Why use the cloud?

• Software development is a very intensive task

• Managing, designing, implementing, building, testing, deployment

• Collaboration

• Code Sharing

• What can it do?

• Global software development

• Talent from anywhere

• Simplifies and consolidates company infrastructure

AS-A-SERVICEUSING THIRD PARTY SERVICES

• Development

• Building, using IDE’s and Code Repositories

• Runtime

• Testing and Production Environments

• Constant switching of phases

• Many tools for each phase

• Developers spend time setting up tools

HTTP://DI2.DERI.IE/FILEADMIN/DOCUMENTS/DERI-TR-AFTAB-2012-10-06.PDF

http://di2.deri.ie/fileadmin/documents/DERI-TR-AFTAB-2012-10-06.pdf

CLOUD DEVELOPMENT STACK

• How can cloud development help?

• Using only browser based systems cuts down on installation time

• Allows for increased developer collaboration

• Reduces need for infrastructure resources

CLOUD DEVELOPMENT STACK CONT.

• What is necessary to do this?

• The cloud development stack:

EditorDebug/

TestDeploym

entData Store

IDE

The Cloud Software Development Stack

Source and Project Management Controls

HTTP://DI2.DERI.IE/FILEADMIN/DOCUMENTS/DERI-TR-AFTAB-2012-10-06.PDF

BROWSER BASED IDE

• Runs in browser, processing in cloud

• Start projects without tool setup

• Share code and collaborate

• Support agile development

• Repository integration(GitHub)

HTTP://DI2.DERI.IE/FILEADMIN/DOCUMENTS/DERI-TR-AFTAB-2012-10-06.PDF

BROWSER BASED IDE COMPARISON

• Software

• CodeRun, Cloud9, eXo Cloud, Bespin, Kodingen, Bungee Connect, Codeanywhere, ECCO, WonderFL

• Comparison Terms

• Language support, source control support, collaboration, deployment

• Results

• Immature

• Integration with source control/code repositories

• Poor language support

• Needs time to mature

• Develop anywhere, anytime

• Share code instantly

HTTP://DI2.DERI.IE/FILEADMIN/DOCUMENTS/DERI-TR-AFTAB-2012-10-06.PDF

DEPLOYMENT

• Using Platform-as-a-Service

• Can select development and deployment applications and save as a single file

• RDBMS, Frameworks etc.

• Deployment is done with a browser and a click of an upload button

• Supports versioning

• Benefits:

• Scalable, Fast deployment, Reliability, Manage multiple applications through a single console

HTTP://DI2.DERI.IE/FILEADMIN/DOCUMENTS/DERI-TR-AFTAB-2012-10-06.PDF

DEPLOYMENT COMPARISON

• Software

• CloudBees, OpenShift, Heroku, Jelastic, Google App Engine, dotCloud, Azure, CloudFoundary

• Comparison terms

• Language support, build/continuous integration, data storage

• Similar to browser based IDE’s, still immature

• Language support is better

• Few support Build/Continuous Integration

• More mature than the IDE’s, but still need more time.

HTTP://DI2.DERI.IE/FILEADMIN/DOCUMENTS/DERI-TR-AFTAB-2012-10-06.PDF

PROJECT MANAGEMENT TOOLS

• These tools attempt to cover Application Lifecycle Management

• From designing to delivering

• Frees developers from worrying about installing local project management tools

• Integrates with other tools to simplify managing resources

HTTP://DI2.DERI.IE/FILEADMIN/DOCUMENTS/DERI-TR-AFTAB-2012-10-06.PDF

PROJECT MANAGEMENT TOOLS COMPARISON

• Software

• TeamForge, OnDemand, JazzHub, AccuRev

• Comparison terms

• Version control, build/continuous integration, social collaboration, project planning, tracking

• The most mature cloud based development set of tools

• Good lifecycle management and collaboration

• All include support for version control

• Most support build/continuous integration

• Needs project tracking through source control

HTTP://DI2.DERI.IE/FILEADMIN/DOCUMENTS/DERI-TR-AFTAB-2012-10-06.PDF

THE FUTURE

• More features will make all of these tools more mature and attract developers

• Better integration/support for the agile life-cycle

• Automation of tasks

• Logs, developer tracking and metrics

• Integration with code repositories

• Creating a way to develop both online and offline

HTTP://DI2.DERI.IE/FILEADMIN/DOCUMENTS/DERI-TR-AFTAB-2012-10-06.PDF

IN HOUSEBUILDING CLOUD DEVELOPMENT TOOLS

• Case study on Fujitsu’s Numazu Cloud Center

• Consolidate development into one center

• Predecessor was a development centerestablished in 1976

• Provides development environments to 4500 developers

• Located in 10 hubs in Japan and other countries

HTTP://WWW.FUJITSU.COM/DOWNLOADS/GBG/CASESTUDIES/CS-FUJITSU-NUMAZU-CLOUD_EN.PDFHTTP://WWW.FUJITSU.COM/DOWNLOADS/MAG/VOL47-3/PAPER12.PDF

NUMAZU BACKGROUND

• Built specifically for middleware developers

• Many configurations

• Reasons for building the cloud center

• Increasing server operation costs

• Maintenance, backups, inventory, troubleshooting

• Server under/over utilization

• Server allocation based on peak demand

• Increasing labor hours for building developer environments

• Since 2005 the number of platforms needed for development and testing has multiplied by 8

• The labor hours for constructing these environments (Hardware specs, OS, Patches, Source Files)

• This time increase by 24% from 2005 to 2008 and again by 30% from 2008 to 2009HTTP://WWW.FUJITSU.COM/DOWNLOADS/GBG/CASESTUDIES/CS-FUJITSU-NUMAZU-CLOUD_EN.PDFHTTP://WWW.FUJITSU.COM/DOWNLOADS/MAG/VOL47-3/PAPER12.PDF

CONSOLIDATION AND VIRTUALIZATION

• Remote Operation Equipment

• Virtual and physical machines

• Remote turn on/off and BIOS setup

• Fujitsu provided remote power management and console switches

• Network Enhancements

• Dedicated in house WAN for accessing servers in the cloud center

• Remote Installation Services

• Numazu provides services so that OS’s can be remotely installed without physical media

• Also provide services for backing up and restoring systemsHTTP://WWW.FUJITSU.COM/DOWNLOADS/GBG/CASESTUDIES/CS-FUJITSU-NUMAZU-CLOUD_EN.PDFHTTP://WWW.FUJITSU.COM/DOWNLOADS/MAG/VOL47-3/PAPER12.PDF

STANDARDIZATION

• Need to reduce infrastructure load

• 51 standard environments

• 36 Windows

• 14 Linux

• 1 Solaris

• Together they cover 70% of past cases

• Cases not covered can be manually created

HTTP://WWW.FUJITSU.COM/DOWNLOADS/GBG/CASESTUDIES/CS-FUJITSU-NUMAZU-CLOUD_EN.PDFHTTP://WWW.FUJITSU.COM/DOWNLOADS/MAG/VOL47-3/PAPER12.PDF

SYSTEMIZATION

• To utilize all of these past pieces, software needed to be constructed

• Service Catalog for all of the standardized systems

• Automated Deployment for deploying the systems in the catalog

• Automated Operations for operating the platforms

• Dynamic Resource Management for properly allocating resources

• Automated Operations in a Cloud Environment

• Automated rental of environments

• Scalable without staff increaseHTTP://WWW.FUJITSU.COM/DOWNLOADS/GBG/CASESTUDIES/CS-FUJITSU-NUMAZU-CLOUD_EN.PDFHTTP://WWW.FUJITSU.COM/DOWNLOADS/MAG/VOL47-3/PAPER12.PDF

EFFECTS

• Annual cost reduction of $9 million

• More efficient use of space

• Reduction in labor expenses

• Relocation of staff because of space use

• Balancing server use

• Reducing labor hours for development environment creation

• Environments that used to take hours or days to build now take minutes

• Reduced environmental load

• Less servers, less power consumption

• Estimated reduction of 1340 tons of CO2 emissionsHTTP://WWW.FUJITSU.COM/DOWNLOADS/GBG/CASESTUDIES/CS-FUJITSU-NUMAZU-CLOUD_EN.PDFHTTP://WWW.FUJITSU.COM/DOWNLOADS/MAG/VOL47-3/PAPER12.PDF

CONCLUSION

• Pros

• Could lead to world wide collaboration on projects

• Better utilization of resources

• Increased ability to control/track projects and development

• Decreased time wasted on developing environments

• Code from anywhere, on almost any machine

• Companies can hire the best developers wherever they are

CONCLUSION CONT.

• Cons

• Still very immature to use third party services

• Needs more integration

• Security

• No standard protocols between different third party services

• Few features and supported languages

• Testing still not widely supported

• In House solutions only plausible for large companies

• Time and money

• Enough developers in different locations so that benefits outweigh cost

CONCLUSION CONT.

• The future looks promising for cloud development

• May allow companies to have small teams all around the world without needing infrastructure support at each location

• Currently they are only suitable for very small projects

• Larger companies are better off building their own infrastructure or simply waiting for better third party tools

CSCI 577

• Tools very important

• Helps developers and management

• Can help a project stay on track

REFERENCES

• “In-house Deployment at Numazu Software Development Cloud Center”. Yuji Arimura, Masako Ito. http://www.fujitsu.com/downloads/MAG/vol47-3/paper12.pdf

• “What is Google App Engine?”. https://developers.google.com/appengine/docs/whatisgoogleappengine

• “Platform-as-a-Services as an Enabler for Global Software Development and Delivery” Ivo Stankov, Rastsislau Datsenka. http://webdoc.sub.gwdg.de/univerlag/2010/mkwi/01_management_und_methoden/software-industrie/09_platform-as-a-service_as_an_%20enabler_for_global_software_development_and_delivery.pdf

• Numazu Cloud Center Case Studyhttp://www.fujitsu.com/downloads/GBG/casestudies/CS-Fujitsu-Numazu-Cloud_en.pdf

• “Developing in the Cloud”. Aftab Iqbal, Michael Hausenblas, Stefan Decker. http://di2.deri.ie/fileadmin/documents/DERI-TR-AFTAB-2012-10-06.pdf