core concepts
Applications
Applications are software components that run together. Noop Applications map 1:1 with a code repository. An Application can be a single service (possibly with a database requirement) or a monorepo that includes a collection of services, tasks and resources.
Define an Application using the Noop blueprint.yml
configuration in the project’s .noop
directory. The blueprint.yml
is responsible for defining all aspects of your Application including:
- Components: static assets, scheduled tasks, and container services
- Build processes for each Component
- Runtime details for each Component
- Resources: MySQL, Postgres, Redis, Amazon S3, and Amazon DynamoDB
- Routes: definition of which routes serve each
static
andservice
Components
The Application dashboard in the Noop Console contains links to Builds, repos (Source Code), Environments and Pipelines (CI/CD).
Builds
Each component must define its own build process. The container in the final build step will be used for the Component runtime.
Source Code
Applications can be linked to a Repository to integrate with its code and events automatically. Linked Resositories connect Source Code to Builds and trigger Pipelines.
Environments
Environments are instances of the Application. They contain their own Resourses, Variables/Secrets, and scaling configuration. Typically Environments are created once and remain active indefinitely i.e. a prod
or staging
env. However, it’s also possible to create temporary preview Environments in response to a pull request.
Pipelines
Pipelines are a series of instructions (a Workflow) initiated by a repository event. Once initiated, the Pipeline can manage any aspect of an Application. Typically this process involves deploying a new Build to a specific Environment in response to a Source code push on a specific branch.