Trends in Modern
Application Development
Gilly Dekel
Senior Product Manager, IBM Cloud
Cross Portfolio offerings
Microservices
Cognitive
Microservices and Containerization
AI and Cognitive Services
Multi-Channel Applications
How we Build
How we add Content
How we Deliver
Serverless
DataDataData
3
Microservices & Containerization
An engineering approach focused on decomposing an application into
single-function modules with well defined interfaces which are
independently deployed and operated by small teams who own the
entire lifecycle of the service.
• Each microservice can
• Have its own team, architecture, language, release cycle, etc.
• Be deployed and scaled independently
What are Microservices?
Makes it easier to develop, maintain and iterate quickly,
but harder to test, debug and operate
From Monolith to Microservices
Microservices makes DevOps “possible”
It is much easier to devops a set of microservices than a single
monolithic app that needs to be updated all at once
A standard way to package an application and
all its dependencies so that it can be moved
between environments and run without changes.
Containers work by isolating the differences
between applications inside the container so that
everything outside the container can be
standardized.
What is a Container?
Combining Docker and Kubernetes to deliver powerful
tools, an intuitive user experience, and built-in security
and isolation to enable rapid delivery of applications - all
while leveraging IBM Cloud Services including cognitive
capabilities from Watson.
www.ibm.com/cloud-computing/bluemix/containers
IBM Bluemix Container Service
Intelligent
Scheduling
Automated rollouts
and rollbacks
Container
Security & Privacy
Design Your Own
Cluster
Self-healing Horizontal scaling
Leverages
IBM Cloud & Watson
Integrated Operational
Tools
Service discovery &
load balancing
Secret &
configuration mgmt
Simplified Cluster
Management
Native Kubernetes
Experience
IBM Bluemix Container Service
Serverless Architecture (FaaS)
What is Serverless?
A Serverless architecture runs code
only on-demand on a per-request
basis
• Every function is stateless
• All server overhead is handled by
the provider
Pros and Cons of Serverless architecture
Pros
• No operational overhead
associated with running servers
• Optimal utilization and granular
pricing
• Scales on a per-request basis
• Entry point for front end
developers
Cons
• Very difficult to debug
• No control – everything is up to the
vendor
• Call sequences can get out of
control
Apache OpenWhisk
1
A Action: a stateless function (event handler)
Apache OpenWhisk programming model concepts
Or a sequence:
:=
Action: JavaScript, Swift, binary in Docker containerA
function main(params) {
console.log(“Hello “ + params.name);
return { msg: “Goodbye “ + params.name) };
}
func main (params:[String:Any]) -> [String:Any] {
var reply = [String:Any] ()
if let name = params[“name”] as? String {
print(“Hello (name)”)
reply[“msg”] = “Goodbye (name)”
}
return reply
}
16
Trigger: a class of events (feed)
Trigger
T A
event event handler
R Rule: a mapping from a Trigger to an Action
Rule
P Package: a shared collection of Actions and Triggers
18
Rule
Trigger
Rule
Action
Package
Package
19
read
write
docChanged
languageId
translate
forecast
post
topic
post myAction
myFeed
/dave/myPackage
Open Source Third Party
Build and Share
your Own!
P Package: a shared collection of Actions and Triggers
AI And Cognitive
“The theory and development of computer systems able to perform tasks
that normally require human intelligence, such as visual perception,
speech recognition, decision-making, and translation between
languages.”
• AI has is becoming more and more ubiquitous
• Many capabilities it would take years to build are now available as
‘building blocks’ (Phd API’s)
What do we mean when we say ‘AI and cognitive’ ?
Cognitive Capabilities to look for
Language Speech
Data Insights Vision
Watson Cognitive Capabilities
Conversation
Language Translator
Natural Language
Classifier
Personality Insights
Retrieve and Rank
Tone Analyzer
Speech to Text
Text to Speech
Visual RecognitionDiscovery
Discovery News
Tradeoff Analytics
Language Speech Data Insights Vision
Combatting Cyber-Bullying
“We’re starting just now to partner with the Watson team.
Watson is really good at understanding nuances in language
and intention,” he said. “What we want to do is be able to identify
abuse patterns early and stop this behavior before it starts.”
-- Chris Moody, Twitter
Data insights for Game Developers
“Modern connected games offer immense artistic and commercial
potential – but to realize that potential, developers need tools to
analyze and act in real-time on the massive amounts of data these
games-as-services continuously generate, By bringing the Watson
Data Platform to our PlayFab developer community, we are
democratizing cutting-edge data science – and allowing developers
to make better decisions and drive increased engagement and
profitability. ”
-- James Gwertzman, CEO, PlayFab
IoT for Eating Healthy
First, food is identified through a Watson image recognition
system. Second, the load sensors weigh the known food, and
then the app sends both the image and weight data the cloud
for analysis. Finally, nutritional information is relayed back to the
user’s mobile device application.
27
And so many more…
Multi-Channel Applications
(omni-channel)
Personalized
Hyper-Contextual
Location and
Actual Place
TimeDevice
And more and more…
Common
Actions
Continuous
Continuous
‘Task’ Oriented
Voice BotsShortcuts and
Helpers
Microservices and Containerization
AI and Cognitive Services
Multi-Channel Applications
How we Build
How we add Content
How we Deliver
Serverless
DataDataData
Prepare for Change
Prepare for Failure
Thank you!
3
A Best Practices “Meta Architecture” for microservices… The 12
factor app
I. Codebase – One codebase tracked in revision control,
many deploys
II. Dependencies – Explicitly declare and isolate
dependencies
III. Config – Store config in the environment
IV. Backing services – Treat backing services as attached
resources
V. Build, release, run – Strictly separate build and run
stages
VI. Processes – Execute the app as one or more stateless
processes
VII. Port binding – Export services via port binding
VIII.Concurrency – Scale out via the process mode
IX. Disposability – Maximize robustness with fast startup
and graceful shutdown
X. Dev/prod parity – Keep development, staging, and
production as similar as possible
XI. Logs – Treat logs as event streams
XII. Admin processes – Run admin/management tasks as
one-off processes
IBM Bluemix
© 2015 IBM Corporation
4
But…Cloud applications are changing…
4
Micro-Services

