yac Servicefiles
A Servicefile provides a complete definition of a cloud-based service, including:
how to build its associated artifacts (aka binaries)
how to build the cloud infrastructure necessary to run the artifacts (aka stacks)
how to demonstrate successful integration between artifacts and infrastructure (aka tests)
how to perform recurring maintenance tasks (aka tasks)
how to repeatably deploy artifacts to multiple cloud-based environments (aka pipelines)
Servicefile formatting is per service.json which is an implementation of JSON Schema.
A Servicefile is thus a set of stanzas, structured in json or yaml, that define everything about a cloud-based service.
Servicefiles can include other Servicefiles to improve readability and promote re-use.
Servicefiles can be posted to the yac registry so they can easily be discovered and instantiated
typically for test-driving a service or sub-service
Per the Servicefile example to the right, each stanza is either an array of objects or an object.
Servicefile Example ...
{
"Description": {...},
"Artifacts": [
{...},{...},...
],
"Credentialers": [
{...},{...},...
],
"Inputs": [
{...},{...},...
],
"InputsCache": {...},
"IntegrationTests": {...},
"Params": {...},
"Pipeline": {...},
"Secrets": {...},
"Stack": {...},
"Vaults": [
{...},{...},...
],
"Tasks": [
{...},{...},...
],
"includes": {...}
}