Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Building a Reliable Cloud Based Bank in Java

56 vues

Publié le

Video and slides synchronized, mp3 and slide download available at URL https://bit.ly/2FNfhjM.

Jason Maude talks about the experience of Starling Bank, a mobile-only, cloud-based bank that launched in the UK in 2017. He looks at the system architecture of the bank, the design principles that give them the ability to release quickly and reliably, and why they decided to build the back end using Java. Filmed at qconsf.com.

Jason Maude has over a decade of experience working in the financial sector, primarily in creating and delivering software. He is passionate about creating teams and explaining complex technical concepts to those who are convinced that they won't be able to understand them. He currently works at Starling Bank as one of their lead engineers and host of the Starling podcast.

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Building a Reliable Cloud Based Bank in Java

  1. 1. BUILDING A RELIABLE CLOUD BASED BANK IN JAVA Jason Maude - Senior Engineer @jasonmaude
  2. 2. InfoQ.com: News & Community Site • Over 1,000,000 software developers, architects and CTOs read the site world- wide every month • 250,000 senior developers subscribe to our weekly newsletter • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • 2 dedicated podcast channels: The InfoQ Podcast, with a focus on Architecture and The Engineering Culture Podcast, with a focus on building • 96 deep dives on innovative topics packed as downloadable emags and minibooks • Over 40 new content items per week Watch the video with slide synchronization on InfoQ.com! https://www.infoq.com/presentations/ starling-bank
  3. 3. Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide Presented at QCon San Francisco www.qconsf.com
  5. 5. “Move fast and break things. Unless you are breaking stuff you are not moving fast enough.” Mark Zuckerberg
  6. 6. “Gringotts was the safest place in the world for something you wanted to hide” Harry Potter and the Philosopher's Stone by J K Rowling
  7. 7. A tale of banking woe
  8. 8. If you develop, you break things
  10. 10. Who are Starling Bank? • Tech start-up with a banking licence • ~100% cloud-based, mobile-only • Mastercard debit card • DDs and faster payments • Location-enriched transaction feed • ApplePay, GooglePay, FitBitPay... • Spending insights • Granular card control • Open APIs & developer platform
  11. 11. We built a bank in a year • Jan 2014 - Founded by Anne Boden • Jun 2014 - Kick-off with Regulators • Sep 2015 - Technical prototypes • Jul 2016 - Granted a partial banking license • Nov 2016 - Launching the alpha app • Feb 2017 - Launching the beta app • Apr 2017 - Granted a full banking license • May 2017 - Public launch • Mar 2018 - Awarded Best British Bank
  13. 13. Self-contained systems http://scs-architecture.org
  14. 14. Self-contained systems
  15. 15. Recovery in distributed architectures
  16. 16. L.O.A.S.C.T.T.D.I.T.T.E.O.
  17. 17. DITTO architecture (do idempotent things to others)
  18. 18. DITTO architecture • Do everything at least once and at most once • Retry (at least once) • Idempotency (at most once) • Work towards correctness, eventual consistency • Reduce synchronicity to a minimum • Save all requests to the database first • Keep the smarts in the services, not in the pipes • No distributed transactions • Do not trust other services
  19. 19. POST 201 Created {uuid} PUT {uuid} 202 Accepted PUT {uuid} 202 Accepted paymentcustomer bank Make a payment DITTO in action
  20. 20. POST PUT {uuid} paymentcustomer bank PUT {uuid} 202 Accepted retry Idempotency provides “at most once” Retry provides “at least once” 202 Accepted retry PUT {uuid} PUT {uuid} 201 Created {uuid}
  21. 21. Catch-up processing Catch Up Processor RC RC RC
  22. 22. But why Java? • Exceptions are noisy and difficult to ignore • Reliable ecosystem (user base, tooling, job market, etc) • Integrations with legacy third parties (SOAP etc)
  24. 24. Instance termination is safe
  25. 25. Continual delivery of back-end • Continual deployment to non-prod, sign-off into prod • Auto build, dockerise, test, scan, deploy < 1h • Code released to production up to 5 times a day
  26. 26. Bi-modal banking IT • Incumbent banks operate: - legacy backends that move at glacial pace - … and try to iterate the customer experience faster • We release the backend at 10x the rate of the mobile apps - 1-5 backend software releases per day - 1-2 infrastructure releases per day - mobile apps released weekly or fortnightly
  27. 27. The “rolling” giphy • Our auditors loved this one • Yes it’s in our release documentation • Clear signal in engineering channel that is release in progress
  28. 28. … and if something goes wrong...
  29. 29. Testing • Chat-ops via Slack • Available to all developers
  30. 30. Chaos
  31. 31. THE FUTURE
  32. 32. DITTO at scale: Self DOS Catch Up Processor
  33. 33. DITTO at scale: Racing to work
  34. 34. The future of the JVM • Java as an ecosystem • Is the upgrade to Java 9/10/11 worth it? • Could someone else steal the crown?
  36. 36. Design software to be skeptical
  37. 37. Give EVERYTHING a UUID
  38. 38. Fire alarms are good
  39. 39. You can do anything you can undo
  40. 40. Thank you! Check out the Starling Developer Podcast! https://developer.starlingbank.com @jasonmaude
  41. 41. Watch the video with slide synchronization on InfoQ.com! https://www.infoq.com/presentations/ starling-bank