FDE ACADEMY · MODULE 02 · LESSON 05
Containers, and the wiring between them
Images, volumes, networks and one compose file — then the automation layer where the integrations live, which is the part that connects a working stack to the work people actually do.
- Effort
- Two to three hours, including a deliberate reboot.
- Skills
- docker · workflow-automation · linux
Free and self-paced. No certification is offered.
Before you startYou have a stack running from lessons 03 and 04, however untidily.
01What a container gives you, and what it does not
A container gives you a reproducible process with its dependencies, an explicit network surface and an explicit filesystem. It does not give you persistence, secrets management, restart behaviour or backups. Those are things you configure, and a deployment that skipped them will look fine until the machine restarts.
The three that matter on day one: named volumes for anything that must survive the container, a restart policy so services come back by themselves, and secrets supplied by the environment rather than baked into an image or committed to a file.
- Volumes — database data, model weights, uploaded documents. Everything else should be disposable.
- Networks — the model server should be reachable by the application and by nothing else.
- Restart policy — the honest test is a reboot, not a restart of one service.
02One file, checked in
Bring the whole stack up from a single compose file that you keep under version control alongside the customer’s configuration. The value is not elegance: it is that the deployment becomes a document, and a document can be reviewed, handed over and rebuilt after a failure by somebody who was not there.
This is also the first artefact of the handover you will do in module 05. Write it as though the person reading it does not have you available.
03Where the integrations live
Almost every deployment ends up needing scheduled or event-driven work: pull new files nightly, notify a channel when an extraction needs review, write a result into the system of record. Putting that logic inside the application makes the application the customer’s problem forever.
A workflow automation service is the standard place for it. Its jobs are visible, re-runnable and editable by someone who is not you — which is the property that matters when you have left. Note where each connector sends data, because an outbound edge into a hosted tenancy changes the data-boundary verdict for the whole deployment.
04Do this
PRACTICAL TASK
Bring the stack up from one file, then add one automation
Reduce your deployment to a single compose file with named volumes and restart policies, prove it survives a reboot, and add one scheduled job that does real work.
What you need
- Your running stack from lessons 03 and 04
- A machine you are allowed to reboot
Steps
- 01
Write one compose file covering every service you are running. Name the volumes explicitly and set a restart policy on each service.
- 02
Move every secret out of the file and into the environment. Confirm nothing sensitive would be committed if this directory were pushed.
- 03
Reboot the host. Time how long until the stack answers a query again, and write the number down — it is a line in the runbook.
- 04
Add one automation: a nightly ingest of a watched folder, or a notification when a document fails conversion. Keep it in the automation service, not in the application.
- 05
Open a recipe that uses connectors and read what its architecture says about external transfer, then check whether your new automation changes that verdict for your own stack.
You are done when
- One command brings the whole stack up on a clean machine, and no secret is in the file.
- The host reboots and the stack returns without you touching it; you know how long it takes.
- You can say whether your automation moves data outside the boundary you drew, and to where.
05Where these facts live
This lesson does not restate anything that is already recorded with its evidence elsewhere on the site. These are the pages it leans on.
- n8n
The automation layer used in several recipes here — visible, re-runnable jobs someone else can edit.
- Invoice extraction pipeline
A recipe whose connectors are the reason its data-boundary verdict is “some” rather than “none”.
- Invoice capture and coding
A reference deployment built as an automation graph, with the human approval step drawn in rather than assumed.
Ticks are stored in your browser only. They are not sent anywhere, they are not attached to an account, and clearing your browser data removes them.