SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
© Donald F. Ferguson, 2015. All rights reserved.
Some Essentials for Modern Solution
Development
WSO2Con 2015 US
Dr. Donald F. Ferguson
Donald.F.Ferguson@gmail.com
2 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Contents
3 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Contents
‱  Introduction
–  Experience.
–  SOA and Microservices.
–  Presentation motivation.
‱  Five (out of dozens) of observations.
–  A “simple” scenario.
–  SOA “versus” microservices.
–  The three (out of a dozen so far) observations.
–  Composition and patterns.
–  Application – application dependencies.
–  Configuration properties in the environment.
‱  Summary, discussions and next steps.
4 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Introduction
5 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Experience and Motivation
‱  History of enabling distributed applications, e.g.
–  Message Driven Processing, Event Driven Architecture
–  CORBA, J2EE
–  WS-*, JSR 106, WS-ResourceFramework, WS-Transfer, 

–  Eclipse perspectives, Service Component Architecture, Service Data Objects
–  Internet Service Bus, Boomi, Integration Platform as a Service
‱  Three Columbia masters level courses exploring more modern technology
–  Modern Internet Application Development, e.g. AngularJS, Amazon SNS, MongoDB.
–  Modern Internet Service Oriented Application Development, e.g. REST, Redis, iPaaS.
–  Developing Applications with Microservices and APIs, e.g. Microservices, Google Pub/Sub,
Amazon Simple Workflow.
‱  Common concepts emerge, get adopted, disappear and reemerge.
–  Technology will evolve and improve, but 

–  We need to ensure that new technology retains some core concepts.
6 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
This Could be an Interesting Perspective, or 

7 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
SOA
‱  DEFINITION Service-oriented architecture (SOA) is an architectural style for build-ing systems based
on interactions of loosely coupled, coarse-grained, and autonomous components called services.
Each service exposes processes and behavior through contracts, which are composed of messages
at discoverable addresses called endpoints. A service’s behavior is governed by policies that are
external to the service itself. The contracts and messages are used by external components called
service consumers.
‱  Some observations – SOA is a reaction to distributed OO and RPC.
–  Coarse Grained and Messages
–  OO tends to lots of small classes/objects and fine-grain API calls (e.g. person.getIq()).
–  SOA tends to person.getState().
–  Loosely coupled
–  Assume API calls “go remote” but may have local optimization.
–  Interfaces (Contracts) are not strongly typed, enabling independent evolution.
–  Endpoints
–  OO assumes “Java calling Java, perhaps over RMI.”
–  SOA separate Contract from Binding (WS-Interop, REST, message queues, etc).
–  Discoverable
–  OO assumes a classpath, findByClassName() and perhaps factory patterns.
–  SOA assumes you can go to a web callable repository and ask for SOA endpoints based on Contracts/Messages.
–  Web Services are a set of standards for SOA that enable interoperability.
8 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
SOA
‱  Various developer tools generate helper classes, allowing the programmer to focus on
application logic and not details of formatting XML messages for SOAP.
‱  Services often go into containers that automate implementation of policies, e.g.
transactions, security, reliable messaging.
9 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Micro-services Characteristics
‱  Componentization via Services
‱  Organized around Business Capabilities
‱  Products not Projects
‱  Smart endpoints and dumb pipes
‱  Decentralized Governance
‱  Decentralized Data Management
‱  Infrastructure Automation
‱  Design for failure
‱  Evolutionary Design
10 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
What has changed?
‱  We have
–  Heard similar terms
–  Loose coupling
–  Service discovery
–  Asynchronous messaging
–  Polyglot programming and persistence
–  Flexible scaling
–  etc.
–  Over and over again
–  Modular programming
–  CORBA, J2EE
–  Web services
–  

‱  What has changed? Why are we “right” now?
–  “This time we really mean it. If you cannot take a joke, you should not be in software.”
–  There are some significant innovations, tempered by some lost capabilities.
–  The tide comes in one wave at a time, but let’s not lose what we have learned.
11 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Three
Observations
Out Of
Dozens
So Far 

