The App lifecycle
Develop and test
Write the App in a Workspace and run it in App Preview, a private App runtime that only you can reach. See Develop and test.
Publish a version
Publishing records an immutable version with the code commit, Compute Environment, and data configuration pinned, so every deploy and every governance approval applies to exactly the same App. Publishing doesn’t start the App. Give the App a description, because it’s what viewers see when they browse Apps. See Publish.
Govern
If your organization reviews Apps before release, attach a governance policy. Its gates block deployment until the approvals are in. See Govern.
Deploy to production
Deploy a published version to start it at its URL. Pick the Hardware Tier and, for heavy traffic, turn on autoscaling. See Deploy to production.
Operate
Share the App, watch usage and resource consumption, roll back to an earlier version, and troubleshoot failures. See Operate.
Persist what the App writes
Apps persist results in Datasets, databases, object stores, or APIs. The App container’s local disk is scratch space: Domino doesn’t save file changes from an App back to the Project, and whatever is on local disk is gone when the App stops or restarts. The transaction review App as built in Get started keeps each Approve or Flag decision in the browser session. Close the tab and the decisions are gone. Write anything you need to keep to one of these:- A Dataset. Write generated files, logs, and results to a mounted Dataset. Datasets are versioned separately from Project files, and other Apps, Jobs, and Workspaces can read them. The transaction review App can append each decision to a file in its
AMLDataset. - A database or object store. Use the normal client library for your SQL or NoSQL database, Amazon S3, Azure Blob Storage, or data warehouse. The App needs credentials and network access.
- An API. Call an internal or external API to record state or trigger a workflow.
Who the App runs as
An App reads data and calls Domino as its publisher. Every viewer sees what the publisher can see, and anything the App writes, the publisher wrote. Sharing controls who can open the App, not what the App can reach. When viewers must see or do different things, Identity passes the viewer’s identity into your code. Extended identity, which gives the App a token that acts with the viewer’s own permissions, supports the widest range of Apps and is the recommended level. An App that only needs its owner’s identity to run doesn’t need it. Decide while you develop, because extended identity changes how the App is published.Run heavy work from an App
Apps run persistent and large-scale workloads through the other execution types Domino provides. When a request needs more compute or more time than a web request should take, the App starts a Job or calls a Domino endpoint through the Domino API, then shows the result when it’s ready. The App can do this as its publisher or, with extended identity, as the viewer. A deployed App runs until you stop it, across restarts, upgrades, and rollbacks, and separate executions are the better design for the heavy work behind it. Running a web front end and a long computation in one process is the weaker design: one long computation blocks every viewer, the pod is sized for the worst case, and the run has no record of its own. A Job runs on its own Hardware Tier with its own logs and reproducibility record, and an endpoint is its own deployed service with its own compute and logs. The App stays responsive for hundreds of viewers while a full model run or a long simulation uses the compute it needs, and every run is tracked on its own for audit and rollback. The transaction review App already works this way: scoring runs on a model endpoint, not inside the App.How Domino models an App
Domino separates developing an App, recording a version, and running it. You can preview changes without publishing, publish without deploying, and deploy any published version, including an older one, without creating a version. That separation lets you work on the next version while viewers use the current one, review a version before it runs, and roll back without touching code.
Every version runs the same entry point, the App’s launch file: a shell script such as
app.sh, or a Python or R script. It must start a web server on 0.0.0.0, port 8888. The entry point is fixed for the life of an App. To change it, create another App. Publish lists which settings create a version and which you can change in place.
Related
- Get started: Build the transaction review App, its Dataset, and its model endpoint from scratch.
- App frameworks: Choose a framework and start from a minimal example.
- Configuration: The feature flags and limits administrators control.