<?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: mahir dasare</title>
    <description>The latest articles on DEV Community by mahir dasare (@mahir_dasare_333).</description>
    <link>https://dev.to/mahir_dasare_333</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%2F1667807%2Fb3e4ac3a-e83d-4ddb-bcec-cc836649a8b7.jpg</url>
      <title>DEV Community: mahir dasare</title>
      <link>https://dev.to/mahir_dasare_333</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mahir_dasare_333"/>
    <language>en</language>
    <item>
      <title>Networking Series Day-02</title>
      <dc:creator>mahir dasare</dc:creator>
      <pubDate>Sat, 23 Aug 2025 03:11:18 +0000</pubDate>
      <link>https://dev.to/mahir_dasare_333/networking-series-day-02-569m</link>
      <guid>https://dev.to/mahir_dasare_333/networking-series-day-02-569m</guid>
      <description>&lt;p&gt;Think of Border Gateway Protocol (BGP) as the internet's global positioning system (GPS) that maps the routes between major networks. These major networks, like those belonging to large ISPs, universities, or corporations, are called Autonomous Systems (AS). Each AS is identified by a unique Autonomous System Number (ASN).&lt;/p&gt;

&lt;p&gt;How BGP Works: A Deeper Look&lt;br&gt;
Instead of calculating the shortest distance, BGP operates as a path-vector protocol. This means it doesn't just look at how "far" a destination is; it looks at the entire path (the sequence of ASNs) a data packet will take to get there.&lt;/p&gt;

&lt;p&gt;Peer Connection: Two BGP routers (known as "peers") in different ASes form a TCP connection on port 179. They exchange OPEN messages to set up the session, including their ASNs and capabilities.&lt;/p&gt;

&lt;p&gt;Route Advertisement: Once the connection is established, BGP peers send route advertisements in UPDATE messages. These advertisements don't just say, "I can reach this network." Instead, they include a rich set of path attributes that describe the path to that network. The most important attribute is the AS Path, which is a list of all the ASNs the route has passed through.&lt;/p&gt;

&lt;p&gt;Loop Prevention: BGP’s path-vector nature is a powerful tool for preventing routing loops. When a router receives a route advertisement, it checks the AS Path. If it sees its own ASN already in the list, it knows the route has been advertised back to it and will ignore that path to avoid a loop.&lt;/p&gt;

&lt;p&gt;Route Selection: A BGP router might receive multiple advertisements for the same destination network from different peers. To choose the "best" path, it uses a complex, step-by-step algorithm that evaluates the path attributes in a specific, prioritized order.&lt;/p&gt;

&lt;p&gt;Weight: (Cisco proprietary) The highest value is preferred.&lt;/p&gt;

&lt;p&gt;Local Preference: The highest value is preferred. This attribute is exchanged within an AS to control the preferred exit path to the internet.&lt;/p&gt;

&lt;p&gt;AS Path Length: The path with the fewest ASNs is generally preferred. This is a primary factor in traffic engineering and a core part of BGP's design.&lt;/p&gt;

&lt;p&gt;Origin Type: BGP prefers routes that were originated within an AS over those learned from other protocols.&lt;/p&gt;

&lt;p&gt;MED (Multi-Exit Discriminator): The lowest value is preferred. An AS can use this attribute to influence how traffic from another AS enters its network when there are multiple connection points.&lt;/p&gt;

&lt;p&gt;and many more tie-breaking rules, including a preference for eBGP over iBGP, lowest IGP metric to the BGP next-hop, and lowest router ID.&lt;/p&gt;

&lt;p&gt;This entire process, from neighbor discovery to path selection, makes BGP incredibly robust and flexible, allowing network administrators to implement detailed routing policies and manage the flow of traffic across the internet.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Networking Series Day--01</title>
      <dc:creator>mahir dasare</dc:creator>
      <pubDate>Sat, 23 Aug 2025 03:00:26 +0000</pubDate>
      <link>https://dev.to/mahir_dasare_333/networking-series-day-01-4kp4</link>
      <guid>https://dev.to/mahir_dasare_333/networking-series-day-01-4kp4</guid>
      <description>&lt;p&gt;🌐 Networking Series – Day 1: Routing Essentials&lt;br&gt;
