saturn 2015 einar landre j rn lmheim harald wesenberg
play

SATURN 2015 Einar Landre, Jrn lmheim, Harald Wesenberg Statoil ASA - PowerPoint PPT Presentation

SATURN 2015 Einar Landre, Jrn lmheim, Harald Wesenberg Statoil ASA Introduction The Case Domain Driven Design Microservices Discussion Data vs Domain Driven Organization and T eam Breaking the Monolith


  1. SATURN 2015 – Einar Landre, Jørn Ølmheim, Harald Wesenberg – Statoil ASA

  2. Introduction The Case • Domain Driven Design • Microservices • Discussion Data vs Domain Driven • Organization and T eam • Breaking the Monolith •

  3. The Case

  4. DBR – Drilling Reporting System Planning and reporting of drilling operations Began as a simple activity log Has evolved into much more over 20 years Client server application • 3,5 MLOC • 1,5 MLOC PLSQL • 1,0 MLOC C#/ APS.NET/Silverlight • 1,5 MLOC PowerBuilder Began as a PowerBuilder / Oracle application • Extended with Web later

  5. Architecture & T echnology DBR DB Tightly coupled +10.000LOC procedures 1,5MILL LOC PLSQL Fat Windows Client / Citrix Operations Cost Estimates Technological fragmented Experiences Experiences Scripted business logic Risk KPI´s Plans Sections

  6. The T eam Small (3-5) over very long time • +15 years • Now two teams 6+4, two locations Technology segregated • Database • Power Builder • Web (Microsoft Stack) Vulnerable Geographically segregated • Dependent on individuals • Stavanger • Number of years to retirement • Bergen

  7. Painpoints Long lead times for new functionality Convoluted database model Deployment problems (windows client on Citrix) System level testing All in one build bundle Obsolete technology Short time to retirement

  8. Way forward Project Planner Risk UI UI User Interface Project Planner Risk Service API Logic Service API Risk Project Planning Data Domain Model Domain Model 1. Make implicit concepts explicit. Risks Project Plans 2. Create functional verticals in a layered architecture. 3. How to split the database?

  9. Domain Driven Design Domain-Driven Design: T ackling the complexity in the heart of software Eric Evans, 2003 http://www.domaindrivendesign.org

  10. Domain Logic Patterns Three main patterns for organizing the domain logic: • Transaction Script • T able Module Organizes business logic by procedures where each procedure handles a single request from the • Domain Model presentation. A single instance that handles the business logic for all An object model of the domain that incorporates rows in a database table or view. both behavior and data. Patterns of Enterprise Application Architecture (p. 109-132) – Martin Fowler

  11. Domain Driven Design – distilled • Ubiquitous (domain based) language − A language that is built around the concepts of the business and that permeates every activity in the project. − The language used to talk about the domain model in the project • Patterns for building a domain model • Strategic design principles and techniques

  12. Ubiquitous language – A Domain based language T echnical Domain Ubiquitous Language Language Language

  13. Building blocks: Patterns Repos ositori ories Servic vices Smart Sma Datab abas ase Enti titi ties Domain Drive iven Aggr ggrega gates Design gn Factori ories Value Va Smart UI Sma Objec ects Layer ered ed Arc rchitecture re

  14. Domain Driven Design – Strategic Design Contino nous us Inte tegrati tion Ubiqui uitous us Share red Langu guage ge Ker ernel nel Bound unded ed Con Context Cu Custom omer/ Domai Do ain Vision on Supplier lier Statem ement nt T T e eams Cor Core Do Domai ain Gen ener eric ic Conformist Con Subdomains ns Cont ntex ext Ma Map Highlig hlighted ed Core Cor Seg egreg egated ed Open H en Host Core Cor Ser ervice Abs bstra ract Core Cor Anticorru rruption Sepa para rate Publis lished ed Layer er Ways Wa Langu guage ge

  15. Strategic design: Context maps In large systems (or set of systems), we need a map to give us a picture of the models that are inside. Rela latio ions Conte text t ma map Bounde ded d context xt Bounde ded d context xt 2014-

  16. Strategic design: Integrity across systems • Bounded context − The meaning of a domain concept is bound by the context it is used • Context map − A map that describe the contexts and their relationships • Relation types: − Shared kernel − Customer/supplier teams − Conformist − Anti-corruption layer − Separate ways − Open host service − Published language

  17. Strategic design: Types of relations Ty Type Descrip iptio ion Share red kerne rnel • Overlapping models shared among teams Customer er/supplier • One bounded context is maintained by one team but used by devel elopmen ent teams another Conf nfor ormist • As C/S development teams, but the customer team stricly adheres to the supplier model, without the option to change it. Ant nticorru rruption on l layer • Isolation layer between models that take up the differences Separ arate te w ways • Avoid integration, let the models develop on their own Open h Op host s ser ervice • One system that has an open connection point that can be used by (many) other systems Publis lished langu guage ge • Let the integration be based on a common, well-defined language

  18. Aggregates Order aggregate Product aggregate «aggregate-root» Order OrderRepository ProductRepository +addProduct() +add() +calculateCost() +add() +findAll() * 1 +getOrderLines() +findAll() +findMatching() +deleteOrderLine() +findMatching() +create() 1 1 * * «aggregate-root» OrderLine Product -price -price 1 1

  19. Microservices …is a way of designing software as suites of independently deployable services

  20. Independent Team web services Architecture node.js Ruby Python REST Mobility Scala governance javascript Linux Skills JSON Service Docker Agile Kanban App Engine Management Cloud Odata Atom Pub XML Application Development

  21. Smart Endpoints Dumb Pipes

  22. Infrastructure Automation

  23. Service Interfaces

  24. Organized around Buisness capabilities

  25. Conway’s Law Organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations Melvin E. Conway

  26. Borrowed from James Lewis and Martin Fowler’s article: http://martinfowler.com/articles/microservices.html

  27. Inverse Conway maneuver Borrowed from James Lewis and Martin Fowler’s article: http://martinfowler.com/articles/microservices.html

  28. Important success criteria - Rapid provisioning - Basic monitoring - Rapid Application Development - DevOps Culture

  29. Data driven vs Domain driven

  30. Discussion Domain Driven Design is advocated as the best way Still we see that the data driven approach dominate Object oriented languages used as script languages 1000 or even 10.000 LOC methods are still written Why?

  31. Data Driven Development Has its origin in data processing 1890 US Census Herman Hollerith Punch cards for data storage Entry, Validation, Sorting, Summarization, Aggregation, … Electro-Mechanical machines until the 1950ties… COBOL programming language since 1959 …

  32. Object Oriented Development Has its origin in simulation of dynamic systems Interception of ICBM’s Simula 67 language Ole Johan Dahl / Kristen Nygaard Encapsulation of state and behaviour in “classes” Simplifies the modelling of real-world behaviour Smalltalk, C++, Java, C#, Scala, ….

  33. Thoughts on DBR and its likes Began as a data processing systems Record and report performed operations Materials used • Difficulties encountered • Failures • With time, more and more dynamic domain’s was added Planning (re-planning) Scheduling Automated planning Cost function • • Optimisation Automatic re-scheduling • • Monitoring Optimisation • • Dynamic domains are addressed with a data driven approach

  34. Micro-services to the rescue? Planning & Scheduling Automated planning • Multi-agent • Analysis R for statistics • Daily reports Data driven • Each service can be implemented with the most suitable technology

  35. You need skills Expert Creativity Proficient Competent Knowledge Advanced Novice Novice

  36. Skills and productivity Number of persons 10x 10x Novice Competent Expert 39 2014-04-24

  37. Organization

  38. Our T eam Small (3-5) over very long time +15 years • Now two teams 6+4, two • locations T echnologically segregated Database • Power Builder • Web (Microsoft Stack) •

  39. Why have we not succeded?

  40. Leadership Good software leaders are rare How to nurture talents? • How to develop the needed skills? • Leading from the front or back? How to build trust? • How to ensure individuals pulls as a team? 44 2014-04-24

  41. Conway’s Law Organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations Melvin E. Conway

  42. Our T eam Not cross functional • Database • Power Builder • Web (Microsoft Stack) Not co-located • Stavanger • Bergen Vulnerable • Dependent on individuals • Number of years to retirement

  43. Our company Large enterprise organization • Divisional structure • Multinational • Central IT governance Lacking • DevOps culture • Infrastructure automation

Recommend


More recommend