In the life of every SOA-enabled or cloud service, there are 11 key stages that can help mean the difference between the service getting lost as shelfware in some forgotten directory, versus being the key to greater business agility. In their latest book, SOA Governance: Governing Shared Services On-Premise and in the Cloud, Thomas Erl and his team of co-authors identify and explain the nature and mission of these 11 stages.
The stages of the service lifecycle should be as follows:
- SOA Adoption Planning: Decisions are made regarding scope of planned service inventory, milestones, timelines, governance systems, and management systems.
- Service Inventory Analysis: Defining the service inventory to identify service candidates, and ensure there is no overlap with existing services. A service inventory blueprint comes out of this stage.
- Service-Oriented Analysis (Service Modeling): The first phase in the service delivery cycle; begins with preparatory information-gathering that leads to creation of service candidates.
- Service-Oriented Design (Service Contract): Produces service contracts in support of the "contract-first" approach to software development. Includes authoring of the service-level agreement.
- Service Logic Design: The logic that will be responsible for carrying out the tasks in the service contract is expressed.
- Service Development: The actual programming of the service. In PaaS cloud models, the service development platform itself may be offered by a ready-made environment.
- Service Testing: Newly delivered services need to be tested individually and as part of service compositions.
- Service Deployment and Maintenance: The actual implementation of a service into a production environment.
- Service Usage and Monitoring: The ongoing monitoring of an active service generates metrics for measuring service usage, such as scalability, reliability, cost of ownership, and ROI.
- Service Discovery: Identify existing agnostic services within a given service inventory for automating processes.
- Service Versioning and Retirement: Make changes to existing services in production environments, increase functuional scope, or replace services with minimal disruption to service consumers.