Defining applications
This set of recommended readings will guide you through the process of defining your applications in Avassa. An application in Avassa is defined in a YAML document, Application specification. It provides mechanisms to define your application structure, containers, configuration, volumes and more. You might do this from sratch based on your containers or you might have docker commands or docker compose files already. The recommended readings below will give you detailed information on how to specify your application.
Get the big picture
-
Learn the application fundamentals.
-
Get a real example with a Redis database.
-
A fairly complete walk-through of the most relevant parts of an application specification.
Specifics
-
Applications often need variable inputs from environment variables or configuration files, learn how.
-
Learn how to use container registries.
-
Learn about application network configuration.
-
It is recommended to configure monitoring probes; startup, liveness and readiness, for your applications.
-
Learn how to mount devices like cameras and sensors.
-
Learn how to use GPUs
-
Learn how to use persistent data in your application
-
Your application might need to consume encrypted data (secrets).
-
It is a common scenario that variables or secrets are not global but have different values at different sites or groups of site.
Docker run and Docker compose mapping
- If you have applications with corresponding
docker run
commands ordocker compose
files, you can use this mapping to define your Avassa application. There is also a complete Docker Composer example.
Developer info
-
Get guidance on how you should version your application specifications.
-
In some scenarios you need to build a data processing flow at the site, putting applications in a sequence to produce/consume data.
-
Read tutorials on a complete development path how to build your container and test it in Avassa.
Under the hood
-
Understand more on application scheduling at the site.
-
Understand how container images are managed.
-
If you configure ingress networking to your application you can use the built-in DNS for service discovery and client lookups
-
If you need to make sure that your application can be upgraded without down-time, read how to configure the application for this.