<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Snow Owl</title>
    <description>The latest articles on DEV Community by Snow Owl (@snowowl).</description>
    <link>https://dev.to/snowowl</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1002186%2F90df80f7-4703-4822-9d79-a1f7e41349ab.jpg</url>
      <title>DEV Community: Snow Owl</title>
      <link>https://dev.to/snowowl</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/snowowl"/>
    <language>en</language>
    <item>
      <title>Geo Routing for GDPR compliance made easy using reverse proxy as a service</title>
      <dc:creator>Snow Owl</dc:creator>
      <pubDate>Sat, 11 Mar 2023 21:21:52 +0000</pubDate>
      <link>https://dev.to/snowowl/geo-routing-for-gdpr-compliance-made-easy-using-reverse-proxy-as-a-service-4le1</link>
      <guid>https://dev.to/snowowl/geo-routing-for-gdpr-compliance-made-easy-using-reverse-proxy-as-a-service-4le1</guid>
      <description>&lt;p&gt;In this tutorial, we'll show you how to quickly and easily route based on geography, and how developers can handle these responsibilities without relying on specialists.&lt;/p&gt;

&lt;h2&gt;
  
  
  Background: Why geo-routing is necessary for your service today.
&lt;/h2&gt;

&lt;p&gt;GDPR compliance, data sovereignty, and data residency are important for maintaining the privacy of users, but also require data to be routed and stored in their host countries or states.  Europe has GDPR, Canada has Pipeta, and California now has CCPA.  &lt;/p&gt;

&lt;p&gt;This additional layer of complexity can quickly compound with other network requirements, especially with increasing traffic.  This makes it more difficult and expensive to stay in compliance, without an adequately simple and robust solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rules structure
&lt;/h2&gt;

&lt;p&gt;Our rules structure will continue as follows:&lt;/p&gt;

&lt;p&gt;If the user is coming from the US, route them to the United Airlines site.&lt;/p&gt;

&lt;p&gt;If the user is coming from the Philippines, route them to the Philippine Air site.&lt;/p&gt;

&lt;p&gt;Else, route the user to the Star Alliance site.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Kzui1pLq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3qpbyl3dxobzu8m2ugn2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Kzui1pLq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3qpbyl3dxobzu8m2ugn2.png" alt="Image description" width="880" height="298"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We are routing to common websites in this example, but for your application, you can route to a geo-specific version of your site (for multi-language support), or route user data uploads to a host that is located in the same country as the user for data sovereignty/residency compliance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using a reverse proxy
&lt;/h2&gt;

&lt;p&gt;By using an edge-based reverse proxy that logs sufficient request information, you can ensure that traffic originating from a defined region never leaves that region.  We will use Snow Owl, which is a SaaS-based reverse proxy.&lt;/p&gt;

&lt;p&gt;Below is a schematic of how a reverse proxy sits between the user and the host architecture:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z-4-P0DO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vtm543s6ozgeaoukeyt1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z-4-P0DO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vtm543s6ozgeaoukeyt1.png" alt="Image description" width="880" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By using headers in the http request the have been logged by the reverse proxy, we can understand very quickly what location the user is coming from, and route them accordingly.&lt;/p&gt;

&lt;p&gt;The rules below will apply to a specific domain or set of domains within the same service.  Different users in different geographies navigating to the &lt;u&gt;same domain&lt;/u&gt; will be routed to &lt;u&gt;different endpoints&lt;/u&gt; based on the rules below.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example rule #1: Route US traffic to United.com (no code &amp;amp; JSON)
&lt;/h2&gt;

