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

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 

Recently uploaded (20)

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 

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