development in the cloud for the cloud

82
Software Development [ in, for ] the Cloud Guest Lecture @ HSR 6th May 2014 Florian Georg Solution Architect - IBM Switzerland [email protected] @florian_georg http://perceptivedev.wordpress.com

Upload: florian-georg

Post on 08-May-2015

446 views

Category:

Software


5 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: Development in the cloud for the cloud

SoftwareDevelopment[in,for]theCloud

GuestLecture@HSR6thMay2014

FlorianGeorgSolutionArchitect-IBMSwitzerlandflorian.georg@ch.ibm.com@florian_georghttp://perceptivedev.wordpress.com

Page 2: Development in the cloud for the cloud

Welcometo...

Page 3: Development in the cloud for the cloud
Page 4: Development in the cloud for the cloud
Page 5: Development in the cloud for the cloud

Agenda

SoftwarerunstheworldWhatdowemeanby"devOps"?

Develop:EclipseOrionandIBMJazzHubRun:CloudFoundryandIBMBlueMixDeliver:acontinuousdeliverypipeline

CalltoAction

Page 6: Development in the cloud for the cloud

Softwarerunstheworld

We'reina303.8billion$industry

Page 7: Development in the cloud for the cloud

NewBusinessModelsTravelingSalesman

http://xkcd.com/399/

Page 8: Development in the cloud for the cloud

Welikewhatwe'redoing

Page 9: Development in the cloud for the cloud

PAST(sortof)

Page 10: Development in the cloud for the cloud

TODAY

>>weneednewdifferentpractices,platformsandtools

Page 11: Development in the cloud for the cloud

NewChallenges

ProductivityTimetomarket,theLeanEnterprise,devOps,MTBFvs.MTTR

InnovationDesignThinking,UserExperience(UX),disruptivetechnology(CAMS,IoT)...

Qualitycontinuousdelivery,automation,standardizedplatforms

Page 12: Development in the cloud for the cloud

Productivity?Moore'sLawdoesnotapplytoSoftware

Page 13: Development in the cloud for the cloud

Innovation?

Page 14: Development in the cloud for the cloud

Quality?

Development!=Delivery

Page 15: Development in the cloud for the cloud

Whatwemeanby"devOps"

firstprincipleofthe"AgileManifesto"

Page 16: Development in the cloud for the cloud

IBMVision

Page 17: Development in the cloud for the cloud

Cloudtotherescue?

CloudServiceModelscanhelp...

reduceadministrativeburdenoftechnologystacksStreamline&standardizedeliveryprocessesshortendelivery&feedbackcycles

Page 18: Development in the cloud for the cloud

RaisingLevelsofAbstraction

<

<<

Page 19: Development in the cloud for the cloud

Taxonomyhttp://www.cloudcomputingpatterns.org/

APatternlanguageforsolutionsfordesigning,building&managingCloudapplications

Page 20: Development in the cloud for the cloud

DanBerg:AdoptingadevOpsapproachwithcloud http://youtu.be/fVaJigwfNY4

Page 21: Development in the cloud for the cloud

Pattern:PaaS

ProvidersshareITresourcesprovidinganapplicationhostingenvironmentbetweencustomerstoenableself-service,rapidelasticity,andpay-per-usepricing.

http://www.cloudcomputingpatterns.org/Platform_as_a_Service_(PaaS)

Page 22: Development in the cloud for the cloud

Pattern:SaaS

ProvidersshareITresourcesprovidinghuman-usableapplicationsoftwarebetweencustomerstoenableself-service,rapidelasticity,andpay-per-usepricing.

http://www.cloudcomputingpatterns.org/Software_as_a_Service_(SaaS)

Page 23: Development in the cloud for the cloud

Develop

Page 24: Development in the cloud for the cloud

Cloud,Anyone?

Page 25: Development in the cloud for the cloud

WhatAboutPrivateClouds?

Betterutilizationofcorporatedatacenters(outsourcing,"followthesundevelopment"etc.)ImprovedtimetomarketReduceadministrationburden(e.g.workstationprovisioning&patching)Multi-tenantmodelsfordifferentbusinessunitsFrictionlessapplicationlifecyclemanagement

http://www.cloudcomputingpatterns.org/Private_Cloud

