<?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: Roy Rebello</title>
    <description>The latest articles on DEV Community by Roy Rebello (@royrebello).</description>
    <link>https://dev.to/royrebello</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%2F639828%2F0fb9755d-734d-4980-bf5f-68d2ecb0d10a.jpg</url>
      <title>DEV Community: Roy Rebello</title>
      <link>https://dev.to/royrebello</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/royrebello"/>
    <language>en</language>
    <item>
      <title>Journey to Azure AI Fundamentals Certification</title>
      <dc:creator>Roy Rebello</dc:creator>
      <pubDate>Tue, 06 Feb 2024 18:15:10 +0000</pubDate>
      <link>https://dev.to/royrebello/journey-to-azure-ai-fundamentals-certification-662</link>
      <guid>https://dev.to/royrebello/journey-to-azure-ai-fundamentals-certification-662</guid>
      <description>&lt;p&gt;Embarking on the path to earning the AI-900: Microsoft Azure AI Fundamentals certification was a journey of discovery, challenge, and ultimately, achievement. As cloud computing continues to evolve, the importance of AI and machine learning in today's technology landscape cannot be overstated. The AI-900 certification is a testament to one's understanding of these pivotal technologies, especially within the Microsoft Azure ecosystem. This blog post outlines my journey, the preparation strategies I employed, and the resources that guided me to success.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the AI-900 Exam
&lt;/h2&gt;

&lt;p&gt;The AI-900 exam is designed to validate foundational knowledge in artificial intelligence (AI) and machine learning (ML), focusing on the capabilities of Microsoft Azure services. It covers a broad spectrum of topics, including AI workloads and considerations, machine learning principles, computer vision, and natural language processing workloads on Azure​​​​. The exam format includes a variety of question types, such as multiple-choice, drag-and-drop, and active screen questions, over a span of 40-60 questions​​.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Preparation Strategy
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Diving into Official Study Materials&lt;br&gt;
My journey began with the official Microsoft Learning Path for Azure AI Fundamentals. These modules provided a comprehensive overview of AI concepts, machine learning, computer vision, and NLP, laying a solid foundation for further study​​.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Leveraging Online Courses and Tutorials&lt;br&gt;
To deepen my understanding, I turned to online platforms offering structured learning paths. Cloud Academy's AI-900 Exam Preparation learning path was particularly beneficial, combining instructional courses with hands-on labs and an exam prep guide that covered all necessary topics comprehensively​​.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Practice, Practice, Practice&lt;br&gt;
Practice tests were an integral part of my preparation, helping me familiarize myself with the exam format and question types. Platforms like Whizlabs offered a plethora of practice questions and exams that were instrumental in my success​​.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Crafting a Study Plan
&lt;/h2&gt;

&lt;p&gt;I devised a detailed study plan, allocating specific times for studying theoretical concepts, engaging in hands-on practice, and taking practice tests. This balanced approach ensured I was not only prepared for the types of questions I would encounter but also understood the practical application of the concepts within Azure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Personal Tips for Success
&lt;/h2&gt;

&lt;p&gt;One of the biggest challenges was maintaining motivation and efficiently managing study time. Setting small, achievable goals and rewarding myself upon completing them helped keep me motivated. &lt;/p&gt;

&lt;h2&gt;
  
  
  Exam Day and Reflections
&lt;/h2&gt;

&lt;p&gt;On exam day, time management and a calm mindset were key. I carefully read each question and planned my time accordingly. After the exam, I reflected on the journey, feeling a sense of accomplishment (838 /1000) and pondering the next steps in my professional development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Achieving the AI-900: Microsoft Azure AI Fundamentals certification was a fulfilling endeavor, enhancing my understanding of AI and ML within the Azure ecosystem. For those embarking on this journey, remember that determination, a solid study plan, and the right resources are your best allies. Whether you're a beginner or have some experience, this certification is a valuable step in your career in technology.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2v8sglkua0u5sitcu5rd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2v8sglkua0u5sitcu5rd.png" alt="Image description" width="682" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope my journey inspires and guides others looking to achieve their Azure AI Fundamentals certification. The path may be challenging, but with the right preparation and mindset, success is within reach.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>ai</category>
      <category>certification</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Certified Enterprise Chaos Engineer</title>
      <dc:creator>Roy Rebello</dc:creator>
      <pubDate>Tue, 06 Feb 2024 17:41:51 +0000</pubDate>
      <link>https://dev.to/royrebello/certified-enterprise-chaos-engineer-2lb8</link>
      <guid>https://dev.to/royrebello/certified-enterprise-chaos-engineer-2lb8</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;In a world where technology is intricately woven into the fabric of every business, the robustness of digital infrastructure is paramount. I recently embarked on a transformative journey, culminating in achieving the Gremlin Certified Enterprise Chaos Engineering Certification. This milestone is not merely a personal triumph but a beacon of the vital role that Chaos Engineering plays in the technological realm today.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding Chaos Engineering:
