<?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: Hari Prassad Kannan</title>
    <description>The latest articles on DEV Community by Hari Prassad Kannan (@hariprassadk).</description>
    <link>https://dev.to/hariprassadk</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%2F2199448%2F198da67c-2937-4aab-b4d8-35cbb6d5b123.png</url>
      <title>DEV Community: Hari Prassad Kannan</title>
      <link>https://dev.to/hariprassadk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hariprassadk"/>
    <language>en</language>
    <item>
      <title>CNCF: The Driving Force Behind the Cloud-Native Revolution</title>
      <dc:creator>Hari Prassad Kannan</dc:creator>
      <pubDate>Mon, 25 Nov 2024 16:43:22 +0000</pubDate>
      <link>https://dev.to/hariprassadk/cncf-the-driving-force-behind-the-cloud-native-revolution-2gen</link>
      <guid>https://dev.to/hariprassadk/cncf-the-driving-force-behind-the-cloud-native-revolution-2gen</guid>
      <description>&lt;p&gt;As technology continues to evolve, organizations are increasingly adopting cloud-native technologies to build scalable, resilient, and portable applications. At the heart of this transformation lies the Cloud Native Computing Foundation (CNCF), an open-source powerhouse driving innovation and standardization in the cloud-native ecosystem.&lt;/p&gt;

&lt;p&gt;In this blog, we’ll explore what CNCF is, its mission, and the significance of its projects in shaping the future of software development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is CNCF?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Cloud Native Computing Foundation (CNCF), established in 2015, is a part of the Linux Foundation. CNCF serves as a vendor-neutral home for open-source cloud-native projects. Its goal is to foster collaboration between developers, end-users, and vendors to advance the adoption of cloud-native technologies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CNCF Mission&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Fostering Innovation&lt;br&gt;
CNCF supports cutting-edge projects that solve real-world challenges in cloud-native environments. By hosting these projects, CNCF ensures they remain open, interoperable, and accessible to all.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Building Ecosystems&lt;br&gt;
CNCF fosters a vibrant ecosystem of contributors, vendors, and end-users. Through conferences, meetups, and collaboration, it provides a platform for knowledge sharing and community engagement.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensuring Quality and Security&lt;br&gt;
With a rigorous graduation process, CNCF ensures that its projects meet high standards of quality, security, and scalability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Driving Adoption&lt;br&gt;
CNCF promotes the adoption of cloud-native technologies by providing resources, best practices, and certification programs for developers and organizations.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CNCF's Role in Cloud-Native Technologies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CNCF is a cornerstone of the cloud-native movement, influencing every layer of the software development lifecycle. Here's how it plays a vital role:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Standardizing Cloud-Native Tools:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CNCF sets the standards for tools and practices, ensuring interoperability and reducing vendor lock-in. Kubernetes, for instance, has become the de facto standard for container orchestration under CNCF’s stewardship.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fostering Open-Source Innovation:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CNCF is home to over 150 open-source projects that address critical aspects of cloud-native computing, such as observability, security, networking, and storage.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Driving Global Collaboration:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CNCF’s vibrant community brings together stakeholders from across the globe, fostering a culture of inclusivity and innovation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scaling Modern Applications:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CNCF tools empower developers to build, deploy, and manage applications that are scalable and resilient, whether running on-premises, in the cloud, or at the edge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CNCF Landscape&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The CNCF Landscape is a comprehensive and interactive map of the cloud-native ecosystem, showcasing the breadth of projects, tools, and technologies driving modern software development. Whether you’re a newcomer or a seasoned professional, the landscape offers a wealth of insights into the evolving world of cloud-native computing.&lt;/p&gt;

&lt;p&gt;The landscape allows users to filter and sort tools based on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Categories (e.g., orchestration, storage, observability, security).&lt;/li&gt;
&lt;li&gt;Project maturity (sandbox, incubating, graduated).&lt;/li&gt;
&lt;li&gt;Popularity metrics (e.g., GitHub stars, contributors).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Link to CNCF Landscape: &lt;a href="https://landscape.cncf.io/" rel="noopener noreferrer"&gt;https://landscape.cncf.io/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cncf</category>
      <category>cloudnative</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Unveiling Gossip Protocol in Distributed Systems</title>
      <dc:creator>Hari Prassad Kannan</dc:creator>
      <pubDate>Sat, 12 Oct 2024 19:03:49 +0000</pubDate>
      <link>https://dev.to/hariprassadk/unveiling-gossip-protocol-in-distributed-systems-53b5</link>
      <guid>https://dev.to/hariprassadk/unveiling-gossip-protocol-in-distributed-systems-53b5</guid>
      <description>&lt;p&gt;Imagine a person hears a rumor and tells it to a few close friends. Those friends then tell a few of their friends, and so on. The rumor quickly spreads through the network, but not everyone receives the information directly from the original source.&lt;/p&gt;

&lt;p&gt;In distributed systems, a node (a server or computer) shares its current state or some piece of information with a few randomly selected neighboring nodes. Those nodes then pass it along to other nodes they are connected to. Over time, the information reaches every node in the system, just like a rumor spreading through a social network.&lt;/p&gt;

