4. Cloud software development - software development-for-the-public-cloud-platforms
Development in the cloud for the cloud
-
Upload
florian-georg -
Category
Software
-
view
447 -
download
5
description
Transcript of Development in the cloud for the cloud
SoftwareDevelopment[in,for]theCloud
GuestLecture@HSR6thMay2014
FlorianGeorgSolutionArchitect-IBMSwitzerlandflorian.georg@ch.ibm.com@florian_georghttp://perceptivedev.wordpress.com
Welcometo...
Agenda
SoftwarerunstheworldWhatdowemeanby"devOps"?
Develop:EclipseOrionandIBMJazzHubRun:CloudFoundryandIBMBlueMixDeliver:acontinuousdeliverypipeline
CalltoAction
Softwarerunstheworld
We'reina303.8billion$industry
NewBusinessModelsTravelingSalesman
http://xkcd.com/399/
Welikewhatwe'redoing
PAST(sortof)
TODAY
>>weneednewdifferentpractices,platformsandtools
NewChallenges
ProductivityTimetomarket,theLeanEnterprise,devOps,MTBFvs.MTTR
InnovationDesignThinking,UserExperience(UX),disruptivetechnology(CAMS,IoT)...
Qualitycontinuousdelivery,automation,standardizedplatforms
Productivity?Moore'sLawdoesnotapplytoSoftware
Innovation?
Quality?
Development!=Delivery
Whatwemeanby"devOps"
firstprincipleofthe"AgileManifesto"
IBMVision
Cloudtotherescue?
CloudServiceModelscanhelp...
reduceadministrativeburdenoftechnologystacksStreamline&standardizedeliveryprocessesshortendelivery&feedbackcycles
RaisingLevelsofAbstraction
<
<<
Taxonomyhttp://www.cloudcomputingpatterns.org/
APatternlanguageforsolutionsfordesigning,building&managingCloudapplications
DanBerg:AdoptingadevOpsapproachwithcloud http://youtu.be/fVaJigwfNY4
Pattern:PaaS
ProvidersshareITresourcesprovidinganapplicationhostingenvironmentbetweencustomerstoenableself-service,rapidelasticity,andpay-per-usepricing.
http://www.cloudcomputingpatterns.org/Platform_as_a_Service_(PaaS)
Pattern:SaaS
ProvidersshareITresourcesprovidinghuman-usableapplicationsoftwarebetweencustomerstoenableself-service,rapidelasticity,andpay-per-usepricing.
http://www.cloudcomputingpatterns.org/Software_as_a_Service_(SaaS)
Develop
Cloud,Anyone?
WhatAboutPrivateClouds?
Betterutilizationofcorporatedatacenters(outsourcing,"followthesundevelopment"etc.)ImprovedtimetomarketReduceadministrationburden(e.g.workstationprovisioning&patching)Multi-tenantmodelsfordifferentbusinessunitsFrictionlessapplicationlifecyclemanagement
http://www.cloudcomputingpatterns.org/Private_Cloud
EclipseOrion
http://eclipse.org/orion
CodeAnywhere
OrionArchitecture
http://wiki.eclipse.org/Orion/Documentation/Developer_Guide/Architecture
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).
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();
Equinox-basedServer
Java(OSGi)Multiuserre-useexistingEclipse3.xplugins,exposethroughRESTinterfacestoOrionclient
Node.jsbasedServer
Singleuserportablehighperformancesomelimitations
>npminstallorion>npmstartorion
(gotohttp://localhost:8081)
CommunityandEcosystem
VMware-Maincontributorto"Scripted"Firefox-embedsOrionforscratchpad&debugtoolse(fx)clipse-JavaFX,OSGi,EclipseandOrionMaqetta-OrioncoreandfilesystemPivotal,HP,SAP...
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)
Scripted-KeyFeatures
Writtenin&focusonHTML5,CSS,JavaScriptVerylightweightJSHint,Contentassist,keybindings...
DEMO
JazzHubandIBMDevOpsServices
basedonEclipseOrionFree(*)&OpenIntegrationwithGitHub,GitandJazzSCMTeamCodeCollaborationAgilePlanning&TrackingDifferentClients(Eclipse,CLI,WebIDE)
(*)publicprojects,privateprojectsfreeduring
beta
Pattern:SaaS
hub.jazz.net
Screenshots
TrackYourWork
EditCode
...butwe'reopen
Build&Deploy
DEMO
Run
CloudFoundry
http://cloudfoundry.org
SupportersincludeIBM,VMware,Pivotal,SAP,Rackspace,Intel,SwissCometc...
DomainMeta-Model
http://www.slideshare.net/rajdeep/cloudfoundry-rajdeep-nov2013
ComponentOverview
Source:Pivotal-CloudFoundryTechnicalOverview
CloudController
Interfaceswithclients(cf,Eclipse...)AccountmanagementprovisioningcontrolRESTAPItodomainmodelCloudPattern:ManagedConfiguration
<
NATS
InternalMessageBusOptimizedforfastcommunicationCloudPattern:Message-orientedmiddleware
<
DEA
DropletExecutionAgentFullyisolatedcontainers(Warden,LinuxVM)ManagesApplifecyclesBuildpackscreatedropletsthatexecuteonaDEACloudPattern:MultiComponentImage,Tenant-isolatedComponent
<
<
Router
Shape&RoutealltrafficdynamicroutingtableforloadbalancingCloudPattern:VirtualNetworking
<
HealthManager
Monitorsappstate(currentDEAvs.expectedCC)NotifyControlleronmismatch(proposeaction)CloudPattern:Watchdog
<
ServiceBroker
Gatewaytoexternalservices(e.g.fromMarketplace)ConnecttoprocessesonserviceNodesCloudPattern:IntegrationProvider,ApplicationComponentProxy
>
BOSH
Provision,deployandmanagethePaaSPlatformRuntimeIndependentofHypervisors/IaaSsupportse.g.OpenStack,IBMSoftLayer,vFabric...CloudPatterns:alot:)
>
IBMBlueMix(beta)
http://bluemix.net
ManagementDashboardMarketplace(free/commercial)RuntimesBoilerplatesServices
...
Example:JavaLibertyProfile
ServiceBinding
Deliver
HybridDevlopmentEnvironment
AdevOpsPipeline
BackendIntegration(HybridBackend)
Backendfunctionalitycomprisedofdataintensiveprocessinganddatastorageisexperiencingvaryingworkloadsandishostedinanelasticcloudwhiletherestof
anapplicationishostedinastaticdatacenter.
CalltoActionJoinourlocalmeetups
http://www.meetup.com/PaaS-BlueMix-Developers-in-Zurich/
DeveloperWorkshttp://www.ibm.com/developerworks/
Contact aboutflorian.georg@ch.ibm.comquestionsstudentprojectsmentoringrequests(thesisetc.)opensourceprojectsIBMsponsoringpossibilities(startupprogramsetc.)
Thanks
http://xkcd.com/908/