SlideShare a Scribd company logo
1 of 34
1Copyright © 2019 Message4U Pty Ltd. All rights reserved.Copyright © 2019 Message4U Pty Ltd. All rights reserved. 1
Thanks
VenueSponsor
GeneralAssembly
Providedthevenueforthis
presentationandforregularCode
Mentoringmeetups.
Presentation
MessageMedia
Providedthetimetopreparethis
presentation,proof-readingand
contentvalidation.
Facilitation
Code Mentoring
Providedaplatformforthis
presentation.
Slack:tiny.cc/melbcm
Copyright © 2019 Message4U Pty Ltd. All rights reserved.
Presenter:
Date:
2
MSA, TBD,DDD, TDD, BDD,WTF?
MicroserviceArchitecture,TrunkBasedDevelopment,DomainDriven
Design,TestDrivenDevelopmentandBehaviourDrivenDevelopment
MichaelLambert
June2019
Approved for Public Presentation
3Copyright © 2019 Message4U Pty Ltd. All rights reserved.Copyright © 2019 Message4U Pty Ltd. All rights reserved. 3
Thanks
VenueSponsor
GeneralAssembly
Providedthevenueforthis
presentationandforregularCode
Mentoringmeetups.
Presentation
MessageMedia
Providedthetimetopreparethis
presentation,proof-readingand
contentvalidation.
Facilitation
Code Mentoring
Providedaplatformforthis
presentation.
Slack:tiny.cc/melbcm
4Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
WhoisthisMichaelguy?
Welcome
• Senior PHP Developer @ MessageMedia
• Worked with Internet technologies since 1992
• Varied roles:
o Founderof an InternetAccessProviderin themid 90s
o Workedonthe tenderdocumentthat won AusRegistrymanagementrights for .AU
o PreviouslyLead Infrastructure(DevOps)Engineer
o Mentorat MelbourneCodeMentoringmeetup
• Fan of Agile processes and Symfony Framework
• Currentlyre-learning JS foruse in AWS Lambda
LinkedIn
5Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
AboutthisPresentation
Welcome
• Microservice Architecture
• TrunkBased Development
• Domain DrivenDesign and Development
• Test DrivenDevelopment
• Behaviour DrivenDevelopment
High-level overview of:
• Pub/sub &Queues
• CQRS
• Chaos Engineering
Brief mentions of:
6Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Assumptions
Welcome
• Understanding of agile methodologies
• Knowing that “best practice” doesn’t always match corporate reality
• Desire to learn and improve
• Ability to apply concepts to yourskill-set
• Knowledge of git concepts suchas pull requests
7Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Agenda
Microservice Architecture
TrunkBased Development
Domain DrivenDesign &
Development
Test DrivenDevelopment
Behaviour DrivenDevelopment
TyingIt Together
Q& A
8Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Overview
Microservice Architecture
• Breakinga product into small, self-contained services
• Removedependencies between services
• Reduce blast-radius (fewer services affected in case of fault)
• Simplified feature and team expansion
• Reduce technology lock-in
• Increasemaintainability
• Reduce onboarding time
9Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Application
Microservice Architecture
• Divide into logical components (services)
• Design standard communication interfaces (pub/sub and/or
queues)
• Avoid interdependencies
• Data is eventuallyconsistent
• Fault tolerant design
• Data-store per service
10Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Agenda
Microservice Architecture
TrunkBased Development
Domain DrivenDesign &
Development
Test DrivenDevelopment
Behaviour DrivenDevelopment
TyingIt Together
Q& A
11Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Overview
Trunk BasedDevelopment
• Enabler of continuousintegration and continuousdelivery [ordeployment]
• Multiple commits to master per developer per day
• Branchby abstraction (feature flags)
• All commits (or at least PRs) must pass testing
• Fixforward strategy
• Scales to large team sizes
• Avoids mergeconflicts
12Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Styles
Trunk BasedDevelopment
Pure Trunk Based Development
• All commits to master
• Code-pairing
• Automatic rollbacks
• Small (or tiny) teams
Short Lived Features
• Feature branches last less than 1business day
• Strong code review process
• Anyteam size
13Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Requirements
Trunk BasedDevelopment
• Excellent review capabilities and/or code pairing
• Automated build and test services (CIpipeline)
• Feature flags
• Small tasks
• Automated rollback or strong fix-forward capability
• Developer commitment
14Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
ShortLived FeatureBranchesProcess/ Pull-requestWorkflow
Trunk BasedDevelopment
• Createa feature flag infirst commit
• Implementthe feature insmall steps
• A feature branchshould be mergedwithin one day
• Squash commits when merging
• Every mergemust bereviewed
• Master can be released at anytime
15Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Agenda
Microservice Architecture
TrunkBased Development
Domain DrivenDesign &
Development
Test DrivenDevelopment
Behaviour DrivenDevelopment
TyingIt Together
Q& A
16Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Overview
DomainDriven Design & Development
• Bound to a business model
• Language specific to the business domain
• Reduces support time
• Requires translation between services
• Functionality driven by business need
17Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Implementation
DomainDriven Design & Development
• Understand thebusiness domain beforeplanning
• Planningmust be domain-centric
• Useterminology dictated by thebusiness function
o Accountswouldhave“debtors”and“creditors”
o Warehousewouldhave“recipients”and”senders”
o Managementwouldhave“customers”and “suppliers”
• Inter-servicecommunication requirestranslator functionality
18Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Agenda
Microservice Architecture
TrunkBased Development
Test DrivenDevelopment
Behaviour DrivenDevelopment
TyingIt Together
Q& A
Domain DrivenDesign &
Development
19Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Overview
TestDriven Development
• Tests written beforefunctionality
• CanincludeBDD (covered next)
• Often interpreted as just unit tests
• Find errors early
• Test for failure
• Refactor with confidence
• Mock external services
20Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Unit Tests
TestDriven Development
• Write tests for eachfunction before writing the function
• Test both good and bad paths
o Is the expected value returned?
o Did the correctexception get thrown?
• Ensureall tests pass
• Only test thelocal code
21Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Implementationand ProcedureEnforcement
TestDriven Development
• TrueTDD can be hardto adopt
• 100%code coverage is not always viable
• At a minimum,tests must bewritten before commit
• Requiresclear functionalitydefinition
• Automated test runnershelp enforce testing
• It’s nevertoo late to start; monitor coverage for
constant improvement
• Does not replacefunctional and manualtesting
22Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Agenda
Microservice Architecture
TrunkBased Development
Test DrivenDevelopment
Behaviour DrivenDevelopment
TyingIt Together
Q& A
Domain DrivenDesign &
Development
23Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Overview
Behaviour Driven Development
• Clearacceptance criteria (as user stories)
• Acceptance criteria canbe usedas functional tests
• Tests real world use cases
• Support issues arereplicated and a failing test written
• Test often written by domain experts
• Does not replaceunittests ormanual verification testing
24Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
FunctionalTestsand AcceptanceCriteria
Behaviour Driven Development
• Acceptancecriteria should be written as user stories
o GIVENx, WHEN y, THEN z
o GIVENI have a user account
WHEN Ientermyusernameand password
THEN Iwill belogged in
• Acceptancecriteria define functional tests
• Should bewritten by domain experts, product owners and QA
25Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Implementationand Integrationwith Unit Tests
Behaviour Driven Development
• Test runningshould beautomated
• Functional tests can be runin parallel to unit tests (reduce time to deploy)
• Functional tests should onlymock3rd party services
• Does not relyon unit tests
• Does not replace unittests
26Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Agenda
Microservice Architecture
TrunkBased Development
Test DrivenDevelopment
Behaviour DrivenDevelopment
TyingIt Together
Q& A
Domain DrivenDesign &
Development
27Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
ServiceDefinitionand Planning
TyingitTogether
• Divide by business domain (DDD) and service (MSA)
• Ensuredesign does not relyon other services (MSA)
• Useterminology local to the domain (DDD)
• Write high-level functional tests (BDD)
28Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
CQRS (CommandQuery ResponsibilitySegregation)
TyingitTogether
• MSA and DDDwell suited to CQRS
• Best incomplex business models
• Read and write services are separated (mayshare a datastore)
• Out of Scope: When to use CRUDand when to use CQRS
29Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
IssueDefinitionandPlanning
TyingitTogether
1. Define user stories
2. Break down to individual stories
3. Convert userstory to acceptance criteria
4. Convert acceptance criteria to functionaltests
5. Verifyfunctional tests cover user stories
• Small Tasks (less than one day of work)
• Testable
• User-centric
• Design for failure
30Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Coding
TyingitTogether
• Usedomain based terminology
• Do NOTrelyon other systems
• Codemust behumanreadable
• All code must be testable and tested
• Scope creep is not allowed (create a new task)
• One task per issue
• Understand the issue before coding
31Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
AutomatedTestingandDeployments
TyingitTogether
• Test before everycommit (ideally)
• Test everyPR before merge(required)
• Automate unitand functional tests
• Implementproduction testing
• Consider chaos engineering
• When code quality is high enough, implement continuous deployments
32Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF?
Agenda
Microservice Architecture
TrunkBased Development
Test DrivenDevelopment
Behaviour DrivenDevelopment
TyingIt Together
Q& A
Domain DrivenDesign &
Development
33Copyright © 2019 Message4U Pty Ltd. All rights reserved.Copyright © 2019 Message4U Pty Ltd. All rights reserved. 33
messagemedia.com
Let’s stay in touch
Thankyou
michael.lambert@messagemedia.com.au
LinkedInQR Code
Approved for Public Presentation
34Copyright © 2019 Message4U Pty Ltd. All rights reserved.Copyright © 2019 Message4U Pty Ltd. All rights reserved. 34
Australia | New Zealand | United States | United Kingdom
1800 155 228
messagemedia.com
Approved for Public Presentation

