Modernising applications by decoupling them from the underlying infrastructure on which they are running can enable portability and innovation (shifting workloads to the cloud), reduce costs, and improve security. Cloud native infrastructure, container technology, and orchestration frameworks like Kubernetes decouple applications from the compute fabric, but in order to fully realise the benefits they also need to be decoupled at the traffic/networking layer too. An API Gateway can decouple applications from external consumers, by routing ingress requests from end-users and third-parties to various internal applications, and by providing cross-cutting functionality like authentication, encryption, and rate limiting. A service mesh can decouple applications from internal consumers by dynamically routing inter-datacenter and service-to-service requests, regardless of where they are exposed on the network. The core concepts behind an API gateway and service mesh are not new, but the combination of current user requirements and modern cloud native technologies provide new constraints and new opportunities. Join this session to: Learn the difference between using an API gateway for handling ingress, "north-south" traffic, and a service mesh for managing service-to-service, "east-west", traffic Understand how these technologies could be used within application modernisation programs, the trade-offs with deploying them, and when not to use a service mesh Explore how these technologies impact application architecture (such as the use of the sidecar pattern), and get an overview of the networking cross-functional requirements that these technologies provide Explore how the open source Envoy Proxy project has driven massive innovation within this space, and understand how it differs from existing proxies Gain a high-level overview of technology options currently available Watch a brief demo of the open source Ambassador API gateway and Consul service mesh being configured to work together in collaboration using a simple Kubernetes-based application