12 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
A
“Simple”
Scenario
13 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
A Simple Scenario
Student Info Microservice
‱  Manages Student Resource
‱  With a little bit of course
info “inside” student resource
Course Info Microservice
‱  Manages Course Resource
‱  With a little bit of student
info “inside” student resource
‱  3rd parties provide the micro-service Ă ïƒ  Cannot examine or modify code.
‱  Combine to provide a single microservice
–  Managing two resources: Student, Course
–  Existing apps will continue to use the existing microservices.
–  Referential integrity, e.g. deleting a student removes student from course.
Student Course
14 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
When you do not know how to do something,
the most likely answer is build a microservice.
Student Course
API GW
Student Course
Integrat
e
15 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Identifying
Three
Issues
16 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
SOA vs Microservices http://www.pwc.com/us/en/technology-forecast/2014/cloud-
computing/features/microservices.jhtml
17 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
SOA vs Microservices http://www.pwc.com/us/en/technology-forecast/2014/cloud-
computing/features/microservices.jhtml
‱  Not true.
‱  Dangerous was to think.
‱  Not a clear difference.
‱  Concepts appears in both
‱  Important distinction.
‱  But focuses on how.
‱  Not sure what this means
18 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
The 12 Factors – How You Implement
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 model
IX. Disposability
Maximize robustness with fast startup
and graceful shutdown
X. Dev/prod parity
Keep development, staging, and production
as similar as possible
XI. LogsTreat logs as event streams
XII. Admin processes
Run admin/management tasks as one-off process
19 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
The 12 Factors – How You Implement “Isssues”
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 model
IX. Disposability
Maximize robustness with fast startup
and graceful shutdown
X. Dev/prod parity
Keep development, staging, and production
as similar as possible
XI. LogsTreat logs as event streams
XII. Admin processes
Run admin/management tasks as one-off process
20 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
The
Three
Observations
21 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Composition
and
Patterns
22 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Monolithic to Micro
Cart Functions
‱  Java
‱  SQLite
Recommendation Functions
‱  Node.js
‱  Redis
Catalog Functions
‱  PDP
‱  MongoDB XXX XXX
‱  MMM
‱  NNN
Content Functions
‱  Ruby
‱  Amazon S3
23 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Point-to-Point Connections are Bad
Doing this 
 Leads to this 
 

24 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
The Hub is Active, Patterned and Reusable
25 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Enterprise Integration Patterns with WSO2 ESB
https://docs.wso2.com/display/IntegrationPatterns/Enterprise+Integration+Patterns+with+WSO2+ESB
26 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
A New Theorem
Ferguson’s 1st Theorem on Microservices and REST
‱  {Compoentization via Services, Smart endpoint and dumb pipes} +
‱  {Layered System} =
‱  Enterprise Service Bus
Microservice Characteristics
‱  Componentization via Services
‱  Organized around Business Capabilities
‱  Products not Projects
‱  Smart endpoints and dumb pipes
‱  Decentralized Governance
‱  Decentralized Data Management
‱  Infrastructure Automation
‱  Design for failure
‱  Evolutionary Design
REST Tenents
‱  Client/server
‱  Stateless
‱  Caching
‱  Uniform Interface
‱  Layered System
‱  Code on Demand
27 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Composition Models (and Diagrams)
‱  The diagrams are always “nodes” and “arcs.”
‱  Structure: node A <x> node B, where x is Requires/depends/calls/synchronizes
with/

‱  Control:
–  Execute A and then execute B, where A and B are tasks.
–  There is a shared set of “data objects” the tasks manipulate.
‱  Data flow: Do A to the message/document/
 and then do B to A’s output
Control Flow Structure Data Flow
28 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Summary
‱  Dumb fast messaging versus powerful ESB
–  Is appealing.
–  But repeats the fallacies of “quick point-to-point” connections.
‱  Microservice composition is not antithetical to ESB (and middleware)
–  Microservices focus on how you build basic components to achieve benefits.
–  The approach should not exclude the benefits of
–  Middleware and tools.
–  For common composition models and patterns.
–  That can improve robustness, reuse, agility, 

‱  We see
–  The emergence of “callable” middleware, e.g. Amazon SWF, Google pub/sub.
–  But we cannot lose the benefits of active code in the middleware.
29 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Application
Dependency
30 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Inject application
implementation into
reusable SW containers
Reusable
infrastructure
containers
Reusable SW
containers but with
core technology
and frameworks
http://martinfowler.com/articles/microservices.html
31 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
32 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
OK, sounds good, but 