&lt;p&gt;Below are two representations of the same logic for routing US traffic to United.com.  They are identical and can be used interchangeably.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nSZtIH2q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u8fhcgztq86nrncwjfe8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nSZtIH2q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u8fhcgztq86nrncwjfe8.png" alt="No Code rule" width="880" height="1301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--U8HLhLe0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/74ofiwj8jdcr2iweiytj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--U8HLhLe0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/74ofiwj8jdcr2iweiytj.png" alt="JSON rule" width="880" height="688"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Example rule 2: Route Philippines traffic to Philippine Air
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "condition": [
    {
      "field": "header:cf-ipcountry",
      "operator": "equal",
      "values": [
        "PH"
      ],
      "not": true
    }
  ],
  "action": [
    {
      "field": "hostname",
      "operator": "set",
      "values": [
        "philippineairlines.com"
      ]
    }
  ],
  "stopProcessing": true
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Example 3: Else, route traffic to Star Alliance
&lt;/h2&gt;

&lt;p&gt;If users come from a location that isn't the US or the Philippines, they will be defaulted to the Star Alliance site. Snow Owl, we offer simple routing rules that only need a field or two to be filled out, in this case, a Proxy URL rule.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Vgz6exI5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1p72ehwmohtmp9ew515q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Vgz6exI5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1p72ehwmohtmp9ew515q.png" alt="Proxy URL to Star Alliance" width="880" height="296"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary and Discussion
&lt;/h2&gt;

&lt;p&gt;With the right system architecture and service, a quick set of simple rules can be set up enabling technical staff from entry level developers to network specialists to monitor and route their traffic.  This makes it substantially easier to stay in compliance with data sovereignty/residency regulations, and manage network complexity much more robustly for higher site reliability and much lower costs + time.&lt;/p&gt;

&lt;p&gt;For more information, check out:&lt;br&gt;
SnowOwl.co&lt;br&gt;
docs.snowowl.co&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>For Front End &amp; Full Stack Devs: How to cut time spent on traffic management by up to 90%</title>
      <dc:creator>Snow Owl</dc:creator>
      <pubDate>Wed, 15 Feb 2023 03:23:35 +0000</pubDate>
      <link>https://dev.to/snowowl/request-level-network-monitoring-for-microservices-1p19</link>
      <guid>https://dev.to/snowowl/request-level-network-monitoring-for-microservices-1p19</guid>
      <description>&lt;p&gt;For those of you who have had to deal with microservice architectures, you know how quickly they can get exponentially more complex.  Network deploys and configs can end up taking as much as 1/3 of developer time, which is already constrained.  This translates directly into lost productivity, and lost money when failures make root cause analysis more difficult, and SLA uptime is lost.&lt;/p&gt;

&lt;p&gt;Passing requests through an edge gateway allows for developers to view all http requests and API calls connected to the gateway within seconds or minutes of the request.  Because the gateway sits at the edge, response times for 99+% of the internet are minimal.&lt;/p&gt;

&lt;p&gt;In this tutorial, we'll show how easy can be to monitor request-level traffic using an edge gateway.&lt;/p&gt;

&lt;h2&gt;
  
  
  General Architecture
&lt;/h2&gt;

&lt;p&gt;Here is an example of what the end result looks like.  You can see that there is an API call that is returning a 400 error, and might need to be evaluated more closely.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo92vxiq842lvwi8h25ck.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo92vxiq842lvwi8h25ck.png" alt=" " width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Without an edge gateway, it could take hours or days to recognize the error, or worse, have a client call you in the middle of the night letting you know your SLA is being affected.&lt;/p&gt;

&lt;p&gt;Updating the DNS records are often the only change to a project's architecture that are needed to set up an edge gateway:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Public-facing Domain -&amp;gt; Edge Gateway -&amp;gt; Web Server 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 1: Connect the edge gateway to the web server
&lt;/h2&gt;

&lt;p&gt;In the no/low code edge gateway, we'll use an auto-import function which auto-populates rules for monitoring the subdomain.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowl64a67fugsvufrmzg9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowl64a67fugsvufrmzg9.png" alt=" " width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For simplicity and security's sake, we will use a subdomain (example.snowowl.co), which act in the place of a web server.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhovvl4i9kwrw4joc0sl4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhovvl4i9kwrw4joc0sl4.png" alt=" " width="800" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Connect a public-facing domain to the edge gateway
&lt;/h2&gt;