&lt;/h2&gt;

&lt;p&gt;Chaos Engineering is akin to a vaccine for complex software systems. It intentionally introduces disruptions to expose weaknesses in a controlled and monitored environment. The core principle is to anticipate and prepare for chaos rather than react to it, thereby ensuring that when the inevitable happens, the system remains unfazed and reliable.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Certification Journey:
&lt;/h2&gt;

&lt;p&gt;Gremlin's certification program offered an immersive experience into the world of Chaos Engineering. It provided a blend of theoretical knowledge and practical applications, covering the principles of controlled experimentation on software systems to build confidence in their capability to withstand turbulent conditions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Importance of Resilience:
&lt;/h2&gt;

&lt;p&gt;As digital services become more sophisticated, they also become more vulnerable to a plethora of disruptions, from server outages to unexpected traffic surges. This vulnerability can have a domino effect, crippling services, eroding customer trust, and incurring financial losses. Chaos Engineering prepares systems to be resilient, to self-heal, and to continue operating, making it an indispensable strategy for any organization that relies on digital services.&lt;/p&gt;

&lt;h2&gt;
  
  
  Applying the Knowledge:
&lt;/h2&gt;

&lt;p&gt;Armed with the certification, I am now poised to apply these principles to real-world systems. The certification has empowered me with the skills to identify potential points of failure and to design systems that can adapt and recover swiftly from disruptions. This proactive approach to system reliability is what will set apart the digital solutions of the future.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;My journey to becoming a Gremlin Certified Enterprise Chaos Engineer has been enlightening. It has reinforced my belief in the necessity of adopting proactive measures to safeguard our digital infrastructure. As I integrate this knowledge into my professional endeavors, I invite fellow tech enthusiasts and industry professionals to connect and explore the vast potential of Chaos Engineering. Together, we can steer our digital future towards a horizon where reliability is not just an afterthought, but a foundational component.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6ogWccaO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://api.accredible.com/v1/frontend/credential_website_embed_image/certificate/93341642" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6ogWccaO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://api.accredible.com/v1/frontend/credential_website_embed_image/certificate/93341642" alt="Certified Enterprise Chaos Engineer Certificate" width="600" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  ChaosEngineering #GremlinCertified #Resilience #DigitalInfrastructure #sre #chaos
&lt;/h1&gt;

</description>
      <category>resiliance</category>
      <category>chaos</category>
      <category>sre</category>
    </item>
    <item>
      <title>ChatGPT with Langchain: An Overview</title>
      <dc:creator>Roy Rebello</dc:creator>
      <pubDate>Wed, 26 Apr 2023 03:33:58 +0000</pubDate>
      <link>https://dev.to/royrebello/chatgpt-with-langchain-an-overview-3ppg</link>
      <guid>https://dev.to/royrebello/chatgpt-with-langchain-an-overview-3ppg</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine a world where AI-driven technologies enable us to communicate more effectively, analyze enormous amounts of textual data, and make informed decisions in just seconds. A world where chatbots comprehend our intentions and respond with human-like clarity. This world is no longer a far-off dream, but an approaching reality, due to the remarkable advancements in AI technologies such as ChatGPT and LangChain. In this article, we will dive into the groundbreaking innovations of ChatGPT and LangChain, examine their potential applications, and uncover how they are transforming the AI landscape.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding ChatGPT and 🦜🔗LangChain&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ChatGPT&lt;/p&gt;

