Your SlideShare is downloading. ×
0
Software	Development
[	in,	for	]
	the	Cloud
Guest	Lecture	@	HSR	
6th	May	2014
Florian	Georg
Solution	Architect	-	IBM	Switz...
Welcome	to...
Agenda
Software	runs	the	world		
What	do	we	mean	by	"devOps"		?
Develop:	Eclipse	Orion	and	IBM	JazzHub	
Run:	Cloud	Foundry...
Software	runs	the	world
	We're	in	a	303.8	billion	$	industry
New	Business	Models
Traveling	Salesman
http://xkcd.com/399/
We	like	what	we're	doing
PAST	(sort	of)
TODAY
>>	we	need	new	different	practices,	platforms	and	tools
New	Challenges
Productivity
Time	to	market,	the	Lean	Enterprise,	devOps,	MTBF	vs.	MTTR	
Innovation
Design	Thinking,	User	E...
Productivity	?
Moore's	Law	does	not	apply	to	Software
Innovation	?
Quality	?
	
Development	!=	Delivery
What	we	mean	by	"devOps"
	 	
first	principle	of	the	"Agile	Manifesto"
IBM	Vision
Cloud	to	the	rescue	?
	
Cloud	Service	Models	can	help...
reduce	administrative	burden	of	technology	stacks	
Streamline	&	s...
Raising	Levels	of	Abstraction
	<
<<
Taxonomy
	http://www.cloudcomputingpatterns.org/
		A	Pattern	language	for	solutions	for	designing,	building	&	managing	Clo...
Dan	Berg:	Adopting	a	devOps	approach	with	cloud 	
http://youtu.be/fVaJigwfNY4
Pattern:	PaaS
Providers	share	IT	resources	providing	an	application
hosting	environment	between	customers	to	enable	self-
...
Pattern:	SaaS
	
Providers	share	IT	resources	providing	human-usable
application	software	between	customers	to	enable	self-...
Develop
Cloud,	Anyone	?
What	About	Private	Clouds	?
Better	utilization	of	corporate	data	centers
(outsourcing,	"follow	the	sun	development"	etc.)
...
Eclipse	Orion
	
