Go Cloud Native with BluemixDeveloper Console - Mobile PatternVidyasagar Machupalli, Offering Manager for Dev Productivity, IBM
Agility, Speed Time to Market, Fault Tolerant Apps
Developer Productivity, Using the Right Tool for the Job, Retain and
Hire Talent
Cost Efficiency, Productivity, Apps that Infinitely ScaleInnovation with Cognitive
Embrace Polyglot Programming and Open
Adopt Microservices Architecture & DevOps
Leverage a Cloud Platform Designed for Cloud Native
The Cloud Native Approach
Domain Services Mobile Watson IoT Block
Chain Health Video
Secu
rity
and
Com
plia
nce
Met
hods
& S
ervi
ces
Developer Services
Data & Analytics Integration App Services DevOps
Tooling
Containers Cloud Foundry Event-Driven
Infrastructure Services Compute Storage Network
Let talk about how Bluemix can support Cloud Native
IBM Bluemix, and it's set of domain services, developer services, infrastructure services, partnered with IBM Bluemix Garage services and expertise are the key offerings to help our clients succeed.
7 4/20/17
What are Patterns ?
In software engineering,a software design patternisageneralreusablesolutiontoacommonlyoccurringproblemwithinagivencontextin software design.
Designpatterns areformalizedbestpracticesthattheprogrammercanusetosolvecommonproblemswhendesigninganapplicationorsystem.
https://en.wikipedia.org/wiki/Software_design_pattern
There are lots more , depending on your adoption of Cloud Native• The following is a summary of the common app patterns for Bluemix this is not a complete list but
a starting point to level set on some basic architecture patterns that you build cloud native solutions with.
– #1 Mobile to Service• Entry level pattern where the Mobile device either Native or Hybrid mobile directly communicates with a High Value
Service.– #2 Mobile or Web to Backend for Frontend
• Entry level pattern when a developer or project needs common logic or multi channel capabilities and abstracts with REST
– #3 Server less Events• The developer is now extending the features of their application and needs to use server less features for async
processing of integration of services.– #4 API Connectivity with Micro Services
• The developer organization is moving to a Micro Service design and needs to manage the API releases and delivery of the services.
– #5 Cognitive• The organization is starting to integrate Cognitive features and APIs
– #6 Internet of Things• The organization is starting to consume data in flight and analyze it with data in store
– #7 Async processing of Cloud Services• The organization is and development teams are starting to apply enterprise patterns for cloud service management,
data offload and storage etc.– #8 Four Tier Forester Architectures
• The organization is using mixed Public, Hybrid and Local and delivering complex Systems of Engagement and Systems of Record
New Developers
Web DevelopersMutli Channel
New Patterns early adopters
Extending new business models
Traditional IBM Customers
Enterprise Cloud Behavior
StartupsMulti Team
A mobile app is a software application developed specifically for use on small, wireless computing devices, such as smartphones and tablets, rather than desktop or laptop computers.• Apple and Google have the
largest market for Mobile Operating Systems
• Often built using Native programming toolset with iOS and Android
What is a Mobile App ?
A BFF is tightly coupled to a specific user experience, and will typically be maintained by the same team as the user interface, thereby making it easier to define and adapt the API to the user interface requirements.• More flexibility for continuous delivery, no
centrally controlled API
• Enables digital channels to evolve quickly and to business needs
• Contains transformational logic, integration logic, app facing API, possibly RPC in nature
What is a Backend for Frontend
Example: Order Management Use Case
Generated SDK System SDK
PushNotifications
IOS, tvOS, Mac (Swift)Android (Java)Cordova HybridHTML5 (JavaScript)
Digital ChannelsUser Layer
Example Omni Channel application service different use end points and requirements , using Cloud Native Micro Services architecture
iOSApp
WebApp
VoiceApp
PublicAPI
iOSBFF
Edge Layer
WebBFF
ChatBFF
APIConnect
IBM Cloud
ProductHandling
(ms)
Business LogicLayer
FoundationalLayer
Orders(ms)
Stock(ms)
Products(ms)
NotificationAction(event)
OrderHandling
(ms)
Cloud NativeService
Cloudant
Elastic Search
Watson Conversation
Storage
REST API
Node.js, Swift, JavaOther polyglot languages
Node.js, Swift, JavaOther polyglot languages
App
IDA
uthentication
App
IDA
uthentication
INTRODUCING THE BLUEMIX DEVELOPER
CONSOLE
A fast way to start your journey towards cloud native application, enabling fast creation of common patterns and integrating with local
dev/test and deploy through dev ops pipelines
13
4/20/17
Project Generation
Bluemix Developer ConsoleValue for Bluemix developers
Blue
mix
Dev
CLI
Bluemix Developer Console
1. Starts with…
Bluemix
Codes …
Check in to…
App
DevOpsOpen Toolchains
Github
Kicks off…
Builds & Deploys…
Developer
Calls …
Generates …
Source Code
IDEOrion, VSCode, Atom, Xcode…
Autoscale Logmet BAM
Integrates with …
Provisions …
Local ContainerLocal container generation and managementLocal build and debug
Project scaffoldingSDK generationService provisioningAPI Model generationSwagger generation
Developerpushcodeintogit
Microservicebuildpipeline
Gatherfeedback
Hourly
Hourly
Release
HourlyDailyWeekly
DeploytoContainers,Clusters,CloudFoundryorServerless
SelectPattern,StarterandLanguage,scaffoldyourstartingpointfast
CIBuild
TestingMonitor
AutomatedTestingusingvariousframeworksandtools
BluemixDeveloperConsole
Developer Lifecycle
Configurepipeline
NPS
LocalDev/Text
Artefactstorage
Codeanalysis
CloudNativePatterns
Testtoolsandframeworks
LETS WALK YOU THROUGH THE EXPERIENCE
IBM has integrated a set of tools and capabilities directly in the IBM Bluemix console and delivered a comprehensive CLI tool to enable you to start your
cloud native story with IBM Cloud
16
Create a Project by selecting a patternSelectaStarter,helptogetyougetaproductionreadystartingpoint
16+Starters
Selectyourpattern
SelectyourStarter
Bluemix Development Experience + Services + Runtimes + Code Generators = ❤
SDKs
SDKs
APIs
Associate
ServiceCapabilities
withyourproject
21 4/20/17
Scaffold your working code , and run locally in minutes
ClicktoGenerateCode
InstalllocalCLI
Runcodeinalocalcontainer
Create and Run with Dev CLI
bx dev createx
bx dev runx
Runcodeinalocalcontainer
RunningBFFinminutes
CreateProjectQuicklyusing
CLI