Microservice APIs
from conception to birth
Paul Nichols
Microservice APIs from Conception to Birth@pauljnichols
About Me
Paul Nichols
– Developer/Integration specialist for 20yrs
– Mexia Senior Consultant
Microservice APIs from Conception to Birth@pauljnichols
Agenda
Context – Business problem & Technology desired state
Followed by…
Design Build Deploy Run
Microservice APIs from Conception to Birth@pauljnichols
The Business Problem
NPP Inward Payments Process
Bank
Payment
Hub
Payment
Rejection
Validate
PostPayment
Case Management
System
Core Banking
System
Failure
Retry
Notify
Customer
Customer
Microservice APIs from Conception to Birth@pauljnichols
The Technology Desired State
“I wish I could provision infrastructure
at the click of a button…”
Integrating the Digital Enterprise
“I wish we could seamlessly move tasks
between machines and people…”
“I wish we could know about
problems, before they occur…”
“I wish our products were
always on…”
“I wish I could take an idea to
market in days not months…”
“I wish we could make safe product
updates that are automated with zero
outage…”
Microservice APIs from Conception to Birth@pauljnichols
Our Design
Cloud
– Commodity infrastructure
– Fast provisioning
– Allows for prototyping
– Highly resilient
– Always on
Microservice Banking API
– Single business
responsibility
– Independently deployable
(automated)
– Small enough to fit in your
head
– Language independent
Microservice APIs from Conception to Birth@pauljnichols
Our Design
Event Driven
– Choreography over
Orchestration
– Service Bus, Reliable
messaging
DevOps Teams
– Deploying
– Supporting
– 2 pizza size
Microservice APIs from Conception to Birth@pauljnichols
Microservices Platform
High Density
Fast/Reliable
Upgrades
Automated
Rollbacks
Replication &
Failover
Highly
Available
Internet Scale
Distributed
Cache
Simple API
Runs on simple
infrastructure
Load Balancing
Fault Tolerant
Stateful
Services
Low Latency
Health
Monitoring
Microservice APIs from Conception to Birth@pauljnichols
Design & Code Generation Demo
Generating a Microservice using Ardoq & Visual
Studio templates…
Automated Build and Deploy Pipeline
Develop
Automated Build and Deploy Pipeline
Develop Review
Automated Build and Deploy Pipeline
Develop Review Build
Automated Build and Deploy Pipeline
Develop Review Build Test
Automated Build and Deploy Pipeline
Develop Review Build Test Analyse
Automated Build and Deploy Pipeline
Develop Review Build Test Analyse Deploy
Microservice APIs from Conception to Birth@pauljnichols
Operations Demo
• Log Aggregation
• Proactive Monitoring
• Discovery of Physical Topology
• Auditing of Business Events
Microservice APIs from Conception to Birth@pauljnichols
Resilience Demonstration
Sudden removal of VM from the cluster…
Key Takeaways
• Simplified software delivery
• Patterns allow templating
• Consistency from design to logs
• Automate everything for fast and quality delivery
• A powerful hosting platform
• Aggregation and Correlation
• Proactive Monitoring
Thank You
Any questions?