&lt;p&gt;ChatGPT is a cutting-edge language model developed by OpenAI, based on the GPT-4 architecture. It harnesses the power of advanced machine learning algorithms to generate human-like responses in a wide range of applications, from chatbots to content generation. By understanding context and maintaining coherence, ChatGPT enables seamless, intelligent conversations between humans and AI.&lt;/p&gt;

&lt;p&gt;🦜🔗LangChain&lt;/p&gt;

&lt;p&gt;LangChain is a powerful Python library designed for natural language processing (NLP). It enables developers to convert text into embeddings, which are vector representations of textual data. These embeddings can be used for advanced analysis and manipulation of text data, making it possible to perform tasks like text classification, sentiment analysis, and document similarity with ease.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Synergy of ChatGPT and 🦜🔗LangChain&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When combined, ChatGPT and LangChain form an incredibly powerful force in the AI space. ChatGPT's conversational capabilities, along with LangChain's language understanding expertise, open up new possibilities for AI-driven solutions across various industries. The synergy of these technologies enables the creation of applications that not only comprehend human language but can also intelligently respond to queries and process vast amounts of textual data in realtime.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Applications of ChatGPT and 🦜🔗LangChain&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1)Intelligent Chatbots and Virtual Assistants&lt;/p&gt;

&lt;p&gt;The combination of ChatGPT and LangChain allows for the development of intelligent chatbots and virtual assistants capable of understanding context, maintaining coherence, and generating human-like responses. These AI-powered conversational agents can be used in customer support, sales, and various other business domains, improving user experience and reducing the need for human intervention.&lt;/p&gt;

&lt;p&gt;2)Content Generation and Summarization&lt;/p&gt;

&lt;p&gt;ChatGPT can be used to generate content, such as articles, blog posts, and social media updates, with impressive coherence and creativity. Meanwhile, LangChain's text analysis capabilities can be employed to summarize large documents or extract key information from a text, enabling users to access the most relevant data without sifting through extensive materials.&lt;/p&gt;

&lt;p&gt;3)Sentiment Analysis and Opinion Mining&lt;/p&gt;

&lt;p&gt;Using LangChain's embeddings, developers can perform sentiment analysis to gauge the emotions and opinions expressed in textual data. This information can be invaluable to businesses and organizations looking to understand customer feedback, monitor brand reputation, or analyze public opinions on various topics.&lt;/p&gt;

&lt;p&gt;4)Language Translation and Multilingual Support&lt;/p&gt;

&lt;p&gt;ChatGPT and LangChain can be used together to build applications that support multiple languages. ChatGPT can generate translations, while LangChain can analyze and process text data in various languages, enabling seamless communication and information exchange across linguistic barriers.&lt;/p&gt;

&lt;p&gt;5)Personalized Recommendations&lt;/p&gt;

&lt;p&gt;By analyzing user-generated text data, such as product reviews or social media posts, LangChain can help create personalized recommendations based on user preferences and opinions. ChatGPT can then be used to generate user-friendly, engaging content to communicate these recommendations effectively.&lt;/p&gt;

&lt;p&gt;6)Code Analysis and Documentation&lt;/p&gt;

&lt;p&gt;Developers can harness the power of ChatGPT and LangChain to analyze codebases, identify patterns, and generate documentation. This can improve code understanding, enable faster onboarding of new team members, and streamline the development process. Additionally, AI-driven code review tools can be built to identify potential issues, suggest improvements, and ensure adherence to best practices.&lt;/p&gt;

&lt;p&gt;7)E-learning and Tutoring Systems&lt;/p&gt;

&lt;p&gt;ChatGPT and LangChain can revolutionize e-learning and tutoring systems by offering personalized, AI-driven educational experiences. These technologies can be used to develop interactive learning platforms that provide instant feedback, answer questions, and adapt content based on individual learning styles and progress.&lt;/p&gt;

&lt;p&gt;8)Natural Language Interface for Software Applications&lt;/p&gt;

&lt;p&gt;Developers can leverage ChatGPT and LangChain to create natural language interfaces for software applications, allowing users to interact with complex systems using simple, human-like language. This can make software more accessible and user-friendly, particularly for non-technical users or those with limited expertise in a specific domain.&lt;/p&gt;