Routing is the heart of networking—it decides how data travels from source to destination. Let’s explore:&lt;br&gt;
🔹 Static Routing&lt;br&gt;
Manually configured routes.&lt;br&gt;
✅ Simple and secure, ⚠️ not scalable.&lt;br&gt;
🔹 Dynamic Routing&lt;br&gt;
Protocols automatically discover/update routes.&lt;br&gt;
✅ Scalable, ✅ Fault-tolerant, ⚠️ Resource intensive.&lt;br&gt;
Important Protocols:&lt;br&gt;
RIP (Routing Information Protocol): Hop-count metric, max 15 hops. Simple but not scalable.&lt;br&gt;
OSPF (Open Shortest Path First): Link-state protocol, uses Dijkstra’s Algorithm, supports areas for scalability.&lt;br&gt;
EIGRP (Enhanced IGRP): Cisco proprietary, fast convergence, balances simplicity and efficiency.&lt;br&gt;
🔹 Default Route&lt;br&gt;
A “catch-all” route (0.0.0.0/0) when no specific route exists.&lt;/p&gt;

&lt;p&gt;💡 Takeaway: Routing protocols are the brain of network communication—choosing the right one depends on network size and needs.&lt;/p&gt;

&lt;p&gt;hashtag#Networking hashtag#Routing hashtag#RIP hashtag#OSPF hashtag#EIGRP hashtag#DevOps&lt;/p&gt;

</description>
    </item>
    <item>
      <title>CI/CD Pipeline</title>
      <dc:creator>mahir dasare</dc:creator>
      <pubDate>Thu, 24 Jul 2025 04:08:59 +0000</pubDate>
      <link>https://dev.to/mahir_dasare_333/cicd-pipeline-project-22lp</link>
      <guid>https://dev.to/mahir_dasare_333/cicd-pipeline-project-22lp</guid>
      <description>&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%2Feaajguhnj1b2xpunkq9l.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%2Feaajguhnj1b2xpunkq9l.png" alt=" " width="800" height="308"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cicd</category>
      <category>devops</category>
      <category>softwaredevelopment</category>
      <category>automation</category>
    </item>
    <item>
      <title>The /proc Filesystem</title>
      <dc:creator>mahir dasare</dc:creator>
      <pubDate>Thu, 19 Jun 2025 11:27:52 +0000</pubDate>
      <link>https://dev.to/mahir_dasare_333/the-proc-filesystem-3dm9</link>
      <guid>https://dev.to/mahir_dasare_333/the-proc-filesystem-3dm9</guid>
      <description>&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%2F5x8exlf42bcthc2d10qw.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%2F5x8exlf42bcthc2d10qw.png" alt=" " width="643" height="518"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The /proc Filesystem&lt;br&gt;
Certain filesystems, like the one mounted at /proc, are called pseudo-filesystems because they have no actual permanent presence anywhere on the disk.&lt;/p&gt;

&lt;p&gt;The /proc filesystem contains virtual files (files that exist only in memory) that permit viewing constantly changing kernel data. /proc contains files and directories that mimic kernel structures and configuration information. It does not contain real files, but runtime system information, e.g. system memory, devices mounted, hardware configuration, etc. Some important entries in /proc are:&lt;/p&gt;

&lt;p&gt;/proc/cpuinfo&lt;br&gt;
/proc/interrupts&lt;br&gt;
/proc/meminfo&lt;br&gt;
/proc/mounts&lt;br&gt;
/proc/partitions&lt;br&gt;
/proc/version&lt;/p&gt;

&lt;p&gt;/proc has subdirectories as well, including:&lt;/p&gt;

&lt;p&gt;/proc/&lt;br&gt;
/proc/sys&lt;/p&gt;

&lt;p&gt;The first example shows there is a directory for every process running on the system, which contains vital information about it. The second example shows a virtual directory that contains a lot of information about the entire system, in particular its hardware and configuration. The /proc filesystem is very useful because the information it reports is gathered only as needed and never needs storage on the disk.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The API Lifecycle</title>
      <dc:creator>mahir dasare</dc:creator>
      <pubDate>Tue, 17 Jun 2025 19:57:20 +0000</pubDate>
      <link>https://dev.to/mahir_dasare_333/the-api-lifecycle-4j9a</link>
      <guid>https://dev.to/mahir_dasare_333/the-api-lifecycle-4j9a</guid>
      <description>&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%2F3vpnq1d3beqnd1wr8msq.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%2F3vpnq1d3beqnd1wr8msq.png" alt=" " width="513" height="711"&gt;&lt;/a&gt;This lifecycle was created by the OpenAPI Initiative to explain how OpenAPI can be used throughout the development and deployment of APIs:&lt;/p&gt;