‱  Maybe
‱  My team and I
‱  Did not write
‱  Have source
‱  For all the microservices.
‱  I can probably figure out
‱  What API the microservice exports,
e.g.
Browsable web UI.
‱  What libraries it uses, e.g. pom.xml.
‱  But have no idea what REST APIs
it calls into other microservices.
‱  Making assembly of “binary” difficult.
33 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
We Used to Have SCA and WSDL MEPs
34 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Summary
‱  Dependency management is a crucial element of microservices and 12 Factor
Apps
–  Document dependencies (pom.xml, runtime specific metadafiles, 
).
–  Treat backing resources as attached services.
–  etc.
‱  But it is the nature of REST API assembly that
–  What “API/resources” a microservice manages.
–  And (especially) what REST resources it requires for application completeness.
–  Are very, very unclear.
–  Making many composition scenarios across teams difficult.,
35 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Config
in
the
Environment
36 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
III. Configuration
‱  An app’s config is everything that is likely to vary between deploys
(staging, production, developer environments, etc).
This includes:
‱  Resource handles to the database, Memcached, and other backing services
‱  Credentials to external services such as Amazon S3 or Twitter
‱  Per-deploy values such as the canonical hostname for the deploy
‱  Apps sometimes store config as constants in the code. This is a violation of twelve-factor, which
requires strict separation of config from code. Config varies substantially across deploys, code
does not.
‱  Note that this definition of “config” does not include internal application config, such as config/
routes.rb in Rails, or how code modules are connected in Spring. This type of config does not vary
between deploys, and so is best done in the code.
‱  The twelve-factor app stores config in environment variables (often shortened to env
vars or env). Env vars are easy to change between deploys without changing any code; unlike config
files, there is little chance of them being checked into the code repo accidentally; and unlike custom
config files, or other config mechanisms such as Java System Properties, they are a language- and
OS-agnostic standard.
37 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Config Properties and Environment
‱  The approach
–  Works iff you only configure at deployment.
–  Breaks down if
–  You are “starting” a new deployed instance
that needs to be different.
–  You need to modify a “running” instance.
‱  What would you do such a crazy thing?
“SaaS” provided via
–  Instance per tenant.
–  Truly multitenant codebase.
‱  Configuration must be an API, and support
configuring
–  Resource model/schema.
–  Some forms of application logic.
38 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Multitenant Application is Two Applications (APIs, Services),
which a platform makes a lot easier.
Data
Metadata
User Role
Assemble
Config
Role
39 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Summary
and
Discussion
40 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Summary and Discussion –
An interesting Perspective, but 

“Those who fail to learn from
history are doomed to
repeat it”.
George Santayana
Or maybe I am just a
cranky old guy that
time has passed by.
41 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Lunch Yesterday
42 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Looked a lot like this, with less smiling 

These kids do
not know
anything
about DB.
You should
see what they
do.
That’s
nothing. You
should see
how they do
SOA.
43 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development
WSO2Con 2015 USA
Summary and Discussion
‱  We can realize tremendous value from
–  REST.
–  Microservices.
–  12 Factor Applications.
–  Minimalistic infrastructure.
–  Dynamic dependency resolution.
–  Web callable middleware APIs.
‱  But, we risk losing benefits that emerged in middleware and standards when we
started assmebling and composing solutions.
–  Interface and dependency metadata.
–  Optimized composition and integration engines and tools.
–  Automated enablement of capabilities via functional containers.
‱  We should work to realize the benefits of both. The most crucial next steps is
ensuring awareness and adoption of design patterns.

Mais conteĂșdo relacionado

Semelhante a WSO2Con USA 2015: Keynote - Some Essentials for Modern Solution Development

Dom introduction-website-v1.0
Dom introduction-website-v1.0Dom introduction-website-v1.0
Dom introduction-website-v1.0Cogility
 
Resume_Jegatheesan-JKT
Resume_Jegatheesan-JKTResume_Jegatheesan-JKT
Resume_Jegatheesan-JKTJag Jagdeesh
 
Microsoft Power Platform Governance with Runpipe
Microsoft Power Platform Governance with RunpipeMicrosoft Power Platform Governance with Runpipe
Microsoft Power Platform Governance with RunpipeRunpipe
 
