Large factoriesLifeTime storyTo production and beyondFrancisco MenezesLúcio Ferrãohttp://bit.ly/largefactorieswww.outsyste...
Life is perfect when you are small!
But with OutSystemsyou grow very fastWhat happens whenyour factory reaches…
10 Teams ≈ 50 Developers
500 eSpaces
1000 DB Tables
Don’t loose control …… good parenting is a must!
Avoid long deployments …… that don’t fit in any opportunity window!
Deploying one app …… should not mess with other apps!
Prevent unforeseen impacts …… to reduce costs and ease deployment prep!
1. Keep a sound architectureDon’t loosen up…layer applications without cyclic dependenciesApplication 1 Application 2X Co...
Don’t loosen up…1. Keep a sound architecture2. Promote ownership???Team BApp BTeam AApp ACoreAppAnyone changes…• Unexpecte...
Team BApp BTeam AApp ACoreAppDon’t loosen up…1. Keep a sound architecture2. Promote ownershipTeam Core A owner adds:• Acco...
Don’t loosen up…1. Keep a sound architecture2. Promote ownership3. Coordinate deployments by ≠ teamsTeams with different p...
Execute withoutcontrol on impactsDon’t loosen up…1. Keep a sound architecture2. Promote ownership3. Coordinate deployments...
Don’t loosen up…1. Keep a sound architecture2. Promote ownership3. Coordinate deployments by ≠ teamsDevTeamsDevelopment Qu...
Let the tools help you!DevelopmentQualityProductionLifeTime Discovery tool
Configure your Infrastructure
Promote control and ownershipRelease ManagerOperations
Release ManagerOperationsPromote control and ownershipOperations Users
Tag a versionGot new versionready to QA. Canyou deploy it?Got it!
Impact analysisWhat will happenif I deploy therequested version?CRM Servicesversion in QA willbe incompatible!!!Customer P...
Now What???CRM Services TeamGo ahead!Scenario 1Can I also push CRMServices 1.1 to QA?Scenario 2CRM Services TeamNot ready!...
Monitor environments consistencyWe can’t havethis !!!
1st Stageprepare work in advanceLifeTime 2-step deploymentDeploy in a short deployment window• Compile code• Generate SQL ...
How to compose LifeTimeapplications?That will:• Minimize impacts between applications• Simplify deployments• Cope with dif...
5 Steps for composingLifeTime applications
Recall Executive Store Manager Supplier Supplier Auditor Store AuditorProductServicesStore ServicesSupplierServicesLook&Fe...
Application compositionLayered module architectureStep #2 Layer applications w/o cyclesApplication 1CompositeApp 1Coreserv...
ApplicationcompositionLayered module architectureStep #2 Layer applications w/o cyclesCompositeApp 1Coreservice ACoreservi...
UnecessaryimpactsCore componentsStablemodule 2NewmoduleStablemodule 1App 1 App 2 App n…App 3Young modulewith high changefr...
New ServiceNewmoluleCore componentsStablemodule 2Stablemodule 1No longeraffectedSplitApp 1 App 2 App n…App 3Step #3 Don’t ...
Common applicationModule 3Module 1 Module 2Owner 2Owner 1Who isresponsible?Step #4 Don’t mix owners
Owner 1Application 1NewmoluleOwner 2Application 2Stablemodule 2Stablemodule 1PromoteownershipSplitStep #4 Don’t mix owners
SimulatorsSimulationPortalEngines Policies…Auto…Life…PropertyDifferentproject datesStep #5 Don’t mix business sponsorsAuto...
Step #5 Don’t mix sponsorsSimulatorsSimulationPortalCoreEngines PoliciesProperty Suite…PropertyLife Suite…LifeAuto Suite…A...
#1 Validate layeredarchitecture#2 Find cycles#3 Analyze applicationcompositionDiscovery tool can help!
Thank you!Q?A!&http://bit.ly/largefactorieswww.outsystems.com
Large Factories Lifetime Story: To Production and Beyond
Upcoming SlideShare
Loading in …5
×

Large Factories Lifetime Story: To Production and Beyond

1,073 views

Published on