&lt;p&gt;Providing and using an OpenAPI Specification (OAS) document is not, however, a point-in-time activity. It is fundamental to the API lifecycle, providing affordances for all activities from the inception of the design right through to deployment and support. If an API lifecycle is a transport network then OAS should be considered an arterial road, providing the means to efficiently transfer large amounts of pertinent information quickly and efficiently.&lt;/p&gt;

&lt;p&gt;When one considers the API lifecycle it starts to become clear how useful an OpenAPI document is. Consider the simple API lifecycle below. It is based on the idea of API-first design, where the interface is designed without writing a stitch of implementation code. OAS can be used at each stage in this lifecycle.&lt;br&gt;
An API lifecycle within an organization clearly has more nuances than the steps described above, and will undoubtedly be tailored towards the software development lifecycle in use. An agile methodology may, for example, iterate over the steps shown above many times. However, for the purposes of exemplar this simplified view has merit as it shows the utility of OAS at each stage.&lt;/p&gt;

&lt;p&gt;Using OAS to help elicit requirements&lt;br&gt;
The first step in our conceptional lifecycle is Requirements, where ideas about an API start to take shape. “Taking shape” covers a multitude of different activities – some technical, some not. Requirements gathering in most organizations stretches back into the business, working with the product team to define what the API should provide for its consumers and that support a holistic view of the product features.&lt;/p&gt;

&lt;p&gt;Technologists working on bringing those requirements need some means to convey them. OAS provides the means to support this in an agnostic and portable way. It also provides the means to do this quickly and be able to socialize their ideas with other stakeholders with minimal set-up.&lt;/p&gt;

&lt;p&gt;Having a sketch of your API design in OAS when gathering requirements gives you a headstart when starting design.&lt;/p&gt;

&lt;p&gt;OAS in development&lt;br&gt;
Once an API design has been created the time has come to write some code and create an implementation of that API in software. Acting on the output design process means working with the OpenAPI document to help bring your application to life.&lt;/p&gt;

&lt;p&gt;Our conception lifecycle assumes an API-first design approach, where the OpenAPI document is created upfront and code is then written to create the implementation. There is, of course, the “code-first” approach where the implementation is created and then (typically) annotated so an OpenAPI document can then be generated.&lt;/p&gt;

&lt;p&gt;The pros and cons of both approaches are beyond the scope of this post, but if you take the API first approach then having the design detailed in an OpenAPI document is critical to your implementation. The OAS has a rich tooling ecosystem and using the OpenAPI document to generate server-side code is a common approach to automating the creation of controller classes. This speeds up the delivery of the implementation and helps ensure the interface design and the implementation are closely-matched.&lt;/p&gt;

&lt;p&gt;Implementing your API in code is, however, only one of the subsequent steps in the lifecycle. Other activities rely on OAS to be completed successfully.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why Code-first Works</title>
      <dc:creator>mahir dasare</dc:creator>
      <pubDate>Fri, 13 Jun 2025 20:28:34 +0000</pubDate>
      <link>https://dev.to/mahir_dasare_333/why-code-first-works-23c4</link>
      <guid>https://dev.to/mahir_dasare_333/why-code-first-works-23c4</guid>
      <description>&lt;p&gt;Design-first has many benefits for rapid prototyping and shaping ideas. However, code-first is probably the more mature of the two design methodologies discussed in this chapter. The reason for this is quite simple: Implementation code predated API description languages, which in turn were born from the need to produce a schematic representation of an API for consumption outside the code base. The API economy and software engineering in general have had this need for a long time. We cannot simply throw open our code repositories and invite any external collaborators in to view our implementation code. We need the means to describe the shape of our API outside our safe and secure codebase. That fact is true regardless of whether we are going with code-first or design-first, but it's all the more pertinent in the code-first world. The reason that API description languages came into being is so that developers could automatically generate API-related documentation based on the shape of their implementation code and provide the description to external consumers.&lt;/p&gt;