&lt;p&gt;9)Social Media Analysis and Engagement&lt;/p&gt;

&lt;p&gt;These technologies can be used to analyze social media content, identify trends, and gauge public sentiment. Businesses and organizations can then use ChatGPT to craft engaging, relevant content that resonates with their target audience, improving brand visibility and user engagement.&lt;/p&gt;

&lt;p&gt;10)Creative Writing and Storytelling&lt;/p&gt;

&lt;p&gt;ChatGPT's ability to generate human-like, coherent text can be harnessed for creative writing and storytelling. Writers can use ChatGPT as a collaborative tool to generate ideas, develop storylines, and even create entire narratives. LangChain can be employed to analyze text for style, tone, and structure, offering insights and suggestions for improvement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The remarkable advancements in AI technologies, such as ChatGPT and LangChain, have the potential to transform the way we communicate, analyze data, and make decisions. By combining the strengths of these two groundbreaking innovations, we can create a future where AI not only enhances our daily lives but also empowers us to achieve more. As ChatGPT and LangChain continue to evolve and improve, we can anticipate even more incredible applications and use cases to emerge. The AI revolution is well underway, and the synergy between ChatGPT and LangChain is poised to be a driving force in shaping the future of conversational AI and natural language processing. Now is the time to embrace these cutting-edge technologies and unlock their full potential.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>gpt3</category>
      <category>langchain</category>
    </item>
    <item>
      <title>Spot VM in Google Cloud</title>
      <dc:creator>Roy Rebello</dc:creator>
      <pubDate>Thu, 14 Oct 2021 04:12:13 +0000</pubDate>
      <link>https://dev.to/royrebello/spot-vm-in-google-cloud-1m3m</link>
      <guid>https://dev.to/royrebello/spot-vm-in-google-cloud-1m3m</guid>
      <description>&lt;h2&gt;
  
  
  What are Spot VMs?
&lt;/h2&gt;

&lt;p&gt;Spot VMs are virtual machine (VM) instances with the spot provisioning model. Spot VMs are available at much lower price—a 60-91% discount—compared to the price of standard VMs. However, Compute Engine might preempt Spot VMs if it needs to reclaim those resources for other tasks. At this uncertain preemption time, Compute Engine either stops (default) or deletes your Spot VMs depending on your specified termination action for each VM. &lt;strong&gt;Spot VMs are excess Compute Engine capacity, so their availability varies with usage. Spot VMs do not have a minimum or maximum runtime.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your workloads are fault-tolerant and can withstand possible VM preemption, Spot VMs can reduce your Compute Engine costs significantly. For example, batch processing jobs can run on Spot VMs. If some of those VMs stop during processing, the job slows but does not completely stop. Spot VMs complete your batch processing tasks without placing additional load on your existing VMs and without requiring you to pay full price for additional standard VMs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Spot VMs limitations
&lt;/h2&gt;

&lt;p&gt;Spot VMs function like standard VMs but have the following limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compute Engine might stop Spot VMs at any time due to system events. The probability that Compute Engine stops Spot VMs for a system event is generally low, but might vary from day to day and from zone to zone depending on current conditions.&lt;/li&gt;
&lt;li&gt;Spot VMs are finite Compute Engine resources, so they might not always be available.&lt;/li&gt;
&lt;li&gt;Spot VMs can't use live migrate to become standard VMs while they are running or be set to automatically restart when there is a maintenance event.&lt;/li&gt;
&lt;li&gt;Due to the preceding limitations, Spot VMs are not covered by any Service Level Agreement and are excluded from the Compute Engine SLA.&lt;/li&gt;
&lt;li&gt;The Google Cloud Free Tier credits for Compute Engine do not apply to Spot VMs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to create a Spot VM in Google Cloud ?
&lt;/h2&gt;

&lt;p&gt;To create a VM from the gcloud tool, use the *&lt;em&gt;gcloud beta compute instances create *&lt;/em&gt; command. To create Spot VMs, you must include the --provisioning-model=SPOT flag. Optionally, you can also specify a termination action for Spot VMs by also including the --instance-termination-action flag.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud beta compute instances create my-spot-vm \
    --provisioning-model=SPOT \
    --instance-termination-action=DELETE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For instance-termination-action , you can specify which action to take when Compute Engine preempts the VM, either STOP (default behavior) or DELETE.&lt;/p&gt;

