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 PresentationTRANSCRIPT
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