際際滷

際際滷Share a Scribd company logo
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
Welcome	to...
Development in the cloud for the cloud
Development in the cloud for the cloud
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
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	Experience	(UX),	disruptive	technology	(CAMS,	IoT)...	
Quality	
continuous	delivery,	automation,	standardized	platforms
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	&	standardize	delivery	processes	
shorten	delivery	&	feedback	cycles
Raising	Levels	of	Abstraction
	<
<<
Taxonomy
	http://www.cloudcomputingpatterns.org/
		A	Pattern	language	for	solutions	for	designing,	building	&	managing	Cloud	applications
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-
service,	rapid	elasticity,	and	pay-per-use	pricing.
http://www.cloudcomputingpatterns.org/Platform_as_a_Service_(PaaS)
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)
Develop
Cloud,	Anyone	?
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
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	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).
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();
Equinox-based	Server	
Java	(OSGi)
Multi	user			
re-use	existing	Eclipse	3.x	plugins,	
expose	through	REST	interfaces	to	Orion	client
Node.js	based	Server
	
Single	user			
portable
high	performance
some	limitations
>	npm	install	orion
>	npm	start	orion
(goto	http://localhost:8081)
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	...
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)
Scripted	-	Key	Features
Written	in	&	focus	on	HTML5,	CSS,	JavaScript	
Very	lightweight	
JSHint,	Content	assist,	key	bindings	...
DEMO
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
Development in the cloud for the cloud
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	model	
Cloud	Pattern:	Managed	Configuration 	
	<
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	droplets	
that	execute	on	a	DEA	
Cloud	Pattern:	Multi	Component	Image,	
Tenant-isolated	Component 	 	
<
<
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	Pattern:	Watchdog
	
<
Service	Broker
			
Gateway	to	external	services	(e.g.	from	Marketplace)
Connect	to	processes	on	service	Nodes
Cloud	Pattern:	Integration	Provider,	
Application	Component	Proxy
	 	
>
BOSH
					
Provision,	deploy	and	manage	the	PaaS	Platform	Runtime
Independent	of	Hypervisors	/	IaaS
supports	e.g.	OpenStack,	IBM	SoftLayer,	vFabric	...
Cloud	Patterns:	a	lot	:)
>
IBM	BlueMix	(beta)
http://bluemix.net
Management	Dashboard	
Marketplace	(free	/	commercial)
Runtimes
Boilerplates
Services
...
Development in the cloud for the cloud
Development in the cloud for the cloud
Example:	Java	Liberty	Pro鍖le
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
Service	Binding
Development in the cloud for the cloud
Deliver
Hybrid	Devlopment	Environment
A	devOps	Pipeline
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.
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.)
Thanks
	
http://xkcd.com/908/

More Related Content

Development in the cloud for the cloud