More Related Content

What's hot

PTS Service Portfolio
PTS Service PortfolioPTS Service Portfolio
PTS Service Portfolioabbasz
 
Media Processing Strategies for VoLTE & Interactive Voice Services
Media Processing Strategies for VoLTE & Interactive Voice ServicesMedia Processing Strategies for VoLTE & Interactive Voice Services
Media Processing Strategies for VoLTE & Interactive Voice ServicesRadisys Corporation
 
Visium Resources Company Profile (Printable Brochure)
Visium Resources Company Profile (Printable Brochure)Visium Resources Company Profile (Printable Brochure)
Visium Resources Company Profile (Printable Brochure)Visium Resources Cleveland
 
DataVox Corporate Profile
DataVox Corporate ProfileDataVox Corporate Profile
DataVox Corporate ProfileMollie Dobersek
 
The Revolution in Licensing - Cloud-Based Licensing
The Revolution in Licensing - Cloud-Based LicensingThe Revolution in Licensing - Cloud-Based Licensing
The Revolution in Licensing - Cloud-Based LicensingLicensingLive! - SafeNet
 
IPexcel - Company Overview
IPexcel - Company OverviewIPexcel - Company Overview
IPexcel - Company OverviewIPexcel
 
Corporate Presentation It Rspl
Corporate Presentation It   RsplCorporate Presentation It   Rspl
Corporate Presentation It RsplNeha Bagga
 