&lt;p&gt;Like any other VM, Spot VMs start upon creation. Likewise, if Spot VMs are stopped, you can restart the VMs to resume the RUNNING state. You can stop and restart preempted Spot VMs as many times as you would like, as long as there is capacity. For more information, see VM instance life cycle.&lt;/p&gt;

&lt;p&gt;If Compute Engine stops one or more Spot VMs in an autoscaling managed instance group (MIG) or Google Kubernetes Engine (GKE) cluster, the group restarts the VMs when the resources become available again.&lt;/p&gt;

&lt;h3&gt;
  
  
  Identifying Spot VMs
&lt;/h3&gt;

&lt;p&gt;To describe a VM from the gcloud tool, use the &lt;em&gt;gcloud beta compute instances describe&lt;/em&gt; command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud beta compute instances describe my-spot-vm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output for describing Spot VMs includes the provisioningModel: spot field, similar to the following.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;...
scheduling:
  ...
  provisioningModel: spot
  instanceTerminationAction: TERMINATION_ACTION
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;where TERMINATION_ACTION indicates which action to take when Compute Engine preempts the VM, either STOP or DELETE. If the instanceTerminationAction field is missing, the default behavior is STOP.&lt;/p&gt;

&lt;h3&gt;
  
  
  Detect preemption of Spot VMs
&lt;/h3&gt;

&lt;p&gt;Determine if Spot VMs were preempted by Compute Engine using the gcloud command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud compute operations list \
    --filter="operationType=compute.instances.preempted"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Few things to consider while using Spot VMs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pick smaller machine shapes.&lt;/strong&gt; Resources for Spot VMs come out of excess and backup Google Cloud capacity. It's often easier to get lots of capacity for Spot VMs with smaller machine types than larger ones. You might also get more spare capacity by using a custom machine type that is in between the predefined types. For example, there's likely more capacity for a custom machine type with 48 vCPUs than there are n1-standard-64s.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run large clusters of Spot VMs during off peak times.&lt;/strong&gt; The load on Google Cloud data centers varies with location and time of day, but generally lowest on nights and weekends. As such, nights and weekends are the best times to run large clusters of Spot VMs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Design your applications to be fault and preemption tolerant.&lt;/strong&gt; It's important to be prepared for the fact that there are changes in preemption patterns at different points in time. For example, if a zone suffers a partial outage, large numbers of Spot VMs could be preempted to make room for standard VMs that need to be moved as part of the recovery. In that small window of time, the preemption rate would look very different than on any other day. If your application assumes that preemptions are always done in small groups, you might not be prepared for such an event. You can test your application's behavior under a preemption event by stopping the VM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retry creating Spot VMs that have been preempted.&lt;/strong&gt; If your Spot VMs have been preempted, try creating new Spot VMs once or twice before falling back to standard VMs. Depending on your requirements, it might be a good idea to combine standard VMs and Spot VMs in your clusters to ensure that work proceeds at an adequate pace.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use shutdown scripts.&lt;/strong&gt; Manage shutdown and preemption notices with a shutdown script that can save a job's progress so that it can pick up where it left off, rather than start over from scratch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These articles are fueled by coffee. So if you enjoy my work and found it useful, consider buying me a coffee! I would really appreciate it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/royrebello" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.buymeacoffee.com%2Fbuttons%2Fv2%2Fdefault-yellow.png" alt="Buy Me A Coffee"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for taking the time to read this post. If you've found this useful, please give it some likes, share and comment.&lt;/p&gt;

