<?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>Forem: Shubham Gupta</title>
    <description>The latest articles on Forem by Shubham Gupta (@iamshubham1909).</description>
    <link>https://forem.com/iamshubham1909</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%2F898819%2Fcd8e2ba0-6584-49c5-9f3a-40d8316e6373.jpeg</url>
      <title>Forem: Shubham Gupta</title>
      <link>https://forem.com/iamshubham1909</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/iamshubham1909"/>
    <language>en</language>
    <item>
      <title>Manage Network Connections</title>
      <dc:creator>Shubham Gupta</dc:creator>
      <pubDate>Sat, 09 Mar 2024 14:15:38 +0000</pubDate>
      <link>https://forem.com/iamshubham1909/manage-network-connections-3l7h</link>
      <guid>https://forem.com/iamshubham1909/manage-network-connections-3l7h</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;What is network manager&lt;/li&gt;
&lt;li&gt;What is nmcli/nmtui&lt;/li&gt;
&lt;li&gt;What is a network device &lt;/li&gt;
&lt;li&gt;What is a connection&lt;/li&gt;
&lt;li&gt;How to view device status&lt;/li&gt;
&lt;li&gt;How to view active connection&lt;/li&gt;
&lt;li&gt;How to add/remove a connection&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What is Network Manager ?
&lt;/h3&gt;

&lt;p&gt;Network manager is a daemon in the Linux Kernnel that manages the device, connection etc. and keep them active. By default the network is handled by the system'd networkd and netplan but if NetworkManager is installed, it will take control of all networking. &lt;/p&gt;

&lt;p&gt;Configuration of Network manger is present at : &lt;code&gt;/etc/NetworkManager/NetworkManager.conf&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is nmcli/nmtui
&lt;/h3&gt;

&lt;p&gt;So nmcli is command line tool that is used to control NetworkManager. nmcli command can also be used to manage the network device and network connection. Nmtui does the same work but in the graphical way.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a network device
&lt;/h3&gt;

&lt;p&gt;Network Device is a hardware that allow you to communicate i.e. switch, hub, router, NIC ( Network interface card ) etc. &lt;/p&gt;

&lt;p&gt;Here we are going to refer mostly network interface which is nothing but the software side of these hardware so that we can manage them. &lt;/p&gt;

&lt;p&gt;To view the active network interface use : &lt;code&gt;ifconfig -a&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a network connection
&lt;/h3&gt;

&lt;p&gt;A network connection is a connection between two network devices that are connected on the same network.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to view device status
&lt;/h3&gt;

&lt;p&gt;We can use &lt;code&gt;nmcli device status&lt;/code&gt; to view the device status. &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%2Fknb0ilat0cms6l185tbd.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%2Fknb0ilat0cms6l185tbd.png" alt="Image description" width="751" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It would view us the current state of the device and the active connection on it if any. &lt;/p&gt;

&lt;h3&gt;
  
  
  How to view active connection
&lt;/h3&gt;

&lt;p&gt;To view all connection we can use &lt;code&gt;nmcli connection show&lt;/code&gt; and to get to only active connection we can add flag &lt;code&gt;--active&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Gatixuq7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://hackmd.io/_uploads/HJwKg15pa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gatixuq7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://hackmd.io/_uploads/HJwKg15pa.png" alt="image" width="800" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to add/remove a connection
&lt;/h3&gt;

&lt;p&gt;To add a new connection we can use &lt;br&gt;
&lt;code&gt;nmcli connection add type &amp;lt;ethernet|wifi&amp;gt; ifname &amp;lt;device name&amp;gt; conn-name &amp;lt;connection name&amp;gt; &amp;lt;setting&amp;gt;.&amp;lt;property&amp;gt; &amp;lt;value&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u_ASicxo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://hackmd.io/_uploads/ByfZr1c66.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u_ASicxo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://hackmd.io/_uploads/ByfZr1c66.png" alt="image" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here we checked our devices that are present then we added a test-connection and verified that it was added. &lt;/p&gt;