Teclever so and cs v0.9
Teclever so and cs v0.9Teclever so and cs v0.9
Teclever so and cs v0.9tanima123
 
CTI Communications Company Profile
CTI Communications Company ProfileCTI Communications Company Profile
CTI Communications Company ProfileCTI Communications
 
Managed Services - Becoming a Vendor
Managed Services - Becoming a VendorManaged Services - Becoming a Vendor
Managed Services - Becoming a VendorCA Nimsoft
 
Teclever so and cs v0.9 (3)
Teclever so and cs v0.9 (3)Teclever so and cs v0.9 (3)
Teclever so and cs v0.9 (3)tanima123
 
AIDC Services
AIDC ServicesAIDC Services
AIDC Servicesbcw-i
 
Video Bridging
Video BridgingVideo Bridging
Video BridgingVideoguy
 
Elarasys Mini Core Story 10
Elarasys Mini Core Story   10Elarasys Mini Core Story   10
Elarasys Mini Core Story 10Rick Karbowski
 
Video Bridging
Video BridgingVideo Bridging
Video BridgingVideoguy
 

What's hot (18)

PTS Service Portfolio
PTS Service PortfolioPTS Service Portfolio
PTS Service Portfolio
 
Media Processing Strategies for VoLTE & Interactive Voice Services
Media Processing Strategies for VoLTE & Interactive Voice ServicesMedia Processing Strategies for VoLTE & Interactive Voice Services
Media Processing Strategies for VoLTE & Interactive Voice Services
 