</description>
      <category>googlecloud</category>
      <category>cloudskills</category>
      <category>tutorial</category>
      <category>gcp</category>
    </item>
    <item>
      <title>Creating a route based Cloud VPN in GCP</title>
      <dc:creator>Roy Rebello</dc:creator>
      <pubDate>Sun, 12 Sep 2021 15:35:41 +0000</pubDate>
      <link>https://dev.to/royrebello/creating-a-route-based-cloud-vpn-in-gcp-3kac</link>
      <guid>https://dev.to/royrebello/creating-a-route-based-cloud-vpn-in-gcp-3kac</guid>
      <description>&lt;p&gt;Hello everyone. In this blog post we are going to look at the &lt;strong&gt;Google Cloud VPN&lt;/strong&gt; offering and also learn how to setup a classic VPN to connect two Compute instances setup in different VPC networks.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Cloud VPN ?
&lt;/h2&gt;

&lt;p&gt;Cloud VPN securely extends your peer network to Google's network through an IPsec VPN tunnel. Traffic is encrypted and travels between the two networks over the public internet. Cloud VPN is useful for low-volume data connections. You can also connect two instances of Cloud VPN to each other.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of Cloud VPN
&lt;/h2&gt;

&lt;p&gt;Google Cloud offers two types of Cloud VPN gateways: HA VPN and Classic VPN. However, Classic VPN is deprecating certain functionality on October 31, 2021&lt;/p&gt;

&lt;h3&gt;
  
  
  HA VPN
&lt;/h3&gt;

&lt;p&gt;HA VPN is a high-availability (HA) Cloud VPN solution that lets you securely connect your on-premises network to your VPC network through an IPsec VPN connection in a single region. HA VPN provides an SLA of 99.99% service availability.&lt;/p&gt;

&lt;p&gt;When you create an HA VPN gateway, Google Cloud automatically chooses two external IP addresses, one for each of its fixed number of two interfaces. Each IP address is automatically chosen from a unique address pool to support high availability. Each of the HA VPN gateway interfaces supports multiple tunnels. &lt;/p&gt;

&lt;h3&gt;
  
  
  Classic VPN
&lt;/h3&gt;

&lt;p&gt;Classic VPN gateways have a single interface, a single external IP address, and support tunnels that use dynamic (BGP) or static routing (policy-based or route-based). They provide an SLA of 99.9% service availability&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting up a Classic VPN
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Let us implement the below scenario
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631452656379%2Ft19LZingO.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631452656379%2Ft19LZingO.png" alt="classic_vpn_gcp_v1.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I will be using gcloud commands to create the infrastructure as shown above.&lt;/p&gt;

&lt;h4&gt;
  
  
  Create first GCP project
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud projects create gcp-project-12s1                                                    
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Create second GCP project
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud projects create gcp-project-12s2                                                
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Link both projects to an active billing account.
&lt;/h4&gt;

&lt;p&gt;To find out your active billing account , use this command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud beta billing accounts list --filter=open=true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Link the billing account to newly created projects&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud beta billing projects link gcp-project-12s1 --billing-account=0X0X0X-0X0X0X-0X0X0X

gcloud beta billing projects link gcp-project-12s2 --billing-account=0X0X0X-0X0X0X-0X0X0X

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Create a VPC network in first GCP project with a subnet 10.5.1.0/24 in us-central1
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud compute networks create vpc-network-1 --project=gcp-project-12s1 --subnet-mode=custom --mtu=1460 --bgp-routing-mode=regional

gcloud compute networks subnets create subnet-a --project=gcp-project-12s1 --range=10.5.1.0/24 --network=vpc-network-1 --region=us-central1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Create a VPC network in second GCP project with a subnet 10.6.1.0/24 in europe-central2
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud compute networks create vpc-network-2 --project=gcp-project-12s2 --subnet-mode=custom --mtu=1460 --bgp-routing-mode=regional

gcloud compute networks subnets create subnet-b --project=gcp-project-12s2 --range=10.6.1.0/24 --network=vpc-network-2 --region=europe-central2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Create basic firewall rules
&lt;/h4&gt;

&lt;p&gt;We will create firewall rules in both VPC for ICMP and SSH protocol to allow incoming traffic.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud compute firewall-rules create network-1-allow-icmp --direction=INGRESS --priority=1000 --network=vpc-network-1 --action=ALLOW --rules=icmp --source-ranges=0.0.0.0/0 --project=gcp-project-12s1