Mule soft meetup Houston 16
Mule soft meetup Houston 16Mule soft meetup Houston 16
Mule soft meetup Houston 16Jim Andrews
 
Mobile Web Performance Optimization 1-7-14
Mobile Web Performance Optimization 1-7-14Mobile Web Performance Optimization 1-7-14
Mobile Web Performance Optimization 1-7-14XBOSoft
 
Learn Best Practices of a True Hybrid IT Management Approach
Learn Best Practices of a True Hybrid IT Management ApproachLearn Best Practices of a True Hybrid IT Management Approach
Learn Best Practices of a True Hybrid IT Management ApproachEnterprise Management Associates
 
Perficient PepsiCo Rich Internet Apps Seminar
Perficient PepsiCo Rich Internet Apps SeminarPerficient PepsiCo Rich Internet Apps Seminar
Perficient PepsiCo Rich Internet Apps SeminarPerficient, Inc.
 
Bringing Your Web Apps to IBM Digital Experience
Bringing Your Web Apps to IBM Digital ExperienceBringing Your Web Apps to IBM Digital Experience
Bringing Your Web Apps to IBM Digital ExperienceJohn Head
 
Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...Alejandro S.
 
A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...
A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...
A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...hani727151
 
Software development with agile methodologies
Software development with agile methodologiesSoftware development with agile methodologies
Software development with agile methodologiesElmozamil Elamir
 
Cloud computing implications for project management methodologies
Cloud computing implications for project management methodologiesCloud computing implications for project management methodologies
Cloud computing implications for project management methodologiesLivingstone Advisory
 
Application security for the modern web - ISSA South Texas Houston DevOps
Application security for the modern web - ISSA South Texas Houston DevOpsApplication security for the modern web - ISSA South Texas Houston DevOps
Application security for the modern web - ISSA South Texas Houston DevOpsPhillip Maddux
 
National Government Webinar: Reap the Rewards of IT Consolidation
National Government Webinar: Reap the Rewards of IT ConsolidationNational Government Webinar: Reap the Rewards of IT Consolidation
National Government Webinar: Reap the Rewards of IT ConsolidationSolarWinds
 
Tn 100504 T Cermak Rev V2
Tn 100504 T Cermak Rev V2Tn 100504 T Cermak Rev V2
Tn 100504 T Cermak Rev V2TimCermak
 
IBM Innovate - Uderstanding DevOps
IBM Innovate - Uderstanding DevOpsIBM Innovate - Uderstanding DevOps
IBM Innovate - Uderstanding DevOpsSanjeev Sharma
 
201807 - Introduction, business value and how to get engaged in FINOS Programs
201807 - Introduction, business value and how to get engaged in FINOS Programs201807 - Introduction, business value and how to get engaged in FINOS Programs
201807 - Introduction, business value and how to get engaged in FINOS ProgramsFINOS
 
How to Balance System Speed and Risk for Multi-Platform Innovation
How to Balance System Speed and Risk for Multi-Platform InnovationHow to Balance System Speed and Risk for Multi-Platform Innovation
How to Balance System Speed and Risk for Multi-Platform InnovationClaudia Ring
 
Adopting Cloud Testing for Continuous Delivery
Adopting Cloud Testing for Continuous DeliveryAdopting Cloud Testing for Continuous Delivery
Adopting Cloud Testing for Continuous DeliverySOASTA
 

Semelhante a WSO2Con USA 2015: Keynote - Some Essentials for Modern Solution Development (20)

Dom introduction-website-v1.0
Dom introduction-website-v1.0Dom introduction-website-v1.0
Dom introduction-website-v1.0
 
Resume_Jegatheesan-JKT
Resume_Jegatheesan-JKTResume_Jegatheesan-JKT
Resume_Jegatheesan-JKT
 
Microsoft Power Platform Governance with Runpipe
Microsoft Power Platform Governance with RunpipeMicrosoft Power Platform Governance with Runpipe
Microsoft Power Platform Governance with Runpipe
 
Cti av3
Cti av3Cti av3
Cti av3
 
Mule soft meetup Houston 16
Mule soft meetup Houston 16Mule soft meetup Houston 16
Mule soft meetup Houston 16
 
Mobile Web Performance Optimization 1-7-14
Mobile Web Performance Optimization 1-7-14Mobile Web Performance Optimization 1-7-14
Mobile Web Performance Optimization 1-7-14
 
