Packaging an application with containers, Helm, or infrastructure-as-code is usually the straightforward part of deploying into a customer-controlled cloud. The harder problems are the services the application quietly relies on, such as SendGrid, Auth0 or Clerk, managed PostgreSQL, Stripe webhooks, and callbacks to your own API.
In restricted, private, or air-gapped environments, those services may be unreachable or prohibited. That can mean rebuilding them to run inside the customer's environment, replacing them with customer-provided services, or redesigning workflows that depend on inbound callbacks.
For people who have shipped software into customer clouds or air-gapped environments, how did you handle these third-party APIs and dependencies? Did you make everything bring-your-own, provide self-hosted alternatives, switch to outbound-only communication, or use a different approach?
3 Answers
Containers package application dependencies, but they do not magically solve network reachability or external service requirements. Dependencies that can be swapped for customer-managed equivalents are usually manageable with planning. Inbound webhooks and callbacks are much more difficult, so redesign them as outbound polling or queued communication when the environment permits it. For billing, contract-based or metered reconciliation may be more practical than relying on Stripe callbacks, and integrating with the customer’s existing identity provider is often better than shipping your own.
Treat every external dependency as part of the architecture from the beginning, not as a deployment detail. Make authentication, email, storage, and similar integrations configurable so customers can provide compatible services, and offer self-hosted replacements where it makes sense. Also validate those dependencies before starting the application so missing services or blocked endpoints are caught early.
The customer should generally be responsible for making required infrastructure available, but the deployment process should verify that everything is present and reachable before the application runs. Test against representative customer configurations, including proxies, restricted DNS, firewall rules, and offline operation. Something that works perfectly in a development environment can still fail immediately behind a corporate proxy or in an air-gapped network.

Related Questions
Can't Load PhpMyadmin On After Server Update
Redirect www to non-www in Apache Conf
How To Check If Your SSL Cert Is SHA 1
Windows TrackPad Gestures