&lt;p&gt;The methodology is generally as follows:&lt;/p&gt;

&lt;p&gt;Write implementation code that reflects a given interaction with the API.&lt;br&gt;
Implement routing to provide request and response operations.&lt;br&gt;
Apply meaningful annotations that can transpose the "shape" of the code to an API description document.&lt;br&gt;
Generate the API description document at build time, source control it, and distribute the document to interested parties.&lt;br&gt;
This approach has grown organically, matured over time, and is not unique to OpenAPI. There is also a huge number of packages that support code-first. We have two examples in the following sections that use springdoc-openapi and APIFlask, written in Java and Python respectively, to demonstrate how code-first works with popular programming languages and frameworks. In both examples, we will use the stripped-down Petstore API we created in the design-first section as the implementation requirement, and show how this OpenAPI description would be generated from code.&lt;/p&gt;

</description>
      <category>api</category>
      <category>openshift</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>How Security Requirements are Implemented in OpenAPI</title>
      <dc:creator>mahir dasare</dc:creator>
      <pubDate>Fri, 13 Jun 2025 20:21:47 +0000</pubDate>
      <link>https://dev.to/mahir_dasare_333/how-security-requirements-are-implemented-in-openapi-535e</link>
      <guid>https://dev.to/mahir_dasare_333/how-security-requirements-are-implemented-in-openapi-535e</guid>
      <description>&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%2F2vanvfd71oms1tbacava.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%2F2vanvfd71oms1tbacava.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;OpenAPI currently provides support for five different security schemes through the Security Scheme Object, including the following:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API Key (apiKey):&lt;/strong&gt; API keys are a popular means for providing a coarse-grained security credential to API consumers. The popularity of API keys has waned somewhat, largely due to the fact they are not protocol-bound and therefore not standardized, and because they provide limited proofs-of-possession. However, they continue to be provided in OpenAPI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTTP (http):&lt;/strong&gt; HTTP provides a pointer to any valid security scheme in the IANA Authentication Scheme registry. While there are several entries in this registry, probably the most popular are Basic Authentication - essentially a username and password - and Bearer Tokens in the context of OAuth 2.0.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mutual TLS (mutualTLS):&lt;/strong&gt; Mutual TLS is a security mechanism that is popular in financial service APIs as it enforces the verification of x509 certificates at both the client and the server. OpenAPI provides limited built-in metadata for this Security Scheme, and API providers must provide additional details to describe specifics like accepted certificate authorities and supported ciphers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OAuth 2.0 (oauth2):&lt;/strong&gt; OAuth 2.0 is a fundamental building block of the API Economy as it facilitates allowing users (real human beings) to delegate their access to a third party at a given service provider. It is therefore well represented in OpenAPI, with the means to describe the most important OAuth flows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenID Connect (openIdConnect):&lt;/strong&gt; Support for OpenID Connect is supported in providing a link to the OpenID Connect Discovery metadata. While this in itself does not provide much in the way of rich metadata, it provides a pointer to a very rich document that can be programmatically parsed, allowing API consumers to access and act on this information in their applications in an automated manner.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Soft Links</title>
      <dc:creator>mahir dasare</dc:creator>
      <pubDate>Thu, 12 Jun 2025 19:23:12 +0000</pubDate>
      <link>https://dev.to/mahir_dasare_333/soft-links-2oe4</link>
      <guid>https://dev.to/mahir_dasare_333/soft-links-2oe4</guid>
      <description>&lt;p&gt;Soft (or Symbolic) links are created with the -s option, as in:&lt;/p&gt;

&lt;p&gt;$ ln -s file1 file3&lt;br&gt;
$ ls -li file1 file3&lt;/p&gt;

&lt;p&gt;Notice file3 no longer appears to be a regular file, and it clearly points to file1 and has a different inode number.&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%2Ffptva9ohc9kdkqe9iqvq.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%2Ffptva9ohc9kdkqe9iqvq.png" alt=" " width="800" height="284"&gt;&lt;/a&gt;ymbolic links take no extra space on the filesystem (unless their names are very long). They are extremely convenient, as they can easily be modified to point to different places. An easy way to create a shortcut from your home directory to long pathnames is to create a symbolic link.&lt;/p&gt;