Learn Best Practices of a True Hybrid IT Management Approach
Learn Best Practices of a True Hybrid IT Management ApproachLearn Best Practices of a True Hybrid IT Management Approach
Learn Best Practices of a True Hybrid IT Management Approach
 
Perficient PepsiCo Rich Internet Apps Seminar
Perficient PepsiCo Rich Internet Apps SeminarPerficient PepsiCo Rich Internet Apps Seminar
Perficient PepsiCo Rich Internet Apps Seminar
 
Bringing Your Web Apps to IBM Digital Experience
Bringing Your Web Apps to IBM Digital ExperienceBringing Your Web Apps to IBM Digital Experience
Bringing Your Web Apps to IBM Digital Experience
 
Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...
 
A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...
A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...
A_Statistical_Study_and_Analysis_to_Identify_the_Importance_of_Open-source_So...
 
Software development with agile methodologies
Software development with agile methodologiesSoftware development with agile methodologies
Software development with agile methodologies
 
Cloud computing implications for project management methodologies
Cloud computing implications for project management methodologiesCloud computing implications for project management methodologies
Cloud computing implications for project management methodologies
 
Application security for the modern web - ISSA South Texas Houston DevOps
Application security for the modern web - ISSA South Texas Houston DevOpsApplication security for the modern web - ISSA South Texas Houston DevOps
Application security for the modern web - ISSA South Texas Houston DevOps
 
National Government Webinar: Reap the Rewards of IT Consolidation
National Government Webinar: Reap the Rewards of IT ConsolidationNational Government Webinar: Reap the Rewards of IT Consolidation
National Government Webinar: Reap the Rewards of IT Consolidation
 
Tn 100504 T Cermak Rev V2
Tn 100504 T Cermak Rev V2Tn 100504 T Cermak Rev V2
Tn 100504 T Cermak Rev V2
 
IBM Innovate - Uderstanding DevOps
IBM Innovate - Uderstanding DevOpsIBM Innovate - Uderstanding DevOps
IBM Innovate - Uderstanding DevOps
 
201807 - Introduction, business value and how to get engaged in FINOS Programs
201807 - Introduction, business value and how to get engaged in FINOS Programs201807 - Introduction, business value and how to get engaged in FINOS Programs
201807 - Introduction, business value and how to get engaged in FINOS Programs
 
How to Balance System Speed and Risk for Multi-Platform Innovation
How to Balance System Speed and Risk for Multi-Platform InnovationHow to Balance System Speed and Risk for Multi-Platform Innovation
How to Balance System Speed and Risk for Multi-Platform Innovation
 
Adopting Cloud Testing for Continuous Delivery
Adopting Cloud Testing for Continuous DeliveryAdopting Cloud Testing for Continuous Delivery
Adopting Cloud Testing for Continuous Delivery
 

Mais de WSO2

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
How to Create a Service in Choreo
How to Create a Service in ChoreoHow to Create a Service in Choreo
How to Create a Service in ChoreoWSO2
 
Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023WSO2
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzureWSO2
 
GartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfGartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfWSO2
 
[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in MinutesWSO2
 
Modernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityModernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityWSO2
 
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...WSO2
 
CIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfCIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfWSO2
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoWSO2
 
Fueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsFueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsWSO2
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital BusinessesWSO2
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)WSO2
 
Lessons from the pandemic - From a single use case to true transformation
 Lessons from the pandemic - From a single use case to true transformation Lessons from the pandemic - From a single use case to true transformation
Lessons from the pandemic - From a single use case to true transformationWSO2
 
Adding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesAdding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesWSO2
 
Building a Future-ready Bank
Building a Future-ready BankBuilding a Future-ready Bank
Building a Future-ready BankWSO2
 
WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2
 
