How Weik.io is put together
Overview · 4:30
An integration in Weik.io is a folder of Apache Camel files, and this overview follows one from your machine through versions, environments and the agents at your sites to the hub they all link to. It's the first step of both paths and needs no earlier video.
What it covers
- Integrations as folders of Camel files, published as versions with
weikio apply - Deployments per environment, filled in by variables and secrets and promoted without a rebuild
- Projects, member roles and grants narrowed to environments or integrations
- Agents and their capabilities at sites, linked to the hub by a NATS leaf node
- The hub with its backend, the API gateway, the NATS store and the telemetry stores
- Reaching the hub through the admin UI and the
weikioCLI
Commands in this video
Terminal
$ weikio get agents
$ weikio init hello
$ weikio apply -f ./finance/erp-invoice-export --bump minor
$ weikio deploy finance/erp-invoice-export
$ weikio promote finance/erp-invoice-export --from devtest --to production
$ weikio status finance/erp-invoice-exportThe commands after weikio init hello work on finance/erp-invoice-export, the example integration that the drawing follows. On your own installation, use the folder that weikio init wrote and its integration name in their place.
Transcript
- 0:02This video explains how Weik.io is put together,
- 0:05from one integration out to the whole platform.
- 0:09An integration is the thing you write:
- 0:12a folder of Apache Camel files, written as for Camel JBang.
- 0:16What plain camel run runs, the platform runs as it is.
- 0:21In this route, the ERP address and the API key are placeholders,
- 0:26because they differ between environments.
- 0:29The platform fills them in.
- 0:35weikio apply publishes the folder as a version.
- 0:39A version never changes once it exists.
- 0:42The hub, the platform's central server, builds it once with Camel's own tooling.
- 0:47The result is a bundle: the files and every jar they need.
- 0:52Every copy of this version runs the same jars.
- 0:59Nothing runs until you deploy.
- 1:02A deployment is one version in one environment.
- 1:05Environments are platform-wide, devtest and production for instance.
- 1:09Variables and secrets fill the placeholders, and they are set per environment.
- 1:14So the same version talks to the test ERP in devtest and to the real one in production.
- 1:21Promote copies a deployment to the next environment.
- 1:24Nothing is rebuilt.
- 1:30Every integration belongs to a project:
- 1:33a folder of related integrations and the people allowed to touch them.
- 1:37A member holds a role on the project, viewer or deployer for instance.
- 1:42A grant can be narrowed to some environments or to named integrations.
- 1:51A deployment runs on an agent.
- 1:53An agent is the program that runs integrations, one Java process each.
- 1:59An admin gives each agent capabilities, the environments it serves among them,
- 2:04and a list of allowed projects.
- 2:06Every agent that matches runs the deployment.
- 2:09Two matching agents mean two running copies.
- 2:17Agents live at sites.
- 2:19A site is wherever integrations run,
- 2:21an on-premise server or a machine in the cloud next to the hub.
- 2:26Beside the agent runs a NATS leaf node, the site's link to the hub.
- 2:31Two flows leave a site, both to one hostname on port 443:
- 2:36the leaf node's link and telemetry from the Camel processes.
- 2:41The platform opens no inbound port.
- 2:48Every site links to one hub, at Weik.io or in your own cloud.
- 2:52The backend is the API and the builder.
- 2:55APIM puts an HTTP API in front of an integration or any other HTTP service,
- 3:02and hands out access to it.
- 3:04NATS is the store of record: everything the platform knows is a document there.
- 3:11Logs, metrics and traces land in three stores beside it;
- 3:15one message's path is a trace.
- 3:22You reach the hub two ways.
- 3:24The admin UI is served by the backend;
- 3:27Home shows every environment and what needs attention.
- 3:31The CLI is weikio; you log in with an API key.
- 3:35init scaffolds an integration.
- 3:38apply publishes a version and deploy runs it; for development, run does both.
- 3:46promote copies it to production.
- 3:51status shows what runs where.
- 3:58This is the whole platform.
- 4:00One hub.
- 4:01Sites wherever your integrations run, each with a leaf node and an agent.
- 4:06Projects say which integrations belong together.
- 4:09Environments say which copy is production.
- 4:13Integrations pass each other messages through the platform's events.
- 4:16A developer or a pipeline talks only to the hub.
Next in this track
Concept 1 · 2:57 Projects and environments Watched