Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Architectural practices for greater scalability and innovation

Architectural practices for greater scalability and innovation

When dealing with application scalability, it is common to deal with topics such as microservices, cache, and NoSQL, among other buzzwords in the software engineering area.
However, particular needs are often overlooked, such as: ensuring that the organization's point of failure is not IT. But instead the human factor.

One of the biggest challenges in software engineering today is ensuring that the technology park grows and innovates while being stable and resilient. Delivering innovation with stability, despite sounding utopian, is possible through well-orchestrated work.

This talk will teach practices that lead to a well-documented, multiplier architecture.

Otavio Santana

May 22, 2022
Tweet

More Decks by Otavio Santana

Other Decks in Programming

Transcript

  1. Who am I? Software Engineer & Architect @otaviojava Otavio Santana

    • Java Champion, Oracle ACE • JCP-EC-EG-EGL • Apache and Eclipse Committer • Jakarta EE and MicroProfile • Duke Choice Award • JCP Award • Book and blog writer @otaviojava
  2. What is Architecture? Organization view and structure of software Conway's

    law The two-pizza rule Integration Context @otaviojava osarchitech.com
  3. What is Architecture? Everything is around software! “Every Company is

    a Data Company” CIO Network “Every Company is a Software Company” Forbes “Every business is a software business” CMMI @otaviojava osarchitech.com
  4. Complexity Achieving Simplicity Complexity is anything related to the structure

    of a software system that makes it hard to understand and modify the system. @otaviojava osarchitech.com
  5. Why do we need architecture? Ref: https://www.csoonline.com/article/2130877/the-biggest-data-breaches-of-the-21st-century.html Less Damage Unite

    Team Fault Tolerance Incremental Delivery Avoid Complexity Scalability @otaviojava osarchitech.com
  6. Who is an architect? Etymology Arkhi -Greek Chief Tekton Greek

    Builder Arkhitekton Greek Master builder @otaviojava osarchitech.com
  7. Who is an architect? Single point of failure Bus factor

    Management 3.0 View @otaviojava osarchitech.com
  8. Who is the architect? Steward A person responsible for overseeing

    and protecting something considered worth caring for and preserving. Mark Reinhold Chief Architect, Java Platform Group, Oracle The Future of the Java Platform and the JDK: Who is in Charge? https://www.youtube.com/watch?v=HpbchS5kmio @otaviojava osarchitech.com
  9. Who is an architect? The whole team Architecture without Architects

    Erik Dörnenburg The Myth of the Genius Programmer Software engineer at Google @otaviojava osarchitech.com
  10. Documentation None A self comment is a utopia The same

    mistake twice A huge effort instead of assembling Thousand of meetings People’s mind @otaviojava osarchitech.com
  11. Documentation Over More enemy than an ally Easy to depreciate

    Hard to write More work to code Hard to maintain @otaviojava osarchitech.com
  12. Documentation Trade-off PPT does not compile Over Documentation Blind code

    is Go horse None Documentation Document what makes sense Fair Documentation @otaviojava osarchitech.com
  13. Documentation First steps C4-model Architecture’s map Tech-radar Technologies's view ADR

    Don’t repeat the error Communication A clear direction @otaviojava osarchitech.com
  14. C4-model Architecture’s map C1 = Context C2 = Containers C3

    = Components C4 = Code @otaviojava osarchitech.com
  15. C2 Containers It is not a docker! Architecture Container =

    App, DB Integration @otaviojava osarchitech.com
  16. Tech-radar Technologies's view Avoid a mix of technologies Breaking down

    the silos Duplicate efforts New researches @otaviojava osarchitech.com
  17. Tech-radar Rings Languages and Frameworks Platforms Techniques Tools There is

    no standard Context matters @otaviojava osarchitech.com
  18. Tech-radar Quadrant Strategic Essencial Potencial Deprecated The most important The

    team is more confident Several success cases @otaviojava osarchitech.com
  19. Tech-radar Quadrant Strategic Essencial Potencial Deprecated There is an experience

    in using it Not fully mature There is training @otaviojava osarchitech.com
  20. Tech-radar Quadrant Strategic Essencial Potencial Deprecated Research it at least

    a team It has a chance for more adoption Carry out studies and tests @otaviojava osarchitech.com
  21. ADR Record all the strategic decision Make sure about the

    trade-off The mistake is one learning path @otaviojava osarchitech.com
  22. Breaking down the silos Avoid delay Integration Prevent Avoid delay

    Integration Prevent @otaviojava osarchitech.com
  23. Previous scenario What is open source? Who cares about architecture?

    We need to believe! @otaviojava osarchitech.com
  24. The scalability that doesn't scale Why do we use microservices?

    To scale. Do we scale? No @otaviojava osarchitech.com
  25. The premisses • Everything as code (Architecture and decision) •

    Synchronization with the clients • Decision by trade-off • Data-centric area @otaviojava osarchitech.com
  26. C4-model C4-Builder @startuml c1 LAYOUT_WITH_LEGEND() LAYOUT_LEFT_RIGHT() Person(user, "Developer", "") System(charlescd_system,

    "CharlesCD System", "") System_Ext(kubernetes, "Kubernetes") Rel(user, charlescd_system, "Manages your deployments") Rel(charlescd_system, kubernetes, "Deploys...") Rel(charlescd_system, user, "Sends...") @enduml @otaviojava osarchitech.com
  27. Data-centric Area • Every decision data based • Dashboards •

    Learn from the past @otaviojava osarchitech.com
  28. The results Brasil: 80,6% EUA: 7,4% Índia: 2,7% China: 2%

    Rússia: 1,5% Alemanha: 1,3% Japão: 1% Indonésia: 0,7% Argentina 0,4% @otaviojava osarchitech.com
  29. Thank you Barbara Rossalli Lucius Curado Wilian Gabriel da Silva

    Mari Moreira Carol Vilas Boas Jomar Silva @otaviojava osarchitech.com