<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Muhammad Imran on Medium]]></title>
        <description><![CDATA[Stories by Muhammad Imran on Medium]]></description>
        <link>https://medium.com/@muhammadimran-dev?source=rss-351e2adea6a------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*P4sWulhDkc6ePY2DvGlvnQ.png</url>
            <title>Stories by Muhammad Imran on Medium</title>
            <link>https://medium.com/@muhammadimran-dev?source=rss-351e2adea6a------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 25 May 2026 08:30:53 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@muhammadimran-dev/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Azure AKS Series #2: AKS Cluster Configuration and Management]]></title>
            <link>https://muhammadimran-dev.medium.com/azure-aks-series-2-aks-cluster-configuration-and-management-c2365e016e88?source=rss-351e2adea6a------2</link>
            <guid isPermaLink="false">https://medium.com/p/c2365e016e88</guid>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[azure]]></category>
            <category><![CDATA[kubernetes]]></category>
            <category><![CDATA[cloud]]></category>
            <category><![CDATA[microsoft]]></category>
            <dc:creator><![CDATA[Muhammad Imran]]></dc:creator>
            <pubDate>Fri, 11 Oct 2024 12:57:11 GMT</pubDate>
            <atom:updated>2024-10-11T12:57:11.305Z</atom:updated>
            <content:encoded><![CDATA[<p>In the previous blog of this series, we introduced <strong>Azure Kubernetes Service (AKS)</strong> and covered its basic architecture and the process of creating an AKS cluster. Once you have your cluster up and running, the next step is to ensure that it’s properly configured for performance, scalability, and flexibility. In this post, we will explore how to configure node pools, scale clusters, manage workloads across node pools, and upgrade AKS clusters.</p><p>Managing an AKS cluster effectively requires a good understanding of its configuration options — particularly around node pools, scaling strategies, and upgrade paths. Let’s dive in!</p><h3>Configuring Node Pools in AKS</h3><p>In AKS, <strong>node pools </strong>represent a group of <strong>virtual machines (VMs)</strong> that provide the compute resources for your Kubernetes workloads. Node pools allow you to define and manage different configurations for different workloads, giving you greater flexibility to optimize performance and cost.</p><h3>Types of Node Pools:</h3><p>1. <strong>System Node Pools</strong><br> The system node pool is required and responsible for running system-level pods, such as the core Kubernetes components (e.g., the kubelet) and monitoring agents. Typically, system node pools run <strong>critical infrastructure services</strong>, and they are automatically created when you set up an AKS cluster.</p><p>2. <strong>User Node Pools</strong><br> You can create multiple user node pools to host your application workloads. These can be configured with different VM sizes, types, and scaling options based on the resource requirements of your applications.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/803/0*r_1-oH8x_bV1I-DD.png" /></figure><h3>Configuring a Node Pool:</h3><p>When creating a node pool, several key configuration options are available:</p><ul><li><strong>VM Size:</strong> Choose the appropriate VM size for your workloads (e.g., compute-optimized, memory-optimized, or GPU-based VMs).</li><li><strong>Node Count: </strong>Define the number of VMs in the node pool. You can start small and scale up based on your workload demands.</li><li><strong>Scaling Options: </strong>AKS allows for both <strong>manual scaling</strong> and <strong>autoscaling</strong> to dynamically adjust the number of nodes in a pool.</li><li><strong>Spot Nodes: </strong>For cost-sensitive, non-critical workloads, you can use Azure Spot VMs in your node pool. These are significantly cheaper but come with the caveat of being evicted when Azure needs the capacity back.</li><li><strong>Node Labels and Taints:</strong> You can assign <strong>labels</strong> to nodes and use <strong>taints</strong> to control the scheduling of pods, ensuring that certain workloads are allocated to specific node pools.</li></ul><h3>How to Add a Node Pool:</h3><p>Using the <strong>Azure CLI</strong>, you can add a node pool to an existing AKS cluster with the following command:</p><pre>az aks nodepool add \<br> - resource-group &lt;ResourceGroup&gt; \<br> - cluster-name &lt;ClusterName&gt; \<br> - name &lt;NodePoolName&gt; \<br> - node-count 3 \<br> - node-vm-size Standard_DS3_v2</pre><p>In this example, we create a new node pool named `NodePoolName` with 3 nodes of size <strong>Standard_DS3_v2</strong>.</p><h3>Scaling AKS Clusters</h3><p><strong>Scaling </strong>is an essential part of managing Kubernetes workloads. It ensures that your applications can handle increases or decreases in demand without manual intervention.</p><p><strong>Two Main Scaling Methods in AKS:</strong><br>1. <strong>Manual Scaling</strong><br> With manual scaling, you explicitly adjust the number of nodes in your cluster. You can scale up when demand increases or scale down to reduce costs during off-peak hours. Here’s how to scale manually using the Azure CLI:</p><pre>az aks scale \<br> - resource-group &lt;ResourceGroup&gt; \<br> - name &lt;ClusterName&gt; \<br> - nodepool-name &lt;NodePoolName&gt; \<br> - node-count 5</pre><p>This command scales the node pool to 5 nodes.</p><p>2. <strong>Cluster Autoscaler</strong><br> The cluster autoscaler automatically adjusts the number of nodes in the node pool based on the resource requests of the running workloads. The autoscaler adds more nodes when the cluster is under pressure and removes nodes when there is excess capacity. To enable autoscaling in a node pool, use the following CLI command:</p><pre>az aks nodepool update \<br> - resource-group &lt;ResourceGroup&gt; \<br> - cluster-name &lt;ClusterName&gt; \<br> - name &lt;NodePoolName&gt; \<br> - enable-cluster-autoscaler \<br> - min-count 3 \<br> - max-count 10</pre><p>In this example, the autoscaler ensures that the node count stays between 3 and 10 nodes based on workload demands.</p><h3>Managing Workloads Across Node Pools</h3><p>Workload management across node pools is vital for performance optimization and cost efficiency. You can assign different workloads to specific node pools based on their resource needs or criticality. This is achieved by using <strong>node selectors</strong>, <strong>taints</strong>, and <strong>tolerations</strong>.</p><h3>Node Selectors:</h3><p>A <strong>node selector </strong>is used to schedule pods on a specific set of nodes. You can define labels on your nodes and match them with pod specifications to ensure that certain workloads are assigned to the right nodes. For example, if you have a node pool with GPU nodes for machine learning workloads, you can create a pod that specifies the label for GPU nodes.</p><p>Here’s an example pod configuration with a node selector:</p><pre>apiVersion: v1<br>kind: Pod<br>metadata:<br> name: gpu-pod<br>spec:<br> containers:<br> - name: gpu-container<br> image: my-gpu-app:latest<br> nodeSelector:<br> kubernetes.azure.com/mode: &quot;gpu&quot;</pre><h3>Taints and Tolerations:</h3><p>Taints and tolerations are mechanisms that prevent workloads from being scheduled on certain nodes unless the workloads explicitly tolerate the taint. For instance, you can taint a node pool to only accept critical system workloads while keeping it off-limits to non-essential workloads.</p><p>To taint a node pool:</p><pre>az aks nodepool update \<br> - resource-group &lt;ResourceGroup&gt; \<br> - cluster-name &lt;ClusterName&gt; \<br> - name &lt;NodePoolName&gt; \<br> - node-taints Critical=true:NoSchedule</pre><p>You can then add a <strong>toleration </strong>to your pod specification to allow it to be scheduled on these tainted nodes.</p><p><strong>Example:</strong></p><p><strong>Case 1: Taint Node 1 (Blue)</strong></p><p>Since Pods are not tolerated so none of them would be scheduled on node 1</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/0*oSNxVwTg0eF0Z8aq.jpeg" /></figure><p><strong>Case 2: </strong>We add tolerance to pod D. Now only Pod D will be able to schedule on Node 1</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/888/0*1i9e9tgqHuITQ0s8.png" /></figure><h3>Upgrading AKS Clusters</h3><p>Keeping your AKS cluster up to date with the latest Kubernetes version is crucial for security, stability, and access to new features. Azure provides a managed upgrade process to handle this efficiently.</p><h3>Upgrade Process:</h3><ol><li><strong>Check Available Kubernetes Versions</strong><br> Before upgrading, you can check which Kubernetes versions are available for your AKS cluster using the following CLI command:</li></ol><pre>az aks get-upgrades - resource-group &lt;ResourceGroup&gt; - name &lt;ClusterName&gt;</pre><p>This command will list the current version of your cluster and the available upgrade versions.</p><p>2. <strong>Upgrade the Cluster</strong><br> Once you’ve identified the desired version, upgrading is as simple as running:</p><pre>az aks upgrade \<br> - resource-group &lt;ResourceGroup&gt; \<br> - name &lt;ClusterName&gt; \<br> - kubernetes-version &lt;Version&gt;</pre><p>AKS ensures that the upgrade process is performed <strong>in-place</strong> with minimal downtime. The upgrade occurs node by node, draining workloads from the nodes being upgraded, and then re-scheduling them onto upgraded nodes.</p><h3>Node Pool Upgrades:</h3><p>You can upgrade individual node pools separately if needed. This is useful for gradually upgrading parts of the cluster to test stability. Here’s how to upgrade a node pool:</p><pre>az aks nodepool upgrade \<br> - resource-group &lt;ResourceGroup&gt; \<br> - cluster-name &lt;ClusterName&gt; \<br> - name &lt;NodePoolName&gt; \<br> - kubernetes-version &lt;Version&gt;</pre><h3>Conclusion</h3><p>Effectively configuring and managing your AKS cluster is essential for ensuring smooth and scalable operations. With <strong>node pools</strong>, <strong>scaling strategies</strong>, and <strong>upgrade processes</strong> in place, you can fine-tune your cluster’s performance and ensure that your workloads are distributed and managed efficiently.</p><p>In the next post of the Azure AKS Series, we’ll take a closer look at <strong>networking and security in AKS</strong>, exploring how to manage internal and external traffic, configure ingress controllers, and secure your cluster using <strong>network policies</strong> and <strong>Microsoft Entra ID (formerly Azure Active Directory) integration</strong>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c2365e016e88" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Azure AKS Series #1: A Comprehensive Introduction to Azure Kubernetes Service (AKS)]]></title>
            <link>https://muhammadimran-dev.medium.com/azure-aks-series-1-a-comprehensive-introduction-to-azure-kubernetes-service-aks-03ab25d416f1?source=rss-351e2adea6a------2</link>
            <guid isPermaLink="false">https://medium.com/p/03ab25d416f1</guid>
            <category><![CDATA[cloud]]></category>
            <category><![CDATA[kubernetes]]></category>
            <category><![CDATA[azure]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[microsoft]]></category>
            <dc:creator><![CDATA[Muhammad Imran]]></dc:creator>
            <pubDate>Wed, 09 Oct 2024 12:06:38 GMT</pubDate>
            <atom:updated>2024-10-09T12:06:38.577Z</atom:updated>
            <content:encoded><![CDATA[<p>As organizations increasingly adopt cloud-native solutions, <strong>Kubernetes</strong> has become the go-to choice for orchestrating containerized applications. However, managing Kubernetes clusters independently can often be a complex and resource-intensive task, especially when scaling across multiple environments. This is where <strong>Azure Kubernetes Service (AKS)</strong> comes in — offering a fully managed solution that simplifies the deployment, scaling, and management of containerized applications on Kubernetes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2mNaOjZJPhFvBmRLzhbEPA.png" /></figure><p>In this first installment of the <strong>Azure AKS Series</strong>, we’ll explore what AKS is, why it’s a popular choice for enterprises, and how you can set up your first AKS cluster.</p><h3>What is Azure Kubernetes Service (AKS)?</h3><p><strong>Azure Kubernetes Service (AKS)</strong> is a managed Kubernetes service provided by <strong>Microsoft Azure</strong> that automates the operational overhead of managing Kubernetes clusters. AKS eliminates the complexity of manual setup, monitoring, and scaling by offloading much of the management to Azure, making it easier for developers and IT teams to focus on their applications instead of infrastructure.</p><p>With AKS, you can:</p><ul><li><strong>Deploy and manage Kubernetes clusters</strong> without needing deep Kubernetes expertise</li><li>Automatically <strong>scale</strong> clusters based on workload demands.</li><li>Benefit from <strong>Azure’s security, monitoring, and integration</strong> with other Azure services like Azure DevOps, Azure Monitor, and Microsoft Entra ID (formerly Azure Active Directory).</li></ul><p>In essence, AKS provides the power of Kubernetes, with the simplicity of a managed service, helping organizations accelerate their cloud-native journey.</p><h3>Why Use Azure Kubernetes Service?</h3><p>The demand for managed Kubernetes services like AKS has grown due to several reasons:</p><p>1. <strong>Simplified Cluster Management</strong><br> Managing Kubernetes involves many manual processes, including node management, scaling, patching, and upgrades. With AKS, Azure handles most of these tasks for you, allowing your team to focus on the development and optimization of applications.</p><p>2. <strong>Built-In Scaling</strong><br> AKS provides seamless scaling features, including the <strong>cluster autoscaler</strong> and <strong>Horizontal Pod Autoscaler (HPA)</strong>, which allow your applications to dynamically respond to changes in workload demand without manual intervention.</p><p>3. <strong>Integrated Monitoring and Security</strong><br> AKS comes with built-in support for <strong>Azure Monitor</strong> track resource utilization and performance, and <strong>Azure Security Center</strong> for monitoring security vulnerabilities. You can easily secure your cluster using <strong>Role-Based Access Control (RBAC)</strong> integrated with Microsoft Entra ID (formerly Azure Active Directory) for centralized authentication and security management.</p><p>4. <strong>Cost Efficiency</strong><br> In AKS, you only pay for the nodes (virtual machines) running your workloads, not for the Kubernetes control plane itself, which is managed by Azure for free. This offers a significant cost advantage over self-managed Kubernetes clusters where control plane management costs are incurred.</p><p>5. <strong>Integration with Azure Ecosystem</strong><br> AKS integrates seamlessly with other Azure services, such as <strong>Azure DevOps</strong> for CI/CD pipelines, <strong>Azure Load Balancer</strong> for traffic management, and <strong>Azure Container Registry</strong> for storing container images. This deep integration simplifies the lifecycle of cloud-native applications.</p><h3>Benefits of Managed Kubernetes Services</h3><p>Using a managed Kubernetes service like AKS offers several key benefits:</p><ul><li><strong>Reduced Operational Overhead</strong>: With Azure managing the Kubernetes control plane, upgrades, and patching, the burden on your operations team is significantly reduced.</li><li><strong>Improved Security: </strong>Managed services provide regular security patches and compliance certifications, ensuring that your Kubernetes environment remains secure and up to date.</li><li><strong>Built-In High Availability: </strong>Managed Kubernetes services automatically provide high availability for the control plane, which ensures the stability and resilience of your cluster without additional configuration.</li><li><strong>Quick Time to Production: </strong>AKS accelerates the time it takes to move from development to production with simplified cluster creation and deployment processes.</li></ul><h3>Basic AKS Architecture Overview</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/850/0*iTgpI16pSGXd86wv.jpeg" /></figure><p>Before diving into how to create an AKS cluster, let’s quickly go over the basic architecture of AKS.</p><p>1. <strong>Control Plane (Managed by Azure)</strong><br> The control plane in AKS is fully managed by Azure and includes core Kubernetes components such as:<br> <strong>— API server:</strong> Manages requests from users or applications.<br> <strong>— Scheduler: </strong>Distributes pods across nodes based on resources.<br><strong> — Controller Manager:</strong> Manages the state of the cluster.<br><strong> — etcd:</strong> A key-value store for persisting cluster state data.</p><p>Azure handles scaling, patching, and availability of the control plane components, so you don’t need to worry about it.</p><p>2. <strong>Nodes (Your Responsibility)</strong><br> The <strong>nodes </strong>are the virtual machines (VMs) that run your containerized applications. These are grouped into <strong>node pools</strong>, which can be customized for different workloads. You manage the node pools, including scaling and updating them when necessary.</p><p>3. <strong>Networking</strong><br> AKS supports different networking models, such as <strong>Kubenet</strong> and <strong>Azure CNI</strong>, to handle internal and external communication for your pods and services. Ingress controllers, like <strong>NGINX</strong> or <strong>Azure Application Gateway</strong>, are often used for routing external traffic.</p><p>4. <strong>Storage</strong><br> AKS integrates with <strong>Azure Disks</strong>, <strong>Azure Files</strong>, and other storage solutions to provide persistent storage for stateful applications running in your Kubernetes environment.</p><h3>How to Create an AKS Cluster</h3><p>Creating your first AKS cluster is straightforward using the <strong>Azure Portal</strong>, <strong>Azure CLI</strong>, or <strong>Terraform</strong>. Here, we’ll walk through the process of setting up a basic AKS cluster using the Azure Portal.</p><h3>Steps to Create an AKS Cluster using <strong>Azure Portal</strong>:</h3><p>1. <strong>Sign in to the Azure Portal</strong><br> Navigate to the [Azure Portal](https://portal.azure.com/) and search for <strong>Kubernetes Services</strong>.</p><p>2. <strong>Create a Kubernetes Service</strong><br> Click on <strong>Create</strong> to start the cluster creation process. Choose the following:<br><strong> — Subscription:</strong> Select your Azure subscription.<br><strong> — Resource Group:</strong> Create or select an existing resource group.<br> <strong>— Cluster Details: </strong>Provide a name for your AKS cluster and select a region.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/822/0*HsvLf2b32k-7rHBU.png" /></figure><p>3. <strong>Configure Node Pools</strong><br> Choose the size and number of nodes for your cluster. For testing or development, you might want to start with <strong>Standard_D2S_v3</strong> VM size (2 vCPUs, 8GB memory). You can always scale up later.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/680/0*qqkCNJFPt_b-4MJ_.png" /></figure><p>4. <strong>Networking Configuration</strong><br> Decide on a networking option (Kubenet or Azure CNI). Azure CNI is often recommended for better network integration with Azure services.</p><p>5. <strong>Enable Monitoring</strong><br> Enable <strong>Azure Monitor </strong>and <strong>Log Analytics</strong> to track the health and performance of your cluster.</p><p>6. <strong>Review and Create</strong><br> Review your configurations, and click <strong>Create </strong>to deploy your cluster. It might take a few minutes for the deployment to complete.</p><h3>Steps to Create an AKS Cluster using <strong>Azure CLI</strong>:</h3><pre>az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 2 --generate-ssh-keys --attach-acr $ACRNAME</pre><p>Once deployed, you can connect to the cluster using the <strong>Azure CLI</strong> with:</p><pre>az aks get-credentials - resource-group &lt;ResourceGroup&gt; - name &lt;ClusterName&gt;</pre><p>This command retrieves the credentials and configures `kubectl` to interact with your AKS cluster.</p><h3>Conclusion</h3><p>Azure Kubernetes Service (AKS) provides a powerful, scalable, and cost-effective way to deploy and manage Kubernetes clusters in the cloud. Its fully managed control plane and deep integration with Azure services make it an ideal choice for enterprises looking to build, scale, and secure their cloud-native applications.</p><p>In the next post, we’ll dive deeper into <strong>AKS cluster configuration</strong>, exploring how to manage node pools, scaling options, and upgrade strategies to optimize your environment.</p><p>Stay tuned, and if you haven’t yet, follow this series to stay updated on the latest in <strong>Azure AKS</strong>!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=03ab25d416f1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introducing the Azure AKS Series: Mastering Kubernetes in the Cloud]]></title>
            <link>https://muhammadimran-dev.medium.com/introducing-the-azure-aks-series-mastering-kubernetes-in-the-cloud-5d6e29d60e36?source=rss-351e2adea6a------2</link>
            <guid isPermaLink="false">https://medium.com/p/5d6e29d60e36</guid>
            <category><![CDATA[microsoft]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[azure]]></category>
            <category><![CDATA[cloud]]></category>
            <category><![CDATA[kubernetes]]></category>
            <dc:creator><![CDATA[Muhammad Imran]]></dc:creator>
            <pubDate>Mon, 07 Oct 2024 10:06:19 GMT</pubDate>
            <atom:updated>2024-10-07T10:06:19.541Z</atom:updated>
            <content:encoded><![CDATA[<p>In today’s cloud-native world, <strong>Kubernetes</strong> has rapidly become the de facto standard for container orchestration, helping organizations scale their applications efficiently and reliably. However, managing Kubernetes clusters on your own can be complex, resource-intensive, and time-consuming. This is where <a href="https://azure.microsoft.com/en-us/products/kubernetes-service"><strong>Azure Kubernetes Service (AKS)</strong></a> steps in — offering a fully managed Kubernetes solution that simplifies container orchestration while leveraging the power and security of Microsoft Azure.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ebPiMYhQotR4NzID.png" /></figure><p><strong>Welcome to the Azure AKS Series</strong>, where I will take you through a comprehensive journey of mastering AKS, from the fundamentals to advanced topics. Whether you’re a beginner looking to get started with AKS or a seasoned cloud architect aiming to optimize your Kubernetes workloads, this series has something for everyone.</p><h3>Why Focus on AKS?</h3><p>As more businesses shift to cloud-native architectures, developers and IT professionals are increasingly turning to <strong>Kubernetes</strong> to handle complex deployment challenges. Azure Kubernetes Service (AKS) provides a managed Kubernetes environment that significantly reduces the overhead of manual configuration, management, and scaling. AKS takes care of routine tasks like <strong>health monitoring</strong>, <strong>automatic upgrades</strong>, and <strong>scaling</strong>, enabling your team to focus on building applications rather than maintaining infrastructure.</p><p>With <strong>integrated Azure services</strong>, including <strong>Azure Monitor</strong>, <strong>Microsoft Entra ID (formerly Azure Active Directory)</strong>, and <strong>Azure DevOps</strong>, AKS stands out as a leading choice for enterprises seeking to deploy, manage, and scale containerized applications in the cloud.</p><h3>What Will You Learn?</h3><p>This series will cover the full breadth of AKS, starting with the fundamentals and gradually progressing to more advanced topics. Whether you’re just setting up your first AKS cluster or aiming to secure, scale, and optimize your Kubernetes workloads, this series is designed to help you achieve your goals.</p><p>Here’s a sneak peek of what you’ll learn:</p><p>1. <strong>The Fundamentals of AKS</strong> — We’ll start by introducing AKS, its architecture, and how to set up your first cluster. Learn how to deploy applications efficiently and integrate AKS with Azure’s powerful ecosystem.<br> <br>2. <strong>Cluster Configuration &amp; Scaling</strong> — Discover how to configure your AKS clusters with node pools, autoscaling, and upgrade strategies to ensure you maintain a highly available and performant environment.<br> <br>3. <strong>Networking and Security</strong>— Explore how to manage networking in AKS, including service discovery, ingress controllers, and the all-important topic of security. Learn how to secure your cluster with <strong>Azure AD integration</strong>, <strong>network policies</strong>, and more.<br> <br>4. <strong>Monitoring and Troubleshooting</strong> — Learn how to monitor your AKS cluster with <strong>Azure Monitor</strong> and <strong>Grafana</strong>, and gain the skills to troubleshoot common issues effectively.</p><p>5. <strong>DevOps with AKS</strong>— Discover how to integrate AKS into a seamless DevOps pipeline using <strong>Azure DevOps </strong>and <strong>GitHub Actions</strong>, enabling continuous integration and delivery for your applications.</p><p>6. <strong>Real-World Best Practices</strong> — Finally, we’ll wrap up with real-world best practices and case studies, showing how enterprises leverage AKS to power their applications.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/754/1*AxkykkBSSh5nt1o-EfLa5g.png" /></figure><h3>Who Is This Series For?</h3><p>This series is ideal for:<br>- <strong>Developers and DevOps engineers</strong> who are new to Kubernetes and want to learn how to run containerized applications in AKS.<br>- <strong>Cloud architects</strong> looking to optimize, secure, and scale Kubernetes workloads in Azure.<br>- <strong>IT professionals</strong> who need to understand Kubernetes infrastructure management without the overhead of manual intervention.</p><h3>What’s Next?</h3><p>The first article in the series will introduce you to <strong>Azure AKS</strong>, its core concepts, and how to set up your first cluster. As we move through the series, you’ll get hands-on guidance with examples and best practices to help you succeed in your Kubernetes journey.</p><p>Make sure to follow this series, as each article will build on the previous one, providing you with a comprehensive guide to <strong>mastering Kubernetes with AKS</strong>.</p><h3>Stay Connected</h3><p>I encourage you to engage, ask questions, and share your thoughts as we move through the series. <strong>Subscribe</strong> to my Medium channel, and feel free to share the articles with colleagues who might also be interested in learning more about <strong>Azure AKS</strong>.</p><h3>Conclusion</h3><p>Azure Kubernetes Service simplifies the complexity of Kubernetes management, allowing you to focus on what matters most — building great applications. Join me in this exciting journey, and let’s unlock the full potential of AKS together!</p><p>Stay tuned for the first installment, where we’ll dive into the <strong>fundamentals of AKS</strong>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5d6e29d60e36" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Mastering Azure AKS Kubernetes RBAC: A Comprehensive Guide]]></title>
            <link>https://muhammadimran-dev.medium.com/mastering-azure-aks-kubernetes-rbac-a-comprehensive-guide-91cdef987759?source=rss-351e2adea6a------2</link>
            <guid isPermaLink="false">https://medium.com/p/91cdef987759</guid>
            <category><![CDATA[kubernetes]]></category>
            <category><![CDATA[microsoft]]></category>
            <category><![CDATA[containers]]></category>
            <category><![CDATA[azure]]></category>
            <category><![CDATA[rbac]]></category>
            <dc:creator><![CDATA[Muhammad Imran]]></dc:creator>
            <pubDate>Thu, 02 May 2024 09:02:38 GMT</pubDate>
            <atom:updated>2024-05-02T09:02:38.391Z</atom:updated>
            <content:encoded><![CDATA[<p>Azure Kubernetes Service (AKS) is Microsoft’s managed Kubernetes platform, making it easy to deploy and manage Kubernetes clusters on Azure. As organizations adopt Kubernetes, it’s crucial to implement robust role-based access control (RBAC) to manage who can access and interact with your Kubernetes resources.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/895/0*Uhw3aoXzxbqaaVzV.png" /></figure><h3>Authenticating with Microsoft Entra ID</h3><p>The first step in managing access to your AKS cluster is to integrate it with Microsoft Entra ID, Microsoft’s enterprise-ready identity management solution. By integrating Entra ID, you can leverage your existing user accounts and groups to control access to your Kubernetes resources.</p><h3>Defining Kubernetes RBAC</h3><p>Once you’ve integrated Entra ID, you can use Kubernetes RBAC to define the permissions for your users and groups. Kubernetes RBAC consists of two main components: Roles/ClusterRoles and RoleBindings/ClusterRoleBindings.</p><p><strong>- Roles and ClusterRoles:</strong> Define the set of permissions that can be granted to users or groups. Roles are scoped to a specific namespace, while ClusterRoles are cluster-wide.<br><strong>- RoleBindings and ClusterRoleBindings:</strong> Bind Roles or ClusterRoles to users or groups, granting them the defined permissions.</p><p>By creating these RBAC resources, you can granularly control access to your Kubernetes resources, ensuring that users and groups only have the necessary permissions to perform their tasks.</p><h3>Leveraging Azure RBAC</h3><p>In addition to Kubernetes RBAC, you can also use Azure RBAC to manage access to your AKS resources. Azure RBAC allows you to define permissions at the Azure resource level, such as the AKS cluster itself, the Kubernetes API, and the kubeconfig file.[1][3]</p><p>This two-pronged approach, combining Kubernetes RBAC and Azure RBAC, provides a comprehensive access control solution for your AKS environment, allowing you to manage permissions at both the Kubernetes and Azure resource levels.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/518/0*zMYFW4PPHeO3ypI2.png" /></figure><h3>Practical Examples</h3><p>To illustrate the concepts, let’s consider a few practical examples:</p><ul><li><strong>Granting Full Access to the Finance Team:</strong> Create a Kubernetes ClusterRole with full permissions, then bind it to the “finance-team” group from Entra ID.</li></ul><pre># Create a ClusterRole with full permissions<br>kubectl create clusterrole finance-team-full-access --verb=* --resource=*<br><br># Bind the ClusterRole to the &quot;finance-team&quot; group<br>kubectl create clusterrolebinding finance-team-full-access --clusterrole=finance-team-full-access --group=finance-team</pre><ul><li><strong>Restricting Access to the Development Namespace:</strong> Create a Kubernetes Role with limited permissions in the “development” namespace, then bind it to the “dev-team” group from Entra ID.</li></ul><pre># Create a Role with limited permissions in the &quot;development&quot; namespace<br>kubectl create role dev-team-access --namespace=development --verb=get,list,watch --resource=pods,deployments<br><br># Bind the Role to the &quot;dev-team&quot; group<br>kubectl create rolebinding dev-team-access --role=dev-team-access --group=dev-team --namespace=development</pre><ul><li><strong>Allowing Read-Only Access to the Kubernetes Dashboard:</strong> Use Azure RBAC to grant the “AKS RBAC Reader” role to the “dashboard-viewers” group, restricting their access to the Kubernetes Dashboard.</li></ul><pre># Assign the &quot;AKS RBAC Reader&quot; role to the &quot;dashboard-viewers&quot; group<br>az role assignment create --role &quot;AKS RBAC Reader&quot; --assignee-object-id $(az ad group show --group dashboard-viewers --query objectId -o tsv) --scope /subscriptions/&lt;subscription-id&gt;/resourceGroups/&lt;resource-group&gt;/providers/Microsoft.ContainerService/managedClusters/&lt;cluster-name&gt;</pre><p>By following these best practices and leveraging the power of Kubernetes RBAC and Azure RBAC, you can effectively manage access to your AKS clusters, ensuring that users and groups only have the necessary permissions to perform their tasks.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/564/0*lYuy7mgOcRmlvAKj.png" /></figure><h3><strong>References:</strong></h3><ol><li><a href="https://learn.microsoft.com/en-us/azure/aks/manage-azure-rbac">https://learn.microsoft.com/en-us/azure/aks/manage-azure-rbac</a></li><li><a href="https://learn.microsoft.com/en-us/azure/aks/hybrid/kubernetes-rbac-azure-ad">https://learn.microsoft.com/en-us/azure/aks/hybrid/kubernetes-rbac-azure-ad</a></li><li><a href="https://learn.microsoft.com/en-us/azure/aks/operator-best-practices-identity">https://learn.microsoft.com/en-us/azure/aks/operator-best-practices-identity</a></li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=91cdef987759" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Unveiling the power of Amazon Redshift Serverless]]></title>
            <link>https://muhammadimran-dev.medium.com/unveiling-the-power-of-amazon-redshift-serverless-327ef6735818?source=rss-351e2adea6a------2</link>
            <guid isPermaLink="false">https://medium.com/p/327ef6735818</guid>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[amazon]]></category>
            <category><![CDATA[redshift]]></category>
            <category><![CDATA[serverless]]></category>
            <dc:creator><![CDATA[Muhammad Imran]]></dc:creator>
            <pubDate>Tue, 30 Jan 2024 07:45:30 GMT</pubDate>
            <atom:updated>2024-01-30T07:45:30.489Z</atom:updated>
            <content:encoded><![CDATA[<p>Amazon Redshift Serverless makes it convenient for you to run and scale analytics without having to provision and manage data warehouses.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*e5vvDrSM1ALzy6Qq.png" /></figure><h3>Benefits of Amazon Redshift Serverless</h3><h4>Get started with analytics in seconds</h4><p>Focus on obtaining insights by getting started quickly and running real-time or predictive analytics on all your data without worrying about managing data warehouse infrastructure.</p><h4>Experience consistently high performance</h4><p>Intelligent, proactive, and automatic scaling for dynamic workloads is enabled along dimensions like query complexity, frequency, ETL (extract, transform, and load), or dashboarding usage patterns to deliver tailored performance optimizations.</p><h4>Save costs and stay on budget</h4><p>Pay only for what you use on a per-second basis, and pay nothing when the data warehouse is idle. Adjust your desired price-performance targets for your workload to maintain consistent performance and stay on budget.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*q5kysim3F-hfOWax.png" /></figure><h3>Use cases</h3><h4>Self-service analytics</h4><p>Perform what-if analyses, anomaly detection, and ML-based forecasting, and get fast, actionable insights from your data.</p><h4>Auto scaling for unpredictable workloads</h4><p>No longer spend time determining compute capacity and encountering overspending or underserving as you run workloads with regular usage throughout the day and peaks of activity that involve complex, hard-to-predict queries.</p><h4>New applications</h4><p>Unsure of how to size your data warehouse when deploying a new data-driven application? Start an Amazon Redshift Serverless endpoint, and your data warehouse will be sized according to your workload requirements.</p><h4>Auto scaling for variable workloads</h4><p>Have applications with high variability in usage? Think of your HR, budgeting, and operational reporting applications. You no longer have to over- or under-provision capacity. Avoid overpaying, performance issues, and poor user experiences.</p><h4>Multi-tenant applications</h4><p>For multi-tenant applications with each tenant having specific busy and idle periods — depending on the time of day, year, promotional events, and so on — architect to use a workgroup for each tenant with a wide capacity range. Any workgroup can quickly scale up to handle periods of high activity.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*VBlliYDqYop7BTFF.jpg" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=327ef6735818" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Unlocking the Benefits of AWS Fargate]]></title>
            <link>https://muhammadimran-dev.medium.com/unlocking-the-benefits-of-aws-fargate-2cbee49363b0?source=rss-351e2adea6a------2</link>
            <guid isPermaLink="false">https://medium.com/p/2cbee49363b0</guid>
            <category><![CDATA[containers]]></category>
            <category><![CDATA[amazon]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[serverless]]></category>
            <category><![CDATA[aws]]></category>
            <dc:creator><![CDATA[Muhammad Imran]]></dc:creator>
            <pubDate>Tue, 30 Jan 2024 07:34:26 GMT</pubDate>
            <atom:updated>2024-01-30T07:34:26.204Z</atom:updated>
            <content:encoded><![CDATA[<p>AWS Fargate is a serverless, pay-as-you-go compute engine that lets you focus on building applications without managing servers. Moving tasks such as server management, resource allocation, and scaling to AWS does not only improve your operational posture, but also accelerates the process of going from idea to production on the cloud, and lowers the total cost of ownership.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*VrOfjyNJRrLRR9fR.png" /></figure><h3>Benefits of AWS Fargate</h3><p>With AWS Fargate, you can focus on building applications. You manage less, choose how you pay, and improve security through isolation by design.</p><h4>Manage your applications, not infrastructure</h4><p>Deploy and manage your applications, not infrastructure. Remove the operational overhead to scale, patch, help secure, and manage servers.</p><h4>Monitor your applications to gain metrics and insights</h4><p>Monitor your applications through built-in integrations with AWS services like Amazon CloudWatch Container Insights or gather metrics and logs with third-party tools.</p><h4>Improve security through isolation</h4><p>Improve security through workload isolation by design. Amazon ECS tasks and Amazon EKS pods run in their own dedicated runtime environment.</p><h4>Optimize for cost</h4><p>Pay only for compute resources used, with no upfront expenses. Further optimize costs with Savings Plans, Fargate Spot, or AWS Graviton processors.</p><h3>How it works</h3><p>AWS Fargate is compatible with both Amazon Elastic Container Service (Amazon ECS) and Amazon Elastic Kubernetes Service (Amazon EKS). Select any OCI-compliant container image, define memory and compute resources, and run the container with serverless compute. With multiple CPU architectures and operating systems supported, you can enjoy the benefits across a wide variety of applications.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Mvw_InlTgWqX1rzv.png" /></figure><h3>Use cases</h3><h4>Web apps, APIs, and microservices</h4><p>Build and deploy your applications, APIs, and microservices architectures with the speed and immutability of containers. Remove the need to own, run, and manage the lifecycle of a compute infrastructure, so you can focus on your applications.</p><h4>Modernize applications</h4><p>Use AWS Fargate with Amazon ECS or Amazon EKS to more easily run and scale your containerized workloads. Migrate and run your Amazon ECS Windows containers without refactoring or rearchitecting your legacy applications.</p><h4>Support AI and ML applications</h4><p>Create a flexible and portable artificial intelligence (AI) and machine learning (ML) development environment. Train, test, and deploy your ML models with scalable resources that boost server capacity while avoiding overprovisioning.</p><h4>Data processing</h4><p>Run data processing workloads, scale up to 16 vCPU and 120 GB memory per task, and integrate with AWS Batch for serverless parallel processing.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2cbee49363b0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[AWS Aurora Serverless Overview]]></title>
            <link>https://muhammadimran-dev.medium.com/aws-aurora-serverless-overview-c49ed23bfd98?source=rss-351e2adea6a------2</link>
            <guid isPermaLink="false">https://medium.com/p/c49ed23bfd98</guid>
            <category><![CDATA[serverless]]></category>
            <category><![CDATA[database]]></category>
            <category><![CDATA[amazon]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[aws]]></category>
            <dc:creator><![CDATA[Muhammad Imran]]></dc:creator>
            <pubDate>Tue, 30 Jan 2024 07:20:17 GMT</pubDate>
            <atom:updated>2024-01-30T07:20:17.010Z</atom:updated>
            <content:encoded><![CDATA[<p>Amazon Aurora Serverless is an on-demand, autoscaling configuration for <a href="https://aws.amazon.com/rds/aurora/">Amazon Aurora</a>. It automatically starts up, shuts down, and scales capacity up or down based on your application’s needs. You can run your database in the cloud without managing any database instances. You can also use Aurora Serverless v2 instances along with provisioned instances in your existing or new database clusters.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/550/0*zv-I3HQ6yWWCz7y3.png" /></figure><p>This type of automation is especially valuable for multitenant databases, distributed databases, development and test systems, and other environments with highly variable and unpredictable workloads.</p><h3>Benefits</h3><ol><li>Highly scalable: Scale instantly to hundreds of thousands of transactions in a fraction of a second.</li><li>Highly available: Power your business-critical workloads with the full breadth of Aurora features, including cloning, global database, Multi-AZ, and read replicas.</li><li>Cost effective: Scale out fine-grained increments to provide just the right number of database resources and pay only for capacity consumed.</li><li>Simple: Removes the complexity of provisioning and managing database capacity. The database will scale to match your application’s needs.</li><li>Transparent: Scale database capacity instantly, without disrupting incoming application requests.</li><li>Durable: Protects against data loss using the distributed, fault-tolerant, self-healing Aurora storage making your data durable across three Availability Zones (AZs) in a Region.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*hNe1R7IqtgLcEk7F.png" /></figure><h3>Use cases</h3><h4>Variable workloads</h4><p>You’re running an infrequently-used application, with peaks of 30 minutes to several hours a few times each day or several times per year, such as a human resources, budgeting, or operational reporting application. You no longer have to provision to peak capacity, which would require you to pay for resources you don’t continuously use, or to average capacity, which would risk performance problems and a poor user experience.</p><h4>Unpredictable workloads</h4><p>You’re running workloads with database usage throughout the day, and also peaks of activity that are hard to predict. For example, a traffic site that might see a surge of activity when it starts raining. Your database will automatically scale capacity to meet the needs of the application’s peak load and scale back down when the surge of activity is over.</p><h4>Enterprise database fleet management NEW</h4><p>Enterprises with hundreds or thousands of applications, each backed by one or more databases, must manage resources for their entire database fleet. As application requirements fluctuate, continuously monitoring and adjusting capacity for each and every database to ensure high performance, high availability, and remaining under budget is a daunting task. With Aurora Serverless v2, database capacity is automatically adjusted based on application demand. You no longer need to manually manage thousands of databases in your database fleet. Features such as global database and Multi-AZ deployments ensure high availability and fast recovery.</p><h4>Software as a service applications NEW</h4><p>Software as a service (SaaS) vendors typically operate hundreds or thousands of Aurora databases, each supporting a different customer, in a single cluster to improve utilization and cost efficiency. But they still need to manage each database individually, including monitoring for and responding to colocate databases in the same cluster that may take up more shared resources than originally planned. With Aurora Serverless v2, SaaS vendors can provision Aurora database clusters for each individual customer without worrying about costs of provisioned capacity. It automatically shuts down databases when they are not in use to save costs and instantly adjusts databases capacity to meet changing application requirements.</p><h4>Scaled-out databases split across multiple servers NEW</h4><p>Customers with high write or read requirements often split databases across several instances to achieve higher throughput. However, customers often provision too many or too few instances, increasing cost or limiting scale. With Aurora Serverless v2, customers split databases across several Aurora instances and let the service adjust capacity instantly and automatically based on need. It seamlessly adjusts capacity for each node with no downtime or disruption, and uses only the amount of capacity needed to support applications.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c49ed23bfd98" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Azure Policy & Governance]]></title>
            <link>https://muhammadimran-dev.medium.com/azure-policy-governance-82d28358376b?source=rss-351e2adea6a------2</link>
            <guid isPermaLink="false">https://medium.com/p/82d28358376b</guid>
            <category><![CDATA[microsoft]]></category>
            <category><![CDATA[azure]]></category>
            <category><![CDATA[compliance]]></category>
            <category><![CDATA[policy]]></category>
            <category><![CDATA[governance]]></category>
            <dc:creator><![CDATA[Muhammad Imran]]></dc:creator>
            <pubDate>Tue, 20 Jun 2023 15:37:53 GMT</pubDate>
            <atom:updated>2023-06-20T15:37:53.677Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/624/0*85NPhj05H5U4aNuo.png" /></figure><p>Azure Policy helps to enforce organizational standards and to assess compliance at-scale. Through its compliance dashboard, it provides an aggregated view to evaluate the overall state of the environment, with the ability to drill down to the per-resource, per-policy granularity. It also helps to bring your resources to compliance through bulk remediation for existing resources and automatic remediation for new resources.</p><p>Common use cases for Azure Policy include implementing governance for resource consistency, regulatory compliance, security, cost, and management. Policy definitions for these common use cases are already available in your Azure environment as built-ins to help you get started.</p><p>Specifically, some useful governance actions you can enforce with Azure Policy include:</p><ul><li>Ensuring your team deploys Azure resources only to allowed regions</li><li>Enforcing the consistent application of taxonomic tags</li><li>Requiring resources to send diagnostic logs to a Log Analytics workspace</li></ul><h3>Azure Policy objects</h3><h3>Policy definition</h3><p>The journey of creating and implementing a policy in Azure Policy begins with creating a policy definition. Every policy definition has conditions under which it’s enforced. And, it has a defined effect that takes place if the conditions are met.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*2Dwbi-89iKvp3M5K.png" /></figure><p>In Azure Policy, there are several built-in policies that are available by default. For example:</p><ul><li>Allowed Storage Account SKUs (Deny): Determines if a storage account being deployed is within a set of SKU sizes. Its effect is to deny all storage accounts that don’t adhere to the set of defined SKU sizes.</li><li>Allowed Resource Type (Deny): Defines the resource types that you can deploy. Its effect is to deny all resources that aren’t part of this defined list.</li><li>Allowed Locations (Deny): Restricts the available locations for new resources. Its effect is used to enforce your geo-compliance requirements.</li><li>Allowed Virtual Machine SKUs (Deny): Specifies a set of virtual machine SKUs that you can deploy.</li><li>Add a tag to resources (Modify): Applies a required tag and its default value if it’s not specified by the deploy request.</li><li>Not allowed resource types (Deny): Prevents a list of resource types from being deployed.</li></ul><p>To implement these policy definitions (both built-in and custom definitions), you need to assign them. You can assign any of these policies through the Azure portal, PowerShell, or Azure CLI.</p><h3>Initiative definition</h3><p>An initiative definition is a collection of policy definitions that are tailored toward achieving a singular overarching goal. Initiative definitions simplify managing and assigning policy definitions. They simplify by grouping a set of policies as one single item.</p><h3>Assignments</h3><p>An assignment is a policy definition or initiative that has been assigned to a specific scope. This scope could range from a management group to an individual resource. The term <em>scope</em> refers to all the resources, resource groups, subscriptions, or management groups that the definition is assigned to. Assignments are inherited by all child resources. This design means that a definition applied to a resource group is also applied to resources in that resource group. However, you can exclude a subscope from the assignment.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*h_U5t8fZb1oVltF-.png" /></figure><h3><strong>Trigger Condition and Evaluation Workflow of Azure Policy</strong></h3><p>The Azure policy will check the request payload and compare it with the policy definition and then decide the next action. The following part will explain how the policy evaluates resources by the simplified workflow sample.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/774/0*LlgTL5MxOW1bIKC7" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=82d28358376b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Azure Open Service Mesh in AKS]]></title>
            <link>https://muhammadimran-dev.medium.com/azure-open-service-mesh-in-aks-8c618336d45c?source=rss-351e2adea6a------2</link>
            <guid isPermaLink="false">https://medium.com/p/8c618336d45c</guid>
            <category><![CDATA[microsoft]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[azure]]></category>
            <category><![CDATA[kubernetes]]></category>
            <category><![CDATA[open-service-mesh]]></category>
            <dc:creator><![CDATA[Muhammad Imran]]></dc:creator>
            <pubDate>Tue, 13 Jun 2023 15:50:44 GMT</pubDate>
            <atom:updated>2023-06-13T15:50:44.683Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/899/1*DJqmIsUcDjm7h9nz4oa4dQ.png" /></figure><p>Azure Open Service Mesh is a managed service mesh implementation offered by Microsoft Azure. A service mesh is a dedicated infrastructure layer that handles service-to-service communication within a microservices architecture. It helps manage the complexity of distributed systems by providing features like traffic routing, service discovery, load balancing, and observability.</p><p>Azure Open Service Mesh is built on top of the open-source service mesh project called Open Service Mesh (OSM), which is hosted by the Cloud Native Computing Foundation (CNCF). It provides a simplified way to deploy and manage service mesh capabilities in Azure Kubernetes Service (AKS) clusters.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/0*uIKma2ZiNqOom5wE" /></figure><h3><strong>Some key features of Azure Open Service Mesh include:</strong></h3><ol><li>Traffic management: It allows you to control and manage traffic between services, enabling features like request routing, load balancing, and traffic splitting.</li><li>Service discovery: It provides automatic service discovery, allowing services to locate and communicate with each other without requiring explicit configuration.</li><li>Secure communication: Azure Open Service Mesh secures communication between services using mutual TLS (mTLS) encryption. It ensures that only authenticated and authorized services can communicate with each other.</li><li>Observability and monitoring: It offers built-in monitoring and observability features, allowing you to gain insights into the performance and behavior of your services. This includes metrics, logs, and distributed tracing.</li><li>Integration with Azure services: Azure Open Service Mesh integrates with other Azure services, such as Azure Monitor and Azure Application Gateway, to provide enhanced monitoring, security, and traffic management capabilities.</li></ol><h3><strong>Limitations</strong></h3><p>The OSM AKS add-on has the following limitations:</p><ul><li>After installation, you must enable Iptables redirection for port IP address and port range exclusion using kubectl patch. For more information, see iptables redirection.</li><li>Any pods that need access to IMDS, Azure DNS, or the Kubernetes API server must have their IP addresses added to the global list of excluded outbound IP ranges using Global outbound IP range exclusions.</li><li>The add-on doesn’t work on AKS clusters that are using Istio based service mesh addon for AKS.</li><li>OSM doesn’t support Windows Server containers.</li></ul><p>By using Azure Open Service Mesh, you can simplify the management of your microservices architecture and improve the reliability, scalability, and security of your applications running on Azure.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8c618336d45c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Azure Service Fabric]]></title>
            <link>https://muhammadimran-dev.medium.com/azure-service-fabric-86f6fa9b03b0?source=rss-351e2adea6a------2</link>
            <guid isPermaLink="false">https://medium.com/p/86f6fa9b03b0</guid>
            <category><![CDATA[azure]]></category>
            <category><![CDATA[clustering]]></category>
            <category><![CDATA[microsoft]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[fabric]]></category>
            <dc:creator><![CDATA[Muhammad Imran]]></dc:creator>
            <pubDate>Fri, 09 Jun 2023 10:58:06 GMT</pubDate>
            <atom:updated>2023-06-09T10:58:06.137Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*U2uZf2h9-RLGlbT9.jpg" /></figure><p>Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices and containers. Service Fabric also addresses the significant challenges in developing and managing cloud native applications.</p><p>A key differentiator of Service Fabric is its strong focus on building stateful services. You can use the Service Fabric programming model or run containerized stateful services written in any language or code. You can create Service Fabric clusters anywhere, including Windows Server and Linux on premises and other public clouds.</p><p>Service Fabric powers many Microsoft services today, including Azure SQL Database, Azure Cosmos DB, Cortana, Microsoft Power BI, Microsoft Intune, Azure Event Hubs, Azure IoT Hub, Dynamics 365, Skype for Business, and many core Azure services.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*XWoKVvFo-IG9eY1B.png" /></figure><h3>Container orchestration</h3><p>Service Fabric is Microsoft’s container orchestrator for deploying and managing microservices across a cluster of machines, benefiting from the lessons learned running Microsoft services at massive scale. Service Fabric can deploy applications in seconds, at high density with hundreds or thousands of applications or containers per machine. With Service Fabric, you can mix both services in processes and services in containers in the same application.</p><h3>Stateless and stateful microservices</h3><p>Service Fabric provides a sophisticated, lightweight runtime that supports stateless and stateful microservices. A key differentiator of Service Fabric is its robust support for building stateful services, either with Service Fabric built-in programming models or containerized stateful services.</p><h3>Application lifecycle management</h3><p>Service Fabric provides support for the full application lifecycle and CI/CD of cloud applications including containers: development through deployment, daily monitoring, management, and maintenance, to eventual decommissioning. Service Fabric is integrated with CI/CD tools such as Azure Pipelines, Jenkins, and Octopus Deploy and can be used with any other popular CI/CD tool.</p><h3>Any OS, any cloud</h3><p>You can create clusters for Service Fabric in many environments, including Azure or on premises, on Windows Server or Linux. You can even create clusters on other public clouds. The development environment in the Service Fabric SDK is identical to the production environment, with no emulators involved. In other words, what runs on your local development cluster is what deploys to your clusters in other environments.</p><p>For Windows development, the Service Fabric .NET SDK is integrated with Visual Studio and PowerShell. For Linux development, the Service Fabric Java SDK is integrated with Eclipse, and Yeoman is used to generate templates for Java, .NET Core, and container applications.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*wNfMEXKuFzm-IR6h.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=86f6fa9b03b0" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>