Solution Architecture Patterns for Enterprise: A Guide to Building Enterprise Software Systems

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Gain a deeper understanding of how distributed systems work, as well as which applications and systems are used for specific business domains or industries. This book provides a set of solution architecture patterns that were developed based on the author’s experience building enterprise software systems for hundreds of different organizations across the globe. The architecture diagrams (patterns) and examples allow you to not only grasp the concepts, but to build working projects. Solution Architecture Patterns for Enterprise starts with an introduction to the concepts of enterprise software systems and solution architecture and later moves to individual solution architecture patterns used in real-world enterprises. Subsequent sections cover various industry-specific solution architecture patterns that can be used to build domain-specific software systems. The book concludes with a view of what the future holds for solution architecture, including likely new developments in the field. This book will help enterprise software architects and engineers to design and implement real-world enterprise software systems using best practices and techniques adopted by organizations across the globe. It provides software architecture blueprints to build domain-specific enterprise software systems. If you are working on any digital transformation project or initiative, you will find this book useful, as it provides quick reference on architecture and implementation to get started with your work. What You Will Learn • Understand the key elements of enterprise software systems and how to design and implement them • Master different approaches to build real-world software applications • Build domain specific enterprise software systems • Use open-source tools to build enterprise software systems Who This Book Is For Software Developers, software architect, solution architects, and enterprise architects.

Author(s): Chanaka Femando
Publisher: Apress
Year: 2023

Language: English
Pages: 388

