<mxfile host="65bd71144e">
    <diagram id="LvgB7MAMjTjnmNcJnk4d" name="Page-1">
        <mxGraphModel dx="1741" dy="591" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="3" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-670" y="400" width="650" height="880" as="geometry"/>
                </mxCell>
                <mxCell id="4" value="Subscription" style="verticalLabelPosition=bottom;html=1;verticalAlign=top;align=center;strokeColor=none;fillColor=#00BEF2;shape=mxgraph.azure.azure_subscription;" parent="1" vertex="1">
                    <mxGeometry x="-666" y="400" width="50" height="35" as="geometry"/>
                </mxCell>
                <mxCell id="5" value="" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-620" y="520" width="530" height="700" as="geometry"/>
                </mxCell>
                <mxCell id="6" value="Vnet" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Virtual_Networks.svg;" parent="1" vertex="1">
                    <mxGeometry x="-647" y="500" width="67" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="9" value="" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-510" y="620" width="290" height="160" as="geometry"/>
                </mxCell>
                <mxCell id="10" value="AppGW Subnet" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Virtual_Networks_Classic.svg;" parent="1" vertex="1">
                    <mxGeometry x="-536.7" y="600" width="67" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="14" value="" style="group" parent="1" vertex="1" connectable="0">
                    <mxGeometry x="-597" y="880" width="670" height="290" as="geometry"/>
                </mxCell>
                <mxCell id="15" value="" style="whiteSpace=wrap;html=1;" parent="14" vertex="1">
                    <mxGeometry x="31.9" y="-20" width="398.1" height="310" as="geometry"/>
                </mxCell>
                <mxCell id="16" value="" style="group" parent="14" vertex="1" connectable="0">
                    <mxGeometry x="78" y="12.083333333333332" width="560" height="253.75" as="geometry"/>
                </mxCell>
                <mxCell id="17" value="" style="whiteSpace=wrap;html=1;" parent="16" vertex="1">
                    <mxGeometry x="30" y="36.25" width="270" height="217.5" as="geometry"/>
                </mxCell>
                <mxCell id="23" value="&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;app1" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];shape=mxgraph.kubernetes.icon;prIcon=pod" parent="16" vertex="1">
                    <mxGeometry x="164" y="120.99666666666663" width="50" height="48" as="geometry"/>
                </mxCell>
                <mxCell id="120" value="AKS" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/containers/Kubernetes_Services.svg;" parent="16" vertex="1">
                    <mxGeometry y="17.91999999999996" width="68" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="27" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="25" target="23" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="28" value="AGIC" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="27" vertex="1" connectable="0">
                    <mxGeometry x="0.0268" y="4" relative="1" as="geometry">
                        <mxPoint x="-4" y="-70" as="offset"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="25" value="AppGW + WAF" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-390" y="699" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="26" value="" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Application_Gateways.svg;" parent="1" vertex="1">
                    <mxGeometry x="-420" y="670" width="64" height="64" as="geometry"/>
                </mxCell>
                <mxCell id="49" style="edgeStyle=none;html=1;" parent="1" source="47" target="25" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="47" value="Public IP" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Public_IP_Addresses.svg;" parent="1" vertex="1">
                    <mxGeometry x="-349.25" y="432.1" width="38.5" height="30.8" as="geometry"/>
                </mxCell>
                <mxCell id="90" value="&lt;h1&gt;Option #1: AppGW Ingress Controller (AGIC)&lt;/h1&gt;&lt;p&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;Uses AppGW as an Ingress Controller.&amp;nbsp; Traffic goes directly to Pod&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;h1&gt;PRO:&lt;/h1&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;* Managed WAF&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;* Official support from Microsoft&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;h1&gt;CON:&lt;/h1&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;* Latency with Pod rebalancing&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
                    <mxGeometry x="40" y="500" width="550" height="630" as="geometry"/>
                </mxCell>
                <mxCell id="111" value="&lt;h1&gt;Option #2: AppGW with separate Ingress Controller&lt;/h1&gt;&lt;p&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;Use AppGW as WAF and Nginx for Host + Path based Routing&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/p&gt;&lt;h1&gt;PRO:&lt;/h1&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;* Keep Ingress internal to K8S cluster&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;* Choices in Ingress Controller&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;p&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;&lt;/font&gt;&lt;/p&gt;&lt;div&gt;&lt;h1&gt;CON:&lt;/h1&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;* Duplicate L7 routing (in both AppGW + Ingress)&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
                    <mxGeometry x="40" y="1490" width="620" height="390" as="geometry"/>
                </mxCell>
                <mxCell id="121" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-670" y="1340" width="650" height="880" as="geometry"/>
                </mxCell>
                <mxCell id="122" value="Subscription" style="verticalLabelPosition=bottom;html=1;verticalAlign=top;align=center;strokeColor=none;fillColor=#00BEF2;shape=mxgraph.azure.azure_subscription;" parent="1" vertex="1">
                    <mxGeometry x="-647" y="1367.9" width="50" height="35" as="geometry"/>
                </mxCell>
                <mxCell id="123" value="" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-620" y="1460" width="530" height="700" as="geometry"/>
                </mxCell>
                <mxCell id="124" value="Vnet" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Virtual_Networks.svg;" parent="1" vertex="1">
                    <mxGeometry x="-647" y="1440" width="67" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="125" value="" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-509" y="1505" width="290" height="160" as="geometry"/>
                </mxCell>
                <mxCell id="126" value="AppGW Subnet" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Virtual_Networks_Classic.svg;" parent="1" vertex="1">
                    <mxGeometry x="-536.7" y="1490" width="67" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="127" value="" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-565.1" y="1720" width="398.1" height="390" as="geometry"/>
                </mxCell>
                <mxCell id="128" value="" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-489" y="1868.3333333333335" width="270" height="217.5" as="geometry"/>
                </mxCell>
                <mxCell id="129" value="&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;app1" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];shape=mxgraph.kubernetes.icon;prIcon=pod" parent="1" vertex="1">
                    <mxGeometry x="-290" y="1987.38" width="50" height="48" as="geometry"/>
                </mxCell>
                <mxCell id="130" value="AKS" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/containers/Kubernetes_Services.svg;" parent="1" vertex="1">
                    <mxGeometry x="-520" y="1840.0033333333333" width="68" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="131" value="AKS-subnet" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Virtual_Networks_Classic.svg;" parent="1" vertex="1">
                    <mxGeometry x="-597" y="1700" width="67" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="138" style="edgeStyle=none;html=1;" parent="1" source="134" target="112" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="134" value="AppGW + WAF" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-389" y="1590" width="120" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="135" value="" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Application_Gateways.svg;" parent="1" vertex="1">
                    <mxGeometry x="-419" y="1561" width="64" height="64" as="geometry"/>
                </mxCell>
                <mxCell id="136" style="edgeStyle=none;html=1;" parent="1" source="137" target="134" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="137" value="Public IP" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Public_IP_Addresses.svg;" parent="1" vertex="1">
                    <mxGeometry x="-349.25" y="1372.1" width="38.5" height="30.8" as="geometry"/>
                </mxCell>
                <mxCell id="140" style="edgeStyle=none;html=1;" parent="1" source="113" target="129" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="113" value="&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Ingress" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];shape=mxgraph.kubernetes.icon;prIcon=ing" parent="1" vertex="1">
                    <mxGeometry x="-412" y="1969.999655172414" width="50" height="82.75862068965517" as="geometry"/>
                </mxCell>
                <mxCell id="139" style="edgeStyle=none;html=1;entryX=0.415;entryY=0.258;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="112" target="113" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="112" value="kubernetes-internal" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Load_Balancers.svg;" parent="1" vertex="1">
                    <mxGeometry x="-382.75" y="1740" width="72" height="72" as="geometry"/>
                </mxCell>
                <mxCell id="141" value="&lt;h1&gt;Option #3: OSS Ingress Controller&lt;/h1&gt;&lt;p&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;Use Nginx as Ingress Controller&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/p&gt;&lt;h1&gt;PRO:&lt;/h1&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;* Use only OSS solutions&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;p&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;&lt;/font&gt;&lt;/p&gt;&lt;div&gt;&lt;h1&gt;CON:&lt;/h1&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;* Must manage all components&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px&quot;&gt;* No built-in WAF&lt;/font&gt;&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
                    <mxGeometry x="40" y="2430" width="530" height="440" as="geometry"/>
                </mxCell>
                <mxCell id="142" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-670" y="2280" width="650" height="690" as="geometry"/>
                </mxCell>
                <mxCell id="143" value="Subscription" style="verticalLabelPosition=bottom;html=1;verticalAlign=top;align=center;strokeColor=none;fillColor=#00BEF2;shape=mxgraph.azure.azure_subscription;" parent="1" vertex="1">
                    <mxGeometry x="-647" y="2307.9" width="50" height="35" as="geometry"/>
                </mxCell>
                <mxCell id="144" value="" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-620" y="2400" width="530" height="530" as="geometry"/>
                </mxCell>
                <mxCell id="145" value="Vnet" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Virtual_Networks.svg;" parent="1" vertex="1">
                    <mxGeometry x="-643" y="2380" width="67" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="148" value="" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-545.8000000000001" y="2500" width="398.1" height="390" as="geometry"/>
                </mxCell>
                <mxCell id="149" value="" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="-469.7" y="2648.3333333333335" width="270" height="217.5" as="geometry"/>
                </mxCell>
                <mxCell id="150" value="&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;app1" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];shape=mxgraph.kubernetes.icon;prIcon=pod" parent="1" vertex="1">
                    <mxGeometry x="-270.7" y="2767.38" width="50" height="48" as="geometry"/>
                </mxCell>
                <mxCell id="151" value="AKS" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/containers/Kubernetes_Services.svg;" parent="1" vertex="1">
                    <mxGeometry x="-498.09999999999997" y="2620.003333333333" width="68" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="152" value="AKS-subnet" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Virtual_Networks_Classic.svg;" parent="1" vertex="1">
                    <mxGeometry x="-576.0000000000001" y="2480" width="67" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="162" style="edgeStyle=none;html=1;" parent="1" source="157" target="161" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="157" value="Public IP" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Public_IP_Addresses.svg;" parent="1" vertex="1">
                    <mxGeometry x="-349.25" y="2312.1" width="38.5" height="30.8" as="geometry"/>
                </mxCell>
                <mxCell id="158" style="edgeStyle=none;html=1;" parent="1" source="159" target="150" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="159" value="&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Ingress" style="sketch=0;html=1;dashed=0;whitespace=wrap;fillColor=#2875E2;strokeColor=#ffffff;points=[[0.005,0.63,0],[0.1,0.2,0],[0.9,0.2,0],[0.5,0,0],[0.995,0.63,0],[0.72,0.99,0],[0.5,1,0],[0.28,0.99,0]];shape=mxgraph.kubernetes.icon;prIcon=ing" parent="1" vertex="1">
                    <mxGeometry x="-392.7" y="2749.999655172414" width="50" height="82.75862068965517" as="geometry"/>
                </mxCell>
                <mxCell id="160" style="edgeStyle=none;html=1;entryX=0.415;entryY=0.258;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="161" target="159" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="161" value="kubernetes" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Load_Balancers.svg;" parent="1" vertex="1">
                    <mxGeometry x="-363.45" y="2520" width="72" height="72" as="geometry"/>
                </mxCell>
                <mxCell id="29" value="AKS-subnet" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/networking/Virtual_Networks_Classic.svg;" parent="1" vertex="1">
                    <mxGeometry x="-600" y="840" width="67" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="X9wHMNBuJ6IvNEV33tiO-162" value="&lt;font style=&quot;font-size: 36px&quot;&gt;Public Accessable&lt;br&gt;Endpoint&lt;br&gt;&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
                    <mxGeometry x="-649.7" y="220" width="630" height="110" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>