cloud optimization - gurobi and cloud foundryschd.ws/hosted_files/cfsummit2016/d8/philip...

21
Cloud Optimization: Gurobi & Cloud Foundry

Upload: phungkiet

Post on 05-May-2018

228 views

Category:

Documents


1 download

TRANSCRIPT

CloudOptimization:Gurobi&CloudFoundry

PhilipGlebowDirectorPricingArchitectureGapInc.

Introduction• Topic:OptimizationusingGurobiandCloudFoundry• Assumptionsmade• Notanendorsement

Overview• WhatisOptimization?• TheBusinessProblem• WhyCloud&CloudFoundry?• IntegrationOverview• OrganizationalIssues• Q&A• PresenterBiography• References

WhatisOptimization?• Example:TheDietProblem

– Selectfoodsthatmeetnutritionalrequirementsattheminimumcost

• Example:FacilityLocation– Awarehousesuppliessupermarkets

• Reducingthedistancetoamarketfromawarehousesavesmoney• Openingawarehouseiscostlythough

– What’stheoptimaltradeoffbetweendeliveryandthecostofbuildingnewfacilities?

BusinessProblem• LocalizedPromotionalPricing• Anon-trivialoptimizationproblem• Initialresultsindicatewecanmeetthetimingobjectiveusing90c4.4xlargeinstancesusingtheGurobiInstantCloudProduct

WhyCloud?• Wecanvary…

– Cost– Performance– Hardware

• Thecloudsolutionallowsustobuildanelastic,high-performancesolutionthatcanscale

• Wedon’tneedtobuildandmaintainaserversthatsitidleforalargeperiodoftimeeachday

WhatisCloudFoundry?• Anopen-sourcePlatform-As-A-Service(PaaS)whichallowsdeveloperstoeasilybuild,deploy,runandscaleapplications

• Worksbestwith12-factorapplications– Seehttp://12factor.net formoredetail

• Seehttps://www.cloudfoundry.org formoredetail

AdvantagesofCloudFoundry• Quick&easytodeploy– SimplificationofCI/CD

• Quicktoscale• Infrastructuresimplification• Usefulpatterns

IntegrationOverview

TechStack

IntegrationOverview• TheoptimizationproblemisexpressedinJavausingGurobi’sAPI• SpringBootisthedevelopmentframework• RabbitMQisusedforconcurrency,resilienceandnotification• AsetofRESTservicesprovide

– Datatothemodel– Processcontrol– Awaytoretrieveresults

• Aweb-basedUIallowsuserstoacceptorrejectrecommendations• SystemisdeployedtoCloudFoundry• Itusesavarietyofdataservices

– Datavirtualizationtechnology– NoSQLdatabasetostoreresults

DeploymentDiagram

SequenceDiagram:CreateCloud

SequenceDiagram:BuildMessages

SequenceDiagram:ProcessMessages

OrganizationalIssues• Javaisnotthepreferredlanguagefordatascience/optimization

• AgileDevelopmentinaWaterfallContext

Q&A

BiographyofthePresenterPhilipGlebowisasoftwarearchitectatGapInc.andistheproductarchitectforpricingintheplanningdomain.PriortojoiningGapInc.,Mr.GlebowworkedasasoftwarearchitectinfinancialservicesforBlackrock,Inc.andBarclays.HebeganhiscareerasaconsultantwhereheworkedoncomplexcustomsoftwaresolutionsintheInformation,CommunicationsandEntertainmentpracticeatBearingPoint(previouslyKPMGConsulting,Inc.).Mr.GlebowholdsaBachelorofScienceinComputerEngineeringfromCalPolySanLuisObispoandaMastersofScienceinBioinformaticsfromtheJohnsHopkinsUniversity.HemaybereachedviaLinkedInatwww.linkedin.com/in/[email protected].

References• https://en.wikipedia.org/wiki/Linear_programming• Gurobi- http://www.gurobi.com• InteractiveFacilityLocationDemo-

http://examples.gurobi.com/facility-location• SpringBoot- http://projects.spring.io/spring-boot• CloudFoundry- https://www.cloudfoundry.org• TheTwelve-FactorApp- http://12factor.net• RabbitMQ- https://www.rabbitmq.com• MongoDB- https://www.mongodb.org

Thankyou!