<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Core Concepts on </title>
    <link>https://emissary-ingress.dev/docs/4.1/topics/concepts/</link>
    <description>Recent content in Core Concepts on </description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://emissary-ingress.dev/docs/4.1/topics/concepts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Architecture</title>
      <link>https://emissary-ingress.dev/docs/4.1/topics/concepts/architecture/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://emissary-ingress.dev/docs/4.1/topics/concepts/architecture/</guid>
      <description>&lt;h1 id=&#34;the-emissary-architecture&#34;&gt;The Emissary architecture&lt;/h1&gt;&#xA;&lt;h2 id=&#34;emissary-is-a-control-plane&#34;&gt;Emissary is a control plane&lt;/h2&gt;&#xA;&lt;p&gt;Emissary is a specialized &lt;a href=&#34;https://blog.getambassador.io/the-importance-of-control-planes-with-service-meshes-and-front-proxies-665f90c80b3d&#34;&gt;control plane for Envoy Proxy&lt;/a&gt;. In this architecture, Emissary translates configuration (in the form of Kubernetes Custom Resources) to Envoy configuration. All actual traffic is directly handled by the high-performance &lt;a href=&#34;https://www.envoyproxy.io&#34;&gt;Envoy Proxy&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Architecture&#34; src=&#34;../../images/ambassador-arch.png&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;details&#34;&gt;Details&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;The service owner defines configuration in Kubernetes manifests.&lt;/li&gt;&#xA;&lt;li&gt;When the manifest is applied to the cluster, the Kubernetes API notifies Emissary of the change.&lt;/li&gt;&#xA;&lt;li&gt;Emissary parses the change and transforms the configuration into a semantic intermediate representation. Envoy configuration is generated from this IR.&lt;/li&gt;&#xA;&lt;li&gt;The new configuration is passed to Envoy via the gRPC-based Aggregated Discovery Service (ADS) API.&lt;/li&gt;&#xA;&lt;li&gt;Traffic flows through the reconfigured Envoy, without dropping any connections.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;scaling-and-availability&#34;&gt;Scaling and availability&lt;/h2&gt;&#xA;&lt;p&gt;Emissary relies on Kubernetes for scaling, high availability, and persistence. All Emissary configuration is stored directly in Kubernetes; there is no database. Emissary is packaged as a single container that contains both the control plane and an Envoy Proxy instance. By default, Emissary is deployed as a Kubernetes &lt;code&gt;deployment&lt;/code&gt; and can be scaled and managed like any other Kubernetes deployment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kubernetes Network Architecture</title>
      <link>https://emissary-ingress.dev/docs/4.1/topics/concepts/kubernetes-network-architecture/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://emissary-ingress.dev/docs/4.1/topics/concepts/kubernetes-network-architecture/</guid>
      <description>&lt;h1 id=&#34;kubernetes-network-architecture&#34;&gt;Kubernetes Network architecture&lt;/h1&gt;&#xA;&lt;h2 id=&#34;kubernetes-has-its-own-isolated-network&#34;&gt;Kubernetes has its own isolated network&lt;/h2&gt;&#xA;&lt;p&gt;Each Kubernetes cluster provides its own isolated network namespace. This approach has a number of benefits. For example, each pod can be easily accessed with its own IP address. One of the consequences of this approach, however, is that a network bridge is required in order to route traffic from outside the Kubernetes cluster to services inside the cluster.&lt;/p&gt;&#xA;&lt;h2 id=&#34;routing-traffic-to-your-kubernetes-cluster&#34;&gt;Routing traffic to your Kubernetes cluster&lt;/h2&gt;&#xA;&lt;p&gt;While there are a number of techniques for routing traffic to a Kubernetes cluster, by far the most common and popular method involves deploying an in-cluster edge proxy / ingress controller along with an external load balancer. In this architecture, the network topology looks like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Microservices &amp; API gateways</title>
      <link>https://emissary-ingress.dev/docs/4.1/topics/concepts/microservices-api-gateways/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://emissary-ingress.dev/docs/4.1/topics/concepts/microservices-api-gateways/</guid>
      <description>&lt;p&gt;A microservices API gateway is an API gateway designed to accelerate the development workflow of independent services teams. A microservices API gateway provides all the functionality for a team to independently publish, monitor, and update a microservice.&lt;/p&gt;&#xA;&lt;p&gt;This focus on accelerating the development workflow is distinct from the purpose of traditional API gateways, which focus on the challenges of managing APIs. Over the past decade, organizations have worked to expose internal systems through well-defined APIs. The challenge of safely exposing hundreds or thousands of APIs to end-users (both internal and external) led to the emergence of API gateways. Over time, API gateways have become centralized, mission critical pieces of infrastructure that control access to these APIs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Operating Model</title>
      <link>https://emissary-ingress.dev/docs/4.1/topics/concepts/gitops-continuous-delivery/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://emissary-ingress.dev/docs/4.1/topics/concepts/gitops-continuous-delivery/</guid>
      <description>&lt;h1 id=&#34;the-ambassador-operating-model-gitops-and-continuous-delivery&#34;&gt;The Ambassador operating model: GitOps and continuous delivery&lt;/h1&gt;&#xA;&lt;p&gt;Containerized applications deployed in Kubernetes generally follow the microservices design pattern, where an application composed of dozens or even hundreds of services communicate with each other. Independent application development teams are responsible for the full lifecycle of a service, including coding, testing, deployment, release, and operations. By giving these teams independence, microservices enable organizations to scale their development without sacrificing agility.&lt;/p&gt;&#xA;&lt;h2 id=&#34;policies-declarative-configuration-and-custom-resource-definitions&#34;&gt;Policies, declarative configuration, and Custom Resource Definitions&lt;/h2&gt;&#xA;&lt;p&gt;Emissary configuration is built on the concept of &lt;em&gt;policies&lt;/em&gt;. A policy is a statement of intent and codified in a declarative configuration file. Emissary takes advantage of Kubernetes Custom Resource Definitions (CRDs) to provide a declarative configuration workflow that is idiomatic with Kubernetes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Progressive Delivery</title>
      <link>https://emissary-ingress.dev/docs/4.1/topics/concepts/progressive-delivery/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://emissary-ingress.dev/docs/4.1/topics/concepts/progressive-delivery/</guid>
      <description>&lt;p&gt;Today&amp;rsquo;s cloud-native applications may consist of hundreds of services, each of which are being updated at any time. Thus, many cloud-native organizations augment regression test strategies with testing in production using progressive delivery techniques.&lt;/p&gt;&#xA;&lt;p&gt;Progressive Delivery is an approach for releasing software to production users. In the progressive delivery model, software is released to ever growing subsets of production users. This approach reduces the blast radius in the event of a failure.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rate limiting at the edge</title>
      <link>https://emissary-ingress.dev/docs/4.1/topics/concepts/rate-limiting-at-the-edge/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://emissary-ingress.dev/docs/4.1/topics/concepts/rate-limiting-at-the-edge/</guid>
      <description>&lt;p&gt;Rate limiting at the edge is a technique that is used to prevent a sudden or sustained increase in user traffic from breaking an API or underlying service. On the Internet, users can do whatever they want to your APIs, as you have no direct control over these end-users. Whether it’s intentional or not, these users can impact the availability, responsiveness, and scalability of your service.&lt;/p&gt;&#xA;&lt;h2 id=&#34;two-approaches-rate-limiting-and-load-shedding&#34;&gt;Two approaches: Rate limiting and load shedding&lt;/h2&gt;&#xA;&lt;p&gt;Rate limiting use cases that fall into this scenario range from implementing functional requirements related to a business scenario &amp;ndash; for example, where requests from paying customers is prioritized over requests from non-paying trial users &amp;ndash; to implementing cross-functional requirements, such as resilience from a malicious actor attempting to issue a denial-of-service (DoS) attack.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
