Software development in the cloud

advertisement
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-SERVICE
USING 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
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
HTTP://DI2.DERI.IE/FILEADMIN/DOCUMENTS/DERI-TR-AFTAB-2012-10-06.PDF
CLOUD DEVELOPMENT STACK CONT.
• What is necessary to do this?
• The cloud development stack:
The Cloud Software Development Stack
IDE
Editor
Debug/
Test
Deployment
Data Store
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
•
•
Comparison terms
•
•
Language support, build/continuous integration, data storage
Similar to browser based IDE’s, still immature
•
•
•
CloudBees, OpenShift, Heroku, Jelastic, Google App Engine, dotCloud, Azure, CloudFoundary
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 HOUSE
BUILDING CLOUD DEVELOPMENT TOOLS
• Case study on Fujitsu’s Numazu Cloud Center
• Consolidate development into one center
• Predecessor was a development center
established 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.PDF
HTTP://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 2009
HTTP://WWW.FUJITSU.COM/DOWNLOADS/GBG/CASESTUDIES/CS-FUJITSU-NUMAZU-CLOUD_EN.PDF
HTTP://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 systems
HTTP://WWW.FUJITSU.COM/DOWNLOADS/GBG/CASESTUDIES/CS-FUJITSU-NUMAZU-CLOUD_EN.PDF
HTTP://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.PDF
HTTP://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 increase
HTTP://WWW.FUJITSU.COM/DOWNLOADS/GBG/CASESTUDIES/CS-FUJITSU-NUMAZU-CLOUD_EN.PDF
HTTP://WWW.FUJITSU.COM/DOWNLOADS/MAG/VOL47-3/PAPER12.PDF
EFFECTS
•
Annual cost reduction of $9 million
•
•
•
•
•
Balancing server use
Reducing labor hours for development environment creation
•
•
More efficient use of space
Reduction in labor expenses
Relocation of staff because of space use
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 emissions
HTTP://WWW.FUJITSU.COM/DOWNLOADS/GBG/CASESTUDIES/CS-FUJITSU-NUMAZU-CLOUD_EN.PDF
HTTP://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/softwareindustrie/09_platform-as-aservice_as_an_%20enabler_for_global_software_development_and_delivery.pdf
• Numazu Cloud Center Case Study
http://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
Download