&lt;p&gt;To remove this connection we can simply use&lt;br&gt;
&lt;code&gt;nmcli connecion delete &amp;lt;conn-name&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xH9OZ6XK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://hackmd.io/_uploads/B1ovSJcaT.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xH9OZ6XK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://hackmd.io/_uploads/B1ovSJcaT.png" alt="image" width="800" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>programming</category>
    </item>
    <item>
      <title>DevLake as a DevOps Data Monitoring Tool</title>
      <dc:creator>Shubham Gupta</dc:creator>
      <pubDate>Sun, 19 Feb 2023 07:47:52 +0000</pubDate>
      <link>https://forem.com/merico/devlake-as-a-devops-data-monitoring-tool-glj</link>
      <guid>https://forem.com/merico/devlake-as-a-devops-data-monitoring-tool-glj</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;No matter what business or career you've chosen, data visualization can help by delivering data in the most efficient way possible. As one of the essential steps in the business intelligence process, data visualization takes the raw data, models it, and delivers the data so that conclusions can be reached.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Understanding the Importance of DevOps Data Visualization
&lt;/h2&gt;

&lt;p&gt;In today's automated environments, there are panels that reserves the information about how an individual component/process is behaving at any particular instant compared to the past when we used to have instant meters which gave us instant readings. These automated systems help us to collect the raw data from their databases using plugins and display that data in real-time. Data visualization tools like grafana make the quick understanding to the user and give insight into any particular state of what is happening inside the system/component.&lt;br&gt;
DevOps is a set of practices that collaborate communication of software development and IT operations team. It aims to shorten the systems development life cycle and provide continuous delivery with high software quality. While automating the process of Software delivery there could be certain tools that can be examined to provide situational insights.&lt;br&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%2F7cde1j7sc1aqcurlvpq2.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%2F7cde1j7sc1aqcurlvpq2.png" alt=" " width="627" height="627"&gt;&lt;/a&gt;&lt;br&gt;
At every stage of the diagram, we can take advantage of the analytical opportunities of that phase to gather meaningful metrics. Here is a list of the different phases and the corresponding metrics that could be monitored throughout the lifecycle:&lt;br&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%2Fdeg6oq95rnd0xyjfm1al.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%2Fdeg6oq95rnd0xyjfm1al.png" alt=" " width="800" height="664"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How DevLake provides the Monitoring Solution?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/apache/incubator-devlake" rel="noopener noreferrer"&gt;Devlake&lt;/a&gt; is an open-source dev data platform that ingests, analyzes, and visualizes the fragmented data from DevOps tools to distil insights for engineering productivity. &lt;a href="https://github.com/apache/incubator-devlake" rel="noopener noreferrer"&gt;DevLake&lt;/a&gt; is designed for developer teams looking to make better sense of their development process and to bring a more data-driven approach to their own practices.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In simpler language &lt;a href="https://github.com/apache/incubator-devlake" rel="noopener noreferrer"&gt;devlake&lt;/a&gt; is a tool that helps us to collect our DevOps data, through various plugins that &lt;a href="https://github.com/apache/incubator-devlake" rel="noopener noreferrer"&gt;devlake&lt;/a&gt; stores in its repository. The data is further analyzed and we produce amazing graphical insights that would help to boost productivity. Let's take a simple example: Merico-dev is an organization that wants to keep track of all the commits/issues/PRs happening over the repository, maintaining and analyzing data would be a tedious process, but where &lt;a href="https://github.com/apache/incubator-devlake" rel="noopener noreferrer"&gt;devlake&lt;/a&gt; comes in, it would collect the data from GitHub, store the data in MySQL and visualize on grafana dashboard. In this way, Merico-dev can compare this month's productivity to the last month and could reward the developer with the most commits/issues/PRs merged.&lt;/p&gt;