Netax sdc
Netax sdcNetax sdc
Netax sdc
 
Visium Resources Company Profile (Printable Brochure)
Visium Resources Company Profile (Printable Brochure)Visium Resources Company Profile (Printable Brochure)
Visium Resources Company Profile (Printable Brochure)
 
DataVox Corporate Profile
DataVox Corporate ProfileDataVox Corporate Profile
DataVox Corporate Profile
 
The Revolution in Licensing - Cloud-Based Licensing
The Revolution in Licensing - Cloud-Based LicensingThe Revolution in Licensing - Cloud-Based Licensing
The Revolution in Licensing - Cloud-Based Licensing
 
IPexcel - Company Overview
IPexcel - Company OverviewIPexcel - Company Overview
IPexcel - Company Overview
 
Corporate Presentation It Rspl
Corporate Presentation It   RsplCorporate Presentation It   Rspl
Corporate Presentation It Rspl
 
Teclever so and cs v0.9
Teclever so and cs v0.9Teclever so and cs v0.9
Teclever so and cs v0.9
 
CTI Communications Company Profile
CTI Communications Company ProfileCTI Communications Company Profile
CTI Communications Company Profile
 
Managed Services - Becoming a Vendor
Managed Services - Becoming a VendorManaged Services - Becoming a Vendor
Managed Services - Becoming a Vendor
 
Teclever so and cs v0.9 (3)
Teclever so and cs v0.9 (3)Teclever so and cs v0.9 (3)
Teclever so and cs v0.9 (3)
 
AIDC Services
AIDC ServicesAIDC Services
AIDC Services
 
Video Bridging
Video BridgingVideo Bridging
Video Bridging
 
Ngn Company Profile 1
Ngn Company Profile 1Ngn Company Profile 1
Ngn Company Profile 1
 
Elarasys Mini Core Story 10
Elarasys Mini Core Story   10Elarasys Mini Core Story   10
Elarasys Mini Core Story 10
 
Gii final presentation 6.5 ss
Gii   final  presentation 6.5 ssGii   final  presentation 6.5 ss
Gii final presentation 6.5 ss
 
Video Bridging
Video BridgingVideo Bridging
Video Bridging
 

Similar to MSA, TBD, DDD, TDD, BDD, WTF?

DevOps Thinking for the Line of Business
DevOps Thinking for the Line of BusinessDevOps Thinking for the Line of Business
DevOps Thinking for the Line of BusinessSanjeev Sharma
 
IBM Z for the Digital Enterprise 2018 - Automate Delivery Pipeline
IBM Z for the Digital Enterprise 2018 - Automate Delivery PipelineIBM Z for the Digital Enterprise 2018 - Automate Delivery Pipeline
IBM Z for the Digital Enterprise 2018 - Automate Delivery PipelineDevOps for Enterprise Systems
 
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd mattersDDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd mattersKim Kao
 
Transforming Partner Consulting Business to Capture Profit in the Cloud
Transforming  Partner Consulting Business to Capture Profit in the CloudTransforming  Partner Consulting Business to Capture Profit in the Cloud
Transforming Partner Consulting Business to Capture Profit in the CloudSarkis Kerkezian, PMP
 
BroadSoft and Cisco Overview & Cloud Calling Solutions
BroadSoft and Cisco Overview & Cloud Calling SolutionsBroadSoft and Cisco Overview & Cloud Calling Solutions
BroadSoft and Cisco Overview & Cloud Calling SolutionsBroadSoft
 
Reverside IBM Enterprise Modernisation Capability
Reverside IBM Enterprise Modernisation CapabilityReverside IBM Enterprise Modernisation Capability
Reverside IBM Enterprise Modernisation CapabilityRajib Gupta
 