Page 26: Development in the cloud for the cloud

EclipseOrion

http://eclipse.org/orion

Page 27: Development in the cloud for the cloud

CodeAnywhere

Page 28: Development in the cloud for the cloud

OrionArchitecture

http://wiki.eclipse.org/Orion/Documentation/Developer_Guide/Architecture

Page 29: Development in the cloud for the cloud

OrionArchitecture(2)

1. Browserclient/remotedata.Thisisapurewebmodel.Abrowser-basedclientusingOrionJavaScriptclientlibrariesandaccessingremoteOrionservicesviaRESTAPI.

2. Mixedclient/localdata.Arichclient(traditionalEclipseclient),whichcontainsamixtureof"legacy"componentswritteninJavaandwebcomponentswritteninJavaScript.TheJavaScriptcomponentsinteractwithJavaScriptlibrariesand/orRESTAPIs,whileJavacomponentsinteractwiththeEclipsePlatformJavaAPIs.

3. Richclient/remotedata.TraditionalEclipseclientcomponentsinteractingwithremoteOrionservicesviaRESTAPI.Thisenablesamixtureofrichclientandbrowser-basedtoolstointer-operateagainstthesameserver-sidedata.

4. Remoteclient/remotedata.ServersidetoolswritteninJava,accessinglocalOrionservices(forexampleabuildserverworkingagainstanOrionworkspaceserveronthesamemachine).

Page 30: Development in the cloud for the cloud

ClientArchitecture

JavaScriptModules(CommonJS,AMD)PluginsandServices"HollywoodPrinciple"Promises(=escapefromcallbackhell)

varprovider=neworion.PluginProvider();varserviceImpl={run:function(text){returntext.toUpperCase();}};varserviceProps={name:"UPPERCASE",img:"/images/gear.gif",key:["u",true]};provider.registerService("orion.edit.command",serviceImpl,serviceProps);provider.connect();

Page 31: Development in the cloud for the cloud

Equinox-basedServer

Java(OSGi)Multiuserre-useexistingEclipse3.xplugins,exposethroughRESTinterfacestoOrionclient

Page 32: Development in the cloud for the cloud

Node.jsbasedServer

Singleuserportablehighperformancesomelimitations

>npminstallorion>npmstartorion