gcloud compute firewall-rules create network-1-allow-ssh --direction=INGRESS --priority=1000 --network=vpc-network-1 --action=ALLOW --rules=tcp:22 --source-ranges=0.0.0.0/0 --project=gcp-project-12s1

gcloud compute firewall-rules create network-2-allow-icmp --direction=INGRESS --priority=1000 --network=vpc-network-2 --action=ALLOW --rules=icmp --source-ranges=0.0.0.0/0 --project=gcp-project-12s2

gcloud compute firewall-rules create network-2-allow-ssh --direction=INGRESS --priority=1000 --network=vpc-network-2 --action=ALLOW --rules=tcp:22 --source-ranges=0.0.0.0/0 --project=gcp-project-12s2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Create compute instances
&lt;/h4&gt;

&lt;p&gt;Create VM server-1 in subnet-a&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud beta compute instances create server-1 --zone=us-central1-a --machine-type=e2-micro --subnet=subnet-a --network-tier=PREMIUM --maintenance-policy=MIGRATE --image=debian-10-buster-v20210817 --image-project=debian-cloud --boot-disk-size=10GB --boot-disk-type=pd-balanced --boot-disk-device-name=server-1 --project=gcp-project-12s1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create VM server-2 in subnet-b&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud beta compute instances create server-2 --zone=europe-central2-a --machine-type=e2-micro --subnet=subnet-b --network-tier=PREMIUM --maintenance-policy=MIGRATE --image=debian-10-buster-v20210817 --image-project=debian-cloud --boot-disk-size=10GB --boot-disk-type=pd-balanced --boot-disk-device-name=server-2 --project=gcp-project-12s2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Login to Google Cloud console and you should see the VM's up and running with a internal IP assigned to it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631449555344%2FRqBkqO5Rx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631449555344%2FRqBkqO5Rx.png" alt="Screenshot 2021-09-12 at 5.54.16 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631449568815%2FwtxshRTgH.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631449568815%2FwtxshRTgH.png" alt="Screenshot 2021-09-12 at 5.54.46 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we will attempt to do a ping test from server-1 to server-2 and vice versa.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631450193974%2FXLjMu2e-9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631450193974%2FXLjMu2e-9.png" alt="Screenshot 2021-09-12 at 5.59.52 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631450206475%2F6NlIenfaA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631450206475%2F6NlIenfaA.png" alt="Screenshot 2021-09-12 at 6.05.53 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see the results above we see 100% data packet loss because both the VPC networks cannot communicate with each other.&lt;/p&gt;

&lt;p&gt;In order to make them communicate with each other we would need a static IP address which will be binded to a VPN network on both sides.&lt;/p&gt;

&lt;p&gt;So lets create a static IP address for both the VPC networks&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcloud compute addresses create vpn-1-static-ip --project=gcp-project-12s1 --region=us-central1

gcloud compute addresses create vpn-2-static-ip --project=gcp-project-12s2 --region=europe-central2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631450649118%2FhZosRnVDQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631450649118%2FhZosRnVDQ.png" alt="Screenshot 2021-09-12 at 6.13.11 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631450658676%2F8E9WYLDcy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631450658676%2F8E9WYLDcy.png" alt="Screenshot 2021-09-12 at 6.13.41 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The static IP's are now created but not in use. &lt;/p&gt;

&lt;p&gt;So now lets create a VPN connection and a VPN tunnel for vpc-network-1&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Creating a classic VPN
gcloud compute target-vpn-gateways create vpn-1 --project=gcp-project-12s1 --region=us-central1 --network=vpc-network-1

// Creating the forwarding rules
gcloud compute forwarding-rules create vpn-1-rule-esp --project=gcp-project-12s1 --region=us-central1 --address=104.198.144.53 --ip-protocol=ESP --target-vpn-gateway=vpn-1

gcloud compute forwarding-rules create vpn-1-rule-udp500 --project=gcp-project-12s1 --region=us-central1 --address=35.225.21.155 --ip-protocol=UDP --ports=500 --target-vpn-gateway=vpn-1

gcloud compute forwarding-rules create vpn-1-rule-udp4500 --project=gcp-project-12s1 --region=us-central1 --address=35.225.21.155 --ip-protocol=UDP --ports=4500 --target-vpn-gateway=vpn-1