&lt;p&gt;A typical &lt;a href="https://github.com/apache/incubator-devlake" rel="noopener noreferrer"&gt;DevLake&lt;/a&gt; plugin's dataflow is illustrated below:&lt;br&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%2F9zceecbjsg4v8tnoz3by.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%2F9zceecbjsg4v8tnoz3by.png" alt=" " width="438" height="397"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Raw layer stores the API responses from data sources (DevOps tools) in JSON.&lt;/li&gt;
&lt;li&gt;The Tool layer extracts raw data from JSONs into a relational schema that's easier to consume for analytical tasks.&lt;/li&gt;
&lt;li&gt;The Domain layer attempts to build a layer of abstraction on top of the Tool layer so that analytics logic can be re-used across different tools.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So, when a pipeline is successfully run you get the complete collection of data you check out the scope of data from &lt;a href="https://devlake.apache.org/docs/DataModels/DataSupport/" rel="noopener noreferrer"&gt;here&lt;/a&gt;. Successful pipelines can be analyzed on Dashboard like Grafana by using MySQL queries.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to analyze DORA Metrics using DevLake
&lt;/h2&gt;

&lt;p&gt;DevOps Research and Assessment (DORA) team has identified four key metrics that indicate the performance of a software development team the main idea is to figure out whether they are "low performers" to "elite performers". The four key metrics used are Deployment frequency (DF), Lead time for changes (LT), Mean time to recovery (MTTR), and Change failure rate (CFR).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deployment Frequency - The frequency of the software release of an organization to the production level.&lt;/li&gt;
&lt;li&gt;Lead Time for Changes - The amount of time an organization takes a commit/PR to get into the production level. &lt;/li&gt;
&lt;li&gt;Change Failure Rate - The percentage of deployments causing a failure in production.&lt;/li&gt;
&lt;li&gt;Time to Restore Service - How long it takes an organization to recover from a failure in production.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the biggest challenges of gathering these DORA metrics is solved by &lt;a href="https://github.com/apache/incubator-devlake" rel="noopener noreferrer"&gt;DevLake&lt;/a&gt;, currently, &lt;a href="https://github.com/apache/incubator-devlake" rel="noopener noreferrer"&gt;DevLake&lt;/a&gt; has 25+ plugins which help to collect the DevOps data from every stage of the SDLC and store it in a containerized database. The complete process can be automated by using CronJob ( i.e. DevLake BluePrint feature ).&lt;/p&gt;

&lt;h2&gt;
  
  
  Resulted Dashboard of DevLake
&lt;/h2&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%2Fdoi3t8oi67co3qqrccgy.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%2Fdoi3t8oi67co3qqrccgy.png" alt=" " width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Calculating the Metrics
&lt;/h2&gt;

&lt;p&gt;In this section, we would discuss how to translate the resulted data into the system-level calculation. This original research done by the DORA team surveyed real people rather than gathering systems data and bucketed metrics into a performance level, as follows:&lt;/p&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%2Fm4rpsfh4ugik1qyvlpkr.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%2Fm4rpsfh4ugik1qyvlpkr.png" alt=" " width="729" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt; &lt;br&gt;
DevLake aims to become an ideal tool when it comes to analyzing any metrics of DevOps, through its extended plugins and robust data collecting system. It provides flexibility over the standard query and the user can create its dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  References :
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://analytiks.co/importance-of-data-visualization/#:%7E:text=Data%20visualization%20gives%20us%20a,outliers%20within%20large%20data%20sets" rel="noopener noreferrer"&gt;https://analytiks.co/importance-of-data-visualization/#:~:text=Data%20visualization%20gives%20us%20a,outliers%20within%20large%20data%20sets&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/DevOps" rel="noopener noreferrer"&gt;https://en.wikipedia.org/wiki/DevOps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://insights.sei.cmu.edu/blog/information-visualization-as-a-devops-monitoring-tool/" rel="noopener noreferrer"&gt;https://insights.sei.cmu.edu/blog/information-visualization-as-a-devops-monitoring-tool/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema" rel="noopener noreferrer"&gt;https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cloud.google.com/blog/products/devops-sre/using-the-four-keys-to-measure-your-devops-performance" rel="noopener noreferrer"&gt;https://cloud.google.com/blog/products/devops-sre/using-the-four-keys-to-measure-your-devops-performance&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>productivity</category>
      <category>tooling</category>
      <category>datascience</category>
    </item>
  </channel>
</rss>