&lt;p&gt;Unlike hard links, soft links can point to objects even on different filesystems, partitions, and/or disks and other media, which may or may not be currently available or even exist. In the case where the link does not point to a currently available or existing object, you obtain a dangling link.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Hard Links</title>
      <dc:creator>mahir dasare</dc:creator>
      <pubDate>Thu, 12 Jun 2025 19:06:32 +0000</pubDate>
      <link>https://dev.to/mahir_dasare_333/hard-links-3aep</link>
      <guid>https://dev.to/mahir_dasare_333/hard-links-3aep</guid>
      <description>&lt;p&gt;The ln utility is used to create hard links and (with the -s option) soft links, also known as symbolic links or symlinks. These two kinds of links are very useful in UNIX-based operating systems.&lt;/p&gt;

&lt;p&gt;Suppose that file1 already exists. A hard link, called file2, is created with the command:&lt;/p&gt;

&lt;p&gt;$ ln file1 file2&lt;/p&gt;

&lt;p&gt;Note that two files now appear to exist. However, a closer inspection of the file listing shows that this is not quite true.&lt;/p&gt;

&lt;p&gt;$ ls -li file1 file2&lt;/p&gt;

&lt;p&gt;The -i option to ls prints out in the first column the inode number, which is a unique quantity for each file object. This field is the same for both of these files; what is really going on here is that it is only one file, but it has more than one name associated with it, as is indicated by the 2 that appears in the ls output. Thus, there was already another object linked to file1 before the command was executed.&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%2Fcwozrz7asg6ml96gh113.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%2Fcwozrz7asg6ml96gh113.png" alt=" " width="777" height="177"&gt;&lt;/a&gt;&lt;br&gt;
Hard links are very useful and they save space, but you have to be careful with their use, sometimes in subtle ways. For one thing, if you remove either file1 or file2 in the example, the inode object (and the remaining file name) will remain, which might be undesirable, as it may lead to subtle errors later if you recreate a file of that name.&lt;/p&gt;

&lt;p&gt;If you edit one of the files, exactly what happens depends on your editor; most editors, including vi and gedit, will retain the link by default, but it is possible that modifying one of the names may break the link and result in the creation of two objects&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Security IAM Role</title>
      <dc:creator>mahir dasare</dc:creator>
      <pubDate>Thu, 12 Jun 2025 11:08:15 +0000</pubDate>
      <link>https://dev.to/mahir_dasare_333/security-iam-role-3976</link>
      <guid>https://dev.to/mahir_dasare_333/security-iam-role-3976</guid>
      <description>&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%2F9ms7zyigumf9072hu8u4.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%2F9ms7zyigumf9072hu8u4.png" alt=" " width="726" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For AWS Lambda to run, we need to define an IAM role. This specifies which AWS subsystems can call the lambda, and what AWS operations this lambda invokes.&lt;/p&gt;

&lt;p&gt;Our role specifies that the lambda subsystem lambda.amazonaws.com can call our lambda, and that our lambda can write any logs. While this is slightly unsafe, it enables us to apply this role to all of our lambdas.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>lambda</category>
      <category>iam</category>
      <category>security</category>
    </item>
    <item>
      <title>Monolithic vs Microservices</title>
      <dc:creator>mahir dasare</dc:creator>
      <pubDate>Mon, 09 Jun 2025 18:12:48 +0000</pubDate>
      <link>https://dev.to/mahir_dasare_333/monolithic-vs-microservices-4ef8</link>
      <guid>https://dev.to/mahir_dasare_333/monolithic-vs-microservices-4ef8</guid>
      <description>&lt;p&gt;&lt;strong&gt;Monolithic vs Microservices&lt;br&gt;
Monolithic Architecture:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single codebase&lt;/li&gt;
&lt;li&gt;Tightly coupled components&lt;/li&gt;
&lt;li&gt;Difficult to scale individual features&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Suitable for small-scale applications&lt;br&gt;
Microservices Architecture:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Application broken into smaller, independent services&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Services communicate via APIs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Easier to scale and deploy independently&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ideal for complex and scalable applications&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;_Kubernetes Architecture&lt;/strong&gt;&lt;br&gt;
_To understand the architecture and components of your Kubernetes cluster:&lt;/p&gt;