Gramener IT Services Enterprise Overview
Gramener IT Services Enterprise Overview Gramener IT Services Enterprise Overview
Gramener IT Services Enterprise Overview Cannyfore
 
Cloud With DevOps Enabling Rapid Business Development
Cloud With DevOps Enabling Rapid Business DevelopmentCloud With DevOps Enabling Rapid Business Development
Cloud With DevOps Enabling Rapid Business DevelopmentSam Garforth
 
THE OPEN SOURCE OPPORTUNITY: Monetizing Open Source Though Partnerships
THE OPEN SOURCE OPPORTUNITY: Monetizing Open Source Though PartnershipsTHE OPEN SOURCE OPPORTUNITY: Monetizing Open Source Though Partnerships
THE OPEN SOURCE OPPORTUNITY: Monetizing Open Source Though Partnershipscyberopticgroup
 
Micro Everything - Our Road to Scale
Micro Everything - Our Road to ScaleMicro Everything - Our Road to Scale
Micro Everything - Our Road to ScaleAhmad Assaf
 
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network StrategiesCisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network StrategiesMen and Mice
 
CollabNet Houston Workshop Live Enterpise agility_11.12.14
CollabNet Houston Workshop Live Enterpise agility_11.12.14CollabNet Houston Workshop Live Enterpise agility_11.12.14
CollabNet Houston Workshop Live Enterpise agility_11.12.14dennisn129CBN
 
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_custdennisn129
 
UG Software Technologies
UG Software TechnologiesUG Software Technologies
UG Software TechnologiesUg Webmart
 
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
 
Webinar for July 2020 - Insights to Solutions Spotlight: Re-imagining Digital...
Webinar for July 2020 - Insights to Solutions Spotlight: Re-imagining Digital...Webinar for July 2020 - Insights to Solutions Spotlight: Re-imagining Digital...
Webinar for July 2020 - Insights to Solutions Spotlight: Re-imagining Digital...The Digital Insurer
 
Remote DBA Service: Powering your DBA needs
Remote DBA Service: Powering your DBA needsRemote DBA Service: Powering your DBA needs
Remote DBA Service: Powering your DBA needsEDB
 
IBM Connect 2016 - Don't give up on Domino! Introducing Darwino: A New Lifeli...
IBM Connect 2016 - Don't give up on Domino!Introducing Darwino: A New Lifeli...IBM Connect 2016 - Don't give up on Domino!Introducing Darwino: A New Lifeli...
IBM Connect 2016 - Don't give up on Domino! Introducing Darwino: A New Lifeli...Philippe Riand
 
100 blue mix days technical training
100 blue mix days technical training100 blue mix days technical training
100 blue mix days technical trainingAjit Yohannan
 
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...Compuware APM
 

Similar to MSA, TBD, DDD, TDD, BDD, WTF? (20)

DevOps Thinking for the Line of Business
DevOps Thinking for the Line of BusinessDevOps Thinking for the Line of Business
DevOps Thinking for the Line of Business
 
IBM Z for the Digital Enterprise 2018 - Automate Delivery Pipeline
IBM Z for the Digital Enterprise 2018 - Automate Delivery PipelineIBM Z for the Digital Enterprise 2018 - Automate Delivery Pipeline
IBM Z for the Digital Enterprise 2018 - Automate Delivery Pipeline
 
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd mattersDDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
 
Transforming Partner Consulting Business to Capture Profit in the Cloud
Transforming  Partner Consulting Business to Capture Profit in the CloudTransforming  Partner Consulting Business to Capture Profit in the Cloud
Transforming Partner Consulting Business to Capture Profit in the Cloud
 
BroadSoft and Cisco Overview & Cloud Calling Solutions
BroadSoft and Cisco Overview & Cloud Calling SolutionsBroadSoft and Cisco Overview & Cloud Calling Solutions
BroadSoft and Cisco Overview & Cloud Calling Solutions
 
Reverside IBM Enterprise Modernisation Capability
Reverside IBM Enterprise Modernisation CapabilityReverside IBM Enterprise Modernisation Capability
Reverside IBM Enterprise Modernisation Capability
 