// Creating a VPN tunnel to destination IP 34.118.8.129 
gcloud compute vpn-tunnels create tunnel1to2 --project=gcp-project-12s1 --region=us-central1 --peer-address=34.118.8.129 --shared-secret=gcprocks --ike-version=2 --local-traffic-selector=0.0.0.0/0 --remote-traffic-selector=0.0.0.0/0 --target-vpn-gateway=vpn-1

// Creating a route to route traffic from VM server-1 to VM server-2 via VPN tunnel
gcloud compute routes create tunnel1to2-route-1 --project=gcp-project-12s1 --network=vpc-network-1 --priority=1000 --destination-range=10.6.1.0/24 --next-hop-vpn-tunnel=tunnel1to2 --next-hop-vpn-tunnel-region=us-central1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Similarly lets create a VPN connection and a VPN tunnel for vpc-network-2&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Creating a classic VPN
gcloud compute target-vpn-gateways create vpn-2 --project=gcp-project-12s2 --region=europe-central2 --network=vpc-network-2

// Creating the forwarding rules
gcloud compute forwarding-rules create vpn-2-rule-esp --project=gcp-project-12s2 --region=europe-central2 --address=34.118.8.129 --ip-protocol=ESP --target-vpn-gateway=vpn-2

gcloud compute forwarding-rules create vpn-2-rule-udp500 --project=gcp-project-12s2 --region=europe-central2 --address=34.118.8.129  --ip-protocol=UDP --ports=500 --target-vpn-gateway=vpn-2

gcloud compute forwarding-rules create vpn-2-rule-udp4500 --project=gcp-project-12s2 --region=europe-central2 --address=34.118.8.129 --ip-protocol=UDP --ports=4500 --target-vpn-gateway=vpn-2

// Creating a VPN tunnel to destination IP 35.225.21.155 
gcloud compute vpn-tunnels create tunnel2to1 --project=gcp-project-12s2 --region=europe-central2 --peer-address=35.225.21.155 --shared-secret=gcprocks --ike-version=2 --local-traffic-selector=0.0.0.0/0 --remote-traffic-selector=0.0.0.0/0 --target-vpn-gateway=vpn-2

// Creating a route to route traffic from VM server-2 to VM server-1 via VPN tunnel
gcloud compute routes create tunnel2to1-route-1 —project=gcp-project-12s2 --network=vpc-network-2 --priority=1000 --destination-range=10.5.1.0/24 --next-hop-vpn-tunnel=tunnel2to1 --next-hop-vpn-tunnel-region=europe-central2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we can see the status of the VPN tunnel as &lt;strong&gt;Established&lt;/strong&gt; . &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631451830700%2F-OuxICYWo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631451830700%2F-OuxICYWo.png" alt="Screenshot 2021-09-12 at 6.31.55 PM.png"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631451839916%2F8jSsf6hni.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631451839916%2F8jSsf6hni.png" alt="Screenshot 2021-09-12 at 6.32.11 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can now attempt to perform a ping test from server-1 to server-2 and vice versa.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631452164905%2FxkD1uTnzH.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631452164905%2FxkD1uTnzH.png" alt="Screenshot 2021-09-12 at 6.38.02 PM.png"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631452174917%2FfoZsXLLFE.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1631452174917%2FfoZsXLLFE.png" alt="Screenshot 2021-09-12 at 6.39.08 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have successfully established connectivity between the two VPC networks over the internet securely using encryption via VPN.&lt;/p&gt;

&lt;p&gt;This completes the tutorial on how to setup a Classic VPN on GCP. The scenario is also similar for establishing VPN connectivity from an on-premise network to a Google Cloud network.&lt;/p&gt;

&lt;p&gt;These articles are fueled by coffee. So if you enjoy my work and found it useful, consider buying me a coffee! I would really appreciate it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/royrebello" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.buymeacoffee.com%2Fbuttons%2Fv2%2Fdefault-yellow.png" alt="Buy Me A Coffee"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for taking the time to read this post. If you've found this useful, please give it some likes, share and comment.&lt;/p&gt;

</description>
      <category>googlecloud</category>
      <category>gcp</category>
      <category>gcpnetworks</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