Instructions for controlling your IT architecture when it starts to grow in size

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,073
On SlideShare
0
From Embeds
0
Number of Embeds
170
Actions
Shares
0
Downloads
21
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Large Factories Lifetime Story: To Production and Beyond

  1. 1. Large factoriesLifeTime storyTo production and beyondFrancisco MenezesLúcio Ferrãohttp://bit.ly/largefactorieswww.outsystems.com
  2. 2. Life is perfect when you are small!
  3. 3. But with OutSystemsyou grow very fastWhat happens whenyour factory reaches…
  4. 4. 10 Teams ≈ 50 Developers
  5. 5. 500 eSpaces
  6. 6. 1000 DB Tables
  7. 7. Don’t loose control …… good parenting is a must!
  8. 8. Avoid long deployments …… that don’t fit in any opportunity window!
  9. 9. Deploying one app …… should not mess with other apps!
  10. 10. Prevent unforeseen impacts …… to reduce costs and ease deployment prep!
  11. 11. 1. Keep a sound architectureDon’t loosen up…layer applications without cyclic dependenciesApplication 1 Application 2X CoreService 1Application 1 Application 2CoreService 2Infrastructure modulesCoreService 3
  12. 12. Don’t loosen up…1. Keep a sound architecture2. Promote ownership???Team BApp BTeam AApp ACoreAppAnyone changes…• Unexpectedimpacts;• Uncontrolleddeployments ofApplications.
  13. 13. Team BApp BTeam AApp ACoreAppDon’t loosen up…1. Keep a sound architecture2. Promote ownershipTeam Core A owner adds:• Accountability;• Change control;• Code stability.
  14. 14. Don’t loosen up…1. Keep a sound architecture2. Promote ownership3. Coordinate deployments by ≠ teamsTeams with different paces makingQuality look like Development.DevTeamsDevelopment Quality ProductionOperations
  15. 15. Execute withoutcontrol on impactsDon’t loosen up…1. Keep a sound architecture2. Promote ownership3. Coordinate deployments by ≠ teamsDevelopment Quality ProductionDevTeams Operations
  16. 16. Don’t loosen up…1. Keep a sound architecture2. Promote ownership3. Coordinate deployments by ≠ teamsDevTeamsDevelopment Quality ProductionRelease Manager Role• Reduce risk• Faster and fewer deploymentsValidate Deploy Consolidate Plan ConsistencyOperations
  17. 17. Let the tools help you!DevelopmentQualityProductionLifeTime Discovery tool
  18. 18. Configure your Infrastructure
  19. 19. Promote control and ownershipRelease ManagerOperations
  20. 20. Release ManagerOperationsPromote control and ownershipOperations Users
  21. 21. Tag a versionGot new versionready to QA. Canyou deploy it?Got it!
  22. 22. Impact analysisWhat will happenif I deploy therequested version?CRM Servicesversion in QA willbe incompatible!!!Customer PortalOwnerWhat will happenif I deployCustomer Portal?
  23. 23. Now What???CRM Services TeamGo ahead!Scenario 1Can I also push CRMServices 1.1 to QA?Scenario 2CRM Services TeamNot ready!Great! I’ll deployit along withCustomer PortalCustomer Portal TeamMake itcompatiblewith CRMServices 1.0Noproblem!
  24. 24. Monitor environments consistencyWe can’t havethis !!!
  25. 25. 1st Stageprepare work in advanceLifeTime 2-step deploymentDeploy in a short deployment window• Compile code• Generate SQL Script• Upload binaries to destination• Updatedatabase• Switchrunningversions2ndStageshortdeploymentwindow
  26. 26. How to compose LifeTimeapplications?That will:• Minimize impacts between applications• Simplify deployments• Cope with different paces
  27. 27. 5 Steps for composingLifeTime applications
  28. 28. Recall Executive Store Manager Supplier Supplier Auditor Store AuditorProductServicesStore ServicesSupplierServicesLook&Feel UI Patterns GoodiesERPConnectorBackoffice IntranetSupplierportalRecall Store AuditSupplierAuditNo side dependenciesNo upward dependenciesNo cyclic dependenciesStep #1 Layer modules
  29. 29. Application compositionLayered module architectureStep #2 Layer applications w/o cyclesApplication 1CompositeApp 1Coreservice AInfrastruct.service ACoreservice BInfrastruct.service BApplication 2CompositeApp 2Coreservice CInfrastruct.service CCoreservice DInfrastruct.service DCompositeApp 1Coreservice ACoreservice BInfrastruct.service AInfrastruct.service B1st projectCompositeApp 2Coreservice CInfrastruct.service CCoreservice DInfrastruct.service D2nd project3rd project
  30. 30. ApplicationcompositionLayered module architectureStep #2 Layer applications w/o cyclesCompositeApp 1Coreservice ACoreservice BInfrastruct.service AInfrastruct.service BCompositeApp 2Coreservice CInfrastruct.service CCoreservice DInfrastruct.service DApplication 1CompositeApp 1Coreservice AInfrastruct.service ACommon appCoreservice BInfrastruct.service BCoreservice CInfrastruct.service CApplication 2CompositeApp 2Coreservice DInfrastruct.service D
  31. 31. UnecessaryimpactsCore componentsStablemodule 2NewmoduleStablemodule 1App 1 App 2 App n…App 3Young modulewith high changefrequencyStep #3 Don’t mix change paces
  32. 32. New ServiceNewmoluleCore componentsStablemodule 2Stablemodule 1No longeraffectedSplitApp 1 App 2 App n…App 3Step #3 Don’t mix change paces
  33. 33. Common applicationModule 3Module 1 Module 2Owner 2Owner 1Who isresponsible?Step #4 Don’t mix owners
  34. 34. Owner 1Application 1NewmoluleOwner 2Application 2Stablemodule 2Stablemodule 1PromoteownershipSplitStep #4 Don’t mix owners
  35. 35. SimulatorsSimulationPortalEngines Policies…Auto…Life…PropertyDifferentproject datesStep #5 Don’t mix business sponsorsAutoBusinessLifeBusinessPropertyBusiness
  36. 36. Step #5 Don’t mix sponsorsSimulatorsSimulationPortalCoreEngines PoliciesProperty Suite…PropertyLife Suite…LifeAuto Suite…AutoEach LOB canbe deployedindependentlyAutoBusinessLifeBusinessPropertyBusiness
  37. 37. #1 Validate layeredarchitecture#2 Find cycles#3 Analyze applicationcompositionDiscovery tool can help!
  38. 38. Thank you!Q?A!&http://bit.ly/largefactorieswww.outsystems.com

×