Table of Contents
About the Author
About the Technical Reviewer
Acknowledgments
Introduction
Chapter 1: Introduction to Enterprise Software Systems
What Are Enterprises?
How Software Is Used in Enterprises?
How Software Is Used in the Healthcare Industry
How Software Is Used in the Retail Industry
Characteristics of Enterprise Software Systems
Scalability
Availability
Latency
Robustness
Security
Modularity
Reusability
Replaceability
Observability
Adaptability
Practical Examples of Enterprise Software Systems
Enterprise Software System Architecture for Healthcare
Enterprise Software System Architecture for Transportation
Summary
Chapter 2: Introduction to Solution Architecture
What Is Enterprise Architecture?
Layered Enterprise Architecture Pattern
Microservices-Based Enterprise Architecture Pattern
What Is Solution Architecture?
Business Architecture (Level 0 Architecture)
Technical Architecture (Level 1 Architecture)
Deployment Architecture (Level 2 Architecture)
Solution Architecture Defining Process
Complex Solution Architecture Example
Business Architecture for a Banking Solution
Technical Architecture for a Banking Solution
Build vs. Buy
Deployment Architecture for a Banking Solution
Moving from Solution Architecture to Implementation
Sample Project Timeline
Weeks 1–2
Weeks 3–4
Weeks 5–6
Weeks 7–10
Weeks 11–14
Weeks 15–16
Advantages of Solution Architecture Patterns
Summary
Chapter 3: Building Enterprise Software Systems with Microservice Architecture
Introduction to Microservice Architecture (MSA)
Size and the Scope of the Service
Functionality (Domain)
Lines of Code (Size)
Number of Functions (Scope)
Nature of the Service
Development
Deployment
Deployment Automation
Container-Based Deployments
Governance
A Reference Architecture for Enterprise Software System with MSA
Components of Enterprise Software Systems
Databases
Core Business Applications
Integration Software
API Software
Accessibility Software
Proxy Servers
Load Balancers
Ingress Controllers
Content Delivery Network (CDN)
Firewalls
Security Software
User Management
Access Management
Authentication
Authorization
Monitoring Software
Monitoring for Insights
Observability
Infrastructure Management Software
A Reference Architecture with MSA
In-House Applications
Migrating Existing Applications to Microservice Architecture
Strangler Pattern for Migration
Integration Software
API software
API Gateway or Microgateway (Data Plane)
API Manager (Control Plane)
API Developer Portal
Security Software
Defining the Reference Architecture
What Is a Service Mesh and How to Use It with MSA?
Introduction to Service Mesh
Using Service Mesh for MSA
Designing MSA with a Message Broker
Implementing Security for MSA with Policy Agents
Implementing Governance for MSA
Summary
Chapter 4: Building Enterprise Software Systems with Hybrid Integration platforms
Introduction to Enterprise Integration (EI)
Data Integration
Structured Data
Unstructured (Semistructured) Data
Application Integration
On-Premise Applications
Cloud Applications
Hybrid Applications
Business Integration
Consumer Integration
Introduction to API Management
API-Led Connectivity Pattern for Enterprise
SOA Governance to API Management Pattern
Legacy Platform Modernization with Hybrid Integration Platform
A Sample Legacy Enterprise Software System
Using a Strangler Facade to Begin the Modernization
Consolidating User Identities with Centralized IAM Solution
Infrastructure Modernization
Summary
Chapter 5: Designing Enterprise Platforms with Event-Driven Architecture Patterns
Introduction to Event-Driven Architecture
Asynchronous Messaging Models
Topic-Based Publish-Subscribe Pattern
Shared Subscriptions (Durable and Non-durable)
Queue-Based Publish-Subscribe Pattern
Store and Forward Pattern
Streaming Data Processing
Real-Time Stream Processing
Batch Processing
Designing an Event-Driven Architecture for Enterprise
Common Requirements of an E-commerce Website
Solution Architecture
Web Application and API Gateway
API Gateway and Integration Platform
API Gateway and Message Broker
API Gateway and Stream Processor
Message Broker and Integration Platform
Message Broker and Stream Processor
Database and Stream Processor
Database and Message Broker
Database and Integration Platform
Database and Core Applications
Core Applications to Integration Platform
Core Applications and Message Broker
Core Applications and Stream Processor
Kafka-Based Event-Driven Architecture for Enterprise
Brief Introduction to Kafka
Change Data Capture (CDC) Pattern
Asynchronous APIs’ Pattern
Improved Event-Driven Architecture
Summary
Chapter 6: Securing Enterprise Software Systems
Introduction to Security of Enterprise Software Systems
Data Security
Securing Data at Rest
Securing Data in Transit
Data Privacy
Application Security
Build a Strong Identity Foundation
Business to Customer (B2C)
Business to Employee (B2E)
Business to Business (B2B)
Authentication
Authorization
User Management
Consent Management and Privacy
Key Components of Strong Identity and Access Management for Enterprise
Adhere to Security Best Practices and Automate Them
Secure Software Engineering Process
Vulnerability and Risk Management Process
Security Reward and Acknowledgement Process
Follow Zero-Trust Architecture
Prepare for Security Events
Enterprise Security Use Cases
Single Sign-On (SSO)
Strong Authentication
Multi-option Authentication
Federated User Provisioning
Delegated Access Control
User Management with Approvals
Centralized IAM Pattern
Cloud Application Security Pattern
Security Federation Pattern
API Security Pattern
Basic Authentication for API Security
API Key-Based Authentication for API Security
Delegated Authentication with OAuth2 for API Security
Microservices Security Pattern
Security with Centralized IAM
Security with Decentralized IAM
Summary
Chapter 7: Implementing Observability for  Enterprise Software Systems
What Is Observability?
Benefits of Observability
Observability vs. Monitoring
Implementing Observability
Instrumentation
Data Correlation
Automation
Insights and Predictions
Tools Available for Observability
Observability with Logs
Log-Based Observability with ELK
Log-Based Observability with Grafana
Observability with Traces
OpenTelemetry for Distributed Tracing
OpenTelemetry with Jaeger
Span
Trace
Observability with Metrics
Prometheus for Metrics-Based Observability
Observability Reference Architecture for Enterprise
Component-Specific Observability Approach
Accessibility Software
API Software
Integration Software
Database Software
Core Business Applications
Security Software
Infrastructure Management Software
Vendor-Independent Reference Architecture
Log Processing Components
Metrics and Traces Processing Components
ELK, Jaeger, and Prometheus-Based Observability Pattern
ELK for Logs
Jaeger for Traces
Prometheus for Metrics
Kibana for Visualization and Analysis
Grafana, Tempo, and Prometheus-Based Observability Pattern
Promtail and Loki for Logs
Tempo for Traces
Prometheus for Metrics
Grafana for Visualization and Analysis
Summary
Chapter 8: Designing Next-Gen Enterprise Software Systems with Cloud-Native Architecture
Introduction to Cloud-Native Computing
What Is Cloud Computing?
Globally Available
Automatically Scalable
Highly Distributed and Modular
Managed by a Vendor
On-Demand
Containers and Kubernetes
Cloud-Native Computing
Micro-architecture Pattern for Enterprise
Business Services
Integrations
API Management
Front-End Applications
Security Components
Kubernetes-Based Deployment Pattern
Kubernetes Architecture
Deployment Architecture
Multi-cloud Deployment Pattern
Vendor-Specific API Gateway with Common API Marketplace
Single API Gateway Vendor with a Marketplace
Highly Available Multi-cloud Deployment
Cloud Migration Pattern
Assessment
Preparation
Migration and Modernization
Sample Cloud Migration Use Case
Assessment
Preparation
Migration and Modernization
Summary
Chapter 9: Industry-Specific Architecture Patterns
Transportation Industry
Understanding the Ecosystem
Technical Requirements
Solution Architecture
Telecommunications Industry
Understanding the Ecosystem
Technical Requirements
Telecommunication Network
IT System
Solution Architecture (Single Operator)
Solution Architecture (Multiple Operators)
Retail Industry
Understanding the Ecosystem
Technical Requirements
Solution Architecture
Education Industry
Understanding the Ecosystem
Technical Requirements
Solution Architecture
Automotive Industry
Understanding the Ecosystem
Technical Requirements
Solution Architecture
Edge Computing Components
Enterprise Computing Components
Healthcare Industry
Understanding the Ecosystem
Technical Requirements
Solution Architecture
Benefits of the Solution
Power and Energy Industry
Understanding the Ecosystem
Technical Requirements
Solution Architecture
Hospitality Industry
Understanding the Ecosystem
Technical Requirements
Scalability and Performance Requirements
Solution Architecture
Summary
Index