Service fabric demo

  • 1.
    Microservice APIs from conceptionto birth Paul Nichols
  • 2.
    Microservice APIs fromConception to Birth@pauljnichols About Me Paul Nichols – Developer/Integration specialist for 20yrs – Mexia Senior Consultant
  • 3.
    Microservice APIs fromConception to Birth@pauljnichols Agenda Context – Business problem & Technology desired state Followed by… Design Build Deploy Run
  • 4.
    Microservice APIs fromConception to Birth@pauljnichols The Business Problem NPP Inward Payments Process Bank Payment Hub Payment Rejection Validate PostPayment Case Management System Core Banking System Failure Retry Notify Customer Customer
  • 5.
    Microservice APIs fromConception to Birth@pauljnichols The Technology Desired State “I wish I could provision infrastructure at the click of a button…” Integrating the Digital Enterprise “I wish we could seamlessly move tasks between machines and people…” “I wish we could know about problems, before they occur…” “I wish our products were always on…” “I wish I could take an idea to market in days not months…” “I wish we could make safe product updates that are automated with zero outage…”
  • 6.
    Microservice APIs fromConception to Birth@pauljnichols Our Design Cloud – Commodity infrastructure – Fast provisioning – Allows for prototyping – Highly resilient – Always on Microservice Banking API – Single business responsibility – Independently deployable (automated) – Small enough to fit in your head – Language independent
  • 7.
    Microservice APIs fromConception to Birth@pauljnichols Our Design Event Driven – Choreography over Orchestration – Service Bus, Reliable messaging DevOps Teams – Deploying – Supporting – 2 pizza size
  • 8.
    Microservice APIs fromConception to Birth@pauljnichols Microservices Platform High Density Fast/Reliable Upgrades Automated Rollbacks Replication & Failover Highly Available Internet Scale Distributed Cache Simple API Runs on simple infrastructure Load Balancing Fault Tolerant Stateful Services Low Latency Health Monitoring
  • 9.
    Microservice APIs fromConception to Birth@pauljnichols Design & Code Generation Demo Generating a Microservice using Ardoq & Visual Studio templates…
  • 10.
    Automated Build andDeploy Pipeline Develop
  • 11.
    Automated Build andDeploy Pipeline Develop Review
  • 12.
    Automated Build andDeploy Pipeline Develop Review Build
  • 13.
    Automated Build andDeploy Pipeline Develop Review Build Test
  • 14.
    Automated Build andDeploy Pipeline Develop Review Build Test Analyse
  • 15.
    Automated Build andDeploy Pipeline Develop Review Build Test Analyse Deploy
  • 16.
    Microservice APIs fromConception to Birth@pauljnichols Operations Demo • Log Aggregation • Proactive Monitoring • Discovery of Physical Topology • Auditing of Business Events
  • 17.
    Microservice APIs fromConception to Birth@pauljnichols Resilience Demonstration Sudden removal of VM from the cluster…
  • 18.
    Key Takeaways • Simplifiedsoftware delivery • Patterns allow templating • Consistency from design to logs • Automate everything for fast and quality delivery • A powerful hosting platform • Aggregation and Correlation • Proactive Monitoring
  • 19.

