Foundations and Modern
Approaches to Service-Oriented
Architecture
Lecture 7: Security, Governance, and Observability
1
SOA Security Fundamentals
Authentication
Authorization
Encryption
Authentication - Traditional
Authentication – Token-based
Pre-signed URLs
Authentication vs Authorization
Authorization
• Role-Based Access Control (RBAC): assigns permissions
based on roles
• Attribute-Based Access Control (ABAC): uses attributes to
determine access
• Access Control Lists (ACLs): define permissions for individual
users or groups on specific resources
Encryption
SOA Security Fundamentals
• Authentication: Verifying user identities (e.g., tokens, OAuth)
• Authorization: Controlling access to resources (role-based
access, ACLs)
• Encryption: Securing data in transit and at rest (SSL/TLS, data
encryption)
• Why:
• Ensures trust and data integrity across distributed systems.
• Minimizes risks of data breaches and unauthorized access.
Governance, Versioning, and API Management
• Governance: Ensuring compliance, security policies, and
standardized service contracts, e.g., policy enforcement points
• Versioning: Strategies to handle API changes without disrupting
clients (URI versioning, header-based versioning).
• API Management: Use of API gateways, monitoring, and analytics
for continuous improvement.
Policy Enforcement Point
URL versioning
Header-based versioning
Understanding Observability in Distributed
Systems
• Observability is the measure of how well internal states of a
system can be inferred from its external outputs.
• Components:
• Logging: Capturing event data from services.
• Metrics: Numerical data that indicate performance (e.g., response time,
throughput).
• Tracing: Following the path of a request across microservices
(distributed tracing).
Tools & Best Practices for Monitoring
• Centralized Logging: Use tools like ELK (Elasticsearch, Logstash,
Kibana) or Splunk to aggregate logs.
• Distributed Tracing: Jaeger, Zipkin, or OpenTelemetry for tracking
request flows.
• Metrics Collection: Prometheus/Grafana for gathering and
visualizing performance metrics.
Testing Distributed Systems
• Importance of Testing: Ensures reliability, performance, and
correctness across a distributed environment.
• Testing Strategies:
• Unit testing for individual services.
• Integration testing for service interactions.
• End-to-end testing using simulated load.
• JMeter, Locust for load testing; automated testing frameworks for
microservices.
Kiến trúc hướng dịch vụ UET!!!!!!!!!!!!!!!!!!!!!!!

Kiến trúc hướng dịch vụ UET!!!!!!!!!!!!!!!!!!!!!!!

  • 1.
    Foundations and Modern Approachesto Service-Oriented Architecture Lecture 7: Security, Governance, and Observability 1
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
    Authorization • Role-Based AccessControl (RBAC): assigns permissions based on roles • Attribute-Based Access Control (ABAC): uses attributes to determine access • Access Control Lists (ACLs): define permissions for individual users or groups on specific resources
  • 9.
  • 10.
    SOA Security Fundamentals •Authentication: Verifying user identities (e.g., tokens, OAuth) • Authorization: Controlling access to resources (role-based access, ACLs) • Encryption: Securing data in transit and at rest (SSL/TLS, data encryption) • Why: • Ensures trust and data integrity across distributed systems. • Minimizes risks of data breaches and unauthorized access.
  • 11.
    Governance, Versioning, andAPI Management • Governance: Ensuring compliance, security policies, and standardized service contracts, e.g., policy enforcement points • Versioning: Strategies to handle API changes without disrupting clients (URI versioning, header-based versioning). • API Management: Use of API gateways, monitoring, and analytics for continuous improvement.
  • 12.
  • 13.
  • 14.
  • 16.
    Understanding Observability inDistributed Systems • Observability is the measure of how well internal states of a system can be inferred from its external outputs. • Components: • Logging: Capturing event data from services. • Metrics: Numerical data that indicate performance (e.g., response time, throughput). • Tracing: Following the path of a request across microservices (distributed tracing).
  • 17.
    Tools & BestPractices for Monitoring • Centralized Logging: Use tools like ELK (Elasticsearch, Logstash, Kibana) or Splunk to aggregate logs. • Distributed Tracing: Jaeger, Zipkin, or OpenTelemetry for tracking request flows. • Metrics Collection: Prometheus/Grafana for gathering and visualizing performance metrics.
  • 18.
    Testing Distributed Systems •Importance of Testing: Ensures reliability, performance, and correctness across a distributed environment. • Testing Strategies: • Unit testing for individual services. • Integration testing for service interactions. • End-to-end testing using simulated load. • JMeter, Locust for load testing; automated testing frameworks for microservices.