Model
High level view of Jenkins application
-
This view is Jenkins itself
-
Many plugins add technical layers like additional storage.
-
Plugins are adding features so by definition the content of the business layer is infinite :)
┌─────────────────────────────────────────┐ ┌─────────────────────┐ ┌─────────────┐ │ Automation, machine to machine │ │ End users/Browsers │ │ Agents │ │ command line prompt (curl, wget..) │ │ │ │ │ └─────────▲─────────────────────▲─────────┘ └───────────▲─────────┘ └───────▲─────┘ │ │ │ │ │ │ │ │ │ │ │ │ ┌───────────▼───────────┬─────────▼───────────┬─────────────▼───────────┬─────────▼──────┐ │ Command line CLI │ HTTP Endpoints │ Web user interface │ Remoting │ ├───────┬───────────────│ │ │ │ │ SSH │ websocket │ │ (Jelly /Groovy views) │ │ │ │ or HTTP │ │ │ │ │ ├───────────────┴─────────────────────┴─────────────────────────┤ │ │ │ │ │ │ │ Stapler: security, routing, requests processing │ │ │ │ │ │ ├───────┴───────────────────────────────────────────────────────────────┴────────────────┤ │ │ │ Business layer: models, processing, scheduling │ │ │ ├────────────────────────────────────────────────────────────────────────────────────────┤ │ │ │ Storage layer: XML files on JENKINS_HOME │ │ │ └────────────────────────────────────────────────────────────────────────────────────────┘
Some references to dive deeper: