250 likes | 444 Views
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.
E N D
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
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 Deployment Debug/ Test Data Store Editor 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.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 • 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 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, RastsislauDatsenka. 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