Editor's Notes

  • #3 I’ve been in development for 20 years Around half of which have been in the integration space I’ve been a senior consultant at Mexia for 3 great years now. Has the professional picture they took of me which I’ll never change because I’ve got so much less grey hair! Mexia concentrate solely on solving Integration problems. We analyze, architect, code, test and operate solutions built on Microsoft technologies those experiences on a recent project are the basis of todays talk
  • #4 Context – Business problem we solved with microserevices & also the Technology change we made at the bank we worked with This was a large undertaking for the bank which provided an opportunity to drive change In the way they deliver software Therefore I’ll explain our approach to: Design – Microservices & DevOps as a solution Build – Demonstration of creating a c# micoservice Deploy – Automation & Zero downtime Run – Resilience & Operational monitoring
  • #5 So today I’ll be showing Mexias approach to implementing the New Payments Platform (NPP) banking industry initiative There’s several parts to NPP but this diagram describes the inward payment process
  • #6 Desires the bank expressed to us during our 6 year relationship with them
  • #7 Although familiar to many in the audience the way we built and delivered this project was a little mind blowing for the bank compared to previous projects
  • #8 Explaining the architectural patterns used, our development & testing approach, hosting platform and choice of operational tools. The way we built and delivered this project was a little mind blowing for the bank compared to previous projects
  • #9 Provisioning via template. 6 mins to create a a Production ready cluster of 5 Windows Server machines We need a micro service hosting platform that can…
  • #10 As we do more of this we shall extend to BDD tests, team city, and octopus
  • #11 Why is Automation important with Microservices. One of the banks desires is to get to prod quickly. This can only be achieved with consistent automation Develop – Vanilla code Review – TFS /VSTS Build – Jetbrains Team City Test - Specflow BDD. Execuatble specifications. HTML report from BDD tests Analyse - Security and Code Analysis - best practices. There’s not the time for manual reviews Deploy – Dedicated deployment tool. Stores configuration, shows versions and environments and allows for a repeatable reliable process in every environment Service fabric performs rolling deployments, and will roll them back if there’s any issue
  • #12 Why is Automation important with Microservices Develop – Vanilla code Review – TFS /VSTS Build – Jetbrains Team City Test - Specflow BDD. Execuatble specifications. HTML report from BDD tests Analyse - Security and Code Analysis - best practices. There’s not the time for manual reviews Deploy – Dedicated deployment tool. Stores configuration, shows versions and environments and allows for a repeatable reliable process in every environment Service fabric performs rolling deployments, and will roll them back if there’s any issue
  • #13 Why is Automation important with Microservices Develop – Vanilla code Review – TFS /VSTS Build – Jetbrains Team City Test - Specflow BDD. Execuatble specifications. HTML report from BDD tests Analyse - Security and Code Analysis - best practices. There’s not the time for manual reviews Deploy – Dedicated deployment tool. Stores configuration, shows versions and environments and allows for a repeatable reliable process in every environment Service fabric performs rolling deployments, and will roll them back if there’s any issue
  • #14 Why is Automation important with Microservices Develop – Vanilla code Review – TFS /VSTS Build – Jetbrains Team City Test - Specflow BDD. Execuatble specifications. HTML report from BDD tests Analyse - Security and Code Analysis - best practices. There’s not the time for manual reviews Deploy – Dedicated deployment tool. Stores configuration, shows versions and environments and allows for a repeatable reliable process in every environment Service fabric performs rolling deployments, and will roll them back if there’s any issue
  • #15 Why is Automation important with Microservices Develop – Vanilla code Review – TFS /VSTS Build – Jetbrains Team City Test - Specflow BDD. Execuatble specifications. HTML report from BDD tests Analyse - Security and Code Analysis - best practices. There’s not the time for manual reviews Deploy – Dedicated deployment tool. Stores configuration, shows versions and environments and allows for a repeatable reliable process in every environment Service fabric performs rolling deployments, and will roll them back if there’s any issue
  • #16 Why is Automation important with Microservices Develop – Vanilla code Review – TFS /VSTS Build – Jetbrains Team City Test - Specflow BDD. Execuatble specifications. HTML report from BDD tests Analyse - Security and Code Analysis - best practices. There’s not the time for manual reviews Deploy – Dedicated deployment tool. Stores configuration, shows versions and environments and allows for a repeatable reliable process in every environment Service fabric performs rolling deployments, and will roll them back if there’s any issue
  • #17 Highlight the challenges with Microservices via a demo with Simulated Payments Need to aggregate logs and correlate – SEQ Appdynamics - Understand the physical layout, dynamically generated through agents inspecting the deployed components. Monitoring proactively showing errors and reduced performance Flight recorder to make sense of the business data that is flowing through the system – show screen shot
  • #19 This approach is changing the way the bank is delving software and business value Consistency from design to logs. Same name for everything. Instantly recognisable Patterns so that code generation can be employed as well as templating builds and deploys, leading to a consistent deployment pipeline Aggregation and correlation are vital to piece together a flexible Event architecture Microservices and good hosting platform removes code complexity Automation speeds time to production and ensures quality
  • #20 This approach is changing the way the bank is delving software and business value Consistency from design to logs. Same name for everything. Instantly recognisable Patterns so that code generation can be employed as well as templating builds and deploys, leading to a consistent deployment pipeline Aggregation and correlation are vital to piece together a flexible Event architecture Microservices and good hosting platform removes code complexity Automation speeds time to production and ensures quality