Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Building Fintech with Microservices and Kubernetes @ API World 2018

716 Aufrufe

Veröffentlicht am

Building Fintech with Microservices and Kubernetes

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

Building Fintech with Microservices and Kubernetes @ API World 2018

  1. 1. Building Fintech with Microservices and Kubernetes SEPTEMBER, 2018 Irakli Nadareishvili, Sr. Director, SharedTech, Capital One.
  2. 2. Irakli Nadareishvili Senior Director, SharedTech, Capital One • API & Microservices Governance • Capital One’s Developer Tooling • Co-author of “Microservice Architecture” inadarei
  3. 3. AGENDA Microservices Way DevOps and Infrastructure Software Design with Microservices
  4. 4. Align Around the Goal “Why does Capital One care about Microservices?” inadarei
  5. 5. 11 “Speed and Safety at Scale and in Harmony” Need for coordination is why we constantly compromise between speed and safety. Microservices Way: inadarei
  6. 6. Microservices close the alignment loop! AgileProcess: Operations: Product: DevOps & CI/CID Lean Product Dev Toyota Production System: Think In Small Batches Architecture: Microservices inadarei
  7. 7. Data: Batch-size Is a Strong Predictor of Performance Source: Accelerate, by Nicole Forsgren, PhD, Jez Humble, and Gene Kim
  8. 8. Getting to High-Performance Teams: 1 Measure Autonomy, to Gauge Progress 2 Combine Small Batches with Clarity on Long-Term View 3 Facilitate Experimentation and Design-Thinking And yes, our teams are small (5 devs max), but that’s not the point. inadarei
  9. 9. 1. Measure Autonomy, to Gauge Progress Because: Knowing you’re on the right path is paramount. inadarei
  10. 10. 1. Measure Autonomy, to Gauge Progress Initial attempts: tracking disruption events (qualitative). Eventual (quantitative): Forsgren et al.’s metrics: 1. Lead time 2. Deploy frequency 3. Time to restore service
  11. 11. 2. Clarity on Long-Term View Because: 99.999% of tech teams have Agile Myopia (not a scientific fact, but a strong belief based on years of observation) inadarei
  12. 12. Unexpected, Simple Cure for Agile Myopia
  13. 13. 3. Experimentation and Design-Thinking Because: Product-Market Mismatch and Rework are devastatingly expensive. inadarei
  14. 14. 3. Experimentation and Design-Thinking “You’ve gotta start with the customer experience and work backwards to the technology. You can’t start with the technology and figure-out where you’re gonna sell it.” – Steve Jobs at the 1997 WWDC @source: https://youtu.be/FF-tKLISfPE?t=114
  15. 15. AGENDA Microservices Way DevOps and Infrastructure Software Design with Microservices
  16. 16. At the beginning: 1. ECS-based container deployments + custom code, Mesos, Nomad, Kube 2. Dozen+ of CI/CD implementations 3. Non-standard secrets management 4. Resiliency tests ran quarterly 5. Dozens of teams building their own infra inadarei
  17. 17. Now and Going Forward: 1. Kubernetes packaged for Capital One 2. Federated Ops of Kubernetes Clusters 3. Unified CI/CD (using Spinnaker) and auditable release management with inner-sourced pipeline patterns. 4. Enterprise Solutions: Hashicorp Vault, chaos engineering, test execution, code analysis, container analysis inadarei
  18. 18. Local [Kubernetes] Workspaces: github.com/skaffold-microservices/workspace inadarei
  19. 19. Kubernetes is Architect’s Tool (not just ops) 1. PODs make sidecars an architectural reality 2. Istio is the best thing since sliced bread 3. Being ubiquitous is a value by itself inadarei
  20. 20. AGENDA Microservices Way DevOps and Infrastructure Software Design with Microservices
  21. 21. APIs vs. Microservices? We made sure to invest in clarifying where “Microservicization” fit with the already mature API-First culture. inadarei
  22. 22. 11 Microservices are not just small APIs: Alexa VoiceSkill Chatbot Web+ Mobile App inadarei
  23. 23. Our Design Process 1. Find Bounded Contexts w/ Event Storming 2. Identify Actors 3. Identify JTBDs 4. Define Queries and Actions 5. Design OpenAPI Spec 6. Get feedback on the spec 7. Implement APIs (usually w/ microservices) inadarei
  24. 24. Bounded Contexts via Event Storming Photos by: Justin Bachorik @justinbach
  25. 25. Example: Actors for DigiCoins 1. DigiCoin customer – a user using digicoin apps to purchase or exchange digital coins. 2. DigiCoin Wallet – the platform 3. DigiCoin app – mobile app 4. … DigiCoins is a fake exchange and wallet for digital currency. This is an entirely imaginary example for demo purposes only inadarei
  26. 26. API Design: JTBDs When _____ , I want to _____ , so I can _____ . Circumstance, motivation, goal Based on Alan Klement’s JTBD Story template https://jtbd.info/replacing-the-user-story-with-the-job-story-af7cdee10c27 inadarei
  27. 27. Example: JTBDs for DigiCoins 1. When a customer wants to buy coins they want to see current price of a coin so that they can estimate their buying power. 2. When a customer initiates coin purchase, they need to add or reuse a payment method, so that they can provide funds for the purchase 3. When a customer finalizes a coin purchase, DigiCoins needs to charge the payment method, so that it can make money DigiCoins is a fake exchange and wallet for digital currency. This is an entirely imaginary example for demo purposes only inadarei
  28. 28. Example: Queries for DigiCoins 1. Lookup of a coin “price” 1. Input: digital coin id, traditional currency code. 2. Response: conversion rate 2. Lookup of existing payment methods 1. Input: user identifier, payment type (coin, credit, bank transfer etc.) 2. Response: uuid and details of the payment method, status of the payment method DigiCoins is a fake exchange and wallet for digital currency. This is an entirely imaginary example for demo purposes only inadarei
  29. 29. Example: Action(s) for DigiCoins 1. Charge a payment method to fund coin purchase 1. Input: payment method identifier and details. 2. Response: success or failure code DigiCoins is a fake exchange and wallet for digital currency. This is an entirely imaginary example for demo purposes only inadarei
  30. 30. Example: OpenAPI Spec DigiCoins is a fake exchange and wallet for digital currency. This is an entirely imaginary example for demo purposes only inadarei
  31. 31. Our Design Process 1. Find Bounded Contexts w/ Event Storming 2. Identify Actors 3. Identify JTBDs 4. Define Queries and Actions 5. Design OpenAPI Spec 6. Get feedback on the spec 7. Implement APIs (usually w/ microservices) inadarei
  32. 32. QUESTIONS?

×