7.0 The Broader Microservice Ecosystem: Services, Security, and Teams
A successful MSA implementation extends beyond code and architectural patterns. It requires a holistic view of the ecosystem, encompassing the types of services being delivered, the unique security posture required for a distributed system, and the organizational structures that foster the agility MSA promises.
Categories of Services Microservice architecture can be used to implement various service delivery models, often categorized with the “-as-a-Service” suffix.
- Platform as a Service (PaaS): Provides a platform or framework that can be customized for specific business needs, reducing programming complexity. Google App Engine is a prime example.
- Software as a Service (SaaS): A software licensing model where applications are centrally hosted and accessed via a subscription, typically through a browser. Examples include Enterprise Resource Planning (ERP) and Customer Relationship Management (CRM) systems from providers like Oracle.
- Infrastructure as a Service (IaaS): Delivers virtualized computing infrastructure over the internet, including servers, storage, and networking. Amazon EC2 and Microsoft Azure are leading examples.
- Data as a Service (DaaS): Involves sharing data with business partners for research and analysis, simplifying data access and security. The Oracle Data Cloud is an example.
- Back End as a Service (BaaS): Also known as Mobile Back-end as a Service (MBaaS), this model provides backend services like push notifications, user management, and social network integration. Facebook and Twitter are well-known BaaS providers.
Security in a Distributed Architecture Security in a distributed system is a shared responsibility. The primary categories of security issues include those faced by service providers (e.g., ensuring client integrity) and those faced by consumers (e.g., protecting private data stored in third-party centers).
To mitigate these risks, organizations employ several defensive mechanisms:
- Deterrent Control: Aims to reduce cyber-attacks by understanding and publicizing potential threats and consequences.
- Preventive Control: Focuses on preventing breaches by maintaining high-level authentication and authorization policies for cloud and service access.
- Detective Control: Involves actively monitoring users and systems to detect potential risks and unauthorized activities as they happen.
- Corrective Control: Establishes processes for working across teams to fix issues and vulnerabilities identified during the detective control phase.
Team and Task Management The structure of development teams is a critical factor in the success of MSA. The “Two Pizza Rule” is a guideline stating that a team should be small enough to be fed by two pizzas, generally comprising no more than eight members. Crucially, in an MSA context, these small teams are expected to be full-stack in nature, possessing all the skills required to build, deploy, and operate their specific service from end to end. For managing the development lifecycle within these teams, the Agile methodology is the well-known process structure used to break down large projects into small, manageable tasks and monitor their progress effectively.