How to Create Resilient Microservices With a PostgreSQL Dependency Glen Gomez Zuazo Senior Solutions Architect September 13, 2019
Meet Glen User Profile ● Senior Solutions Architect ● On the Go - Running ● LatinX Representative User Pain Point ● Time Allocation ● Where is Glen? ● Accent :) Confidential 2
User Requirements Glen Wants “I want to return to my community and help encourage STEM learning in early stages (middle and high school)” “I want to help my teams build well-architected solutions using new and emerging technologies” “I want a 28-hour day...” Confidential 3
Microservices, why should I care? Understanding Cost (Operational and Cultural) ● Operational Cost (CI/CD Pipeline, Login, Monitoring, Tracing) ○ Cultural Cost (Collaboration, Waterfall Mentality, Coordination, Colocation) ○ Capabilities and Bounded Context ● How to identify and why do I need them? Which context I should care? Business or ○ technology Understanding the Spectrum of Enterprise Applications ● Existing Applications ○ Web Tomcat ■ Fast Monoliths ■ Java EE MSA ■ Li & Shi New Applications ○ Spring MSA ■ Reactive Connect & Extend ■ Serverless ■ Reactive JS ■ Rip & Re-Write API or Microservice: What’s the difference? Confidential 4
Change for Insulation UI Monolith UI per Subdomain Dependent Independent Services Services Data Monolith Data per Service Monolithic setups slow down delivery and innovation Confidential 5
Microservices are the key to creating small, independent, and fully functional bits of soware Monolith API-Enabled Microservices Product Product Product Product Product Product Product Product Product Owner Owner Owner Owner Owner Owner Owner Owner Owner UI UI UI UI UI UI Monolithic User Interface API API API API API API Monolithic Backend Processing Monolithic Backend Processing Backend Backend Backend Monolithic Database Monolithic Database Database Database Database Confidential 6
Interconnected services are helping us reduce cross-team dependencies Monolith API-Enabled Microservices Confidential 7
Restructuring Delivery Model Model A Model B Micro-Frontends (Current Implementation) (Service Model) Same Monolith Technology Each micro-frontend can be User Interface a different technology User Interface Feature A Feature B Feature C Same UI Team UI Team L1 Landing Pages Technology UI UI UI Core Integration Services Core Integration Services Integration Integration Integration Same or Services Services Services Product A Product B Product C Different L2 Page L2 Page L2 Page Product Technology Teams Back end Back end Back end Product Product Product Product Services Services Services Integration Integration Integration Teams Service Service Service Services Services Services Product Product Product Service Service Service Full Stack Full Stack Full Stack Team A Team B Team C UI Design Team Preferred Confidential 8
Restructuring Team Ownership Confidential 9
Monolithic vs. Microservices Singular Identity Multiple Identities Operational Coupling Operational Isolation Binary Coupling No Binary Coupling Synchronous Communication Asynchronous Communication Beyond Java (Polyglot Support) Only Java Anytime Release Weekly Release Explicit Data Data Monolith Micro Frontend UI Monolith Fitness Function Guided Evolutionary Architecture Confidential 10
Fitness Function Move to an architecture that supports evolution Confidential 11
AWS RDS, Aurora, EC2, or Azure PostgreSQL (Citrus) Considerations No OS Patch (Server Maintenance) ● Optimized Performance 3x ● Full DB Admin Control ● Hyperscale (Single- & Multi-Nodes) ● Confidential 12
Why PostgreSQL Open Source ● Cloud Provider Agnostic ● Scalable and Highly Available ● Hybrid (JSONB) - Key/Value ● Confidential 13
Synchronous Microservices Web + Mobile … BFF API Microservice App … Microservice … Microservice Event Log Voice Skill … BFF API Alexa … Microservice Microservice … BFF API … Chatbot Slack Microservice Microservice … Confidential 14
Slack Alexa Web + Mobile Asynchronous CQRS & ES Microservices App Chatbot Voice Skill Orchestration Orchestration Orchestration API API API API API API API Microservice Microservice Microservice Microservice … … … … … … … … Confidential Messaging 15
Q&A Confidential 16
Thank You Confidential 17
Recommend
More recommend