Keynote: Trends in Modern Application Development - Gilly Dekel, IBM

  • 1.
    Trends in Modern ApplicationDevelopment Gilly Dekel Senior Product Manager, IBM Cloud Cross Portfolio offerings
  • 2.
  • 3.
    Microservices and Containerization AIand Cognitive Services Multi-Channel Applications How we Build How we add Content How we Deliver Serverless DataDataData
  • 4.
  • 5.
  • 6.
    An engineering approachfocused on decomposing an application into single-function modules with well defined interfaces which are independently deployed and operated by small teams who own the entire lifecycle of the service. • Each microservice can • Have its own team, architecture, language, release cycle, etc. • Be deployed and scaled independently What are Microservices? Makes it easier to develop, maintain and iterate quickly, but harder to test, debug and operate
  • 7.
    From Monolith toMicroservices Microservices makes DevOps “possible” It is much easier to devops a set of microservices than a single monolithic app that needs to be updated all at once
  • 8.
    A standard wayto package an application and all its dependencies so that it can be moved between environments and run without changes. Containers work by isolating the differences between applications inside the container so that everything outside the container can be standardized. What is a Container?
  • 9.
    Combining Docker andKubernetes to deliver powerful tools, an intuitive user experience, and built-in security and isolation to enable rapid delivery of applications - all while leveraging IBM Cloud Services including cognitive capabilities from Watson. www.ibm.com/cloud-computing/bluemix/containers IBM Bluemix Container Service
  • 10.
    Intelligent Scheduling Automated rollouts and rollbacks Container Security& Privacy Design Your Own Cluster Self-healing Horizontal scaling Leverages IBM Cloud & Watson Integrated Operational Tools Service discovery & load balancing Secret & configuration mgmt Simplified Cluster Management Native Kubernetes Experience IBM Bluemix Container Service
  • 11.
  • 12.
    What is Serverless? AServerless architecture runs code only on-demand on a per-request basis • Every function is stateless • All server overhead is handled by the provider
  • 13.
    Pros and Consof Serverless architecture Pros • No operational overhead associated with running servers • Optimal utilization and granular pricing • Scales on a per-request basis • Entry point for front end developers Cons • Very difficult to debug • No control – everything is up to the vendor • Call sequences can get out of control
  • 14.
  • 15.
    A Action: astateless function (event handler) Apache OpenWhisk programming model concepts Or a sequence: :=
  • 16.
    Action: JavaScript, Swift,binary in Docker containerA function main(params) { console.log(“Hello “ + params.name); return { msg: “Goodbye “ + params.name) }; } func main (params:[String:Any]) -> [String:Any] { var reply = [String:Any] () if let name = params[“name”] as? String { print(“Hello (name)”) reply[“msg”] = “Goodbye (name)” } return reply }
  • 17.
    16 Trigger: a classof events (feed) Trigger
  • 18.
    T A event eventhandler R Rule: a mapping from a Trigger to an Action Rule
  • 19.
    P Package: ashared collection of Actions and Triggers 18 Rule Trigger Rule Action Package
  • 20.
    Package 19 read write docChanged languageId translate forecast post topic post myAction myFeed /dave/myPackage Open SourceThird Party Build and Share your Own! P Package: a shared collection of Actions and Triggers
  • 21.
  • 22.
    “The theory anddevelopment of computer systems able to perform tasks that normally require human intelligence, such as visual perception, speech recognition, decision-making, and translation between languages.” • AI has is becoming more and more ubiquitous • Many capabilities it would take years to build are now available as ‘building blocks’ (Phd API’s) What do we mean when we say ‘AI and cognitive’ ?
  • 23.
    Cognitive Capabilities tolook for Language Speech Data Insights Vision
  • 24.
    Watson Cognitive Capabilities Conversation LanguageTranslator Natural Language Classifier Personality Insights Retrieve and Rank Tone Analyzer Speech to Text Text to Speech Visual RecognitionDiscovery Discovery News Tradeoff Analytics Language Speech Data Insights Vision
  • 25.
    Combatting Cyber-Bullying “We’re startingjust now to partner with the Watson team. Watson is really good at understanding nuances in language and intention,” he said. “What we want to do is be able to identify abuse patterns early and stop this behavior before it starts.” -- Chris Moody, Twitter
  • 26.
    Data insights forGame Developers “Modern connected games offer immense artistic and commercial potential – but to realize that potential, developers need tools to analyze and act in real-time on the massive amounts of data these games-as-services continuously generate, By bringing the Watson Data Platform to our PlayFab developer community, we are democratizing cutting-edge data science – and allowing developers to make better decisions and drive increased engagement and profitability. ” -- James Gwertzman, CEO, PlayFab
  • 27.
    IoT for EatingHealthy First, food is identified through a Watson image recognition system. Second, the load sensors weigh the known food, and then the app sends both the image and weight data the cloud for analysis. Finally, nutritional information is relayed back to the user’s mobile device application.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
    Microservices and Containerization AIand Cognitive Services Multi-Channel Applications How we Build How we add Content How we Deliver Serverless DataDataData
  • 36.
  • 37.
  • 38.
  • 39.
    A Best Practices“Meta Architecture” for microservices… The 12 factor app I. Codebase – One codebase tracked in revision control, many deploys II. Dependencies – Explicitly declare and isolate dependencies III. Config – Store config in the environment IV. Backing services – Treat backing services as attached resources V. Build, release, run – Strictly separate build and run stages VI. Processes – Execute the app as one or more stateless processes VII. Port binding – Export services via port binding VIII.Concurrency – Scale out via the process mode IX. Disposability – Maximize robustness with fast startup and graceful shutdown X. Dev/prod parity – Keep development, staging, and production as similar as possible XI. Logs – Treat logs as event streams XII. Admin processes – Run admin/management tasks as one-off processes IBM Bluemix © 2015 IBM Corporation 4 But…Cloud applications are changing… 4 Micro-Services