Gramener IT Services Enterprise Overview
Gramener IT Services Enterprise Overview Gramener IT Services Enterprise Overview
Gramener IT Services Enterprise Overview
 
Cloud With DevOps Enabling Rapid Business Development
Cloud With DevOps Enabling Rapid Business DevelopmentCloud With DevOps Enabling Rapid Business Development
Cloud With DevOps Enabling Rapid Business Development
 
THE OPEN SOURCE OPPORTUNITY: Monetizing Open Source Though Partnerships
THE OPEN SOURCE OPPORTUNITY: Monetizing Open Source Though PartnershipsTHE OPEN SOURCE OPPORTUNITY: Monetizing Open Source Though Partnerships
THE OPEN SOURCE OPPORTUNITY: Monetizing Open Source Though Partnerships
 
Micro Everything - Our Road to Scale
Micro Everything - Our Road to ScaleMicro Everything - Our Road to Scale
Micro Everything - Our Road to Scale
 
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network StrategiesCisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
 
CollabNet Houston Workshop Live Enterpise agility_11.12.14
CollabNet Houston Workshop Live Enterpise agility_11.12.14CollabNet Houston Workshop Live Enterpise agility_11.12.14
CollabNet Houston Workshop Live Enterpise agility_11.12.14
 
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
 
UG Software Technologies
UG Software TechnologiesUG Software Technologies
UG Software Technologies
 
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
 
Webinar for July 2020 - Insights to Solutions Spotlight: Re-imagining Digital...
Webinar for July 2020 - Insights to Solutions Spotlight: Re-imagining Digital...Webinar for July 2020 - Insights to Solutions Spotlight: Re-imagining Digital...
Webinar for July 2020 - Insights to Solutions Spotlight: Re-imagining Digital...
 
Remote DBA Service: Powering your DBA needs
Remote DBA Service: Powering your DBA needsRemote DBA Service: Powering your DBA needs
Remote DBA Service: Powering your DBA needs
 
IBM Connect 2016 - Don't give up on Domino! Introducing Darwino: A New Lifeli...
IBM Connect 2016 - Don't give up on Domino!Introducing Darwino: A New Lifeli...IBM Connect 2016 - Don't give up on Domino!Introducing Darwino: A New Lifeli...
IBM Connect 2016 - Don't give up on Domino! Introducing Darwino: A New Lifeli...
 
100 blue mix days technical training
100 blue mix days technical training100 blue mix days technical training
100 blue mix days technical training
 
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
 

Recently uploaded

Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 

Recently uploaded (20)

Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 