(gotohttp://localhost:8081)

Page 33: Development in the cloud for the cloud

CommunityandEcosystem

VMware-Maincontributorto"Scripted"Firefox-embedsOrionforscratchpad&debugtoolse(fx)clipse-JavaFX,OSGi,EclipseandOrionMaqetta-OrioncoreandfilesystemPivotal,HP,SAP...

Page 34: Development in the cloud for the cloud

Scripted-Editorcomponent

https://github.com/scripted-editor/scripted

>npminstall-ghttps://github.com/scripted-editor/scripted/tarball/dev[..]//^asof2014-05-02:haderrorinmainbranch>scrfoobar.js

(projectrootforindexingetc:looksfornearest.git/.scriptedfile)

Page 35: Development in the cloud for the cloud

Scripted-KeyFeatures

Writtenin&focusonHTML5,CSS,JavaScriptVerylightweightJSHint,Contentassist,keybindings...

Page 36: Development in the cloud for the cloud

DEMO

Page 37: Development in the cloud for the cloud

JazzHubandIBMDevOpsServices

basedonEclipseOrionFree(*)&OpenIntegrationwithGitHub,GitandJazzSCMTeamCodeCollaborationAgilePlanning&TrackingDifferentClients(Eclipse,CLI,WebIDE)

(*)publicprojects,privateprojectsfreeduring

beta

Pattern:SaaS

Page 38: Development in the cloud for the cloud
Page 39: Development in the cloud for the cloud

hub.jazz.net

Page 40: Development in the cloud for the cloud

Screenshots

Page 41: Development in the cloud for the cloud

TrackYourWork

Page 42: Development in the cloud for the cloud

EditCode

Page 43: Development in the cloud for the cloud

...butwe'reopen

Page 44: Development in the cloud for the cloud

Build&Deploy

Page 45: Development in the cloud for the cloud

DEMO

Page 46: Development in the cloud for the cloud

Run

Page 47: Development in the cloud for the cloud

CloudFoundry

http://cloudfoundry.org

SupportersincludeIBM,VMware,Pivotal,SAP,Rackspace,Intel,SwissCometc...

Page 48: Development in the cloud for the cloud

DomainMeta-Model

http://www.slideshare.net/rajdeep/cloudfoundry-rajdeep-nov2013

Page 49: Development in the cloud for the cloud

ComponentOverview

Source:Pivotal-CloudFoundryTechnicalOverview

Page 50: Development in the cloud for the cloud

CloudController

Interfaceswithclients(cf,Eclipse...)AccountmanagementprovisioningcontrolRESTAPItodomainmodelCloudPattern:ManagedConfiguration

<

Page 51: Development in the cloud for the cloud

NATS

InternalMessageBusOptimizedforfastcommunicationCloudPattern:Message-orientedmiddleware

<

Page 52: Development in the cloud for the cloud

DEA

DropletExecutionAgentFullyisolatedcontainers(Warden,LinuxVM)ManagesApplifecyclesBuildpackscreatedropletsthatexecuteonaDEACloudPattern:MultiComponentImage,Tenant-isolatedComponent

<

<

Page 53: Development in the cloud for the cloud

Router

Shape&RoutealltrafficdynamicroutingtableforloadbalancingCloudPattern:VirtualNetworking

<

Page 54: Development in the cloud for the cloud

HealthManager

Monitorsappstate(currentDEAvs.expectedCC)NotifyControlleronmismatch(proposeaction)CloudPattern:Watchdog

<

Page 55: Development in the cloud for the cloud

ServiceBroker

Gatewaytoexternalservices(e.g.fromMarketplace)ConnecttoprocessesonserviceNodesCloudPattern:IntegrationProvider,ApplicationComponentProxy

>

Page 56: Development in the cloud for the cloud

BOSH

Provision,deployandmanagethePaaSPlatformRuntimeIndependentofHypervisors/IaaSsupportse.g.OpenStack,IBMSoftLayer,vFabric...CloudPatterns:alot:)

>

Page 57: Development in the cloud for the cloud

IBMBlueMix(beta)

http://bluemix.net

ManagementDashboardMarketplace(free/commercial)RuntimesBoilerplatesServices

...

Page 58: Development in the cloud for the cloud
Page 59: Development in the cloud for the cloud
Page 60: Development in the cloud for the cloud

Example:JavaLibertyProfile

Page 61: Development in the cloud for the cloud
Page 62: Development in the cloud for the cloud
Page 63: Development in the cloud for the cloud
Page 64: Development in the cloud for the cloud
Page 65: Development in the cloud for the cloud
Page 66: Development in the cloud for the cloud
Page 67: Development in the cloud for the cloud
Page 68: Development in the cloud for the cloud
Page 69: Development in the cloud for the cloud
Page 70: Development in the cloud for the cloud
Page 71: Development in the cloud for the cloud
Page 72: Development in the cloud for the cloud
Page 73: Development in the cloud for the cloud
Page 74: Development in the cloud for the cloud
Page 75: Development in the cloud for the cloud

ServiceBinding

Page 76: Development in the cloud for the cloud
Page 77: Development in the cloud for the cloud

Deliver

Page 78: Development in the cloud for the cloud

HybridDevlopmentEnvironment

Page 79: Development in the cloud for the cloud

AdevOpsPipeline

Page 80: Development in the cloud for the cloud

BackendIntegration(HybridBackend)

Backendfunctionalitycomprisedofdataintensiveprocessinganddatastorageisexperiencingvaryingworkloadsandishostedinanelasticcloudwhiletherestof

anapplicationishostedinastaticdatacenter.

Page 81: Development in the cloud for the cloud

CalltoActionJoinourlocalmeetups

http://www.meetup.com/PaaS-BlueMix-Developers-in-Zurich/

DeveloperWorkshttp://www.ibm.com/developerworks/

Contact aboutflorian.georg@ch.ibm.comquestionsstudentprojectsmentoringrequests(thesisetc.)opensourceprojectsIBMsponsoringpossibilities(startupprogramsetc.)

Page 82: Development in the cloud for the cloud

Thanks

http://xkcd.com/908/