NetAuto Academy

Network Controllers

Controller Architecture: Northbound, Southbound, and Centralized State

Advanced12 min read

What you'll learn

  • The difference between a controller's northbound and southbound interfaces
  • Why a controller's centralized state is architecturally different from Ansible's orchestration
  • What capabilities a controller may add beyond orchestration
  • That the learner's code only ever touches the northbound side
🎓 Teach This Lesson

Listen to a guided explanation of this lesson.

Spoken narration isn't supported in this browser.

Two interfaces, one controller

A controller has two distinct sides. Northbound is the API you call — the interface exposed toward automation, dashboards, and integrations. Southbound is how the controller actually talks to the devices it manages — SSH, NETCONF, SNMP, vendor-proprietary protocols, or a mix. Your code never touches southbound directly; it's the controller's own concern.

  1. Your codePython, using requests — nothing new here
  2. Northbound APIthe only side your code ever touches
  3. Controllerdecides how to actually reach each device
  4. SouthboundSSH, NETCONF, SNMP, proprietary — opaque to you
  5. Devices
Quick checkConcept check
Which side of a controller does automation code (like this module's own scripts) actually call?
Quick checkScenario
A controller manages both an old switch reachable only over SSH and a newer one that supports NETCONF. Does the automation code calling the controller's northbound API need to know which protocol reaches which device?

Not "Ansible with centralized state"

This needs to be said directly, because the two can look similar from a distance: Ansible already handles many devices from one playbook. A controller is not just a bigger version of that.

Ansible (Phase 3.0)
  1. Stateless orchestrationeach run re-derives what it needs
  2. No persistent, centralized modelof the network's current state
  3. You run the playbook when you decide to
Network Controller
  1. Centralized, persistent statethe controller holds this continuously
  2. Query current state anytimewithout triggering a new run
  3. Asynchronous task/job lifecyclecovered fully in Lesson 4

The real distinction

Ansible orchestrates execution across devices, on demand, each run independent of the last. A controller maintains a standing, centralized model of inventory, state, and (often) policy — queryable at any time, not just during a run — and coordinates southbound device operations to keep reality aligned with that model. Both are legitimate; they solve different problems.

Quick checkMyth check
Is a network controller accurately described as 'Ansible with centralized state added on'?

What a controller may add

capabilities a controller MAY provide
Centralized inventory   -- one queryable source, not per-tool device lists
Centralized state        -- continuously maintained, not re-derived per run
Policy / intent          -- describe desired outcome, not CLI steps
Task / job lifecycle     -- asynchronous, trackable (Lesson 4)
Assurance / observed state -- separately verifiable (Lesson 6)
Auditability / RBAC      -- who changed what, with what permission

Not every real controller implements all six identically — this list names what the architecture makes possible, not a guaranteed checklist for every product.

Quick checkIdentify the correct code
Which capability is specifically about being able to check a network's current state at any time, without triggering a new automation run?

Key takeaways

  • Northbound is the API automation calls; southbound is how the controller reaches devices — invisible to, and irrelevant for, the calling code.
  • A controller is not 'Ansible with centralized state' — it maintains a standing, continuously-queryable model of the network, not something re-derived fresh on each run.
  • A controller MAY provide centralized inventory, centralized state, policy/intent abstraction, async task tracking, assurance, and RBAC/auditability — real platforms vary in which they implement.
  • Automation code only ever touches the northbound side, using the exact requests skills from Phase 3.1 — nothing new to learn there.