software development in the cloud

24
SOFTWARE DEVELOPMENT IN THE CLOUD

Upload: ulric-chen

Post on 31-Dec-2015

35 views

Category:

Documents


1 download

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

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