{"id":2412,"date":"2021-08-12T14:58:31","date_gmt":"2021-08-12T12:58:31","guid":{"rendered":"https:\/\/tointegrationandbeyond.com\/blogs\/?p=2412"},"modified":"2023-04-28T15:16:48","modified_gmt":"2023-04-28T12:16:48","slug":"azure-apim-self-hosted-gateway-misconceptions","status":"publish","type":"post","link":"https:\/\/tointegrationandbeyond.com\/blogs\/index.php\/2021\/08\/12\/azure-apim-self-hosted-gateway-misconceptions\/","title":{"rendered":"Azure APIM Self-hosted Gateway Misconceptions"},"content":{"rendered":"<p>In this post, I will share some of the misconceptions that I usually get from our customers regarding Azure API Management (APIM) self-hosted gateway, during consultation sessions.<\/p>\n<p>First, let me start with a quick overview on Azure APIM main components and their functions.<\/p>\n<h2>Azure APIM main components<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2421 alignright\" src=\"https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF2.png\" alt=\"\" width=\"302\" height=\"198\" srcset=\"https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF2.png 495w, https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF2-300x196.png 300w\" sizes=\"auto, (max-width: 302px) 100vw, 302px\" \/><\/p>\n<p><strong>Azure Portal<\/strong>: The management plane to design, publish APIs and policies, as well as manage the APIM instance itself<\/p>\n<p><strong>Gateway<\/strong>: The data plane endpoint for the\u00a0published APIs, it applies the selected APIM policies, and routes these calls to the backend APIs<\/p>\n<p><strong>Developer Portal<\/strong>: The user plane that allows developers to discover and learn about the published APIs<\/p>\n<p>The following are the top 5 misconceptions that I usually get from customers about Azure APIM Self-hosted gateway since it was GA-ed over a year ago now.<\/p>\n<h3>Misconception#5: This is Microsoft&#8217;s on-premises platform for API Management<\/h3>\n<p>Many customers who have been assessing on-premises API management platforms, especially Microsoft shops and those who usually have performance and\/or regulatory constraints, mistakenly think that the self-hosted gateway is Microsoft&#8217;s solution for a complete, on-premises API management platform which will be hosted, with all its components, within their organizations&#8217; datacenters boundaries.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2434\" src=\"https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF6.png\" alt=\"\" width=\"564\" height=\"228\" srcset=\"https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF6.png 1321w, https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF6-300x121.png 300w, https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF6-1024x415.png 1024w, https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF6-768x311.png 768w\" sizes=\"auto, (max-width: 564px) 100vw, 564px\" \/><\/p>\n<p>A self-hosted gateway must be associated with a managed API Management service on Azure. This feature allows for only the Gateway component to be deployed as a docker container to any environment, while the management and developer portal components will still remain on Azure.<\/p>\n<h3>Misconception#4: It is self-hosted, so it self-contained &#8211; no external dependencies<\/h3>\n<p>Following the previous point, the self-hosted docker containers will need frequent, although not necessarily continuous, outbound connectivity to the APIM instance on Azure.<\/p>\n<p>This is mainly required to update the self-hosted gateways with the latest configurations published from the management plane on Azure, as well as for the self-hosted instances to send logs and metrics to Azure.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2435\" src=\"https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF7.png\" alt=\"\" width=\"603\" height=\"243\" srcset=\"https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF7.png 1332w, https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF7-300x121.png 300w, https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF7-1024x413.png 1024w, https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF7-768x310.png 768w\" sizes=\"auto, (max-width: 603px) 100vw, 603px\" \/><\/p>\n<p>Although, technically, you can set the configurations once and then leave it running, using a backup copy of the configurations and a persistent volume storage for the docker container, however, I don&#8217;t think that this is a common case, as software solutions frequently require change, unless for trivial solutions.<\/p>\n<h3>Misconception#3:\u00a0Azure APIM SLA covers the self-hosted gateway too<\/h3>\n<p>There is no SLA provided for the self-hosted API Management gateways. Unlike Azure&#8217;s managed APIM gateway, when you deploy self-hosted gateways, it becomes your responsibility to handle scalability, availability, and other operational concerns for them.<\/p>\n<p>In typical production-grade solutions, you will probably need to use a container orchestration tool, such as Kubernetes or Docker Swarm to handle these operational concerns for the containerized gateway instances across a multi-node clusters in your environment(s).<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2459\" src=\"https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF9.png\" alt=\"\" width=\"712\" height=\"246\" srcset=\"https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF9.png 1253w, https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF9-300x103.png 300w, https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF9-1024x353.png 1024w, https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF9-768x265.png 768w\" sizes=\"auto, (max-width: 712px) 100vw, 712px\" \/><\/p>\n<p>After all, this feature provides you with &#8220;self-hosted&#8221; gateway instances and although it provides you with more control over these gateways, you also get more responsibilities when compared to Azure managed services. Therefore, these operational responsibilities shift back from Azure to the capabilities and commitments of your datacenters or those provided by the other cloud providers.<\/p>\n<h3>Misconception#2: It is self-hosted, so there are no additional charges<\/h3>\n<p>At the time of this writing, there is an additional cost to Azure APIM for the self-hosted gateway, it is calculated as a unit price per hour per gateway deployment. This is in addition to the pricing plan for the Azure APIM Premium or Isolated tiers, where the self-hosted gateway feature is available.<\/p>\n<p>However, there is no additional cost for self-hosted gateways&#8217; deployments when you use the APIM Developer tier for non-production workloads.<\/p>\n<h3>Misconception#1: I am getting 100% functionality of managed APIM gateway<\/h3>\n<p>Not 100%, but close. According to Microsoft&#8217;s documentation, self-hosted instances are functionally equivalent to the managed APIM instances, however, you need to be aware of some unsupported functionalities in the Self-hosted instances, such as, built-in caching, Azure monitor logs, among a few others. You can find the complete <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/api-management\/self-hosted-gateway-overview#packaging-and-features\" target=\"_blank\" rel=\"noopener\">list of unsupported functionalities here<\/a>.<\/p>\n<h2>Final Thoughts<\/h2>\n<p>Hybrid and Multi-Cloud environments, although cool buzzwords, should not be taken lightly, it should be truly justified for the solution&#8217;s context and trade-offs should be properly analyzed before committing to these environment setups. Further, these setups do not come without a price, one of which is the added complexity to the overall IT landscape and the accompanied operational overhead, with or without tools.<\/p>\n<p>Azure APIM Self-hosted gateway is a powerful feature that enables organizations with a real need for Hybrid and Multi-cloud environments to have APIM gateway instances that are close to its environments&#8217; API assets and consumers and thus improves the perceived latency, minimizes egress network traffic between environments, and possibly provide a disaster recovery solution for your gateway. Importantly, it provides a unified management plane for a consistent governance and experience over your gateways spanning these environments.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2428\" src=\"https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF4.png\" alt=\"\" width=\"617\" height=\"253\" srcset=\"https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF4.png 1275w, https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF4-300x123.png 300w, https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF4-1024x420.png 1024w, https:\/\/tointegrationandbeyond.com\/blogs\/wp-content\/uploads\/2021\/08\/SF4-768x315.png 768w\" sizes=\"auto, (max-width: 617px) 100vw, 617px\" \/><\/p>\n<p>It is also important to highlight that Azure self-hosted gateway was not designed to be deployed in a self-contained manner in given environment. As mentioned earlier, the self-hosted gateway relies on a managed API Management service on Azure, so if you just need an on-premises API Gateway; then you should look for one among many of the powerful API Gateway platforms available that were designed to be hosted in your on-premises datacenters.<\/p>\n<p>Finally, the beauty of cloud platforms along with their wide range of available services, is that you can start small and gradually adapt to your solution as it evolves. When compared to your own datacenters deployments, cloud platforms allow you to easily provision what you need, when you need it. The good old YAGNI principle holds here as well.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this post, I will share some of the misconceptions that I usually get from our customers regarding Azure API Management (APIM) self-hosted gateway, during consultation sessions. First, let me start with a quick overview on Azure APIM main components and their functions. Azure APIM main components Azure Portal: The management plane to design, publish<\/p>\n","protected":false},"author":1,"featured_media":2472,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[37,1895],"tags":[38,51,1900],"class_list":["post-2412","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-api-management","category-azure-integration-services","tag-api-management","tag-azure","tag-self-hosted-gateway"],"_links":{"self":[{"href":"https:\/\/tointegrationandbeyond.com\/blogs\/index.php\/wp-json\/wp\/v2\/posts\/2412","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tointegrationandbeyond.com\/blogs\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tointegrationandbeyond.com\/blogs\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tointegrationandbeyond.com\/blogs\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tointegrationandbeyond.com\/blogs\/index.php\/wp-json\/wp\/v2\/comments?post=2412"}],"version-history":[{"count":5,"href":"https:\/\/tointegrationandbeyond.com\/blogs\/index.php\/wp-json\/wp\/v2\/posts\/2412\/revisions"}],"predecessor-version":[{"id":2804,"href":"https:\/\/tointegrationandbeyond.com\/blogs\/index.php\/wp-json\/wp\/v2\/posts\/2412\/revisions\/2804"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tointegrationandbeyond.com\/blogs\/index.php\/wp-json\/wp\/v2\/media\/2472"}],"wp:attachment":[{"href":"https:\/\/tointegrationandbeyond.com\/blogs\/index.php\/wp-json\/wp\/v2\/media?parent=2412"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tointegrationandbeyond.com\/blogs\/index.php\/wp-json\/wp\/v2\/categories?post=2412"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tointegrationandbeyond.com\/blogs\/index.php\/wp-json\/wp\/v2\/tags?post=2412"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}