&lt;p&gt;A public facing domain is the domain that you want the public to navigate to, to to view the webserver's contents.  In this example, we will use the domain: public.snwlgdaddy.com .&lt;/p&gt;

&lt;p&gt;To connect public.snwlgdaddy.com to the edge gateway, we just need update the DNS records in domain's DNS registar (i.e. GoDaddy, AWS Route53, Google Domains, etc), using the information provided by the gateway.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F00u49wgsar479nno84qg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F00u49wgsar479nno84qg.png" alt=" " width="715" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Test traffic and monitor your microservices/API calls
&lt;/h2&gt;

&lt;p&gt;With the gateway connected between your public traffic and your webserver, the last thing that needs to be done is some testing to verify that the architecture is functional.&lt;/p&gt;

&lt;p&gt;You can view snapshot summaries of your connected domains to quickly assess if there are spikes in failures, and where those failures might be coming from.  Additionally, you can drill down to the individual request level for &lt;strong&gt;any&lt;/strong&gt; http request or API call and view the request/response headers.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5u3x2svixqu6lndg1ihu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5u3x2svixqu6lndg1ihu.png" alt=" " width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Snow Owl (SnowOwl.co) is a no/low code edge gateway that provides request-level monitoring, can install within 15 minutes, and allows for custom routing via a rules engine for a variety of use cases.  Feel free to view our documentation at docs.snowowl.co and DM us for beta access.&lt;/p&gt;

</description>
      <category>hackathon</category>
      <category>productivity</category>
      <category>gamedev</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Feedback on our Beta Landing Page? Request monitoring and routing for web developers</title>
      <dc:creator>Snow Owl</dc:creator>
      <pubDate>Mon, 13 Feb 2023 19:21:24 +0000</pubDate>
      <link>https://dev.to/snowowl/feedback-on-our-beta-landing-page-request-monitoring-and-routing-for-web-developers-2i9l</link>
      <guid>https://dev.to/snowowl/feedback-on-our-beta-landing-page-request-monitoring-and-routing-for-web-developers-2i9l</guid>
      <description>&lt;p&gt;Hi!&lt;/p&gt;

&lt;p&gt;We just released the first version of our landing page and would love your candid feedback and discussion.&lt;/p&gt;

&lt;p&gt;Our mission is to make NetOps 90% easier, so that web developers can easily do the work of network specialists and spend more time writing code.&lt;/p&gt;

&lt;p&gt;Here's a link to our website: SnowOwl.co.&lt;/p&gt;

&lt;p&gt;Thank you!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>devops</category>
      <category>api</category>
    </item>
    <item>
      <title>Snow Owl: request-level network observability and routing for microservices</title>
      <dc:creator>Snow Owl</dc:creator>
      <pubDate>Thu, 05 Jan 2023 06:38:57 +0000</pubDate>
      <link>https://dev.to/snowowl/snow-owl-request-level-network-observability-and-routing-for-microservices-3pgp</link>
      <guid>https://dev.to/snowowl/snow-owl-request-level-network-observability-and-routing-for-microservices-3pgp</guid>
      <description>&lt;p&gt;Hi everybody! 👋 We're glad to be here.&lt;/p&gt;

&lt;p&gt;Snow Owl is a low/no-code network traffic management platform for http/api requests. We'll be sharing developer updates here.&lt;/p&gt;

&lt;p&gt;(Psst! DM us if you want early access 👀)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://snowowl.co" rel="noopener noreferrer"&gt;https://snowowl.co&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.snowowl.co" rel="noopener noreferrer"&gt;https://docs.snowowl.co&lt;/a&gt;&lt;/p&gt;

</description>
      <category>emptystring</category>
    </item>
  </channel>
</rss>