[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIsWSO2
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native DeploymentWSO2
 

Mais de WSO2 (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
How to Create a Service in Choreo
How to Create a Service in ChoreoHow to Create a Service in Choreo
How to Create a Service in Choreo
 
Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on Azure
 
GartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfGartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdf
 
[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes
 
Modernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityModernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos Identity
 
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
 
CIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfCIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdf
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing Choreo
 
Fueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsFueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected Products
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital Businesses
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
 
Lessons from the pandemic - From a single use case to true transformation
 Lessons from the pandemic - From a single use case to true transformation Lessons from the pandemic - From a single use case to true transformation
Lessons from the pandemic - From a single use case to true transformation
 
Adding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesAdding Liveliness to Banking Experiences
Adding Liveliness to Banking Experiences
 
Building a Future-ready Bank
Building a Future-ready BankBuilding a Future-ready Bank
Building a Future-ready Bank
 
WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021
 
[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment
 

Último

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

WSO2Con USA 2015: Keynote - Some Essentials for Modern Solution Development

  • 1. © Donald F. Ferguson, 2015. All rights reserved. Some Essentials for Modern Solution Development WSO2Con 2015 US Dr. Donald F. Ferguson Donald.F.Ferguson@gmail.com
  • 2. 2 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Contents
  • 3. 3 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Contents ‱  Introduction –  Experience. –  SOA and Microservices. –  Presentation motivation. ‱  Five (out of dozens) of observations. –  A “simple” scenario. –  SOA “versus” microservices. –  The three (out of a dozen so far) observations. –  Composition and patterns. –  Application – application dependencies. –  Configuration properties in the environment. ‱  Summary, discussions and next steps.
  • 4. 4 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Introduction
  • 5. 5 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Experience and Motivation ‱  History of enabling distributed applications, e.g. –  Message Driven Processing, Event Driven Architecture –  CORBA, J2EE –  WS-*, JSR 106, WS-ResourceFramework, WS-Transfer, 
 –  Eclipse perspectives, Service Component Architecture, Service Data Objects –  Internet Service Bus, Boomi, Integration Platform as a Service ‱  Three Columbia masters level courses exploring more modern technology –  Modern Internet Application Development, e.g. AngularJS, Amazon SNS, MongoDB. –  Modern Internet Service Oriented Application Development, e.g. REST, Redis, iPaaS. –  Developing Applications with Microservices and APIs, e.g. Microservices, Google Pub/Sub, Amazon Simple Workflow. ‱  Common concepts emerge, get adopted, disappear and reemerge. –  Technology will evolve and improve, but 
 –  We need to ensure that new technology retains some core concepts.
  • 6. 6 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA This Could be an Interesting Perspective, or 

  • 7. 7 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA SOA ‱  DEFINITION Service-oriented architecture (SOA) is an architectural style for build-ing systems based on interactions of loosely coupled, coarse-grained, and autonomous components called services. Each service exposes processes and behavior through contracts, which are composed of messages at discoverable addresses called endpoints. A service’s behavior is governed by policies that are external to the service itself. The contracts and messages are used by external components called service consumers. ‱  Some observations – SOA is a reaction to distributed OO and RPC. –  Coarse Grained and Messages –  OO tends to lots of small classes/objects and fine-grain API calls (e.g. person.getIq()). –  SOA tends to person.getState(). –  Loosely coupled –  Assume API calls “go remote” but may have local optimization. –  Interfaces (Contracts) are not strongly typed, enabling independent evolution. –  Endpoints –  OO assumes “Java calling Java, perhaps over RMI.” –  SOA separate Contract from Binding (WS-Interop, REST, message queues, etc). –  Discoverable –  OO assumes a classpath, findByClassName() and perhaps factory patterns. –  SOA assumes you can go to a web callable repository and ask for SOA endpoints based on Contracts/Messages. –  Web Services are a set of standards for SOA that enable interoperability.
  • 8. 8 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA SOA ‱  Various developer tools generate helper classes, allowing the programmer to focus on application logic and not details of formatting XML messages for SOAP. ‱  Services often go into containers that automate implementation of policies, e.g. transactions, security, reliable messaging.
  • 9. 9 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Micro-services Characteristics ‱  Componentization via Services ‱  Organized around Business Capabilities ‱  Products not Projects ‱  Smart endpoints and dumb pipes ‱  Decentralized Governance ‱  Decentralized Data Management ‱  Infrastructure Automation ‱  Design for failure ‱  Evolutionary Design
  • 10. 10 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA What has changed? ‱  We have –  Heard similar terms –  Loose coupling –  Service discovery –  Asynchronous messaging –  Polyglot programming and persistence –  Flexible scaling –  etc. –  Over and over again –  Modular programming –  CORBA, J2EE –  Web services –  
 ‱  What has changed? Why are we “right” now? –  “This time we really mean it. If you cannot take a joke, you should not be in software.” –  There are some significant innovations, tempered by some lost capabilities. –  The tide comes in one wave at a time, but let’s not lose what we have learned.
  • 11. 11 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Three Observations Out Of Dozens So Far 

  • 12. 12 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA A “Simple” Scenario
  • 13. 13 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA A Simple Scenario Student Info Microservice ‱  Manages Student Resource ‱  With a little bit of course info “inside” student resource Course Info Microservice ‱  Manages Course Resource ‱  With a little bit of student info “inside” student resource ‱  3rd parties provide the micro-service Ă ïƒ  Cannot examine or modify code. ‱  Combine to provide a single microservice –  Managing two resources: Student, Course –  Existing apps will continue to use the existing microservices. –  Referential integrity, e.g. deleting a student removes student from course. Student Course
  • 14. 14 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA When you do not know how to do something, the most likely answer is build a microservice. Student Course API GW Student Course Integrat e
  • 15. 15 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Identifying Three Issues
  • 16. 16 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA SOA vs Microservices http://www.pwc.com/us/en/technology-forecast/2014/cloud- computing/features/microservices.jhtml
  • 17. 17 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA SOA vs Microservices http://www.pwc.com/us/en/technology-forecast/2014/cloud- computing/features/microservices.jhtml ‱  Not true. ‱  Dangerous was to think. ‱  Not a clear difference. ‱  Concepts appears in both ‱  Important distinction. ‱  But focuses on how. ‱  Not sure what this means
  • 18. 18 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA The 12 Factors – How You Implement 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 model IX. Disposability Maximize robustness with fast startup and graceful shutdown X. Dev/prod parity Keep development, staging, and production as similar as possible XI. LogsTreat logs as event streams XII. Admin processes Run admin/management tasks as one-off process
  • 19. 19 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA The 12 Factors – How You Implement “Isssues” 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 model IX. Disposability Maximize robustness with fast startup and graceful shutdown X. Dev/prod parity Keep development, staging, and production as similar as possible XI. LogsTreat logs as event streams XII. Admin processes Run admin/management tasks as one-off process
  • 20. 20 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA The Three Observations
  • 21. 21 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Composition and Patterns
  • 22. 22 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Monolithic to Micro Cart Functions ‱  Java ‱  SQLite Recommendation Functions ‱  Node.js ‱  Redis Catalog Functions ‱  PDP ‱  MongoDB XXX XXX ‱  MMM ‱  NNN Content Functions ‱  Ruby ‱  Amazon S3
  • 23. 23 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Point-to-Point Connections are Bad Doing this 
 Leads to this 
 

  • 24. 24 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA The Hub is Active, Patterned and Reusable
  • 25. 25 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Enterprise Integration Patterns with WSO2 ESB https://docs.wso2.com/display/IntegrationPatterns/Enterprise+Integration+Patterns+with+WSO2+ESB
  • 26. 26 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA A New Theorem Ferguson’s 1st Theorem on Microservices and REST ‱  {Compoentization via Services, Smart endpoint and dumb pipes} + ‱  {Layered System} = ‱  Enterprise Service Bus Microservice Characteristics ‱  Componentization via Services ‱  Organized around Business Capabilities ‱  Products not Projects ‱  Smart endpoints and dumb pipes ‱  Decentralized Governance ‱  Decentralized Data Management ‱  Infrastructure Automation ‱  Design for failure ‱  Evolutionary Design REST Tenents ‱  Client/server ‱  Stateless ‱  Caching ‱  Uniform Interface ‱  Layered System ‱  Code on Demand
  • 27. 27 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Composition Models (and Diagrams) ‱  The diagrams are always “nodes” and “arcs.” ‱  Structure: node A <x> node B, where x is Requires/depends/calls/synchronizes with/
 ‱  Control: –  Execute A and then execute B, where A and B are tasks. –  There is a shared set of “data objects” the tasks manipulate. ‱  Data flow: Do A to the message/document/
 and then do B to A’s output Control Flow Structure Data Flow
  • 28. 28 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Summary ‱  Dumb fast messaging versus powerful ESB –  Is appealing. –  But repeats the fallacies of “quick point-to-point” connections. ‱  Microservice composition is not antithetical to ESB (and middleware) –  Microservices focus on how you build basic components to achieve benefits. –  The approach should not exclude the benefits of –  Middleware and tools. –  For common composition models and patterns. –  That can improve robustness, reuse, agility, 
 ‱  We see –  The emergence of “callable” middleware, e.g. Amazon SWF, Google pub/sub. –  But we cannot lose the benefits of active code in the middleware.
  • 29. 29 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Application Dependency
  • 30. 30 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Inject application implementation into reusable SW containers Reusable infrastructure containers Reusable SW containers but with core technology and frameworks http://martinfowler.com/articles/microservices.html
  • 31. 31 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA
  • 32. 32 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA OK, sounds good, but 
 ‱  Maybe ‱  My team and I ‱  Did not write ‱  Have source ‱  For all the microservices. ‱  I can probably figure out ‱  What API the microservice exports, e.g. Browsable web UI. ‱  What libraries it uses, e.g. pom.xml. ‱  But have no idea what REST APIs it calls into other microservices. ‱  Making assembly of “binary” difficult.
  • 33. 33 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA We Used to Have SCA and WSDL MEPs
  • 34. 34 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Summary ‱  Dependency management is a crucial element of microservices and 12 Factor Apps –  Document dependencies (pom.xml, runtime specific metadafiles, 
). –  Treat backing resources as attached services. –  etc. ‱  But it is the nature of REST API assembly that –  What “API/resources” a microservice manages. –  And (especially) what REST resources it requires for application completeness. –  Are very, very unclear. –  Making many composition scenarios across teams difficult.,
  • 35. 35 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Config in the Environment
  • 36. 36 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA III. Configuration ‱  An app’s config is everything that is likely to vary between deploys (staging, production, developer environments, etc). This includes: ‱  Resource handles to the database, Memcached, and other backing services ‱  Credentials to external services such as Amazon S3 or Twitter ‱  Per-deploy values such as the canonical hostname for the deploy ‱  Apps sometimes store config as constants in the code. This is a violation of twelve-factor, which requires strict separation of config from code. Config varies substantially across deploys, code does not. ‱  Note that this definition of “config” does not include internal application config, such as config/ routes.rb in Rails, or how code modules are connected in Spring. This type of config does not vary between deploys, and so is best done in the code. ‱  The twelve-factor app stores config in environment variables (often shortened to env vars or env). Env vars are easy to change between deploys without changing any code; unlike config files, there is little chance of them being checked into the code repo accidentally; and unlike custom config files, or other config mechanisms such as Java System Properties, they are a language- and OS-agnostic standard.
  • 37. 37 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Config Properties and Environment ‱  The approach –  Works iff you only configure at deployment. –  Breaks down if –  You are “starting” a new deployed instance that needs to be different. –  You need to modify a “running” instance. ‱  What would you do such a crazy thing? “SaaS” provided via –  Instance per tenant. –  Truly multitenant codebase. ‱  Configuration must be an API, and support configuring –  Resource model/schema. –  Some forms of application logic.
  • 38. 38 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Multitenant Application is Two Applications (APIs, Services), which a platform makes a lot easier. Data Metadata User Role Assemble Config Role
  • 39. 39 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Summary and Discussion
  • 40. 40 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Summary and Discussion – An interesting Perspective, but 
 “Those who fail to learn from history are doomed to repeat it”. George Santayana Or maybe I am just a cranky old guy that time has passed by.
  • 41. 41 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Lunch Yesterday
  • 42. 42 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Looked a lot like this, with less smiling 
 These kids do not know anything about DB. You should see what they do. That’s nothing. You should see how they do SOA.
  • 43. 43 © Donald F. Ferguson, 2015. All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Summary and Discussion ‱  We can realize tremendous value from –  REST. –  Microservices. –  12 Factor Applications. –  Minimalistic infrastructure. –  Dynamic dependency resolution. –  Web callable middleware APIs. ‱  But, we risk losing benefits that emerged in middleware and standards when we started assmebling and composing solutions. –  Interface and dependency metadata. –  Optimized composition and integration engines and tools. –  Automated enablement of capabilities via functional containers. ‱  We should work to realize the benefits of both. The most crucial next steps is ensuring awareness and adoption of design patterns.