&lt;p&gt;kubectl cluster-info&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Display cluster information (API server, DNS, etc.)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Setup on Local/AWS EC2&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
Create a local Kubernetes cluster using Kind (Kubernetes IN Docker):&lt;br&gt;
kind create cluster --name tws-cluster --config=config.yml&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Creates a Kind cluster with the given name and configuration&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Set the context to the newly created cluster:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;kubectl config use-context kind-tws-cluster&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Switch to the context of the Kind cluster&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Kubectl and Pods&lt;/strong&gt;&lt;br&gt;
kubectl get nodes&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;List all nodes in the cluster&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;kubectl run nginx --image=nginx -n nginx&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Create an nginx pod in the 'nginx' namespace&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;kubectl describe pod nginx -n nginx&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Show detailed information about the nginx pod&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;_Namespaces, Labels, Selectors, and Annotations&lt;br&gt;
_&lt;br&gt;
kubectl create namespace monitoring&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Create a namespace named 'monitoring'&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;kubectl get namespaces&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;List all namespaces in the cluster&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;kubectl label namespace monitoring team=devops&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Add a label 'team=devops' to the 'monitoring' namespace&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;kubectl describe namespace monitoring&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Display detailed information about the 'monitoring' namespace&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Workloads&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Deployments&lt;/em&gt;&lt;br&gt;
kubectl apply -f deployment.yml&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Deploy a workload defined in deployment.yml&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;kubectl scale deployment nginx-deployment --replicas=3 -n nginx&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Scale the nginx deployment to 3 replicas&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;StatefulSets&lt;/em&gt;&lt;/strong&gt;_&lt;br&gt;
_kubectl apply -f statefulset.yml&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Deploy a StatefulSet using the configuration file&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;kubectl describe statefulset mysql -n database&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Display detailed information about the 'mysql' StatefulSet&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;*&lt;em&gt;DaemonSets&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
kubectl apply -f daemonset.yml&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Deploy a DaemonSet to run pods on every node&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;kubectl describe daemonset fluentd -n logging&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Show details about the 'fluentd' DaemonSet&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;ReplicaSets&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;kubectl apply -f replicaset.yml&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Deploy a ReplicaSet using the specified YAML file&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;kubectl describe replicaset nginx-replicaset -n nginx&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Show detailed information about the 'nginx-replicaset'&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Jobs and CronJobs&lt;/p&gt;

&lt;p&gt;kubectl apply -f job.yml&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Deploy a one-time Job using job.yml&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;kubectl apply -f cronjob.yml&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Deploy a CronJob to schedule recurring tasks&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;END&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>ai</category>
    </item>
    <item>
      <title>Wired and Wireless Connections</title>
      <dc:creator>mahir dasare</dc:creator>
      <pubDate>Fri, 06 Jun 2025 16:51:08 +0000</pubDate>
      <link>https://dev.to/mahir_dasare_333/wired-and-wireless-connections-3hcb</link>
      <guid>https://dev.to/mahir_dasare_333/wired-and-wireless-connections-3hcb</guid>
      <description>&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%2Fi1a3hwa19d4a620hg4oe.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%2Fi1a3hwa19d4a620hg4oe.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;Wired connections usually do not require complicated or manual configuration. The hardware interface and signal presence are automatically detected, and then Network Manager sets the actual network settings via Dynamic Host Configuration Protocol (DHCP).&lt;/p&gt;

&lt;p&gt;For static configurations that do not use DHCP, manual setup can also be done easily through Network Manager. You can also change the Ethernet Media Wired and Wireless Connections&lt;br&gt;
Wired connections usually do not require complicated or manual configuration. The hardware interface and signal presence are automatically detected, and then Network Manager sets the actual network settings via Dynamic Host Configuration Protocol (DHCP).&lt;/p&gt;

&lt;p&gt;For static configurations that do not use DHCP, manual setup can also be done easily through Network Manager. You can also change the Ethernet Media Access Control (MAC) address if your hardware supports it. The MAC address is a unique hexadecimal number of your network card.&lt;/p&gt;

&lt;p&gt;Wireless networks are usually not connected by default. You can view the list of available wireless networks and see which one (if any) you are currently connected to by using Network Manager. You can then add, edit, or remove known wireless networks, and also specify which ones you want connected by default when present.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
