BecomeaBluemix Architectinanhour 45minutes
(a.k.a.learnmyjobin2,700seconds)(perhapsnotquite)
AndrewFerrierBluemix SolutionArchitect, IBMBluemix Garage
Agenda
• WhatisBluemix (andwhywouldIuseit)?• MajorComponents– ComputeModels
• Anaside:Microservices
• MajorComponents– Services• NFRs– Security,Performance,Integration• FurtherInformation
WhatisBluemix (andwhywhould Iuseit)?
ThirdParty
IBM
YourOwn
OpenSource
What is Bluemix?
Amanaged platformtodevelop,deployandrunenterpriseapplications
?
Why?• Developinthecloud– reduce
infrastructurehassles
• FastDevelopmentusingDevOps
• Standards-based–NodeJS,Java,CloudFoundry,Dockerarejustsomeofthemanyopentechnologies
• Diversesetofservices• Analytics, cognition• Mobile, location• Internet of Things• Social engagement • Identity • Reviews• Travel• Messaging• Weather …• Your company private APIs and services
MajorComponents– ComputeModels
Virtual Servers
“Abstraction”
“Control”
Bare Metal
Dedicated Compute
High Memory
Intensive Disk I/O
Isolation
Familiar
Full OperatingSystem Control
Containers
Portable
Flexible
Light-weight
CF Apps
Speed
Manage code,not infrastructure
OpenWhiskStateless
Event-Driven
Short-lived
…m
eets
you
r dev
elop
er n
eeds
…
PaaSCaaSIaaS
Bluemix Compute Models
AnAside:Microservices
Microservicesarchitecture
Amicroservice isagranular,decoupledcomponentwithinabroaderapplication
Monolithicapplication
Silo
Microservicesapplication
Microservice(component)
Microservice(component)
Microservice(component)
• Agility• Scalability• Resilience
Simplistically,microservicesarchitectureisaboutbreakingdownlargesiloapplicationsintomoremanageable,fullydecoupledpieces
Sampleapplicationthatusesmicroservices• Airlinereservationapplication
• Bookflights• Timetable lookup• Calculate fare• Allocate seats• Managerewards• Updatecustomer• Adjustinventory
bookFlights
calculateFare
allocateSeats
manageRewards
timetableLookup
adjustInventory
updateCustomer
Keytenetsofamicroservicesarchitecture1. Largemonolithsarebrokendownintomanysmall
services• Eachservice runsinitsownprocess
2. Servicesareoptimizedforasinglebusinessfunction3. CommunicationviaRESTAPIormessagebrokers4. Per-servicecontinuousintegrationandcontinuous
deployment(CI/CD)5. Per-servicehighavailability(HA)andclusteringdecisions
• Onesizeorscaling policyisnotappropriateforall
Backtothosecomputemodels…
What is Docker?• OpenSoftware,LaunchedMarch2013,contributors includeIBM,RedHat,Google,Microsoft,VMware,AWS,Rackspace,…
• Automatesdeployment ofapplications insoftwarecontainers
• Applicationsarewrappedinacompletefilesystemthat includesCode,runtime,systemtools,andsystemlibraries
• Willalwaysrunthesameway,independent oftheenvironment
• Merelythemostpopular implementationofageneralconceptofcontainers
• DockerisLinux-only
ProcessPID
IPC
=Namespaces forisolation
CPUMemory
=Controlgroupsfor resourceconstraint
IBM Bluemix Container ServiceDocker-basedcontainerruntime,plus:• ManageanddistributeDockerimagesinprivateimageregistries
• Built-inelasticityandauto-recovery• Built-inloggingandmonitoring• Vulnerabilityscannertodetectissuesandproposeresolution
• IntegrationwithDevOpstoolstosupportbuildingofimages
• NewbetabasedonKubernetes(containerorchestrator)asofMarch20th,bringing:
• Declarativetopologyofcontainers• Automatic deployment ofcontainerstoresources
• Self-healing abilities• Integratedservicediscovery• Abilitytodorichsecret andconfigurationmanagement
CloudFoundry(akaInstantRuntimes)
• Buildpack-basedruntimes• Bluemix provideshostedopen-sourceCloudFoundry,pluscustombuildpacks:
• LibertyforJava• Node.js• Swift• AccesstoBluemix ServiceCatalog
OperatingSystem
AppServer/Runtime
YourCode
Buildpack
OpenWhisk
• Serverless applicationhosting,event-drivenexecution
• Programmingmodel• Rule:=Triggerà Action(s)
• Triggers• EventsfromREST,Cloudant,Watson,Weather,etc.
• Actionprogrammingmodel• Ideallyamicroservice,short-running• CloudFoundryapplication• Dockercontainer• ActionscanuseBluemix servicecatalog
Pool of actions
Swift DockerJS
Trigger
1
Running action
Running action
Running action
3
Deploy action within millisecs,run it, free up resources
OpenWhisk Engine
2
Bare Metal ContainersVirtual Servers Cloud Foundry OpenWhisk
Actions: Code (single function)
Triggers: Events/Messages
Code
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
Code
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
Code
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
Code
Data
OS
Virtualization
Servers
Storage
Networking
Runtime
Middleware
Customer ManagedService Provider Managed
Actions & Triggers
Levels of Responsibility
MajorComponents– ServiceCatalog
(Very)SelectedHighlights
Cloudant – NoSQLDatabase
APIConnect– APIs/Integrationfor2017
WebSphereonCloud– MigrationPath
WatsonServices(Conversation,NaturalLanguage,VisualRecognition,etc.)
NFRs(theDifficultBits)
Integration(Networking)
• Bluemix Public• Partofthepublicinternet• Internetworkingwithon-prem:
1. UseServiceGatewayand/orVPNOR2. ExposeAPIsfromexistingon-premise
• Bluemix Dedicated• Bydefault,networkispartofcustomer’snetwork• Canbeopenedtopublicinternetalso
• Bluemix Local• Alwaysnetworkedtobepartofcustomer’sinfrastructure
Integration(Functional)
• APIConnectforGreenfield
• IIBisalsoanoption:
Security
• Bluemix Public• MakeeverythingrunoverHTTPS• AllCFruntimes areexposedpublically;Docker(inparticularwithKubernetes)willprovidemorecapability
• Thinkaboutdataresidency– CFservices canbeprovisionedanywhere
• Bluemix Dedicated• Dataresides outside yourdatacenter
• Bluemix Local• Dataresides locallyas longasyouusealocalservice• Ifyouuseafederatedservice, youareusingPublic
Performance
• Thinkhorizontalscalingi.e.scalingisprettymuchconstantagainstnumberofinstances
• Impliesstateless architectures(nomoresessions)
• Thisisthe12-factorconcurrencyprinciple:https://12factor.net/concurrency
• Best-of-breed industrytoolchains• Customizable toolchaintemplates,oneclicksetup
• Buildpipelines forCloudFoundry,Containers,etc.
DevOps– Toolchains+Pipelines
Links• TryBluemixPublicfreefor30days:
https://console.ng.bluemix.net/registration/
• IBMCloudArchitectureCenter:https://www.ibm.com/devops/method/category/architectures/
• The12-factorapp:https://12factor.net/
• Microservices fromTheorytoPractice:https://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/sg248275.html?OpenDocument
• Bluemix Blog:https://www.ibm.com/blogs/bluemix/
• WatsonDeveloperCloud:
https://www.ibm.com/watson/developercloud/
• CreatingEffectiveMobileApplicationswithBluemix:http://ibm.biz/mobile-bluemix
• UnderstandingDockerandIBMBluemix ContainerService:http://ibm.biz/docker-bluemix
• Needsomehelp?– IBMBluemix Garage:http://ibm.biz/bluemix-garage