http://eclipse.org/orion
Code	Anywhere
Orion	Architecture
http://wiki.eclipse.org/Orion/Documentation/Developer_Guide/Architecture
Orion	Architecture	(2)
1.	 Browser	client	/	remote	data.	This	is	a	pure	web	model.	A	browser-based
client	using	Orion	Java...
Client	Architecture
JavaScript	Modules	(CommonJS,	AMD)	
Plugins	and	Services	
"Hollywood	Principle"	
Promises	(=	escape	fr...
Equinox-based	Server	
Java	(OSGi)
Multi	user			
re-use	existing	Eclipse	3.x	plugins,	
expose	through	REST	interfaces	to	Or...
Node.js	based	Server
	
Single	user			
portable
high	performance
some	limitations
>	npm	install	orion
>	npm	start	orion
(go...
Community	and	Ecosystem
VMware	-	Main	contributor	to	"Scripted"	
Firefox	-	embeds	Orion	for	scratchpad	&	debug	tools	
e(fx...
Scripted	-	Editor	component
	
https://github.com/scripted-editor/scripted
>	npm	install	-g	https://github.com/scripted-edi...
Scripted	-	Key	Features
Written	in	&	focus	on	HTML5,	CSS,	JavaScript	
Very	lightweight	
JSHint,	Content	assist,	key	bindin...
DEMO
JazzHub	and	IBM	DevOps	Services
based	on	Eclipse	Orion	
Free(*)	&	Open	
Integration	with	GitHub,	Git	and	Jazz	SCM	
Team	Co...
hub.jazz.net
Screenshots
Track	Your	Work
Edit	Code
...	but	we're	open
Build	&	Deploy
DEMO
Run
Cloud	Foundry
	 	
http://cloudfoundry.org
Supporters	include	IBM,	VMware,	Pivotal,	SAP,	Rackspace,	Intel,
SwissCom	etc...
Domain	Meta-Model
	
http://www.slideshare.net/rajdeep/cloudfoundry-rajdeep-nov2013
Component	Overview
	
Source:	Pivotal	-	Cloud	Foundry	Technical	Overview
Cloud	Controller
	
Interfaces	with	clients	(cf,	Eclipse	...)	
Account	management	
provisioning	control	
REST	API	to	domain...
NATS
	
Internal	Message	Bus
Optimized	for	fast	communication
Cloud	Pattern:	
Message-oriented	middleware	 	
<
DEA
	
Droplet	Execution	Agent
Fully	isolated	containers	
(Warden,	Linux	VM)	
Manages	App	lifecycles
Buildpacks	create	drop...
Router
	
Shape	&	Route	all	traffic
dynamic	routing	table	for	load	balancing
Cloud	Pattern:	Virtual	Networking
	
<
Health	Manager
	
Monitors	app	state	(current	DEA	vs.	expected	CC)
Notify	Controller	on	mismatch	(propose	action)	
Cloud	Pa...
Service	Broker
			
Gateway	to	external	services	(e.g.	from	Marketplace)
Connect	to	processes	on	service	Nodes
Cloud	Patter...
BOSH
					
Provision,	deploy	and	manage	the	PaaS	Platform	Runtime
Independent	of	Hypervisors	/	IaaS
supports	e.g.	OpenStac...
IBM	BlueMix	(beta)
http://bluemix.net
Management	Dashboard	
Marketplace	(free	/	commercial)
Runtimes
Boilerplates
Services...
Example:	Java	Liberty	Profile
Service	Binding
Deliver
Hybrid	Devlopment	Environment
A	devOps	Pipeline
Backend	Integration
(Hybrid	Backend)
				Backend	functionality	comprised	of	data	intensive
processing	and		data	storage	is...
Call	to	Action
Join	our	local	meetups
http://www.meetup.com/PaaS-BlueMix-Developers-in-Zurich/
DeveloperWorks
	http://www....
Thanks
	
http://xkcd.com/908/
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Development in the cloud for the cloud
Upcoming SlideShare
Loading in...5
×

Development in the cloud for the cloud

484

Published on

A guest lecture I gave on 06th June 2014 at HS Rapperswil about why and how we develop for the cloud and in the cloud - and how we at IBM see it.

Topics covered are general motivation, Eclipse Orion, IBM JazzHub/devOps services, Cloud Foundry and IBM BlueMix.

Published in: Software, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
484
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
23
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Development in the cloud for the cloud"

  1. 1. Software Development [ in, for ] the Cloud Guest Lecture @ HSR 6th May 2014 Florian Georg Solution Architect - IBM Switzerland florian.georg@ch.ibm.com @florian_georg http://perceptivedev.wordpress.com
  2. 2. Welcome to...
  3. 3. Agenda Software runs the world What do we mean by "devOps" ? Develop: Eclipse Orion and IBM JazzHub Run: Cloud Foundry and IBM BlueMix Deliver: a continuous delivery pipeline Call to Action
  4. 4. Software runs the world We're in a 303.8 billion $ industry
  5. 5. New Business Models Traveling Salesman http://xkcd.com/399/
  6. 6. We like what we're doing
  7. 7. PAST (sort of)
  8. 8. TODAY >> we need new different practices, platforms and tools
  9. 9. New Challenges Productivity Time to market, the Lean Enterprise, devOps, MTBF vs. MTTR Innovation Design Thinking, User Experience (UX), disruptive technology (CAMS, IoT)... Quality continuous delivery, automation, standardized platforms
  10. 10. Productivity ? Moore's Law does not apply to Software
  11. 11. Innovation ?
  12. 12. Quality ? Development != Delivery
  13. 13. What we mean by "devOps" first principle of the "Agile Manifesto"
  14. 14. IBM Vision
  15. 15. Cloud to the rescue ? Cloud Service Models can help... reduce administrative burden of technology stacks Streamline & standardize delivery processes shorten delivery & feedback cycles
  16. 16. Raising Levels of Abstraction < <<
  17. 17. Taxonomy http://www.cloudcomputingpatterns.org/ A Pattern language for solutions for designing, building & managing Cloud applications
  18. 18. Dan Berg: Adopting a devOps approach with cloud http://youtu.be/fVaJigwfNY4
  19. 19. Pattern: PaaS Providers share IT resources providing an application hosting environment between customers to enable self- service, rapid elasticity, and pay-per-use pricing. http://www.cloudcomputingpatterns.org/Platform_as_a_Service_(PaaS)
  20. 20. Pattern: SaaS Providers share IT resources providing human-usable application software between customers to enable self- service, rapid elasticity, and pay-per-use pricing. http://www.cloudcomputingpatterns.org/Software_as_a_Service_(SaaS)
  21. 21. Develop
  22. 22. Cloud, Anyone ?
  23. 23. What About Private Clouds ? Better utilization of corporate data centers (outsourcing, "follow the sun development" etc.) Improved time to market Reduce administration burden (e.g. workstation provisioning & patching) Multi-tenant models for different business units Frictionless application lifecycle management http://www.cloudcomputingpatterns.org/Private_Cloud
  24. 24. Eclipse Orion http://eclipse.org/orion
  25. 25. Code Anywhere
  26. 26. Orion Architecture http://wiki.eclipse.org/Orion/Documentation/Developer_Guide/Architecture
  27. 27. Orion Architecture (2) 1. Browser client / remote data. This is a pure web model. A browser-based client using Orion JavaScript client libraries and accessing remote Orion services via REST API. 2. Mixed client / local data. A rich client (traditional Eclipse client), which contains a mixture of "legacy" components written in Java and web components written in JavaScript. The JavaScript components interact with JavaScript libraries and/or REST APIs, while Java components interact with the Eclipse Platform Java APIs. 3. Rich client / remote data. Traditional Eclipse client components interacting with remote Orion services via REST API. This enables a mixture of rich client and browser-based tools to inter-operate against the same server-side data. 4. Remote client / remote data. Server side tools written in Java, accessing local Orion services (for example a build server working against an Orion workspace server on the same machine).
  28. 28. Client Architecture JavaScript Modules (CommonJS, AMD) Plugins and Services "Hollywood Principle" Promises (= escape from callback hell) var provider = new orion.PluginProvider(); var serviceImpl = { run : function(text) { return text.toUpperCase(); } }; var serviceProps = { name : "UPPERCASE", img : "/images/gear.gif", key : [ "u", true ] }; provider.registerService("orion.edit.command", serviceImpl, serviceProps); provider.connect();
  29. 29. Equinox-based Server Java (OSGi) Multi user re-use existing Eclipse 3.x plugins, expose through REST interfaces to Orion client
  30. 30. Node.js based Server Single user portable high performance some limitations > npm install orion > npm start orion (goto http://localhost:8081)
  31. 31. Community and Ecosystem VMware - Main contributor to "Scripted" Firefox - embeds Orion for scratchpad & debug tools e(fx)clipse - JavaFX, OSGi, Eclipse and Orion Maqetta - Orion core and file system Pivotal, HP, SAP ...
  32. 32. Scripted - Editor component https://github.com/scripted-editor/scripted > npm install -g https://github.com/scripted-editor/scripted/tarball/dev [..] // ^ as of 2014-05-02: had error in main branch > scr foobar.js (project root for indexing etc: looks for nearest .git/.scripted file)
  33. 33. Scripted - Key Features Written in & focus on HTML5, CSS, JavaScript Very lightweight JSHint, Content assist, key bindings ...
  34. 34. DEMO
  35. 35. JazzHub and IBM DevOps Services based on Eclipse Orion Free(*) & Open Integration with GitHub, Git and Jazz SCM Team Code Collaboration Agile Planning & Tracking Different Clients (Eclipse, CLI, Web IDE) (*) public projects, private projects free during beta Pattern: SaaS
  36. 36. hub.jazz.net
  37. 37. Screenshots
  38. 38. Track Your Work
  39. 39. Edit Code
  40. 40. ... but we're open
  41. 41. Build & Deploy
  42. 42. DEMO
  43. 43. Run
  44. 44. Cloud Foundry http://cloudfoundry.org Supporters include IBM, VMware, Pivotal, SAP, Rackspace, Intel, SwissCom etc...
  45. 45. Domain Meta-Model http://www.slideshare.net/rajdeep/cloudfoundry-rajdeep-nov2013
  46. 46. Component Overview Source: Pivotal - Cloud Foundry Technical Overview
  47. 47. Cloud Controller Interfaces with clients (cf, Eclipse ...) Account management provisioning control REST API to domain model Cloud Pattern: Managed Configuration <
  48. 48. NATS Internal Message Bus Optimized for fast communication Cloud Pattern: Message-oriented middleware <
  49. 49. DEA Droplet Execution Agent Fully isolated containers (Warden, Linux VM) Manages App lifecycles Buildpacks create droplets that execute on a DEA Cloud Pattern: Multi Component Image, Tenant-isolated Component < <
  50. 50. Router Shape & Route all traffic dynamic routing table for load balancing Cloud Pattern: Virtual Networking <
  51. 51. Health Manager Monitors app state (current DEA vs. expected CC) Notify Controller on mismatch (propose action) Cloud Pattern: Watchdog <
  52. 52. Service Broker Gateway to external services (e.g. from Marketplace) Connect to processes on service Nodes Cloud Pattern: Integration Provider, Application Component Proxy >
  53. 53. BOSH Provision, deploy and manage the PaaS Platform Runtime Independent of Hypervisors / IaaS supports e.g. OpenStack, IBM SoftLayer, vFabric ... Cloud Patterns: a lot :) >
  54. 54. IBM BlueMix (beta) http://bluemix.net Management Dashboard Marketplace (free / commercial) Runtimes Boilerplates Services ...
  55. 55. Example: Java Liberty Profile
  56. 56. Service Binding
  57. 57. Deliver
  58. 58. Hybrid Devlopment Environment
  59. 59. A devOps Pipeline
  60. 60. Backend Integration (Hybrid Backend) Backend functionality comprised of data intensive processing and data storage is experiencing varying workloads and is hosted in an elastic cloud while the rest of an application is hosted in a static data center.
  61. 61. Call to Action Join our local meetups http://www.meetup.com/PaaS-BlueMix-Developers-in-Zurich/ DeveloperWorks http://www.ibm.com/developerworks/ Contact aboutflorian.georg@ch.ibm.com questions student projects mentoring requests (thesis etc.) open source projects IBM sponsoring possibilities (startup programs etc.)
  62. 62. Thanks http://xkcd.com/908/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×