<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Infrastructure on Wesley Camargo</title><link>http://www.wesleycamargo.com/categories/infrastructure/</link><description>Recent content in Infrastructure on Wesley Camargo</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Tue, 21 Nov 2023 18:45:11 +0100</lastBuildDate><atom:link href="http://www.wesleycamargo.com/categories/infrastructure/index.xml" rel="self" type="application/rss+xml"/><item><title>Getting Started with Azure: What are Azure Virtual Machines and how to create it using Terraform</title><link>http://www.wesleycamargo.com/p/getting-started-with-azure-what-are-azure-virtual-machines-and-how-to-create-it-using-terraform/</link><pubDate>Tue, 21 Nov 2023 18:45:11 +0100</pubDate><guid>http://www.wesleycamargo.com/p/getting-started-with-azure-what-are-azure-virtual-machines-and-how-to-create-it-using-terraform/</guid><description>&lt;img src="https://cdn-images-1.medium.com/max/800/0*SbgJGQvFOAmWJQfV" alt="Featured image of post Getting Started with Azure: What are Azure Virtual Machines and how to create it using Terraform" />&lt;h3 id="getting-started-with-azure-what-are-azure-virtual-machines-and-how-to-create-it-using-terraform">Getting Started with Azure: What are Azure Virtual Machines and how to create it using Terraform
&lt;/h3>&lt;p>Azure VMs are like your own computer on the cloud. You can choose between different Operational Systems, such as Linux and Windows, and they can be used for different goals, like hosting a website for example.&lt;/p>
&lt;p>&lt;img src="https://cdn-images-1.medium.com/max/800/0*SbgJGQvFOAmWJQfV"
loading="lazy"
alt="Image"
>
Photo by &lt;a class="link" href="https://unsplash.com/@imgix?utm_source=medium&amp;amp;utm_medium=referral" target="_blank" rel="noopener"
>imgix&lt;/a> on &lt;a class="link" href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral" target="_blank" rel="noopener"
>Unsplash&lt;/a>&lt;/p>
&lt;p>Virtual Machines are part of a category called Infrastructure as Code, and they are still relevant in many scenarios, even with the advent of Platform as Code, where you are in control of many aspects, such as security, identity and access, high availability, and others.&lt;/p>
&lt;h3 id="what-do-i-need-to-create-a-virtual-machine-onazure">What do I need to create a Virtual Machine on Azure?
&lt;/h3>&lt;p>To create the VM there are a few Azure resources that are necessary to be created before, as we can see in the image below:&lt;/p>
&lt;p>&lt;img src="http://www.wesleycamargo.com/img/getting-started-with-azure-what-are-azure-virtual-machines-and-how-to-create-it-using-terraform/1_B2QjgH9A_DVlS9HMakuKTA.png"
loading="lazy"
alt="Image"
>&lt;/p>
&lt;h4 id="resources-that-are-pre-requisites">Resources that are Pre-requisites
&lt;/h4>&lt;p>There are some resources that are not necessarily part of the same life cycle of your VM, and you might have already created them on your Azure environment. On the script that I am providing below, they are being created, but you might decide to use a resource that already exists.&lt;/p>
&lt;p>**Resource Group: **A resource group works similarly to a folder, where you can group the resources that have something in common. It can be resources of the same type, such as VMs, or the most recommended, resources that share the same life cycle.&lt;/p>
&lt;p>**Virtual Network: **In an Azure VNet, you are able to create a private space, where your resources can communicate securely. It works similarly to the network that you are connected to right now to read this post, but it sits on Azure.&lt;/p>
&lt;p>&lt;strong>Subnet:&lt;/strong> They are subdivisions of a Virtual Network, helping to keep organized and segmented by different types of resources, like Databases, Front and Backend applications.&lt;/p>
&lt;h4 id="resources-that-are-part-of-the-virtual-machine-lifecycle">Resources that are part of the Virtual Machine life cycle
&lt;/h4>&lt;p>**Disks: **Disks are used to store operating systems, applications, or data. Each VM created on Azure has at least one OS Disk, but it can have multiple.&lt;/p>
&lt;p>&lt;strong>Network Interface Card:&lt;/strong> Also known as NIC, a Network Interface Card is responsible for connecting the VM with the network that we saw earlier. Similar to disks, each VM must have at least one, but also multiple NICs are supported.&lt;/p>
&lt;p>&lt;strong>Public IP:&lt;/strong> A Public IP is the communication between the VM and the world. This resource is not mandatory, and in most cases inside a business context, it should be created very cautiously, to avoid any security risk. However, as it is a simple test and I don’t want to complicate it, we need the Public IP to be able to connect to our VM. It is connected to the Network Interface.&lt;/p>
&lt;h3 id="terraform-script">Terraform Script
&lt;/h3>&lt;h4 id="pre-requisites">Pre-requisites
&lt;/h4>&lt;p>Below is the section of Terraform that creates the pre-requisites. As I mentioned before, it is possible to use existing resources, however, you need to adapt the script to use them.&lt;/p>
&lt;p>In this script, we are creating the resource group, virtual network, and subnet.&lt;/p>
&lt;h4 id="virtual-machine">Virtual Machine
&lt;/h4>&lt;p>Finally, this is the script to create the VM resources. Here we create first a Public IP, the Network Interface Card, and associate the PIP on it, and a VM. Note that the Terraform VM resource already abstracts the disk internally. It’s also interesting to highlight that the VM associates the NIC created before, creating a dependency, which Terraform will identify and create in the correct order.&lt;/p>
&lt;p>&lt;strong>Complete Script&lt;/strong>&lt;/p>
&lt;p>Below is the complete script, including provider, variables, and outputs:&lt;/p>
&lt;h3 id="conclusion">Conclusion
&lt;/h3>&lt;p>Below it is the link to my GitHub repository where I am creating a library to have all references related to Terraform. I hope that this post despite being simple might be helpful! 
&lt;a class="link" href="https://github.com/wesleycamargo/terraform" target="_blank" rel="noopener"
>wesleycamargo/terraform (github.com)&lt;/a>&lt;/p>
&lt;p>&lt;img src="http://www.wesleycamargo.com/img/getting-started-with-azure-what-are-azure-virtual-machines-and-how-to-create-it-using-terraform/0_0rM_F_9XoS3sP5GW.png"
loading="lazy"
alt="Image"
>&lt;/p>
&lt;h4 id="-if-you-find-this-helpful-please-click-the-clap--button-below-a-few-times-to-show-your-support-for-the-author">👋 If you find this helpful, please click the clap 👏 button below a few times to show your support for the author 👇
&lt;/h4>&lt;h4 id="join-faun-developer-community--get-similar-stories-in-your-inbox-eachweekhttpfromfauntor8zxxd">🚀&lt;a class="link" href="http://from.faun.to/r/8zxxd" target="_blank" rel="noopener"
>Join FAUN Developer Community &amp;amp; Get Similar Stories in your Inbox Each Week&lt;/a>
&lt;/h4></description></item><item><title>From Terraform to Azure Bicep: What You Need to Know about syntax</title><link>http://www.wesleycamargo.com/p/from-terraform-to-azure-bicep-what-you-need-to-know-about-syntax/</link><pubDate>Fri, 17 Feb 2023 18:31:38 +0100</pubDate><guid>http://www.wesleycamargo.com/p/from-terraform-to-azure-bicep-what-you-need-to-know-about-syntax/</guid><description>&lt;img src="http://www.wesleycamargo.com/img/from-terraform-to-azure-bicep-what-you-need-to-know-about-syntax/1_TaDCxnnAcZb53Fi-ToztNg.jpeg" alt="Featured image of post From Terraform to Azure Bicep: What You Need to Know about syntax" />&lt;h3 id="from-terraform-to-azure-bicep-what-you-need-to-know-aboutsyntax">From Terraform to Azure Bicep: What You Need to Know about syntax
&lt;/h3>&lt;p>&lt;img src="http://www.wesleycamargo.com/img/from-terraform-to-azure-bicep-what-you-need-to-know-about-syntax/1_TaDCxnnAcZb53Fi-ToztNg.jpeg"
loading="lazy"
alt="Image"
>
Photo by Botond Czapp: &lt;a class="link" href="https://www.pexels.com/photo/birds-flying-on-blue-sky-7255793/" target="_blank" rel="noopener"
>https://www.pexels.com/photo/birds-flying-on-blue-sky-7255793/&lt;/a>&lt;/p>
&lt;p>Hey there Terraform experts! I am confident that you know the power of infrastructure as Code in managing and provisioning IT infrastructure and have been applying it with the famous HashiCorp tool. But have you heard about Azure Bicep, the newer Microsoft IaC language for managing Azure resources? If you’re curious about the differences between Terraform and Bicep, and how Bicep can help you better manage your Azure resources, you’ve come to the right place. Let’s dive in and explore the world of Infra as Code with Azure Bicep! In this first post, I’m going to break down the basic differences between Terraform and Bicep file structures. These infrastructure-as-code tools have their own unique syntax and components, so it’s important to know what sets them apart. By the end of this post, you’ll have a solid grasp of what makes them tick.&lt;/p>
&lt;h3 id="introducing-terraform-andbicep">Introducing Terraform and Bicep
&lt;/h3>&lt;p>Terraform and Azure Bicep are two popular Infra as Code (IaC) tools that allow developers and operations teams to manage and provision cloud infrastructure using development practices.&lt;/p>
&lt;p>Terraform is a tool developed by HashiCorp that supports multiple cloud platforms, including Azure, while Azure Bicep is a newer tool developed by Microsoft specifically for managing Azure resources. Both tools have their own syntax and language for defining Infrastructure as Code and offer benefits such as consistency, scalability, and version control. However, there are also some differences between the two, such as how they handle state management and the availability of community-built providers. In the following sessions, we’ll explore the similarities and differences between Terraform and Azure Bicep, and help you decide which tool is best for your infrastructure management needs.&lt;/p>
&lt;h3 id="language-andsyntax">Language and Syntax
&lt;/h3>&lt;p>Terraform and Bicep has a lot in common. Both use their own domain-specific languages, with a declarative approach, support modularization, and are designed to be human-friendly(I am looking at you, ARM Templates 🙃). Terraform uses HashiCorp Configuration Language, also known as HCL, developed by HashiCorp and has several providers, supporting not only Azure, but AWS, GCP, and even VMWare. Bicep is developed by Microsoft with the intention to abstract the usage of ARM Templates and was developed specifically for Azure, which gave a great integration.&lt;/p>
&lt;p>The structure of both languages is similar, within the same building blocks, with the main components being resources, inputs, and outputs, and as I said above, quite easy to read. Below we can see a comparison of the creation of an Azure Storage Account:&lt;/p>
&lt;p>&lt;img src="http://www.wesleycamargo.com/img/from-terraform-to-azure-bicep-what-you-need-to-know-about-syntax/1_StyddfWR0evZ6TjZ4MKRNQ.png"
loading="lazy"
alt="Image"
>
Image prepared by the author&lt;/p>
&lt;p>Now let’s analyze the main differences:&lt;/p>
&lt;h4 id="provider">Provider
&lt;/h4>&lt;p>The first and biggest difference that note is that in the Terraform example, we have a section called “provider”. As Terraform supports not only Azure but also other providers, it is required to declare the provider that we want to use.&lt;/p>
&lt;p>As Bicep is designed specifically for Azure, the provider statement is not required.&lt;/p>
&lt;h4 id="input">Input
&lt;/h4>&lt;p>Another difference is that the input parameters have different reserved words. In Terraform it’s called &lt;code>variable&lt;/code>, the default values are declared with a &lt;code>default&lt;/code> statement and its syntax require curly brackets.&lt;/p>
&lt;p>Bicep, in turn, declares the inputs by the reserved word &lt;code>param&lt;/code> , the attribution of a default value can be done with the equals sign and it’s not required any brackets. Bicep also has a &lt;code>variable&lt;/code> reserved world, but it’s used not for inputs, below we can see more about it.&lt;/p>
&lt;h4 id="local-variables">Local variables
&lt;/h4>&lt;p>Local variables in Terraform have a special section called &lt;code>locals&lt;/code>. All necessary variables must be declared in this section and must be accessed by the syntax &lt;code>local.&amp;lt;variable name&amp;gt;&lt;/code> and can be used to create combinations and complex operations.&lt;/p>
&lt;p>locals {
resource_group_name = &amp;ldquo;myTerraformResourceGroup&amp;rdquo;
location = &amp;ldquo;West Europe&amp;rdquo;
}On Bicep, it is not necessary to have a specific session, being possible to declare anywhere in the file (although is recommended to do in the beginning to make it more readable). It also makes the syntax a little simpler than in terraform &lt;code>var location = ‘westeurope’&lt;/code>&lt;/p>
&lt;h4 id="resources">Resources
&lt;/h4>&lt;p>Finally something in common! For both, Terraform and Bicep, the resource is declared by the reserved word… &lt;code>resource&lt;/code>! And there is more in common, in both cases, when declaring the resource you need to declare which resource is desired and you also need to create an alias to this resource, so it will be possible to access information from it, even in the case that you have several resources of the same type. The internal properties will be different depending on each resource type, but in general, you need to provide the resource name, SKU, location, and so on.&lt;/p>
&lt;p>Although the concepts are quite the same, the syntax is slightly different as we can see below:&lt;/p>
&lt;p>&lt;strong>Terraform resource:&lt;/strong>&lt;/p>
&lt;p>resource &amp;ldquo;azurerm_storage_account&amp;rdquo; &amp;ldquo;storage&amp;rdquo; {
name = var.storage_account_name
resource_group_name = local.resource_group_name
location = local.location
account_tier = &amp;ldquo;Standard&amp;rdquo;
account_replication_type = &amp;ldquo;LRS&amp;rdquo;
}&lt;strong>Bicep resource:&lt;/strong>&lt;/p>
&lt;p>&lt;code>resource storage &amp;amp;#x27;Microsoft.Storage/storageAccounts@2022-09-01&amp;amp;#x27; = { kind: &amp;amp;#x27;StorageV2&amp;amp;#x27; location: location name: storageAccountName sku: { name: &amp;amp;#x27;Standard_LRS&amp;amp;#x27; } }&lt;/code>n&lt;/p>
&lt;h4 id="output">Output
&lt;/h4>&lt;p>The outputs follow a similar logic as the inputs. Terraform requires curly brackets, Bicep no. In terraform, it is necessary to specify the resource type first, then the alias, and finally the property. It is also important to highlight that is not possible to assign a type to an output in Terraform.&lt;/p>
&lt;p>output &amp;ldquo;storage_account_name&amp;rdquo; {
value = azurerm_storage_account.storage.name
}Bicep is again, slightly simple. No brackets and you can reference by the alias directly, without having to declare the resource type. In Bicep is also possible to assign a type in the output, which is useful in some cases.&lt;/p>
&lt;p>&lt;code>output storageName string = storage.name&lt;/code>n&lt;/p>
&lt;h4 id="terraform-storage-accountexample">Terraform storage account example
&lt;/h4>&lt;h4 id="bicep-storage-accountexample">Bicep storage account example
&lt;/h4>&lt;h3 id="conclusion">Conclusion
&lt;/h3>&lt;p>In conclusion, while Terraform and Bicep share some similarities in their purpose and functionality, they have significant differences in syntax, which can affect the user experience and overall efficiency in deploying infrastructure as code. Understanding these syntax differences is crucial for developers to effectively utilize the benefits of each tool and to determine which one is the best fit for a particular project or organization.&lt;/p>
&lt;p>In the upcoming posts, we will dive deeper into other differences between both tools, exploring their impact on various aspects of infrastructure deployment and management, and offering practical tips and solutions to common challenges. Stay tuned to learn more about how to optimize your infrastructure as code with Terraform and Bicep!&lt;/p>
&lt;p>&lt;img src="http://www.wesleycamargo.com/img/from-terraform-to-azure-bicep-what-you-need-to-know-about-syntax/0_XC6gJ9HR_xbxqqSp.png"
loading="lazy"
alt="Image"
>&lt;/p>
&lt;h4 id="-if-you-find-this-helpful-please-click-the-clap--button-below-a-few-times-to-show-your-support-for-the-author">👋 If you find this helpful, please click the clap 👏 button below a few times to show your support for the author 👇
&lt;/h4>&lt;h4 id="join-faun-developer-community--get-similar-stories-in-your-inbox-eachweekhttpfromfauntor8zxxd">🚀&lt;a class="link" href="http://from.faun.to/r/8zxxd" target="_blank" rel="noopener"
>Join FAUN Developer Community &amp;amp; Get Similar Stories in your Inbox Each Week&lt;/a>
&lt;/h4></description></item><item><title>Creating Infrastructure as Code for Azure with Azure Bicep step by step</title><link>http://www.wesleycamargo.com/p/creating-infrastructure-as-code-for-azure-with-azure-bicep-step-by-step/</link><pubDate>Wed, 23 Mar 2022 10:54:57 +0100</pubDate><guid>http://www.wesleycamargo.com/p/creating-infrastructure-as-code-for-azure-with-azure-bicep-step-by-step/</guid><description>&lt;img src="http://www.wesleycamargo.com/img/creating-infrastructure-as-code-for-azure-with-azure-bicep-step-by-step/1_opFga-VoKoV_iJ_UdsHyIQ.jpeg" alt="Featured image of post Creating Infrastructure as Code for Azure with Azure Bicep step by step" />&lt;h3 id="creating-infrastructure-as-code-for-azure-with-azure-bicep-step-bystep">Creating Infrastructure as Code for Azure with Azure Bicep step by step
&lt;/h3>&lt;p>&lt;img src="http://www.wesleycamargo.com/img/creating-infrastructure-as-code-for-azure-with-azure-bicep-step-by-step/1_opFga-VoKoV_iJ_UdsHyIQ.jpeg"
loading="lazy"
alt="Image"
>
Photo by &lt;a class="link" href="https://unsplash.com/@golfarisa?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" target="_blank" rel="noopener"
>Arisa Chattasa&lt;/a> on &lt;a class="link" href="https://unsplash.com/s/photos/boxing?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" target="_blank" rel="noopener"
>Unsplash&lt;/a>&lt;/p>
&lt;p>One of the natural steps towards DevOps and Cloud Adoption is to create your Infrastructure using Code. For Azure, the most convenient language for this is Azure Bicep which abstracts several aspects of this complex process, and supports more resources available in Azure than any other tool, making it one of the most powerful Infrastructure as Code tools for Azure.&lt;/p>
&lt;h3 id="what-is-azurebicep">What is Azure Bicep?
&lt;/h3>&lt;p>According to &lt;a class="link" href="https://docs.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview?tabs=bicep" target="_blank" rel="noopener"
>Microsoft Documentation&lt;/a>, this is the definition of Bicep:&lt;/p>
&lt;blockquote>
&lt;p>Bicep is a domain-specific language (DSL) that uses declarative syntax to deploy Azure resources. In a Bicep file, you define the infrastructure you want to deploy to Azure, and then use that file throughout the development lifecycle to repeatedly deploy your infrastructure.&lt;/p>
&lt;/blockquote>
&lt;p>In summary, this is an abstraction over ARM templates which simplifies A LOT the development of Infrastructure as Code. Its syntax is much simpler and less verbose than ARM but still has all its capabilities.&lt;/p>
&lt;p>As bicep is a DSL, we can consider ARM as an Intermediate Language and we can “build” bicep into ARM to perform our deployments. A curiosity is that the name bicep is a play on words for ARM (Azure Resource Manager) 😄.&lt;/p>
&lt;p>&lt;img src="http://www.wesleycamargo.com/img/creating-infrastructure-as-code-for-azure-with-azure-bicep-step-by-step/0_Xj6hKE461XITJs6O.gif"
loading="lazy"
alt="Image"
>&lt;/p>
&lt;h3 id="how-to-create-an-azure-resource-group-with-azurebicep">How to create an Azure Resource Group with Azure Bicep?
&lt;/h3>&lt;p>Usually, one of the firsts resources on Azure that we need to create is a Resource Group, as it will group all other resources, and make it easier to administrate.&lt;/p>
&lt;p>Create an Azure Resource Group using Azure Bicep it is quite simple, you need just the name of the resource group and the location that it will be created. Additionally, it is necessary to define the &lt;code>*targeScope *&lt;/code>as a subscription, it will be explained in more detail below.&lt;/p>
&lt;p>It is possible to deploy it in different ways, using Azure PowerShell, Azure CLI, or even Azure API’s. In this example, we will use Azure CLI to execute the deployment.&lt;/p>
&lt;h3 id="how-to-execute-an-azure-resource-group-deployment-with-azure-bicep-and-azurecli">How to execute an Azure Resource Group deployment with Azure Bicep and Azure CLI?
&lt;/h3>&lt;p>On the latest versions of Azure CLI, there are different commands to run deployments against different scopes on Azure. To create Azure Resource Groups, it is necessary to use the *subscription *scope, which was also defined on the bicep template above.&lt;/p>
&lt;p>The command used is &lt;code>az deployment sub create&lt;/code> :&lt;/p>
&lt;p>After running the script, we can check the resource group with the command &lt;code>az group show --name rg-bicepdemo&lt;/code> :&lt;/p>
&lt;p>&lt;img src="http://www.wesleycamargo.com/img/creating-infrastructure-as-code-for-azure-with-azure-bicep-step-by-step/1_VqjeZS9nGltwhUhh5dnfKw.png"
loading="lazy"
alt="Image"
>
Image by author&lt;/p>
&lt;h3 id="how-to-create-an-azure-storage-account-with-azure-bicep-and-azurecli">How to create an Azure Storage Account with Azure Bicep and Azure CLI?
&lt;/h3>&lt;p>When we will create a “common” resource, like Storage Account, Resource Group scope must be used. This is the default behavior of bicep, so it is not necessary to specify like it was for Resource Group creation.&lt;/p>
&lt;p>To create resources on Resource Group scope, the Azure CLI command used must be &lt;code>az deployment group create&lt;/code> :&lt;/p>
&lt;p>To check the Storage Account creation run the command &lt;code>az storage account show --name stbicepdemo&lt;/code>&lt;/p>
&lt;p>&lt;img src="http://www.wesleycamargo.com/img/creating-infrastructure-as-code-for-azure-with-azure-bicep-step-by-step/1_cpJGnAWnd5Epc1NgkxxQ4A.png"
loading="lazy"
alt="Image"
>
Image by author&lt;/p>
&lt;p>As they are in different scopes, it is not possible to run both bicep files with one command, however, I prepared a PowerShell script to run them in sequence:&lt;/p>
&lt;h3 id="conclusion">Conclusion
&lt;/h3>&lt;p>Azure Bicep is one of the most promising Infra as Code tools for Azure, and it is quite simple to create new templates for it. Its syntax is very simple and easy to learn, so why not give it a chance? :)&lt;/p>
&lt;p>See you in the next post!
[&lt;/p>
&lt;p>&lt;img src="http://www.wesleycamargo.com/img/creating-infrastructure-as-code-for-azure-with-azure-bicep-step-by-step/1_BCiLLad3dvZLwBa-B5cAVQ.png"
loading="lazy"
alt="Image"
>
](&lt;a class="link" href="https://faun.to/bP1m5" target="_blank" rel="noopener"
>https://faun.to/bP1m5&lt;/a>)&lt;/p>
&lt;p>Join FAUN: &lt;a class="link" href="https://faun.to/i9Pt9" target="_blank" rel="noopener"
>&lt;strong>Website&lt;/strong>&lt;/a>** &lt;strong>💻&lt;/strong>|&lt;strong>&lt;a class="link" href="https://faun.dev/podcast" target="_blank" rel="noopener"
>&lt;strong>Podcast&lt;/strong>&lt;/a>&lt;/strong> &lt;strong>🎙️&lt;/strong>|&lt;strong>&lt;a class="link" href="https://twitter.com/joinfaun" target="_blank" rel="noopener"
>&lt;strong>Twitter&lt;/strong>&lt;/a>&lt;/strong> &lt;strong>🐦&lt;/strong>|&lt;strong>&lt;a class="link" href="https://www.facebook.com/faun.dev/" target="_blank" rel="noopener"
>&lt;strong>Facebook&lt;/strong>&lt;/a>&lt;/strong> &lt;strong>👥&lt;/strong>|&lt;strong>&lt;a class="link" href="https://instagram.com/fauncommunity/" target="_blank" rel="noopener"
>&lt;strong>Instagram&lt;/strong>&lt;/a>&lt;/strong> &lt;strong>📷|&lt;a class="link" href="https://www.facebook.com/groups/364904580892967/" target="_blank" rel="noopener"
>&lt;strong>Facebook Group&lt;/strong>&lt;/a>&lt;/strong> &lt;strong>🗣️&lt;/strong>|&lt;strong>&lt;a class="link" href="https://www.linkedin.com/company/faundev" target="_blank" rel="noopener"
>&lt;strong>Linkedin Group&lt;/strong>&lt;/a>&lt;/strong> &lt;strong>💬&lt;/strong>|** &lt;a class="link" href="https://faun.dev/chat" target="_blank" rel="noopener"
>&lt;strong>Slack&lt;/strong>&lt;/a> 📱&lt;strong>|&lt;/strong>&lt;a class="link" href="https://thechief.io" target="_blank" rel="noopener"
>&lt;strong>Cloud Native&lt;/strong> &lt;strong>News&lt;/strong>&lt;/a>** &lt;strong>📰&lt;/strong>|&lt;strong>&lt;a class="link" href="https://linktr.ee/faun.dev/" target="_blank" rel="noopener"
>&lt;strong>More&lt;/strong>&lt;/a>&lt;/strong>.**&lt;/p>
&lt;p>&lt;strong>If this post was helpful, please click the clap 👏 button below a few times to show your support for the author 👇&lt;/strong>&lt;/p></description></item></channel></rss>