F5-appsvcs

While supported, embedding large iRules or complex L7 policies inside JSON becomes unreadable fast. You end up using "iRule": { "base64": "..." } – which is terrible for code review.

Run the same POST request 10 times – the configuration remains consistent. No duplicate pool members, no stray objects. This is a massive win for CI/CD pipelines. f5-appsvcs

Since it’s declarative, removing a service is as simple as deleting its block from the JSON and re-posting. AS3 cleans up the orphaned objects. Cons (The pain points) 1. Steep JSON schema learning curve The schema is verbose and strict. A missing comma or incorrectly nested "class": "Service_HTTP" will fail the entire declaration. The error messages have improved but can still be cryptic (e.g., "property 'pool' is not valid for 'Service_HTTPS'" without clear line numbers). While supported, embedding large iRules or complex L7

Older BIG-IP versions don’t show you exactly what will change before you apply it. (Newer v3.30+ has improved preview modes, but many production boxes lag behind.) No duplicate pool members, no stray objects