• Like
Large Factories Lifetime Story: To Production and Beyond
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Large Factories Lifetime Story: To Production and Beyond


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

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

Published in Technology , News & Politics
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Large factoriesLifeTime storyTo production and beyondFrancisco MenezesLúcio Ferrãohttp://bit.ly/largefactorieswww.outsystems.com
  • 2. Life is perfect when you are small!
  • 3. But with OutSystemsyou grow very fastWhat happens whenyour factory reaches…
  • 4. 10 Teams ≈ 50 Developers
  • 5. 500 eSpaces
  • 6. 1000 DB Tables
  • 7. Don’t loose control …… good parenting is a must!
  • 8. Avoid long deployments …… that don’t fit in any opportunity window!
  • 9. Deploying one app …… should not mess with other apps!
  • 10. Prevent unforeseen impacts …… to reduce costs and ease deployment prep!
  • 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. Don’t loosen up…1. Keep a sound architecture2. Promote ownership???Team BApp BTeam AApp ACoreAppAnyone changes…• Unexpectedimpacts;• Uncontrolleddeployments ofApplications.
  • 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. 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. Execute withoutcontrol on impactsDon’t loosen up…1. Keep a sound architecture2. Promote ownership3. Coordinate deployments by ≠ teamsDevelopment Quality ProductionDevTeams Operations
  • 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. Let the tools help you!DevelopmentQualityProductionLifeTime Discovery tool
  • 18. Configure your Infrastructure
  • 19. Promote control and ownershipRelease ManagerOperations
  • 20. Release ManagerOperationsPromote control and ownershipOperations Users
  • 21. Tag a versionGot new versionready to QA. Canyou deploy it?Got it!
  • 22. Impact analysisWhat will happenif I deploy therequested version?CRM Servicesversion in QA willbe incompatible!!!Customer PortalOwnerWhat will happenif I deployCustomer Portal?
  • 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. Monitor environments consistencyWe can’t havethis !!!
  • 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. How to compose LifeTimeapplications?That will:• Minimize impacts between applications• Simplify deployments• Cope with different paces
  • 27. 5 Steps for composingLifeTime applications
  • 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. 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. 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. UnecessaryimpactsCore componentsStablemodule 2NewmoduleStablemodule 1App 1 App 2 App n…App 3Young modulewith high changefrequencyStep #3 Don’t mix change paces
  • 32. New ServiceNewmoluleCore componentsStablemodule 2Stablemodule 1No longeraffectedSplitApp 1 App 2 App n…App 3Step #3 Don’t mix change paces
  • 33. Common applicationModule 3Module 1 Module 2Owner 2Owner 1Who isresponsible?Step #4 Don’t mix owners
  • 34. Owner 1Application 1NewmoluleOwner 2Application 2Stablemodule 2Stablemodule 1PromoteownershipSplitStep #4 Don’t mix owners
  • 35. SimulatorsSimulationPortalEngines Policies…Auto…Life…PropertyDifferentproject datesStep #5 Don’t mix business sponsorsAutoBusinessLifeBusinessPropertyBusiness
  • 36. Step #5 Don’t mix sponsorsSimulatorsSimulationPortalCoreEngines PoliciesProperty Suite…PropertyLife Suite…LifeAuto Suite…AutoEach LOB canbe deployedindependentlyAutoBusinessLifeBusinessPropertyBusiness
  • 37. #1 Validate layeredarchitecture#2 Find cycles#3 Analyze applicationcompositionDiscovery tool can help!
  • 38. Thank you!Q?A!&http://bit.ly/largefactorieswww.outsystems.com