&lt;h3&gt;
  
  
  Distributed system
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;distributed system&lt;/strong&gt; is a network of independent computers (nodes) that work together to achieve a common goal. These systems appear to users as a single coherent system, despite the fact that their components are spread across multiple machines, often in different locations. Some key characteristics of distributed systems include &lt;strong&gt;Scalability&lt;/strong&gt;, &lt;strong&gt;Fault Tolerance&lt;/strong&gt;, &lt;strong&gt;Concurrency&lt;/strong&gt;, &lt;strong&gt;Decentralization&lt;/strong&gt;, &lt;strong&gt;Resource Sharing&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are key &lt;strong&gt;challenges in distributed systems&lt;/strong&gt;, particularly around &lt;strong&gt;scalability, fault tolerance, and efficient communication&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In this article, let us understand how gossip protocol helps solve these problems&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the Gossip Protocol
&lt;/h3&gt;

&lt;p&gt;Gossip is a peer-to-peer communication protocol where nodes periodically share their own status and the state of other nodes they are aware of with one another.&lt;/p&gt;

&lt;h3&gt;
  
  
  How Gossip Protocol Works
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Node Initialization:&lt;/strong&gt; Each node begins by selecting a few random peers to exchange information with.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;State Exchange:&lt;/strong&gt; When two nodes communicate, they share information about their current state (e.g., which nodes are up or down, data changes, etc.). Each node then merges the received information with its own state.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Periodic Communication:&lt;/strong&gt; This process repeats periodically, with each node selecting new peers in subsequent rounds. Over multiple rounds, information spreads throughout the entire network.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Convergence:&lt;/strong&gt; Eventually, after several communication cycles, every node in the system will have a consistent view of the system state.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  Challenges in Distributed Systems Solved by Gossip Protocol
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalability:&lt;/strong&gt; Gossip Protocol is inherently scalable. Each node only communicates with a few others, so communication overhead grows exponentially, not linearly, making it an ideal solution for systems with thousands of nodes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fault Tolerance and Failure Detection:&lt;/strong&gt; Gossip Protocol helps with decentralized failure detection by allowing nodes to periodically exchange information about their status with peers. If a node doesn't respond over a certain period, it can be flagged as failed, and the system can take corrective action like rerouting tasks or replicating data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Eventual Consistency:&lt;/strong&gt; Gossip Protocol helps with eventual consistency by efficiently spreading updates about the system state across nodes. Over time, all nodes will converge to a consistent state, but it doesn't guarantee immediate synchronization.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Some practical use cases of the Gossip Protocol in real-world distributed systems:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cassandra and Amazon DynamoDB:&lt;/strong&gt; Gossip Protocol helps exchange of information about node availability, detect failures, and update node state. This ensures that data replication and partitioning are handled efficiently, even in large clusters, without relying on a central coordinator.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Serf, Consul:&lt;/strong&gt; Gossip Protocol helps to manage cluster membership and detect node failures. Nodes periodically communicate with each other to share their health status, and if a node fails, the failure information is propagated through the network, triggering recovery mechanisms.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prometheus, Sensu:&lt;/strong&gt; Gossip Protocol helps to propagate health and alert information between nodes. This allows for decentralized monitoring, where nodes can share information about service statuses and alert other parts of the system&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;The Gossip Protocol has become a fundamental building block for modern distributed systems, offering a scalable, fault-tolerant, and efficient way to propagate information. Its decentralized nature allows systems to function without a single point of failure, ensuring that updates, health checks, and node status spread quickly and reliably across large networks. &lt;/p&gt;

&lt;p&gt;This post has aimed to provide a high-level overview of the Gossip Protocol. Hope this helps. Feel free to drop a comment if you spot any discrepancies in the post. Thanks for reading!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://research.cs.cornell.edu/Quicksilver/public_pdfs/2007PromiseAndLimitations.pdf" rel="noopener noreferrer"&gt;https://research.cs.cornell.edu/Quicksilver/public_pdfs/2007PromiseAndLimitations.pdf&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Gossip_protocol" rel="noopener noreferrer"&gt;https://en.wikipedia.org/wiki/Gossip_protocol&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.baeldung.com/cs/distributed-systems-guide?ref=highscalability.com" rel="noopener noreferrer"&gt;https://www.baeldung.com/cs/distributed-systems-guide?ref=highscalability.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://martinfowler.com/articles/patterns-of-distributed-systems/gossip-dissemination.html?ref=highscalability.com" rel="noopener noreferrer"&gt;https://martinfowler.com/articles/patterns-of-distributed-systems/gossip-dissemination.html?ref=highscalability.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://newsletter.systemdesign.one/p/gossiping-protocol" rel="noopener noreferrer"&gt;https://newsletter.systemdesign.one/p/gossiping-protocol&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>distributedsystems</category>
      <category>gossipprotocol</category>
      <category>peertopeer</category>
      <category>decentralization</category>
    </item>
  </channel>
</rss>