MSA, TBD, DDD, TDD, BDD, WTF?

  • 1. 1Copyright © 2019 Message4U Pty Ltd. All rights reserved.Copyright © 2019 Message4U Pty Ltd. All rights reserved. 1 Thanks VenueSponsor GeneralAssembly Providedthevenueforthis presentationandforregularCode Mentoringmeetups. Presentation MessageMedia Providedthetimetopreparethis presentation,proof-readingand contentvalidation. Facilitation Code Mentoring Providedaplatformforthis presentation. Slack:tiny.cc/melbcm
  • 2. Copyright © 2019 Message4U Pty Ltd. All rights reserved. Presenter: Date: 2 MSA, TBD,DDD, TDD, BDD,WTF? MicroserviceArchitecture,TrunkBasedDevelopment,DomainDriven Design,TestDrivenDevelopmentandBehaviourDrivenDevelopment MichaelLambert June2019 Approved for Public Presentation
  • 3. 3Copyright © 2019 Message4U Pty Ltd. All rights reserved.Copyright © 2019 Message4U Pty Ltd. All rights reserved. 3 Thanks VenueSponsor GeneralAssembly Providedthevenueforthis presentationandforregularCode Mentoringmeetups. Presentation MessageMedia Providedthetimetopreparethis presentation,proof-readingand contentvalidation. Facilitation Code Mentoring Providedaplatformforthis presentation. Slack:tiny.cc/melbcm
  • 4. 4Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? WhoisthisMichaelguy? Welcome • Senior PHP Developer @ MessageMedia • Worked with Internet technologies since 1992 • Varied roles: o Founderof an InternetAccessProviderin themid 90s o Workedonthe tenderdocumentthat won AusRegistrymanagementrights for .AU o PreviouslyLead Infrastructure(DevOps)Engineer o Mentorat MelbourneCodeMentoringmeetup • Fan of Agile processes and Symfony Framework • Currentlyre-learning JS foruse in AWS Lambda LinkedIn
  • 5. 5Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? AboutthisPresentation Welcome • Microservice Architecture • TrunkBased Development • Domain DrivenDesign and Development • Test DrivenDevelopment • Behaviour DrivenDevelopment High-level overview of: • Pub/sub &Queues • CQRS • Chaos Engineering Brief mentions of:
  • 6. 6Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Assumptions Welcome • Understanding of agile methodologies • Knowing that “best practice” doesn’t always match corporate reality • Desire to learn and improve • Ability to apply concepts to yourskill-set • Knowledge of git concepts suchas pull requests
  • 7. 7Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Agenda Microservice Architecture TrunkBased Development Domain DrivenDesign & Development Test DrivenDevelopment Behaviour DrivenDevelopment TyingIt Together Q& A
  • 8. 8Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Overview Microservice Architecture • Breakinga product into small, self-contained services • Removedependencies between services • Reduce blast-radius (fewer services affected in case of fault) • Simplified feature and team expansion • Reduce technology lock-in • Increasemaintainability • Reduce onboarding time
  • 9. 9Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Application Microservice Architecture • Divide into logical components (services) • Design standard communication interfaces (pub/sub and/or queues) • Avoid interdependencies • Data is eventuallyconsistent • Fault tolerant design • Data-store per service
  • 10. 10Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Agenda Microservice Architecture TrunkBased Development Domain DrivenDesign & Development Test DrivenDevelopment Behaviour DrivenDevelopment TyingIt Together Q& A
  • 11. 11Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Overview Trunk BasedDevelopment • Enabler of continuousintegration and continuousdelivery [ordeployment] • Multiple commits to master per developer per day • Branchby abstraction (feature flags) • All commits (or at least PRs) must pass testing • Fixforward strategy • Scales to large team sizes • Avoids mergeconflicts
  • 12. 12Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Styles Trunk BasedDevelopment Pure Trunk Based Development • All commits to master • Code-pairing • Automatic rollbacks • Small (or tiny) teams Short Lived Features • Feature branches last less than 1business day • Strong code review process • Anyteam size
  • 13. 13Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Requirements Trunk BasedDevelopment • Excellent review capabilities and/or code pairing • Automated build and test services (CIpipeline) • Feature flags • Small tasks • Automated rollback or strong fix-forward capability • Developer commitment
  • 14. 14Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? ShortLived FeatureBranchesProcess/ Pull-requestWorkflow Trunk BasedDevelopment • Createa feature flag infirst commit • Implementthe feature insmall steps • A feature branchshould be mergedwithin one day • Squash commits when merging • Every mergemust bereviewed • Master can be released at anytime
  • 15. 15Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Agenda Microservice Architecture TrunkBased Development Domain DrivenDesign & Development Test DrivenDevelopment Behaviour DrivenDevelopment TyingIt Together Q& A
  • 16. 16Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Overview DomainDriven Design & Development • Bound to a business model • Language specific to the business domain • Reduces support time • Requires translation between services • Functionality driven by business need
  • 17. 17Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Implementation DomainDriven Design & Development • Understand thebusiness domain beforeplanning • Planningmust be domain-centric • Useterminology dictated by thebusiness function o Accountswouldhave“debtors”and“creditors” o Warehousewouldhave“recipients”and”senders” o Managementwouldhave“customers”and “suppliers” • Inter-servicecommunication requirestranslator functionality
  • 18. 18Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Agenda Microservice Architecture TrunkBased Development Test DrivenDevelopment Behaviour DrivenDevelopment TyingIt Together Q& A Domain DrivenDesign & Development
  • 19. 19Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Overview TestDriven Development • Tests written beforefunctionality • CanincludeBDD (covered next) • Often interpreted as just unit tests • Find errors early • Test for failure • Refactor with confidence • Mock external services
  • 20. 20Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Unit Tests TestDriven Development • Write tests for eachfunction before writing the function • Test both good and bad paths o Is the expected value returned? o Did the correctexception get thrown? • Ensureall tests pass • Only test thelocal code
  • 21. 21Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Implementationand ProcedureEnforcement TestDriven Development • TrueTDD can be hardto adopt • 100%code coverage is not always viable • At a minimum,tests must bewritten before commit • Requiresclear functionalitydefinition • Automated test runnershelp enforce testing • It’s nevertoo late to start; monitor coverage for constant improvement • Does not replacefunctional and manualtesting
  • 22. 22Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Agenda Microservice Architecture TrunkBased Development Test DrivenDevelopment Behaviour DrivenDevelopment TyingIt Together Q& A Domain DrivenDesign & Development
  • 23. 23Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Overview Behaviour Driven Development • Clearacceptance criteria (as user stories) • Acceptance criteria canbe usedas functional tests • Tests real world use cases • Support issues arereplicated and a failing test written • Test often written by domain experts • Does not replaceunittests ormanual verification testing
  • 24. 24Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? FunctionalTestsand AcceptanceCriteria Behaviour Driven Development • Acceptancecriteria should be written as user stories o GIVENx, WHEN y, THEN z o GIVENI have a user account WHEN Ientermyusernameand password THEN Iwill belogged in • Acceptancecriteria define functional tests • Should bewritten by domain experts, product owners and QA
  • 25. 25Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Implementationand Integrationwith Unit Tests Behaviour Driven Development • Test runningshould beautomated • Functional tests can be runin parallel to unit tests (reduce time to deploy) • Functional tests should onlymock3rd party services • Does not relyon unit tests • Does not replace unittests
  • 26. 26Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Agenda Microservice Architecture TrunkBased Development Test DrivenDevelopment Behaviour DrivenDevelopment TyingIt Together Q& A Domain DrivenDesign & Development
  • 27. 27Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? ServiceDefinitionand Planning TyingitTogether • Divide by business domain (DDD) and service (MSA) • Ensuredesign does not relyon other services (MSA) • Useterminology local to the domain (DDD) • Write high-level functional tests (BDD)
  • 28. 28Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? CQRS (CommandQuery ResponsibilitySegregation) TyingitTogether • MSA and DDDwell suited to CQRS • Best incomplex business models • Read and write services are separated (mayshare a datastore) • Out of Scope: When to use CRUDand when to use CQRS
  • 29. 29Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? IssueDefinitionandPlanning TyingitTogether 1. Define user stories 2. Break down to individual stories 3. Convert userstory to acceptance criteria 4. Convert acceptance criteria to functionaltests 5. Verifyfunctional tests cover user stories • Small Tasks (less than one day of work) • Testable • User-centric • Design for failure
  • 30. 30Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Coding TyingitTogether • Usedomain based terminology • Do NOTrelyon other systems • Codemust behumanreadable • All code must be testable and tested • Scope creep is not allowed (create a new task) • One task per issue • Understand the issue before coding
  • 31. 31Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? AutomatedTestingandDeployments TyingitTogether • Test before everycommit (ideally) • Test everyPR before merge(required) • Automate unitand functional tests • Implementproduction testing • Consider chaos engineering • When code quality is high enough, implement continuous deployments
  • 32. 32Copyright © 2019 Message4U Pty Ltd. All rights reserved. MSA, TBD, DDD,TDD,BDD, WTF? Agenda Microservice Architecture TrunkBased Development Test DrivenDevelopment Behaviour DrivenDevelopment TyingIt Together Q& A Domain DrivenDesign & Development
  • 33. 33Copyright © 2019 Message4U Pty Ltd. All rights reserved.Copyright © 2019 Message4U Pty Ltd. All rights reserved. 33 messagemedia.com Let’s stay in touch Thankyou michael.lambert@messagemedia.com.au LinkedInQR Code Approved for Public Presentation
  • 34. 34Copyright © 2019 Message4U Pty Ltd. All rights reserved.Copyright © 2019 Message4U Pty Ltd. All rights reserved. 34 Australia | New Zealand | United States | United Kingdom 1800 155 228 messagemedia.com Approved for Public Presentation