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
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.
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.