<?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"><channel><title><![CDATA[Harshal yadav]]></title><description><![CDATA[I'm Harshal Yadav full stack web developer, ML, and DevOps.]]></description><link>https://blog.harshalyadav.in</link><generator>RSS for Node</generator><lastBuildDate>Mon, 20 Apr 2026 21:41:38 GMT</lastBuildDate><atom:link href="https://blog.harshalyadav.in/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Callback Function and Callback Return]]></title><description><![CDATA[Callback Function
A function passed as an argument to another function, which is then executed inside that function.Callbacks are commonly used in asynchronous programming, where operations (like I/O tasks) are completed without blocking the main thr...]]></description><link>https://blog.harshalyadav.in/callback-function-and-callback-return</link><guid isPermaLink="true">https://blog.harshalyadav.in/callback-function-and-callback-return</guid><category><![CDATA[callback retrun]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[js]]></category><category><![CDATA[callback]]></category><category><![CDATA[callback functions]]></category><category><![CDATA[functions]]></category><category><![CDATA[Callback Functions In JavaScript]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Wed, 31 Jul 2024 18:02:51 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1722448470294/6eb99289-6e49-4194-a3c6-aa3d3db08468.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-callback-function">Callback Function</h3>
<p>A function passed as an argument to another function, which is then executed inside that function.<br />Callbacks are commonly used in asynchronous programming, where operations (like I/O tasks) are completed without blocking the main thread.</p>
<p><strong>Example</strong>:</p>
<pre><code class="lang-markdown">function fetchData(callback) {
  // Simulate an asynchronous operation using setTimeout
  setTimeout(() =&gt; {
<span class="hljs-code">    // Simulated data retrieval
    const data = "Here is your data!";
</span>
<span class="hljs-code">    // Invoke the callback with the data
    callback(data);
  }, 2000);
}
</span>
function processData(data) {
  console.log("Processing data:", data);
}

// Call fetchData with processData as the callback
fetchData(processData);
</code></pre>
<p>In this example:</p>
<ul>
<li><p><code>fetchData</code> is a function that accepts a callback function as an argument.</p>
</li>
<li><p><code>processData</code> is the callback function that is called once the asynchronous operation (simulated by <code>setTimeout</code>) is complete.</p>
</li>
<li><p>Output :- <code>Processing data: Here is your data!</code></p>
</li>
</ul>
<h3 id="heading-callback-return">Callback Return</h3>
<p>When a callback function is invoked, it can also return a value. However, in the context of asynchronous operations, the return value of a callback function is typically not used because the main function's execution flow has already moved on.</p>
<p><strong>Example</strong>:</p>
<pre><code class="lang-markdown">function add(a, b, callback) {
  const result = a + b;
  return callback(result);
}

function displayResult(result) {
  console.log("The result is:", result);
  return result; // Return value of the callback
}

const sum = add(5, 3, displayResult);
console.log("Returned value:", sum); // This logs the returned value from displayResult
</code></pre>
<p>In this example:</p>
<ul>
<li><p><code>add</code> is a function that takes two numbers and a callback function as arguments.</p>
</li>
<li><p><code>displayResult</code> is the callback function, which logs the result and returns it.</p>
</li>
<li><p>Output:- <code>The result is: 8</code></p>
<p>  <code>Returned value: 8</code></p>
</li>
</ul>
<p>The key points about callbacks and their return values:</p>
<ol>
<li><p><strong>Execution Context</strong>: The return value of a callback is only relevant within the context of the callback itself. The calling function (<code>add</code> in the example) can use this return value if needed.</p>
</li>
<li><p><strong>Asynchronous Context</strong>: In asynchronous functions, the main function often does not wait for the callback to complete, so returning a value from the callback may not affect the main function's execution. This is why callbacks in asynchronous operations typically don't return values intended to affect the main function's flow.</p>
</li>
</ol>
<h3 id="heading-summary">Summary</h3>
<ul>
<li><p><strong>Callback Function</strong>: A function passed as an argument to another function, executed later.</p>
</li>
<li><p><strong>Callback Return</strong>: The value returned by a callback function, usually not used in asynchronous contexts.</p>
</li>
</ul>
<p>Callbacks are fundamental in JavaScript, especially in handling asynchronous operations such as API calls, file reading, and more.</p>
<p>We are committed to delivering content that informs, inspires, and resonates with you. Your comments, and shared insights fuel our passion to continue creating valuable content.<br />As we move forward, we invite you to stay connected with us. Feel free to share your thoughts in the comments.<br />Once again, thank you for being a part of our community. We look forward to continuing this journey together.</p>
]]></content:encoded></item><item><title><![CDATA[Event loop]]></title><description><![CDATA[JavaScript is a language that excels at handling asynchronous operations. Its ability to manage tasks like API calls, file reading, and timers without blocking the main thread is powered by a fundamental concept known as the event loop.In this blog p...]]></description><link>https://blog.harshalyadav.in/event-loop</link><guid isPermaLink="true">https://blog.harshalyadav.in/event-loop</guid><category><![CDATA[js]]></category><category><![CDATA[Node.js]]></category><category><![CDATA[Developer]]></category><category><![CDATA[MERN Stack]]></category><category><![CDATA[WeMakeDevs]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Tue, 30 Jul 2024 11:04:34 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1722336968891/a948136a-94d7-4b0a-bed7-9e217344a400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>JavaScript is a language that excels at handling asynchronous operations. Its ability to manage tasks like API calls, file reading, and timers without blocking the main thread is powered by a fundamental concept known as the <strong>event loop</strong>.<br />In this blog post, we'll explore what the event loop is, how it works, and why it's essential for building responsive, high-performance web applications.</p>
<h2 id="heading-what-is-the-event-loop">What is the Event Loop?</h2>
<p>The <strong>event loop</strong> is a core mechanism that enables JavaScript to perform non-blocking operations, despite being single-threaded. It allows the execution of multiple operations by offloading tasks to the browser or Node.js and running a main loop that checks if tasks are ready to execute.</p>
<h2 id="heading-key-components-of-the-event-loop">Key Components of the Event Loop</h2>
<p>To understand the event loop, it's crucial to know its key components:</p>
<ol>
<li><p><strong>Call Stack</strong>: The call stack keeps track of function calls in the program. When a function is called, it gets added to the stack, and when the function returns, it gets removed from the stack.</p>
</li>
<li><p><strong>Web APIs</strong>: These are provided by the browser (or Node.js) and include functionalities like <code>setTimeout</code>, <code>DOM events</code>, and HTTP requests.</p>
</li>
<li><p><strong>Task Queue</strong>: Also known as the macrotask queue, this is where callback functions from web APIs are queued up to be executed.</p>
</li>
<li><p><strong>Microtask Queue</strong>: This queue holds microtasks such as promise callbacks and <code>process.nextTick</code> in Node.js.</p>
</li>
</ol>
<h2 id="heading-how-the-event-loop-works">How the Event Loop Works</h2>
<p>Here's a step-by-step breakdown of how the event loop works:</p>
<ol>
<li><p><strong>Execution Starts</strong>: The JavaScript engine starts executing code from the top of the file, pushing functions onto the call stack.</p>
</li>
<li><p><strong>Function Calls</strong>: As functions are called, they are pushed onto the call stack. When they return, they are popped off the stack.</p>
</li>
<li><p><strong>Handling Asynchronous Operations</strong>: When an asynchronous operation like <code>setTimeout</code> or a promise is encountered, it is sent to the appropriate Web API.</p>
</li>
<li><p><strong>Web API Completes Task</strong>: Once the Web API completes the task, it pushes the callback function to the task queue (macrotask queue) or the microtask queue.</p>
</li>
<li><p><strong>Event Loop Cycle</strong>:</p>
<ul>
<li><p>The event loop checks the call stack. If it's empty, it checks the microtask queue and executes all microtasks.</p>
</li>
<li><p>After the microtask queue is empty, the event loop picks the first task from the macrotask queue and pushes it onto the call stack for execution.</p>
</li>
<li><p>This process repeats, ensuring that tasks are handled efficiently without blocking the main thread.</p>
</li>
</ul>
</li>
</ol>
<h2 id="heading-macrotasks-vs-microtasks">Macrotasks vs. Microtasks</h2>
<h3 id="heading-macrotasks">Macrotasks</h3>
<p>Macrotasks (or tasks) include operations like <code>setTimeout</code>, <code>setInterval</code>, and I/O events. They are queued in the macrotask queue and are executed in the order they were added.</p>
<h3 id="heading-microtasks">Microtasks</h3>
<p>Microtasks include promise callbacks and <code>process.nextTick</code> (Node.js). They are queued in the microtask queue and are executed before the event loop picks the next macrotask.</p>
<h3 id="heading-example-to-illustrate-macrotasks-and-microtasks">Example to Illustrate Macrotasks and Microtasks</h3>
<pre><code class="lang-markdown">//Synchronous code 
console.log('java script start');

//Macrotask code
setTimeout(() =&gt; {
  console.log('setTimeout');
}, 0);

//Microtasks  code
Promise.resolve().then(() =&gt; {
  console.log('promise1');
}).then(() =&gt; {
  console.log('promise2');
});

//Synchronous code 
console.log('java script end');
</code></pre>
<h4 id="heading-execution-flow">Execution Flow:</h4>
<ol>
<li><p><strong>Synchronous code</strong> runs first:</p>
<ul>
<li><p><code>console.log('java script start')</code> → logs 'script start'</p>
</li>
<li><p><code>console.log('java script end')</code> → logs 'script end'</p>
</li>
</ul>
</li>
<li><p><strong>Macrotask (</strong><code>setTimeout</code>):</p>
<ul>
<li><code>setTimeout</code> is placed in the macrotask queue to be executed after the current script.</li>
</ul>
</li>
<li><p><strong>Microtasks (Promises)</strong>:</p>
<ul>
<li><p><code>Promise.resolve().then(...)</code> → microtasks are placed in the microtask queue.</p>
</li>
<li><p>Microtasks (<code>promise1</code>, <code>promise2</code>) are executed before the macrotask (<code>setTimeout</code>).</p>
</li>
</ul>
</li>
</ol>
<h4 id="heading-output">Output:</h4>
<pre><code class="lang-markdown">java script start
java script end
promise1
promise2
setTimeout
</code></pre>
<h2 id="heading-why-the-event-loop-matters">Why the Event Loop Matters</h2>
<p>Understanding the event loop is crucial for writing efficient JavaScript code. It helps you:</p>
<ul>
<li><p><strong>Avoid Blocking the Main Thread</strong>: By leveraging asynchronous operations, you can keep the UI responsive.</p>
</li>
<li><p><strong>Manage Concurrency</strong>: The event loop allows you to handle multiple operations without complex threading mechanisms.</p>
</li>
<li><p><strong>Optimize Performance</strong>: Knowing how tasks are scheduled and executed helps in optimizing performance-critical code.</p>
</li>
</ul>
<p>We are committed to delivering content that informs, inspires, and resonates with you. Your comments, and shared insights fuel our passion to continue creating valuable content.<br />As we move forward, we invite you to stay connected with us. Feel free to share your thoughts in the comments.<br />Once again, thank you for being a part of our community. We look forward to continuing this journey together.</p>
]]></content:encoded></item><item><title><![CDATA[Learn AWS | part 4-b | Identity and Access Management (IAM) | Role | AWS account]]></title><description><![CDATA[Introduction
An AWS IAM role is a set of permissions that define what actions and resources a user, service, or application can access within the Amazon Web Services (AWS) environment.

Let's Create IAM Role:

Go to the AWS Management Console at aws....]]></description><link>https://blog.harshalyadav.in/learn-aws-part-4-b-identity-and-access-management-iam-role-aws-account</link><guid isPermaLink="true">https://blog.harshalyadav.in/learn-aws-part-4-b-identity-and-access-management-iam-role-aws-account</guid><category><![CDATA[AWS]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Blogging]]></category><category><![CDATA[#Cloud Practitioner]]></category><category><![CDATA[Associate-Cloud-Engineer Exam Dumps, ]]></category><category><![CDATA[Devops]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Sun, 05 May 2024 15:10:39 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1714913149185/6e448664-c3ba-4a4e-8d68-d427fe3ff336.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction"><strong>Introduction</strong></h2>
<p>An AWS IAM role is a set of permissions that define what actions and resources a user, service, or application can access within the Amazon Web Services (AWS) environment.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714634762343/6f780f2a-71f1-41cd-8a98-0493a8c997e6.gif?auto=format,compress&amp;gif-q=60&amp;format=webm" alt /></p>
<h3 id="heading-lets-create-iam-role">Let's Create IAM Role:</h3>
<ol>
<li><p>Go to the AWS Management Console at <a target="_blank" href="http://aws.amazon.com/and"><strong>aws.amazon.com/and</strong></a><a target="_blank" href="https://aws.amazon.com/"><strong>sign in using your AWS account credentials.</strong></a></p>
</li>
<li><p><a target="_blank" href="https://aws.amazon.com/"><strong>In AWS Management</strong></a> Console, search IAM and click on IAM.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714453974376/49b4f7f8-49e0-4cac-8cea-52f67819e467.png?auto=compress,format&amp;format=webp" alt /></p>
</li>
<li><p>In the IAM dashboard, select "Roles" from the sidebar menu. This will display a list of existing IAM roles in your account.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714454389225/d5f7cd06-cf82-4838-a235-49d7704eef49.png?auto=compress,format&amp;format=webp" alt /></p>
</li>
<li><p>To create a new IAM role, click on the "Create role" button. You'll be prompted to choose a trusted entity for the role.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714454413655/213ae7d5-52b7-47f8-b9a7-cf97e227a982.png?auto=compress,format&amp;format=webp" alt /></p>
</li>
<li><p>When selecting the type of trusted entity as 'AWS account' for an IAM role, you would specify the AWS account ID of the account that you want to grant permission to assume the role.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714912958181/bd5e6d2f-ca00-405a-859d-273fd6883721.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>After selecting the trusted entity type, you'll define the permissions associated with the IAM role. You can choose from existing IAM policies or create custom policies tailored to your specific requirements. I'm choosing the 'Amazone3FullAccess' policy. Once you've configured the permissions, proceed by clicking the 'Next' button to move on to the next step in the process.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714913035975/26f25d31-ccb1-4ab6-ac45-f0c94c1e6593.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>When providing a name and description for the IAM role, it's important to choose meaningful identifiers that accurately reflect the role's purpose and functionality. For example, I've named my role 'AccessS3'. Additionally, you have the option to attach tags to categorize and organize your resources effectively.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714913044936/9e888880-72a5-433f-ae84-3fa625e02a24.png" alt class="image--center mx-auto" /></p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714913087573/c6d0701a-ba93-4334-a8cc-f48ba622921d.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Review the configured settings to ensure everything is accurate. Once satisfied, click on the "Create role" button to finalize the creation process.  </p>
</li>
</ol>
<ol start="9">
<li><p>After creating the new role, AWS will provide a confirmation message. You can then verify the creation of the role by checking the Roles panel in the IAM dashboard.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714913123209/f01d4c39-9f6b-4f49-928d-c6aaf5c5725c.png" alt class="image--center mx-auto" /></p>
<p> We are committed to delivering content that informs, inspires, and resonates with you. Your comments, and shared insights fuel our passion to continue creating valuable content.<br /> As we move forward, we invite you to stay connected with us. Feel free to share your thoughts in the comments.<br /> Once again, thank you for being a part of our community. We look forward to continuing this journey together.</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Learn AWS | part 4-a | Identity and Access Management (IAM) | Role | AWS service]]></title><description><![CDATA[Introduction
An AWS IAM role is a set of permissions that define what actions and resources a user, service, or application can access within the Amazon Web Services (AWS) environment.  

Let's Create IAM Role:

Go to the AWS Management Console at aw...]]></description><link>https://blog.harshalyadav.in/learn-aws-part-4-a-identity-and-access-management-iam-role-aws-service</link><guid isPermaLink="true">https://blog.harshalyadav.in/learn-aws-part-4-a-identity-and-access-management-iam-role-aws-service</guid><category><![CDATA[AWS]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Devops]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Thu, 02 May 2024 07:30:28 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1714450765504/442f0c34-a140-4a2e-af60-026ed64183b2.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction">Introduction</h2>
<p>An AWS IAM role is a set of permissions that define what actions and resources a user, service, or application can access within the Amazon Web Services (AWS) environment.  </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714634762343/6f780f2a-71f1-41cd-8a98-0493a8c997e6.gif" alt class="image--center mx-auto" /></p>
<h3 id="heading-lets-create-iam-role">Let's Create IAM Role:</h3>
<ol>
<li><p>Go to the AWS Management Console at <a target="_blank" href="http://aws.amazon.com/and"><strong>aws.amazon.com/and</strong></a><a target="_blank" href="https://aws.amazon.com/"><strong>sign in using your AWS account credentials.</strong></a></p>
</li>
<li><p><a target="_blank" href="https://aws.amazon.com/"><strong>In AWS Management</strong></a> Console, search IAM and click on IAM.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714453974376/49b4f7f8-49e0-4cac-8cea-52f67819e467.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>In the IAM dashboard, select "Roles" from the sidebar menu. This will display a list of existing IAM roles in your account.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714454389225/d5f7cd06-cf82-4838-a235-49d7704eef49.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>To create a new IAM role, click on the "Create role" button. You'll be prompted to choose a trusted entity for the role.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714454413655/213ae7d5-52b7-47f8-b9a7-cf97e227a982.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Choose the type of trusted entity, I'm choose "AWS Service".<br /> <strong>AWS service:</strong> Allows AWS services to assume the role on behalf of your resource.<br /> If you're granting permissions to an AWS service like EC2, Lambda, or others to perform actions within your AWS account, select 'AWS service.' This allows AWS services to assume the role on behalf of your resource. Once you've selected the relevant service or use case, proceed by clicking the 'Next' button to move on to the next step in the process.  </p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714454011089/c917d6e2-e053-4b3e-9107-dac475b6bdf1.png" alt class="image--center mx-auto" /></p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714566711134/be75dd74-ac1c-484d-a9cd-8615236d5cef.png" alt class="image--center mx-auto" /></p>
</li>
</ol>
<ol start="6">
<li><p>After selecting the trusted entity type, you'll define the permissions associated with the IAM role. You can choose from existing IAM policies or create custom policies tailored to your specific requirements. I'm choosing the 'AdministratorAccess' policy and the 'AdministratorAccess-Amplify' policy. Once you've configured the permissions, proceed by clicking the 'Next' button to move on to the next step in the process.  </p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714564946818/f688933b-5cb6-4507-956a-567fca8ff7ce.png" alt class="image--center mx-auto" /></p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714566485147/66810b9d-44ff-4a70-bbd0-5fbd9a84d0ff.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>When providing a name and description for the IAM role, it's important to choose meaningful identifiers that accurately reflect the role's purpose and functionality. For example, I've named my role 'ec2Role' and provided the description 'Allows EC2 instances to call AWS services on your behalf,' clearly outlining the role's intended use. Additionally, you have the option to attach tags to categorize and organize your resources effectively.  </p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714566355176/27240aeb-9176-44dd-9ccc-9cb441e28a1c.png" alt class="image--center mx-auto" /></p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714566416814/629a36cf-bb36-429f-aa2c-234055c33521.png" alt class="image--center mx-auto" /></p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714566452851/0ecb9ea5-3629-4c6d-bd02-05235dc6d6c6.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Review the configured settings to ensure everything is accurate. Once satisfied, click on the "Create role" button to finalize the creation process.  </p>
</li>
</ol>
<ol start="9">
<li><p>After creating the new role, AWS will inform you with a confirmation message indicating that the role has been successfully created.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1714566607905/44e14cde-90c9-44b7-9911-ea3bb59781f1.png" alt class="image--center mx-auto" /></p>
<p> We are committed to delivering content that informs, inspires, and resonates with you. Your comments, and shared insights fuel our passion to continue creating valuable content.<br /> As we move forward, we invite you to stay connected with us. Feel free to share your thoughts in the comments.<br /> Once again, thank you for being a part of our community. We look forward to continuing this journey together.</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Learn AWS | part 3-c-iii | Identity and Access Management (IAM) | Users | Copy permissions]]></title><description><![CDATA[Introduction
1> IAM allows you to create and manage individual users within your AWS account. 2> Each user is assigned unique security credentials, such as a username and password or access keys.3> This level of granularity ensures that each entity a...]]></description><link>https://blog.harshalyadav.in/learn-aws-part-3-c-iii-identity-and-access-management-iam-users-copy-permissions</link><guid isPermaLink="true">https://blog.harshalyadav.in/learn-aws-part-3-c-iii-identity-and-access-management-iam-users-copy-permissions</guid><category><![CDATA[AWS]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Devops]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Wed, 24 Apr 2024 09:50:40 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1713953827869/7173d034-bab3-4e88-9348-79cfb644493e.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<p>1&gt; IAM allows you to create and manage individual users within your AWS account. 2&gt; Each user is assigned unique security credentials, such as a username and password or access keys.<br />3&gt; This level of granularity ensures that each entity accessing your AWS resources has a distinct identity.</p>
<h3 id="heading-creating-an-iam-identity-and-access-management-user"><strong>Creating an IAM (Identity and Access Management) User.</strong></h3>
<ol>
<li><p>Go to the AWS Management Console at <a target="_blank" href="http://aws.amazon.com/and"><strong>aws.amazon.com/and</strong></a><a target="_blank" href="https://aws.amazon.com/"><strong>sign in using your AWS account credentials.</strong></a></p>
</li>
<li><p><a target="_blank" href="https://aws.amazon.com/"><strong>In AWS Management</strong></a> Console, search IAM and click on IAM.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712121121898/8611b54c-1b04-4c6d-b246-7a409025bfd2.png?auto=compress,format&amp;format=webp&amp;auto=compress,format&amp;format=webp" alt /></p>
</li>
<li><p>In the IAM dashboard, click on the "Users" option on the left-hand side menu. This will display a list of existing IAM users if any.</p>
</li>
<li><p><a target="_blank" href="https://aws.amazon.com/"><strong>Click on 'Create user'</strong></a> button to create a new user.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712121248526/247b8bf6-1c5e-4e0e-a60c-302692381fe8.png?auto=compress,format&amp;format=webp&amp;auto=compress,format&amp;format=webp" alt /></p>
</li>
<li><p>Enter a name for your User. Choose a descriptive name that reflects the purpose.</p>
</li>
<li><p>Checked Provide user access to the AWS Management Console - <em>optional and select</em> I want to create an IAM user.</p>
</li>
<li><p>Choose Custom password and enter your desired password.</p>
</li>
<li><p>Uncheck the box that says "Users must create a new password at next sign-in - Recommended." If you do not select this option, the user will retain the custom password you provided without being prompted to change it at their next sign-in.</p>
</li>
<li><p>Click on the 'Next' button to proceed with the user creation process.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1713951220188/3b196e29-e269-40ae-a6c4-c95618201535.png" alt /></p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1713019441724/06f5fc0b-7155-4a17-b1a5-086ce069a427.png?auto=compress,format&amp;format=webp" alt /></p>
</li>
<li><p>In the Permissions options, use the 'Copy permissions' option to grant specific permissions to a user.</p>
</li>
<li><p>Select user to copy their permission.</p>
</li>
<li><p>Click on the 'Next' button to proceed with the user creation process.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1713951247331/4d0fc772-64bc-4b9a-9712-f7149703f065.png" alt /></p>
</li>
<li><p>Review the user details to ensure accuracy. If everything looks correct, click on the 'Create user' button to finalize the user creation process.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1713951397186/e1420fad-e77c-4dab-9f8f-4d3ff8febe35.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>After creating the user, AWS will inform you with a confirmation message indicating that the user has been successfully created.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1713951437168/aeb33390-53c8-485b-b2a1-1f393058b7ce.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Checking whether an IAM (Identity and Access Management) user in AWS is functioning properly.</p>
</li>
</ol>
<p>xiv&gt; To check if the IAM user is working:</p>
<p>a. Open the <a target="_blank" href="https://aws.amazon.com/"><strong>AWS official page</strong></a>.<br />b. Select "<a target="_blank" href="https://aws.amazon.com/"><strong>Sign in to the Co</strong></a>nsole" and c<a target="_blank" href="https://aws.amazon.com/"><strong>hoose "IAM User."</strong></a></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709899031823/9dbfa8ad-d8a0-4f23-b6a1-44734c1e6ade.png?auto=compress,format&amp;format=webp&amp;auto=compress,format&amp;format=webp" alt /></p>
<p>c. Enter the 12-digit Account ID. You can find the Account ID in the IAM dashboard.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709899177379/e0685fa9-56c7-4914-a575-49c9dc4a03f3.png?auto=compress,format&amp;format=webp&amp;auto=compress,format&amp;format=webp" alt /></p>
<p>d. Click on the 'Next' button.<br />e. Enter the IAM user name and password.<br />f. Click 'Sign In.' If successful, you will be redirected to the AWS Management Console.</p>
<p>We are committed to delivering content that informs, inspires, and resonates with you. Your comments, and shared insights fuel our passion to continue creating valuable content.<br />As we move forward, we invite you to stay connected with us. Feel free to share your thoughts in the comments.<br />Once again, thank you for being a part of our community. We look forward to continuing this journey together.</p>
]]></content:encoded></item><item><title><![CDATA[Learn AWS | part 3-c-ii | Identity and Access Management (IAM) | Users | Add user to group]]></title><description><![CDATA[Introduction
1> IAM allows you to create and manage individual users within your AWS account. 2> Each user is assigned unique security credentials, such as a username and password or access keys.3> This level of granularity ensures that each entity a...]]></description><link>https://blog.harshalyadav.in/learn-aws-part-3-c-ii-identity-and-access-management-iam-users-add-user-to-group</link><guid isPermaLink="true">https://blog.harshalyadav.in/learn-aws-part-3-c-ii-identity-and-access-management-iam-users-add-user-to-group</guid><category><![CDATA[AWS]]></category><category><![CDATA[AWS Certified Solutions Architect Associate]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Devops]]></category><category><![CDATA[WeMakeDevs]]></category><category><![CDATA[#shubhamLondhe]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Sun, 14 Apr 2024 13:25:12 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1713020081158/6496c6ba-086f-40a0-9853-0580481ebb5d.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<p>1&gt; IAM allows you to create and manage individual users within your AWS account. 2&gt; Each user is assigned unique security credentials, such as a username and password or access keys.<br />3&gt; This level of granularity ensures that each entity accessing your AWS resources has a distinct identity.</p>
<h3 id="heading-creating-an-iam-identity-and-access-management-user"><strong>Creating an IAM (Identity and Access Management) User.</strong></h3>
<ol>
<li><p>Go to the AWS Management Console at <a target="_blank" href="https://aws.amazon.com/and"><strong>aws.amazon.com/and</strong></a><a target="_blank" href="https://aws.amazon.com/"><strong>sign in using your AWS account credentials.</strong></a></p>
</li>
<li><p><a target="_blank" href="https://aws.amazon.com/"><strong>In AWS Management</strong></a> Console, search IAM and click on IAM.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712121121898/8611b54c-1b04-4c6d-b246-7a409025bfd2.png?auto=compress,format&amp;format=webp" alt /></p>
</li>
<li><p>In the IAM dashboard, click on the "Users" option on the left-hand side menu. This will display a list of existing IAM users if any.</p>
</li>
<li><p><a target="_blank" href="https://aws.amazon.com/"><strong>Click on 'Create user'</strong></a> button to create a new user.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712121248526/247b8bf6-1c5e-4e0e-a60c-302692381fe8.png?auto=compress,format&amp;format=webp" alt /></p>
</li>
<li><p>Enter a name for your User. Choose a descriptive name that reflects the purpose.</p>
</li>
<li><p>Checked Provide user access to the AWS Management Console - <em>optional and select</em> I want to create an IAM user.</p>
</li>
<li><p>Choose Custom password and enter your desired password.</p>
</li>
<li><p>Uncheck the box that says "Users must create a new password at next sign-in - Recommended." If you do not select this option, the user will retain the custom password you provided without being prompted to change it at their next sign-in.</p>
</li>
<li><p>Click on the 'Next' button to proceed with the user creation process.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1713019415667/d7b05330-ef52-4fef-b79f-c3726ec8c564.png" alt /></p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1713019441724/06f5fc0b-7155-4a17-b1a5-086ce069a427.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>In the Permissions options, choose "Add user to group" to assign specific permissions to the user.</p>
</li>
<li><p>In the user groups, ensure that you choose the "AWSadmin" group created in the <a target="_blank" href="https://hashnode.com/post/clufkih7q000708l5a42g186l">previous tutorial</a>.</p>
</li>
<li><p>Click on the 'Next' button to proceed with the user creation process.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1713019941879/1239c134-7114-476a-8794-4470f99204b0.png" alt /></p>
</li>
<li><p>Review the user details to ensure accuracy. If everything looks correct, click on the 'Create user' button to finalize the user creation process.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1713019960699/c9d06480-5bdd-4d33-beea-b20002c17328.png" alt /></p>
</li>
<li><p>Checking whether an IAM (Identity and Access Management) user in AWS is functioning properly.</p>
</li>
</ol>
<p>xiv&gt; To check if the IAM user is working:</p>
<p>a. Open the <a target="_blank" href="https://aws.amazon.com/"><strong>AWS official page</strong></a>.<br />b. Select "<a target="_blank" href="https://aws.amazon.com/"><strong>Sign in to the Co</strong></a>nsole" and c<a target="_blank" href="https://aws.amazon.com/"><strong>hoose "IAM User."</strong></a></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709899031823/9dbfa8ad-d8a0-4f23-b6a1-44734c1e6ade.png?auto=compress,format&amp;format=webp" alt /></p>
<p>c. Enter the 12-digit Account ID. You can find the Account ID in the IAM dashboard.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709899177379/e0685fa9-56c7-4914-a575-49c9dc4a03f3.png?auto=compress,format&amp;format=webp" alt /></p>
<p>d. Click on the 'Next' button.<br />e. Enter the IAM user name and password.<br />f. Click 'Sign In.' If successful, you will be redirected to the AWS Management Console.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1713020003431/fc8e9d78-ab19-4f4e-ab34-0c86323061cd.png" alt /></p>
<p>We are committed to delivering content that informs, inspires, and resonates with you. Your comments, and shared insights fuel our passion to continue creating valuable content.<br />As we move forward, we invite you to stay connected with us. Feel free to share your thoughts in the comments.<br />Once again, thank you for being a part of our community. We look forward to continuing this journey together.</p>
]]></content:encoded></item><item><title><![CDATA[Learn AWS | part 3-c-i | Identity and Access Management (IAM) | Users | Attach policies directly]]></title><description><![CDATA[Introduction
1> IAM allows you to create and manage individual users within your AWS account.  
2> Each user is assigned unique security credentials, such as a username and password or access keys.  
3> This level of granularity ensures that each ent...]]></description><link>https://blog.harshalyadav.in/learn-aws-part-3-c-i-identity-and-access-management-iam-users-attach-policies-directly</link><guid isPermaLink="true">https://blog.harshalyadav.in/learn-aws-part-3-c-i-identity-and-access-management-iam-users-attach-policies-directly</guid><category><![CDATA[AWS]]></category><category><![CDATA[AWS Certified Solutions Architect Associate]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[WeMakeDevs]]></category><category><![CDATA[#HiteshChaudhary ]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Wed, 03 Apr 2024 07:18:13 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1711293107006/c41146dc-2a3d-46a0-98da-50aee584e658.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<p>1&gt; IAM allows you to create and manage individual users within your AWS account.<a target="_blank" href="https://us-east-1.console.aws.amazon.com/access-analyzer/home?region=us-east-1#/external-access-findings">  
</a>2&gt; Each user is assigned unique security credentials, such as a username and password or access keys.<a target="_blank" href="https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/organizations/ServiceControlPolicies">  
</a>3&gt; This level of granularity ensures that each entity accessing your AWS resources has a distinct identity.  </p>
<h3 id="heading-creating-an-iam-identity-and-access-management-user"><strong>Creating an IAM (Identity and Access Management) User.</strong></h3>
<ol>
<li><p>Go to the AWS Management Console at <a target="_blank" href="https://aws.amazon.com/and"><strong>https://aws.amazon.com/and</strong></a> <a target="_blank" href="https://aws.amazon.com/"><strong>sign in using your</strong> AWS account credentials.</a></p>
</li>
<li><p><a target="_blank" href="https://aws.amazon.com/">In AWS Management</a> Console, search IAM and click on IAM.  </p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712121121898/8611b54c-1b04-4c6d-b246-7a409025bfd2.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>In the IAM dashboard, click on the "Users" option on the left-hand side menu. This will display a list of existing IAM users if any.  </p>
</li>
<li><p><a target="_blank" href="https://aws.amazon.com/">Click on 'Create user'</a> button to create a new user.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712121248526/247b8bf6-1c5e-4e0e-a60c-302692381fe8.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Enter a name for your User. Choose a descriptive name that reflects the purpose.</p>
</li>
<li><p>Checked Provide user access to the AWS Management Console - <em>optional and select</em> I want to create an IAM user.</p>
</li>
<li><p>Choose Custom password and enter your desired password.</p>
</li>
<li><p>Check the box that says "Users must create a new password at next sign-in - Recommended." If you do not select this option, the user will retain the custom password you provided without being prompted to change it at their next sign-in.</p>
</li>
<li><p>Click on the 'Next' button to proceed with the user creation process.  </p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712121507694/8e7e9263-0a43-470a-b769-f9776087703d.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>In the Permissions options, choose "Attach policies directly" to assign specific permissions to the user.</p>
</li>
<li><p>In the Permissions policies, choose "AdministratorAccess" to grant administrative privileges to the user. It's worth noting that while you can select multiple policies, exercising caution and adhering to the principle of least privilege is recommended to ensure secure access management.</p>
</li>
<li><p>Click on the 'Next' button to proceed with the user creation process.  </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712121909057/c5fcd9c7-e7d8-499b-b875-1fa6bd8e5c1e.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Review the user details to ensure accuracy. If everything looks correct, click on the 'Create user' button to finalize the user creation process.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712125118465/76026141-6f5a-45fc-b929-e670be282844.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Checking whether an IAM (Identity and Access Management) user in AWS is functioning properly.</p>
</li>
</ol>
<p>xiv&gt; To check if the IAM user is working:</p>
<p>a. Open the <a target="_blank" href="https://aws.amazon.com/">AWS official page</a>.<br />b. Select "<a target="_blank" href="https://aws.amazon.com/">Sign in to the Co</a>nsole" and c<a target="_blank" href="https://aws.amazon.com/">hoose "IAM User."</a></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709899031823/9dbfa8ad-d8a0-4f23-b6a1-44734c1e6ade.png" alt class="image--center mx-auto" /></p>
<p>c. Enter the 12-digit Account ID. You can find the Account ID in the IAM dashboard.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709899177379/e0685fa9-56c7-4914-a575-49c9dc4a03f3.png" alt class="image--center mx-auto" /></p>
<p>d. Click on the 'Next' button.<br />e. Enter the IAM user name and password.<br />f. Click 'Sign In.' If successful, you will be redirected to the AWS Management Console.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709899302123/e235240c-eb23-411b-9dc1-c1097a99db87.png" alt class="image--center mx-auto" /></p>
<p>We are committed to delivering content that informs, inspires, and resonates with you. Your comments, and shared insights fuel our passion to continue creating valuable content.<br />As we move forward, we invite you to stay connected with us. Feel free to share your thoughts in the comments.<br />Once again, thank you for being a part of our community. We look forward to continuing this journey together.</p>
]]></content:encoded></item><item><title><![CDATA[Learn AWS | part 3-b | Identity and Access Management (IAM) | Group]]></title><description><![CDATA[Introduction
AWS groups are logical collections of IAM users. By assigning permissions to groups rather than individual users, administrators can efficiently manage access control at scale. This organizational structure simplifies the process of gran...]]></description><link>https://blog.harshalyadav.in/learn-aws-part-3-b-identity-and-access-management-iam-group</link><guid isPermaLink="true">https://blog.harshalyadav.in/learn-aws-part-3-b-identity-and-access-management-iam-group</guid><category><![CDATA[AWS]]></category><category><![CDATA[AWS Certified Solutions Architect Associate]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Cloud Computing]]></category><category><![CDATA[Devops]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Sun, 31 Mar 2024 13:39:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1711293078004/3508bf70-52b5-4084-a945-bb8c76aac98b.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction">Introduction</h3>
<p>AWS groups are logical collections of IAM users. By assigning permissions to groups rather than individual users, administrators can efficiently manage access control at scale. This organizational structure simplifies the process of granting and revoking permissions, ensuring consistency and reducing administrative overhead.</p>
<h3 id="heading-creating-an-iam-identity-and-access-management-group">Creating an IAM (Identity and Access Management) group.</h3>
<ol>
<li><p>Go to the AWS Management Console at <a target="_blank" href="https://aws.amazon.com/">https://aws.amazon.com/and sign in using your</a> AWS account credentials.</p>
</li>
<li><p>In AWS Management Console, search IAM and click on IAM.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711633583046/1c280a5b-1d85-4a2e-ac6d-2987a8173db5.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>In the IAM dashboard, click on the "User groups" option on the left-hand side menu. This will display a list of existing IAM groups if any.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711633831652/f6c99af7-6866-49fa-927b-eeb4610c0fae.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>To create a new group, click on the "Create group" button.</p>
</li>
<li><p>Enter a name for your group. Choose a descriptive name that reflects the purpose or role of the group.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711634144034/07a05d24-9a1b-4907-9e87-1c421e8dfeb4.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>You can attach one or more policies to the group. Policies define the permissions that are granted to the group. You can either choose from existing AWS managed policies or create custom policies.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711645653642/bc29828f-374b-4703-8203-6455a16b7454.png" alt class="image--center mx-auto" /></p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711645714477/f144a25e-50d6-4f7c-a821-41477d8da3d3.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>After entering the group details and attaching policies, review the information to ensure it's correct. Then, click on the "Create group" button.</p>
</li>
<li><p>After the group is successfully created, AWS typically provides a confirmation message, which might say something like "Group 'name' created."</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711645792856/aa88f254-ed39-4b78-9408-5d651c6d21f7.png" alt class="image--center mx-auto" /></p>
<p> We are committed to delivering content that informs, inspires, and resonates with you. Your comments, and shared insights fuel our passion to continue creating valuable content.</p>
<p> As we move forward, we invite you to stay connected with us. Feel free to share your thoughts in the comments.</p>
<p> Once again, thank you for being a part of our community. We look forward to continuing this journey together.</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Learn AWS | part 3-a | Identity and Access Management (IAM)]]></title><description><![CDATA[Introduction

Amazon Web Services (AWS) acknowledges this and provides a robust solution in the form of Identity and Access Management (IAM).

Amazon Web Services (AWS), a leading cloud services provider, recognizes the importance of robust access co...]]></description><link>https://blog.harshalyadav.in/learn-aws-part-3-a-identity-and-access-management-iam</link><guid isPermaLink="true">https://blog.harshalyadav.in/learn-aws-part-3-a-identity-and-access-management-iam</guid><category><![CDATA[AWS]]></category><category><![CDATA[AWSCommunity]]></category><category><![CDATA[IAM]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Devops]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Sun, 24 Mar 2024 11:46:26 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1711281058341/fce355b8-c0a1-43ae-ac89-8e04958ea22f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<ul>
<li><p>Amazon Web Services (AWS) acknowledges this and provides a robust solution in the form of Identity and Access Management (IAM).</p>
</li>
<li><p>Amazon Web Services (AWS), a leading cloud services provider, recognizes the importance of robust access control.</p>
</li>
<li><p>IAM enables you to manage users, groups, policies, and permissions to access and use AWS services and resources.</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711034048056/47844e15-5d2b-4f4e-9ec2-b09ed90d90a3.gif" alt class="image--center mx-auto" /></p>
<h3 id="heading-understanding-iam-components">Understanding IAM Components:</h3>
<h3 id="heading-access-management">Access management</h3>
<ul>
<li><p>User groups</p>
</li>
<li><p>Users</p>
</li>
<li><p>Roles</p>
</li>
<li><p>Policies</p>
</li>
<li><p>Identityproviders</p>
</li>
<li><p>Accountsettings</p>
</li>
</ul>
<h3 id="heading-accessreports">Accessreports</h3>
<ul>
<li><p>AccessAnalyzer</p>
<ul>
<li><p>External access</p>
</li>
<li><p>Unusedaccess</p>
</li>
<li><p>Analyzersettings</p>
</li>
</ul>
</li>
<li><p>Credentialreport</p>
</li>
<li><p>Organizationactivity</p>
</li>
<li><p>Service control policies (SCPs)</p>
</li>
</ul>
<ol>
<li><p><strong>Access Management:</strong> Access management refers to the processes and policies used to control access to resources within a system or organization. It involves granting or denying access rights to users or groups based on their identities and permissions.</p>
</li>
<li><p><strong>User Groups:</strong> User groups are collections of users who share common characteristics or permissions. Group membership simplifies access management by allowing administrators to assign permissions to entire groups rather than individual users.</p>
</li>
<li><p><strong>Users:</strong> Users are individual entities within a system who interact with resources and applications. Each user typically has a unique identity and may be assigned specific roles or permissions.</p>
</li>
<li><p><strong>Roles:</strong> Roles define a set of permissions or privileges that are assigned to users or groups within a system. Roles streamline access management by grouping together related permissions and assigning them to users based on their job functions or responsibilities.</p>
</li>
<li><p><strong>Policies:</strong> Policies are rules or guidelines that dictate access control and security within a system. Access policies define who can access what resources under what conditions, while security policies outline rules for safeguarding data and systems.</p>
</li>
<li><p><strong>Identity Providers:</strong> Identity providers (IdPs) are services or systems that manage and authenticate user identities. They typically provide authentication services for single sign-on (SSO) and federated identity management.</p>
</li>
<li><p><strong>Account Settings:</strong> Account settings encompass configurable options and preferences related to user accounts within a system. This may include settings such as password policies, account lockout thresholds, and session management options.</p>
</li>
<li><p><strong>Access Reports:</strong> Access reports provide insights and analytics on user access activities within a system. They may include information such as login times, resource access attempts, and permission changes.</p>
</li>
<li><p><strong>Access Analyzer:</strong> Access Analyzer is a tool or feature that helps identify and analyze access control configurations within a system. It may provide recommendations for improving security posture and compliance with access policies.</p>
</li>
<li><p><strong>External Access:</strong> External access refers to the ability of users outside of an organization's network to access its resources or services. This may involve remote access solutions, VPNs, or publicly accessible applications.</p>
</li>
<li><p><strong>Unused Access:</strong> Unused access refers to permissions or accounts that are assigned to users but not actively utilized. Identifying and revoking unused access helps reduce the risk of unauthorized access and maintain security hygiene.</p>
</li>
<li><p><strong>Analyzers Settings:</strong> Analyzer settings configure parameters and preferences for access analyzers, such as scan frequency, scope of analysis, and notification settings.</p>
</li>
<li><p><strong>Credential Report:</strong> Credential reports provide information about user credentials stored within a system, including usernames, passwords, and associated permissions. They help administrators monitor and manage user access and security.</p>
</li>
<li><p><strong>Organization Activity:</strong> Organization activity logs record events and actions performed within a system by users, administrators, and automated processes. They serve as an audit trail for tracking changes and troubleshooting issues.</p>
</li>
<li><p><strong>Service Control Policies (SCPs):</strong> SCPs are policy documents in AWS (Amazon Web Services) that define the maximum permissions allowed for accounts and entities within an organization. SCPs are used to enforce security and compliance policies across AWS accounts.</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Learn AWS | part 3 | Root User]]></title><description><![CDATA[Introduction:

The AWS Root User, bestowed with unparalleled authority, holds the keys to the kingdom within the Amazon Web Services (AWS) ecosystem.

As the root user, you have complete access to all AWS services and resources in your AWS account.

...]]></description><link>https://blog.harshalyadav.in/learn-aws-part-3-root-user</link><guid isPermaLink="true">https://blog.harshalyadav.in/learn-aws-part-3-root-user</guid><category><![CDATA[IAM (Identity and Access Management)]]></category><category><![CDATA[Root User]]></category><category><![CDATA[AWS Account Management]]></category><category><![CDATA[AWS]]></category><category><![CDATA[cloud security]]></category><category><![CDATA[AccessManagement]]></category><category><![CDATA[Cloud infrastructure]]></category><category><![CDATA[cloud compliance]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Fri, 08 Mar 2024 14:04:38 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1709905731294/41b7f6a1-85f6-4242-a167-c3fee1f93230.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction">Introduction:</h3>
<ul>
<li><p>The AWS Root User, bestowed with unparalleled authority, holds the keys to the kingdom within the Amazon Web Services (AWS) ecosystem.</p>
</li>
<li><p>As the root user, you have complete access to all AWS services and resources in your AWS account.</p>
</li>
<li><p>In this blog, we embark on a journey to explore the significance, responsibilities, and best practices associated with the AWS Root User, shedding light on the critical role it plays in securing and managing an AWS account.</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709905458057/2dbd80a1-8129-483c-a3f1-281811ce0627.gif" alt class="image--center mx-auto" /></p>
<h3 id="heading-understanding-the-aws-root-user"><strong>Understanding the AWS Root User</strong></h3>
<h4 id="heading-the-source-of-all-power">The Source of All Power:</h4>
<p>The AWS Root User is the initial account owner created during the AWS account signup process. This account possesses unrestricted access and controls all aspects of the AWS environment, making it the most powerful entity within the account.</p>
<h3 id="heading-responsibilities-and-considerations"><strong>Responsibilities and Considerations</strong></h3>
<h4 id="heading-1-guardian-of-the-keys"><strong>1. Guardian of the Keys:</strong></h4>
<p>The Root User is entrusted with the security credentials, including the email address and password used to sign up for the AWS account. Securing these credentials is paramount to prevent unauthorized access and potential security breaches.</p>
<h4 id="heading-2-access-to-all-resources"><strong>2. Access to All Resources:</strong></h4>
<p>The Root User inherently has full access to all AWS resources and services. While this omnipotence is essential during the initial setup, it also necessitates caution to prevent unintentional misconfigurations or security lapses.</p>
<h4 id="heading-3-billing-and-account-management"><strong>3. Billing and Account Management:</strong></h4>
<p>Managing billing information, updating account details, and handling support cases all fall under the purview of the Root User. This underscores the importance of maintaining the security of this account to prevent unauthorized modifications.</p>
<h3 id="heading-best-practices-for-the-aws-root-user"><strong>Best Practices for the AWS Root User</strong></h3>
<h4 id="heading-1-secure-authentication"><strong>1. Secure Authentication:</strong></h4>
<p>Ensure the Root User's email address and password are highly secure. Implement multi-factor authentication (MFA) to add an additional layer of protection and guard against unauthorized access.</p>
<h4 id="heading-2-limit-day-to-day-usage"><strong>2. Limit Day-to-Day Usage:</strong></h4>
<p>Minimize the use of the Root User for day-to-day operations. Create and utilize IAM users with appropriate permissions to carry out routine tasks, thereby reducing the risk of inadvertent actions with elevated privileges.</p>
<h4 id="heading-3-delegate-responsibilities"><strong>3. Delegate Responsibilities:</strong></h4>
<p>Delegate administrative responsibilities by creating additional IAM users with specific roles and permissions. This adheres to the principle of least privilege and enhances the overall security posture of the AWS account.</p>
<h4 id="heading-4-enable-aws-organizations"><strong>4. Enable AWS Organizations:</strong></h4>
<p>Leverage AWS Organizations to implement a multi-account strategy. By creating separate accounts for different purposes (e.g., development, testing, production), you can enhance isolation and security, reducing the reliance on the Root User.</p>
<h4 id="heading-5-regularly-monitor-activity"><strong>5. Regularly Monitor Activity:</strong></h4>
<p>Keep a vigilant eye on account activity. Regularly review AWS CloudTrail logs to track changes, user activities, and potential security incidents involving the Root User.</p>
<h3 id="heading-creating-the-root-user">Creating the root user</h3>
<ol>
<li><p><strong>Sign Up for an AWS Account:</strong></p>
<ul>
<li><p>Visit the <a target="_blank" href="https://aws.amazon.com/">AWS sign-up page</a>.</p>
</li>
<li><p>Click on the "Create an AWS account" button.</p>
</li>
<li><p>Follow <a target="_blank" href="https://harshal00.hashnode.dev/learn-aws-part-2-create-an-account-on-aws">'Learn AWS| part 2'</a>.</p>
</li>
</ul>
</li>
<li><p><strong>Initial Configuration:</strong></p>
<ul>
<li>The first time you sign in, you'll be guided through the initial configuration process. This involves setting up your AWS resources, defining security preferences, and configuring basic services.</li>
</ul>
</li>
<li><p><strong>Accessing the Root User:</strong></p>
<ul>
<li>The credentials used during the sign-up process become the root user credentials. These credentials include the email address and password you provided during the account creation.</li>
</ul>
</li>
</ol>
<h3 id="heading-conclusion"><strong>Conclusion</strong></h3>
<p>While the AWS Root User is a linchpin in the AWS account hierarchy, its omnipotence necessitates careful management and security considerations. By implementing best practices, securing credentials, and distributing responsibilities effectively, organizations can harness the power of the Root User while mitigating the associated risks. As AWS continues to evolve, understanding and optimizing the role of the Root User is fundamental to building a robust and secure cloud infrastructure.</p>
]]></content:encoded></item><item><title><![CDATA[Learn AWS | part 2 | Create an account on AWS]]></title><description><![CDATA[Create an account

Visit the AWS official website: https://aws.amazon.com/

Click on the "Sign in to the Console" button in the top right corner.

On the next page, click on the "Create an AWS account" button.


 Enter your Email address and account ...]]></description><link>https://blog.harshalyadav.in/learn-aws-part-2-create-an-account-on-aws</link><guid isPermaLink="true">https://blog.harshalyadav.in/learn-aws-part-2-create-an-account-on-aws</guid><category><![CDATA[AWS]]></category><category><![CDATA[#shubhamLondhe]]></category><category><![CDATA[TrainWithShubham]]></category><category><![CDATA[ Abhishek Veeramalla ]]></category><category><![CDATA[WeMakeDevs]]></category><category><![CDATA[Devops]]></category><category><![CDATA[Cloud]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Fri, 26 Jan 2024 12:28:44 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1706270869325/bd38461c-2503-4547-8bd2-28f228c7ae0b.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-create-an-account"><strong>Create an account</strong></h3>
<ol>
<li><p>Visit the AWS official website: <a target="_blank" href="https://aws.amazon.com/">https://aws.amazon.com/</a></p>
</li>
<li><p>Click on the "Sign in to the Console" button in the top right corner.</p>
</li>
<li><p>On the next page, click on the "Create an AWS account" button.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706254416048/a53c5e68-87dd-4c14-a41d-fa710b5b771a.png" alt class="image--center mx-auto" /></p>
<p> Enter your Email address and account name.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706264225912/ca70b1b5-1087-4d0a-ae68-25a53c56b024.png" alt class="image--center mx-auto" /></p>
<p> Enter your unique code that was sent in your email.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706264473515/b8af42cc-031a-4c30-8503-7e08473115a1.png" alt class="image--center mx-auto" /></p>
<p> Create a password for your user account.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706264668829/f4ba9d5e-cb94-45e8-9f19-c57a66998069.png" alt class="image--center mx-auto" /></p>
<p> Enter your personal details.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706265333646/b6761aa2-5f29-4e34-92bd-a0396180ced1.png" alt class="image--center mx-auto" /></p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706265373510/1d4303f7-3add-4831-ae22-b4700abbf519.png" alt class="image--center mx-auto" /></p>
<p> Enter your payment details.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706266055884/c33a18b2-c7ec-454b-b91d-4371bbdfd53b.png" alt class="image--center mx-auto" /></p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706266862731/587f7183-4340-49e8-ac85-9897e78374ef.png" alt class="image--center mx-auto" /></p>
<p> Authenticate your account. AWS will hold 2 rupees and refund the amount in 2 to 6 days.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706266124019/b07fbaf2-2ba0-4357-a417-bff1362bfd9d.png" alt class="image--center mx-auto" /></p>
<p>Confirm your identity.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706268286911/8c56a2ef-6119-4593-96cb-580f8779b678.png" alt class="image--center mx-auto" /></p>
<p>Enter the verification code.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706268416122/fdb95f39-8d2c-4d5f-89f4-bf6c74e10bca.png" alt class="image--center mx-auto" /></p>
<p>Select an AWS support plan.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706268845947/ac316a49-1cd8-411f-9b78-84dfb1dad0d1.png" alt class="image--center mx-auto" /></p>
<p>Congratulations! Your account has been created successfully.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706270715305/39620a1e-6b4b-43dd-a161-ec4339ccda50.png" alt class="image--center mx-auto" /></p>
</li>
</ol>
<h3 id="heading-sign-in-to-the-aws-console"><strong>Sign in to the AWS Console</strong></h3>
<ol>
<li><p>Click on the "Sign in to the Console" button in the top right corner.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706269304918/e2ea3761-ed24-49d1-b8a9-3b6eda8ee126.png" alt class="image--center mx-auto" /></p>
<p> Enter an Email address and select root user.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706269425485/ad302291-6d4a-484c-baa1-6b3467768422.png" alt class="image--center mx-auto" /></p>
<p> Enter a password and click on sign-in button.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706269502380/6aedb58f-d82d-45c9-80c4-c31b9d9dbb20.png" alt class="image--center mx-auto" /></p>
<p> Congratulations! You have successfully logged in.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706270750358/4b936533-4df2-4f27-9dec-e38fe4005da0.png" alt class="image--center mx-auto" /></p>
</li>
</ol>
<h3 id="heading-close-your-aws-account"><strong>Close your AWS account</strong></h3>
<ol>
<li><p>Click on the "User_Name" button in the top right corner.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706270048868/f59c591d-f3c2-438d-8bee-c2dcf4353ae1.png" alt class="image--center mx-auto" /></p>
<p> Click on the 'Account' button. Scroll down until you see the 'Close account' button. Click on the 'Close account' button to delete your account.</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706270304722/8f2cb54c-73d3-4068-accc-e98104030bc6.png" alt class="image--center mx-auto" /></p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706270328183/e38ba3fa-eec0-40c9-b82c-a81c58838145.png" alt class="image--center mx-auto" /></p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706270369219/a89c9211-e002-4b6d-b845-776ebd9c7e80.png" alt class="image--center mx-auto" /></p>
<p> You will receive a verification message.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706270441635/9c060d54-2b20-4076-a296-11a764c9d113.png" alt class="image--center mx-auto" /></p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706270788354/5857dc53-bc5e-49e3-a92c-1d0359199c4c.png" alt class="image--center mx-auto" /></p>
</li>
</ol>
<p>We are committed to delivering content that informs, inspires, and resonates with you. Your comments, and shared insights fuel our passion to continue creating valuable content.</p>
<p>As we move forward, we invite you to stay connected with us. Feel free to share your thoughts in the comments.</p>
<p>Once again, thank you for being a part of our community. We look forward to continuing this journey together.</p>
]]></content:encoded></item><item><title><![CDATA[Learn Git and GitHub]]></title><description><![CDATA[Introduction
Git and GitHub are essential tools in modern software development, providing version control and collaboration features that streamline the development workflow. This blog post aims to provide a comprehensive guide to understanding and e...]]></description><link>https://blog.harshalyadav.in/learn-git-and-github</link><guid isPermaLink="true">https://blog.harshalyadav.in/learn-git-and-github</guid><category><![CDATA[WeMakeDevs]]></category><category><![CDATA[Git]]></category><category><![CDATA[GitHub]]></category><category><![CDATA[#shubhamLondhe]]></category><category><![CDATA[@hiteshchoudharylco]]></category><category><![CDATA[ Abhishek Veeramalla ]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Tue, 16 Jan 2024 09:01:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1703868445685/1ed7cecc-240b-4e52-ab14-c8100f89a535.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<p>Git and GitHub are essential tools in modern software development, providing version control and collaboration features that streamline the development workflow. This blog post aims to provide a comprehensive guide to understanding and effectively using Git and GitHub.</p>
<h3 id="heading-git"><strong>Git</strong></h3>
<ul>
<li><p>It was created by Linus Torvalds in 2005 for the development of the Linux kernel.</p>
</li>
<li><p>It has since been adopted by many other projects.</p>
</li>
<li><p>It is available for Mac, Linux, and Windows.</p>
</li>
<li><p>How to install git on <a target="_blank" href="https://hashnode.com/post/clqqkr7dk000008l76ehed4sm">windows os</a>.</p>
</li>
</ul>
<h3 id="heading-git-architecture"><strong>Git Architecture</strong></h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703678681160/49baac4d-f70d-43a4-b046-f3b47c3a10c3.png" alt class="image--center mx-auto" /></p>
<p>1&gt; <strong>Repository:-</strong> A Git repository is a collection of files and the version history of those files.</p>
<ul>
<li><p>There are two types of repositories: local and remote.</p>
</li>
<li><p>Local repositories reside on the developer's machine, while remote repositories are hosted on a server.</p>
</li>
</ul>
<p><strong>2&gt; Working Directory:-</strong></p>
<ul>
<li><p>The working directory is the directory on a developer's machine where they are currently working.</p>
</li>
<li><p>It contains the files of the project, and developers make changes to these files during development.</p>
</li>
</ul>
<p><strong>3&gt; Index (Staging Area):-</strong></p>
<ul>
<li><p>The index is an intermediate area between the working directory and the repository.</p>
</li>
<li><p>Before changes are committed to the repository, they are staged in the index.</p>
</li>
<li><p>Staging allows developers to selectively commit changes rather than committing all changes in the working directory.</p>
</li>
</ul>
<h3 id="heading-object-database"><strong>Object Database</strong></h3>
<ul>
<li><p>Git uses an object database to store its data.</p>
</li>
<li><p>Objects include blobs (file content), trees (directory structure), commits (a snapshot of changes), and tags (references to a specific commit).</p>
</li>
<li><p>Each object is identified by a unique hash.</p>
</li>
</ul>
<h3 id="heading-git-initialize"><strong>Git Initialize</strong></h3>
<ul>
<li><p>This command initializes a new Git repository.</p>
</li>
<li><p>It creates a hidden subfolder within the existing directory that houses the internal data structure required for version control.</p>
<pre><code class="lang-markdown">  git init
</code></pre>
</li>
</ul>
<h3 id="heading-add"><strong>ADD</strong></h3>
<ul>
<li><p>Stage changes for the next commit.</p>
</li>
<li><p>It is a crucial step in the Git workflow.</p>
<pre><code class="lang-markdown">  git add <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">file(s)</span> <span class="hljs-attr">or</span> <span class="hljs-attr">directory</span>&gt;</span></span>
</code></pre>
</li>
<li><p>Example:<br />  1. Stage a specific file. <code>git add myfile.txt</code><br />  2. Stage all changes in the current directory. <code>git add .</code><br />  3. Stage all changes in a specific directory. <code>git add myfolder/</code></p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704790333960/53dd2ea8-0500-4cf8-9dcf-d75b864db5a1.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-commits"><strong>Commits</strong></h3>
<ul>
<li><p>A commit is a snapshot of changes made to the repository.</p>
</li>
<li><p>Each commit has a unique hash, author information, timestamp, and a reference to the parent commit(s).</p>
</li>
<li><p>Commits are used to track the history of the project.</p>
<pre><code class="lang-markdown">  git commit
</code></pre>
</li>
<li><p>Add a message on your commit.</p>
<pre><code class="lang-markdown">  git commit -m "Hello world!"
</code></pre>
</li>
<li><p>When you use <code>--amend</code>, Git will replace the last commit with a new commit containing the changes you specify.</p>
<pre><code class="lang-markdown">  git commit --amend -m "Github"
</code></pre>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704790280952/9fa5c9b2-bf50-4018-886e-25a547143ada.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-logs"><strong>Logs</strong></h3>
<ul>
<li><p>Display a log of commits in a repository.</p>
</li>
<li><p>It shows a list of commits in reverse chronological order (from the most recent to the oldest).</p>
</li>
<li><p>You'll see a detailed output that includes information about each commit, such as the commit hash, author, date, and commit message.</p>
<pre><code class="lang-markdown">  git log
</code></pre>
</li>
<li><p>Display each commit on one line, showing only the commit hash and the first line of the commit message.</p>
<pre><code class="lang-markdown">  git log --oneline
</code></pre>
</li>
<li><p>Display a text-based graph of commits and branches.</p>
<pre><code class="lang-markdown">  git log --graph
</code></pre>
</li>
<li><p>Show commits only by a specific author.</p>
<pre><code class="lang-markdown">  git log --author=author<span class="hljs-emphasis">_name</span>
</code></pre>
</li>
<li><p>Show commits made within a specified time range.</p>
<pre><code class="lang-markdown">  git log --since="3 days ago"
</code></pre>
</li>
<li><p>Limit the number of commits displayed.</p>
<pre><code class="lang-markdown">  git log -n 5
</code></pre>
<p>  You can replace <code>5</code> with any other number to limit the log output to a specific number of commits.</p>
</li>
<li><pre><code class="lang-markdown"><span class="hljs-code">    git log --graph --oneline --decorate</span>
</code></pre>
<p>  It will display a compact and visually appealing commit history with a graph, commit hashes, commit messages, and information about branches or tags.<br />  This is especially useful for understanding the structure of your Git repository, tracking the flow of changes, and identifying significant commits.</p>
</li>
<li><pre><code class="lang-markdown"><span class="hljs-code">    git log --graph --oneline --decorate --all</span>
</code></pre>
<p>  It will display a compact, graph-like representation of the commit history, showing the commit hashes, commit messages, and where branch and tag references point.<br />  This is particularly useful for understanding the branching and merging structure of your Git repository.</p>
<p>  <strong>Note-</strong> Kill this command by writing <code>q</code> in the terminal.</p>
</li>
</ul>
<h3 id="heading-status"><strong>Status</strong></h3>
<ul>
<li><p>Show the status of changes as untracked, modified, or staged, and it provides information about the current branch.</p>
</li>
<li><p>Indicates the current branch you are on.</p>
</li>
<li><p>Lists modified files that have not been staged.</p>
</li>
<li><p>Lists files in your working directory that are not yet tracked by Git.</p>
</li>
<li><p>Lists files that are staged and ready to be committed.</p>
<pre><code class="lang-markdown">  git status
</code></pre>
</li>
</ul>
<h3 id="heading-diff"><strong>Diff</strong></h3>
<ul>
<li><p>Show the changes between different commits, between the working directory and the staging area, or between the staging area and a specific commit.</p>
</li>
<li><p>It's a powerful tool for understanding the differences in the content of files.</p>
</li>
<li><p>Compare Working Directory to Staging Area.</p>
<pre><code class="lang-markdown">  git diff
</code></pre>
</li>
<li><p>Compare Staging Area to Last Commit.</p>
<pre><code class="lang-markdown">  git diff --staged
</code></pre>
</li>
<li><p>Compare Two Commits.</p>
<pre><code class="lang-markdown">  git diff commit<span class="hljs-emphasis">_hash1 commit_</span>hash2
</code></pre>
</li>
<li><p>Compare Branches.</p>
<pre><code class="lang-markdown">  git diff branch1..branch2
</code></pre>
</li>
<li><p>Viewing Changes in a Specific File.</p>
<pre><code class="lang-markdown">  git diff filename
</code></pre>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704790775771/a7ab6004-f3c8-472b-958a-cbfd7ec0d529.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-remove"><strong>Remove</strong></h3>
<ul>
<li><p>Remove files from both your working directory and the staging area.</p>
</li>
<li><p>It is the command to use when you want to delete files from your project and have those changes reflected in the next commit.</p>
<pre><code class="lang-markdown">  git rm <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">file(s)</span>&gt;</span></span>
</code></pre>
</li>
<li><p>If you want to keep the file in your working directory but remove it from the repository, you can use the <code>--cached</code> option.</p>
<pre><code class="lang-markdown">  git rm --cached <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">file</span>&gt;</span></span>
</code></pre>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704790809535/fe95516f-4a74-4ac3-8538-7e12f4856295.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-unstaging"><strong>Unstaging</strong></h3>
<ul>
<li><p>Unstage changes that have been added to the staging area.</p>
</li>
<li><p>It is commonly used when you have added files to the staging area using <code>git add</code> but want to remove them from the staging area without discarding the changes in your working directory.</p>
<pre><code class="lang-markdown">  git reset HEAD <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">file</span>&gt;</span></span>
</code></pre>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704790838345/dab73be7-7112-4d4d-ba11-cf2c62886a0a.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-reset"><strong>RESET</strong></h3>
<ul>
<li><p>Reset various aspects of your Git repository.</p>
</li>
<li><p>It can be used to unstage changes, move the HEAD and current branch pointer, or even discard changes in your working directory.</p>
</li>
<li><p><strong>Unstage Changes:</strong> This command unstages changes that have been added to the staging area, but it does not discard the changes in your working directory.</p>
<pre><code class="lang-markdown">  git reset
</code></pre>
</li>
<li><p><strong>Unstage a Specific File:</strong> This command unstages the changes for a specific file, leaving the changes in your working directory untouched.</p>
<pre><code class="lang-markdown">  git reset <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">file</span>&gt;</span></span>
</code></pre>
</li>
<li><p><strong>Discard Changes in Working Directory and Unstage:</strong> This resets the staging area and working directory to match the most recent commit. Be cautious with this command, as it discards changes in your working directory.</p>
<pre><code class="lang-markdown">  git reset --hard
</code></pre>
</li>
<li><p><strong>Move HEAD and Branch Pointer:</strong> This command moves the HEAD and the current branch pointer to a specific commit, effectively resetting your branch to that commit.</p>
<pre><code class="lang-markdown">  git reset --soft <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">commit</span>&gt;</span></span>
</code></pre>
</li>
<li><p><strong>Mixed Reset (default behavior):</strong> This is the default behavior if you don't specify <code>--soft</code> or <code>--hard</code>. It resets the branch pointer to a specific commit and unstages changes.</p>
<pre><code class="lang-markdown">  git reset --mixed <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">commit</span>&gt;</span></span>
</code></pre>
</li>
</ul>
<h3 id="heading-ignore"><strong>Ignore</strong></h3>
<ul>
<li><p>The <code>.gitignore</code> file is used to specify intentionally untracked files that Git should ignore.</p>
</li>
<li><p>This file is typically placed in the root directory of your Git repository.</p>
</li>
<li><p>Its purpose is to tell Git which files or directories should not be tracked by version control.</p>
</li>
</ul>
<p><strong>How it works</strong></p>
<ol>
<li><p><strong>Untracked Files:</strong> When you create a new file in your Git repository, Git considers it untracked until you explicitly tell Git to start tracking it.</p>
</li>
<li><p><strong>Ignoring Files:</strong> If there are certain files or directories that you don't want Git to track, you can specify them in the <code>.gitignore</code> file. These could include temporary files, build artifacts, log files, or any other files that are generated during the development process and are not meant to be part of the version-controlled project.</p>
</li>
<li><p><strong>Patterns:</strong> In the <code>.gitignore</code> file, you can use various patterns to specify which files or directories to ignore. For example, you can use wildcard characters like <code>*</code> and <code>?</code> to match multiple files or characters.</p>
</li>
</ol>
<pre><code class="lang-markdown"><span class="hljs-section"># Files</span>
<span class="hljs-section"># Ignore all temporary files</span>
<span class="hljs-emphasis">*.tmp

# Ignore all log files
*</span>.log

<span class="hljs-section"># Folders</span>
<span class="hljs-section"># Ignore build artifacts</span>
/build/

<span class="hljs-section"># Ignore a specific directory</span>
/ignore-me/
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704790879673/cd26e968-f112-44ec-a162-7c50e156594f.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-tree"><strong>Tree</strong></h3>
<ul>
<li><p>List the contents of a GitHub repository in a tree-like structure.</p>
</li>
<li><p>This command lists the contents of the current commit (<code>HEAD</code>) in the form of a tree.</p>
<pre><code class="lang-markdown">  git ls-tree HEAD
</code></pre>
</li>
<li><p>This command lists the contents of the current commit (<code>Master</code>) in the form of a tree.</p>
<pre><code class="lang-markdown">  git ls-tree master
</code></pre>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704790896946/77720b3e-f763-4c30-9a9f-c4ec5d906622.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-branches"><strong>Branches</strong></h3>
<ul>
<li><p>Branches in Git are lightweight and are used to isolate work on a particular feature or bug fix.</p>
</li>
<li><p>The default branch is usually named "master," but you can create and switch between branches as needed.</p>
</li>
<li><p>Branches allow multiple developers to work on different features simultaneously without interfering with each other.</p>
</li>
<li><p>Create a branch using the command.</p>
<pre><code class="lang-markdown">  git branch branch<span class="hljs-emphasis">_name</span>
</code></pre>
</li>
<li><p>Check the list of branches.</p>
<pre><code class="lang-markdown">  git branch
</code></pre>
<p>  note:- If there's an <code>*</code> in front of a branch name, it indicates the currently active (checked-out) branch.</p>
</li>
<li><p>Move one branch to another branch.</p>
<pre><code class="lang-markdown">  git checkout branch<span class="hljs-emphasis">_name</span>
</code></pre>
</li>
<li><p>If the branch doesn't exist locally, create a new branch using <code>git checkout -b branch_name</code> for a new branch and switch to it.</p>
</li>
<li><p>Delete a local branch in Git.</p>
<pre><code class="lang-markdown">  git branch -d branch<span class="hljs-emphasis">_name</span>
</code></pre>
</li>
<li><p>If you want to force delete the branch regardless of its merge status, you can use the <code>-D</code> option instead of <code>-d</code> like this:</p>
<pre><code class="lang-markdown">  git branch -D branch<span class="hljs-emphasis">_name</span>
</code></pre>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704791168178/6bae9403-8c4b-48a6-9255-9b8498c49e29.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-merge"><strong>Merge</strong></h3>
<ul>
<li><p>Merge is a Git command used to integrate changes from one branch into another.</p>
</li>
<li><p>This command is often used to combine the changes made in a feature branch with the changes in the main branch (such as <code>master</code>).</p>
<pre><code class="lang-markdown">  git merge <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">branch_name</span>&gt;</span></span>
</code></pre>
</li>
</ul>
<h3 id="heading-fast-forward-merge"><strong>fast-forward merge</strong></h3>
<ul>
<li><p>A fast-forward merge in Git occurs when the branch being merged into has not diverged from the branch being merged.</p>
</li>
<li><p>In this situation, Git can perform the merge by simply moving the branch pointer forward to point to the same commit as the branch being merged</p>
</li>
<li><p>A fast-forward merge is possible when there are no new commits on the branch you are merging into (<code>main</code> in this case) since the branching point of the feature branch.</p>
</li>
<li><p>Essentially, the branch you are merging into has not advanced in terms of commits.</p>
</li>
<li><p>To force a fast-forward merge, you can use the <code>--ff-only</code> .</p>
<pre><code class="lang-markdown">  git merge --ff-only feature<span class="hljs-emphasis">_branch</span>
</code></pre>
</li>
<li><p>In some cases, you may want to perform a regular merge (<code>--no-ff</code> option) to create a merge commit and maintain a more explicit history.</p>
<pre><code class="lang-markdown">  git merge --no-ff feature<span class="hljs-emphasis">_branch</span>
</code></pre>
</li>
</ul>
<h3 id="heading-conflicts"><strong>Conflicts</strong></h3>
<ul>
<li><p>Git conflicts occur when there are conflicting changes in different branches or commits that Git cannot automatically merge.</p>
</li>
<li><p>When you try to merge or pull changes, and Git detects conflicting changes, it will mark the affected files as conflicted.</p>
</li>
<li><p>The conflicted files in your code editor. Git will mark the conflicting sections in the file with special markers, such as <code>&lt;&lt;&lt;&lt;&lt;&lt;&lt;</code>, <code>=======</code>, and <code>&gt;&gt;&gt;&gt;&gt;&gt;&gt;</code>.</p>
</li>
<li><p><code>&lt;&lt;&lt;&lt;&lt;&lt;&lt;</code>: The beginning of the conflicting changes from your current branch.</p>
</li>
<li><p><code>=======</code>: Separates the conflicting changes from your current branch and the incoming changes from the branch you are merging or rebasing.</p>
</li>
<li><p><code>&gt;&gt;&gt;&gt;&gt;&gt;&gt;</code>: The end of the conflicting changes from the incoming branch.</p>
</li>
</ul>
<h3 id="heading-abort"><strong>Abort</strong></h3>
<ul>
<li><p><strong>Abort a Merge:</strong> This command discards the current merge attempt and leaves your working directory and index untouched.</p>
<pre><code class="lang-markdown">  git merge --abort
</code></pre>
</li>
<li><p><strong>Abort a Rebase:</strong> This command cancels the current rebase operation, reverting your branch to its state before the rebase started.</p>
<pre><code class="lang-markdown">  git rebase --abort
</code></pre>
</li>
<li><p><strong>Abort an Interactive Rebase:</strong> This command cancels the interactive rebase.</p>
<pre><code class="lang-markdown">  git rebase --abort
</code></pre>
</li>
<li><p><strong>Abort Cherry-Pick:</strong> This command cancels the current cherry-pick operation.</p>
<pre><code class="lang-markdown">  git cherry-pick --abort
</code></pre>
</li>
</ul>
<h3 id="heading-stash"><strong>Stash</strong></h3>
<ul>
<li><p>Git command that allows you to temporarily save changes that you have made to your working directory but are not yet ready to commit.</p>
</li>
<li><p>Stashing is useful when you need to switch branches, perform a pull, or do some other operation that requires a clean working directory without committing your changes.</p>
</li>
<li><p><strong>Stash Changes:</strong></p>
<ul>
<li><p>Use the command <code>git stash save "comments"</code> to save your changes.</p>
</li>
<li><p>This command takes your modified tracked files and saves them on a new stash.</p>
</li>
<li><p>Your working directory is reverted to the state of the last commit.</p>
</li>
</ul>
</li>
<li><p><strong>Perform Operations:</strong></p>
<ul>
<li>After stashing, you can perform operations like switching branches, pulling changes, or anything else that requires a clean working directory</li>
</ul>
</li>
<li><p><strong>Apply Stash:</strong></p>
<ul>
<li><p>When you're ready to go back to your changes.</p>
<pre><code class="lang-markdown">  git stash apply
</code></pre>
</li>
<li><p>This restores the stashed changes to your working directory.</p>
</li>
<li><p>If you have multiple stashes, you can apply a specific stash by providing its reference:</p>
<pre><code class="lang-markdown">  git stash apply stash@{n}
</code></pre>
</li>
</ul>
</li>
<li><p><strong>Remove Stash:</strong></p>
<ul>
<li><p>After applying the stash, you might want to remove it from the stash list.</p>
</li>
<li><p>You can use <code>git stash drop</code> for this.</p>
</li>
<li><p>If you want to apply and drop in one command, you can use <code>git stash pop</code></p>
</li>
</ul>
</li>
<li><p><strong>List Stashes:</strong></p>
<ul>
<li><p>You can see a list of your stashes.</p>
<pre><code class="lang-markdown">  git stash list
</code></pre>
</li>
<li><p>Each stash is identified by a reference (e.g., <code>stash@{0}</code>, <code>stash@{1}</code>).</p>
</li>
</ul>
</li>
<li><p><strong>Show Stash:</strong></p>
<ul>
<li><p>This command is used to display the changes that are present in a stash.</p>
<pre><code class="lang-markdown">  git stash show
</code></pre>
</li>
<li><p>If you want to see the full content of the changes in the stash, you can use the <code>-p</code> option</p>
<pre><code class="lang-markdown">  git stash show -p
</code></pre>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705395303850/a994b27f-6516-417f-8e9f-bd190ca19e6e.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
</li>
</ul>
<h3 id="heading-rebase"><strong>Rebase</strong></h3>
<ul>
<li><p>Git that allows you to move or combine a sequence of commits to a new base commit.</p>
</li>
<li><p>It is a powerful and flexible tool used for rewriting commit history.</p>
</li>
<li><p>Unlike Git merge, which creates a new commit with multiple parents to merge branches, git rebase integrates changes from one branch onto another by reapplying each commit on top of the target branch.</p>
<pre><code class="lang-markdown">  git rebase <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">base_branch</span>&gt;</span></span>
</code></pre>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705394071654/52be6693-c487-4040-bdf5-71015dc44718.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
<h3 id="heading-cherry-pick"><strong>Cherry-pick</strong></h3>
<ul>
<li><p>Git cherry-pick is a command in Git that allows you to apply a specific commit from one branch to another.</p>
</li>
<li><p>This can be useful when you want to pick and choose individual commits rather than merging entire branches.</p>
<pre><code class="lang-markdown">  git cherry-pick <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">commit-hash</span>&gt;</span></span>
</code></pre>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705395005026/cba6642c-cb1b-4483-8cea-8287cbb2490b.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
<h3 id="heading-head"><strong>HEAD</strong></h3>
<ul>
<li><p>HEAD is a special pointer that points to the latest commit in the currently checked-out branch.</p>
</li>
<li><p>It represents the current state of the working directory.</p>
</li>
</ul>
<h3 id="heading-remote-repository"><strong>Remote Repository</strong></h3>
<ul>
<li><p>A remote repository is a Git repository hosted on a server.</p>
</li>
<li><p>Developers can push their changes to a remote repository to share their work with others.</p>
</li>
<li><p>Common remote repository hosting services include GitHub, GitLab, and Bitbucket.</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705056667345/bf53020c-6959-4ea4-98f5-01e233cc14fa.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-create-repository"><strong>Create Repository</strong></h3>
<ol>
<li><p><strong>Sign in to GitHub:</strong></p>
<ul>
<li><p>Open your web browser and navigate to <a target="_blank" href="https://github.com/">GitHub</a>.</p>
</li>
<li><p>Sign in to your GitHub account. If you don't have an account, you'll need to create one.</p>
</li>
</ul>
</li>
<li><p><strong>Navigate to Your Dashboard:</strong></p>
<ul>
<li><p>After signing in, click on the "+" sign in the upper right corner of the GitHub page.</p>
</li>
<li><p>From the dropdown, select "New repository."</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705063615608/c54e5948-85b2-4db4-8a0e-fcd4a05e1742.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
</li>
<li><p><strong>Fill in the Repository Information:</strong></p>
<ul>
<li><p>On the "Create a new repository" page, you'll need to provide some information:</p>
<ul>
<li><p><strong>Repository name:</strong> Choose a name for your repository. This will be part of the repository's URL.</p>
</li>
<li><p><strong>Description (optional):</strong> Provide a brief description of your repository.</p>
</li>
<li><p><strong>Public or Private:</strong> Choose the repository's visibility. Public repositories are visible to everyone, while private repositories are only visible to you and collaborators.</p>
</li>
</ul>
</li>
</ul>
</li>
<li><p><strong>Initialize this repository with a README (optional):</strong></p>
<ul>
<li>If you want to create an initial README file for your repository, check the "Initialize this repository with a README" box. This is often a good practice, as it helps provide information about your project.</li>
</ul>
</li>
<li><p><strong>Add .gitignore and license (optional):</strong></p>
<ul>
<li>You can also choose to add a <code>.gitignore</code> file (specifies which files or directories to exclude from version control) and a license file to your repository.</li>
</ul>
</li>
<li><p><strong>Create Repository:</strong></p>
<ul>
<li>Click the "Create repository" button.</li>
</ul>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705063730014/c05ab9a8-7d21-4f8c-a311-adc86d4cda7b.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-upload-your-local-git-repository-to-a-remote-repository-on-github"><strong>upload your local Git repository to a remote repository on GitHub</strong></h3>
<ol>
<li><p><strong>Initialize a Git Repository Locally (if not already done):</strong></p>
<ul>
<li><p>If you haven't initialized a Git repository locally, open a terminal and navigate to your project folder. Run the following command:</p>
<pre><code class="lang-markdown">  git init
</code></pre>
</li>
</ul>
</li>
<li><p><strong>Add a Remote to Your Local Repository:</strong></p>
<ul>
<li><p>In the terminal, add the GitHub repository as the remote origin. Replace <code>&lt;username&gt;</code> and <code>&lt;repository&gt;</code> with your GitHub username and repository name:</p>
<pre><code class="lang-markdown">  git remote add origin https://github.com/<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">username</span>&gt;</span></span>/<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">repository</span>&gt;</span></span>.git
</code></pre>
</li>
<li><p>Copy the link to your GitHub repository, then navigate to the '&lt;&gt; Code' tab and select the HTTPS URL.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705064560957/03876629-ef2a-4b7f-85c7-1ff4ab93311a.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
</li>
<li><p><strong>Add, Commit, and Push:</strong></p>
<ul>
<li><p>Add the files you want to include in the repository:</p>
<pre><code class="lang-markdown">  git add .
</code></pre>
</li>
<li><p>Commit the changes:</p>
<pre><code class="lang-markdown">  git commit -m "Initial commit"
</code></pre>
</li>
<li><p>Retrieves changes from a remote repository and merges them into the current branch:</p>
<pre><code class="lang-markdown">  git pull origin branch<span class="hljs-emphasis">_name</span>
</code></pre>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705064758523/fd6c558a-66aa-4d3f-acd8-689fdc49c8a3.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Push the changes to the remote repository:</p>
<pre><code class="lang-markdown">  git push -u origin master
</code></pre>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705064422363/9ce80a9b-2b0c-4010-967b-27a42e9d06a2.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
</li>
</ol>
<h3 id="heading-clone"><strong>Clone</strong></h3>
<ul>
<li><p>Creates a copy of a remote repository on the developer's local machine:</p>
<pre><code class="lang-markdown">  git clone repositoryLink
</code></pre>
</li>
<li><p>Fetch: Retrieves changes from a remote repository without merging them into the local branch.</p>
</li>
</ul>
<p>We are committed to delivering content that informs, inspires, and resonates with you. Your comments, and shared insights fuel our passion to continue creating valuable content.</p>
<p>As we move forward, we invite you to stay connected with us. Feel free to share your thoughts in the comments.</p>
<p>Once again, thank you for being a part of our community. We look forward to continuing this journey together.</p>
]]></content:encoded></item><item><title><![CDATA[Learn AWS | part 1 | Introduction to AWS]]></title><description><![CDATA[Introduction

In the ever-evolving landscape of technology, businesses are increasingly turning to cloud computing to enhance their operations, scalability, and overall efficiency.

One of the pioneers in this space is Amazon Web Services (AWS), a co...]]></description><link>https://blog.harshalyadav.in/learn-aws-part-1-introduction-to-aws</link><guid isPermaLink="true">https://blog.harshalyadav.in/learn-aws-part-1-introduction-to-aws</guid><category><![CDATA[AWS]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Devops]]></category><category><![CDATA[WeMakeDevs]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Sat, 06 Jan 2024 12:44:27 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1704542615730/b8c6ded7-fca8-436b-bd5d-1d825f9a4c30.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<ul>
<li><p>In the ever-evolving landscape of technology, businesses are increasingly turning to cloud computing to enhance their operations, scalability, and overall efficiency.</p>
</li>
<li><p>One of the pioneers in this space is Amazon Web Services (AWS), a comprehensive and widely adopted cloud platform.</p>
</li>
<li><p>In this case study, we will delve into the success story of AWS, exploring its origins, key features, and the impact it has had on businesses across the globe.</p>
</li>
</ul>
<h3 id="heading-origins-and-evolution"><strong>Origins and Evolution</strong></h3>
<ul>
<li><p>Amazon Web Services was officially launched by <a target="_blank" href="http://Amazon.com">Amazon.com</a> in 2006.</p>
</li>
<li><p>What started as an internal infrastructure service to support the company's e-commerce operations soon transformed into a full-fledged cloud services platform.</p>
</li>
<li><p>AWS provided a scalable, reliable, and cost-effective solution for businesses to access computing power, storage, and other resources without the need for significant upfront investments in physical infrastructure.</p>
</li>
</ul>
<h3 id="heading-key-features-and-services"><strong>Key Features and Services</strong></h3>
<p>AWS offers a vast array of services catering to diverse business needs. From computing power with Amazon EC2 to scalable storage with Amazon S3, AWS provides a comprehensive suite of solutions. Key features include:</p>
<ol>
<li><p><strong>Elasticity and Scalability:</strong> AWS allows businesses to scale their resources up or down based on demand, ensuring optimal performance and cost efficiency.</p>
</li>
<li><p><strong>Global Reach:</strong> With data centers strategically located around the world, AWS enables businesses to deploy applications globally, reducing latency and improving user experience.</p>
</li>
<li><p><strong>Security:</strong> AWS prioritizes the security of its infrastructure, providing tools and services for identity and access management, encryption, and compliance.</p>
</li>
<li><p><strong>Cost Management:</strong> The pay-as-you-go pricing model allows businesses to pay only for the resources they use, avoiding upfront capital expenditures and optimizing costs.</p>
</li>
</ol>
<p>We are committed to delivering content that informs, inspires, and resonates with you. Your comments, and shared insights fuel our passion to continue creating valuable content.</p>
<p>As we move forward, we invite you to stay connected with us. Feel free to share your thoughts in the comments.</p>
<p>Once again, thank you for being a part of our community. We look forward to continuing this journey together.</p>
]]></content:encoded></item><item><title><![CDATA[Git Basics: Installation Guide for Windows]]></title><description><![CDATA[Understanding Git and Installing it on Windows
Git:-

Git is a distributed version control system (DVCS) designed to handle everything from small to very large projects with speed and efficiency.

It was created by Linus Torvalds in 2005 for the deve...]]></description><link>https://blog.harshalyadav.in/git-basics-installation-guide-for-windows</link><guid isPermaLink="true">https://blog.harshalyadav.in/git-basics-installation-guide-for-windows</guid><category><![CDATA[Git]]></category><category><![CDATA[Open Source]]></category><category><![CDATA[distributed system]]></category><category><![CDATA[WeMakeDevs]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Fri, 29 Dec 2023 11:52:48 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1703849890176/7d059834-8897-4eb1-977b-c99c0dcf6d8f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-understanding-git-and-installing-it-on-windows">Understanding Git and Installing it on Windows</h2>
<p><strong>Git:-</strong></p>
<ul>
<li><p>Git is a distributed version control system (DVCS) designed to handle everything from small to very large projects with speed and efficiency.</p>
</li>
<li><p>It was created by Linus Torvalds in 2005 for the development of the Linux kernel.</p>
</li>
<li><p>It has since been adopted by many other projects.</p>
</li>
<li><p>It is available for Mac, Linux, and Windows.</p>
</li>
</ul>
<p><strong>Install Git:-</strong></p>
<ul>
<li><p>Visit the official git website: <a target="_blank" href="https://git-scm.com/"><strong>Git (git-scm.com)</strong></a>.</p>
</li>
<li><p>Click on the "Download" button to download the latest version for Windows.</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703780286882/d9a855f5-ee17-41d6-8341-5e8b0723b4a1.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703780583737/559c6417-cfb2-4410-9b47-b01b287636ee.png" alt class="image--center mx-auto" /></p>
<ul>
<li>The download should start automatically. Once it's finished, open the installer.</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703780649924/74d05acc-fb91-4a00-bf7c-bb58fbe30f4c.png" alt class="image--center mx-auto" /></p>
<ul>
<li><p>Follow the installation wizard, accepting the default settings unless you have a specific reason to change them.</p>
</li>
<li><p>During the installation, you will be asked to select the components to install. Ensure that "Git Bash Here" is selected, as it provides a Unix-like command-line environment on Windows.</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703835904338/06d9eac6-64e4-4811-a980-9d858ef9c248.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703835969131/aa127d82-dd50-41e8-b5d7-e0464c95c2bb.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703836020594/2a2f6917-3f08-49d4-9f67-f782f5d065bc.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703836136905/536714a0-f88a-42d6-b9d0-7b083df40926.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703836191188/ad12402e-cbf8-4899-aee1-d741aaf9bb06.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703836333281/92e7349c-964f-46bf-8d2b-ee359cbc6519.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703836503464/03d2b536-e533-4348-a405-8b03e3e2cd60.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703836565328/dadce8ca-d9e3-4887-9b1f-170215dabced.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703837287207/ede45769-c336-49eb-bc1d-08b0f04d50d5.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703837335712/1d56709f-d11b-4523-b2a4-db7c9c9df99d.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703846563211/8e3b4d22-6fe5-434b-bf7d-2c6628b6cf3a.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703846776926/756a9b6d-9958-4a68-a535-3b4d1b951cdc.png" alt class="image--center mx-auto" /></p>
<ul>
<li>Complete the installation process by clicking "Next" and then "Finish".</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703846849282/75bc0f42-b5f5-4e9a-9f27-a7c82247fe06.png" alt class="image--center mx-auto" /></p>
<ul>
<li>Open git bash and check the git version <code>git -v</code></li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703847025356/1a6f8d14-1840-4112-8672-fb71e4039cc5.png" alt class="image--center mx-auto" /></p>
<p>We are committed to delivering content that informs, inspires, and resonates with you. Your comments, and shared insights fuel our passion to continue creating valuable content.</p>
<p>As we move forward, we invite you to stay connected with us. Feel free to share your thoughts in the comments.</p>
<p>Once again, thank you for being a part of our community. We look forward to continuing this journey together.<br /><em>"Happy Coding"</em></p>
]]></content:encoded></item><item><title><![CDATA[Containerizing a node and mongodb application using Docker in a minute.]]></title><description><![CDATA[Containerizing a node, express, and mongodb application using Docker.
In today's world of scalable and deployable applications, containerization has become a crucial aspect of development and deployment workflows. Docker, a popular containerization p...]]></description><link>https://blog.harshalyadav.in/containerizing-a-node-and-mongodb-application-using-docker-in-a-minute</link><guid isPermaLink="true">https://blog.harshalyadav.in/containerizing-a-node-and-mongodb-application-using-docker-in-a-minute</guid><category><![CDATA[Docker compose]]></category><category><![CDATA[Docker]]></category><category><![CDATA[Node.js]]></category><category><![CDATA[MongoDB]]></category><category><![CDATA[WeMakeDevs]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Tue, 26 Dec 2023 12:11:03 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1703592029601/f22e1207-4ac1-4679-b4cc-f77b5e8a6ffc.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-containerizinghttpsawsamazoncomdocker-a-node-express-and-mongodb-application-using-docker"><a target="_blank" href="https://aws.amazon.com/docker/"><strong>Containerizing</strong></a> <strong>a node, express, and mongodb application using Docker.</strong></h2>
<p>In today's world of scalable and deployable applications, containerization has become a crucial aspect of development and deployment workflows. Docker, a popular containerization platform, allows developers to package applications and their dependencies into a standardized unit called a container. In this tutorial, we'll walk through the process of containerizing a Node.js, Express, and MongoDB application using Docker.</p>
<h3 id="heading-step-1-clone-a-repository"><strong>Step 1: Clone a Repository</strong></h3>
<pre><code class="lang-markdown">git clone https://github.com/Harshalyadav/Book<span class="hljs-emphasis">_API.git
cd Book_</span>API
npm install
or
npm i
</code></pre>
<p>If you want to run this code. You need to add a <code>.env</code> file in the root of this folder. In the <code>.env</code> file, you must define the MongoDB URL and PORT number. Then, run the code using <code>npm run dev</code> or <code>npm start</code> command.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703575683067/af0d3892-7d76-4cf2-9527-dcc636b262af.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-step-2-folder-structure"><strong>Step 2: Folder Structure</strong></h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703575588760/4e8c86db-a1f8-48fe-8386-2825bb3cb005.png" alt class="image--center mx-auto" /></p>
<p>1&gt;API folder:- This folder contains the route handler function.<br />2&gt;database folder:- This folder contains the database model and schema.<br />3&gt;image:- This folder contains the images. This image show how to interact with or test your application using tools like Postman.<br />4&gt;node_module:- This folder contains the dependencies (packages or modules) that your project relies on.<br />5&gt;.env:- This file is commonly used in web development to store configuration variables, often referred to as environment variables.<br />6&gt;.gitignore:- This file is used in a Git repository to specify files and directories that should be ignored and not tracked by Git.<br />7&gt;index.js:- This file has a server and database connection.</p>
<h3 id="heading-step-3-initializehttpsdocsdockercomlanguagenodejscontainerizeinitialize-docker-assets-docker"><strong>Step 3:</strong> <a target="_blank" href="https://docs.docker.com/language/nodejs/containerize/#initialize-docker-assets"><strong>Initialize</strong></a> <strong>Docker</strong></h3>
<p>Initialize docker in your application you need docker assets(dockerfile, compose.yaml). <code>docker init</code> command used to initialize the docker file in your application.</p>
<pre><code class="lang-markdown">docker init
</code></pre>
<p>After using <code>docker init</code> they asked:-<br />1&gt; What application platform does your project use? <strong>Node (default select or if not then select)</strong><br />2&gt;What version of Node do you want to use? <strong>18.16.0</strong><br />3&gt;Which package manager do you want to use? <strong>npm</strong><br />4&gt;What command do you want to use to start the app: <strong>node src/index.js</strong><br />5&gt;What port does your server listen on? <strong>8000</strong>  </p>
<p>You will see four new files created on the root directory.<br />1&gt;Dockerfile.<br />2&gt;compose.yaml<br />3&gt;.dockerignore<br />4&gt;README.Docker.md</p>
<p><strong>Dockerfile:</strong> A Dockerfile is a script that contains instructions for building a Docker image.<br /><strong>compose.yaml:</strong> This file is a YAML file used to define and configure Docker applications. It allows you to define multiple services, networks, and volumes in a single file, making it easier to manage complex multi-container applications.<br /><strong>.dockerignore:</strong> This file is used to specify files and directories that should be excluded from the context when building a Docker image. The context is the set of files and directories located at the specified path or URL in the <code>docker build</code> command.<br />The purpose of <code>.dockerignore</code> is similar to the <code>.gitignore</code> file in Git<br /><strong>README.Docker.md:</strong> This file is typically a Markdown-formatted document that provides instructions, guidelines, and information specific to running or deploying a project using Docker. It serves as documentation for users or developers who are interested in using Docker to set up, run, or deploy the associated project.</p>
<h3 id="heading-step-4-edit-dockerfile"><strong>Step 4: Edit Dockerfile</strong></h3>
<p>A Dockerfile is a script that contains instructions for building a Docker image. Add the Port number and MongoDB URL on it.</p>
<pre><code class="lang-markdown"><span class="hljs-section"># syntax=docker/dockerfile:1</span>
<span class="hljs-section"># Comments are provided throughout this file to help you get started.</span>
<span class="hljs-section"># If you need more help, visit the Dockerfile reference guide at</span>
<span class="hljs-section"># https://docs.docker.com/go/dockerfile-reference/</span>

ARG NODE<span class="hljs-emphasis">_VERSION=18.16.0

FROM node:${NODE_</span>VERSION}-alpine

<span class="hljs-section"># Use production node environment by default.</span>
ENV NODE<span class="hljs-emphasis">_ENV production
ENV PORT 8000
ENV MONGO_</span>URL mongodb+srv://<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">User_Name</span>&gt;</span></span>:<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">Password</span>&gt;</span></span>@<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">Cluster_Name</span>&gt;</span></span>.km7rq7g.mongodb.net/?retryWrites=true&amp;w=majority

WORKDIR /usr/src/app

<span class="hljs-section"># Download dependencies as a separate step to take advantage of Docker's caching.</span>
<span class="hljs-section"># Leverage a cache mount to /root/.npm to speed up subsequent builds.</span>
<span class="hljs-section"># Leverage a bind mounts to package.json and package-lock.json to avoid having to copy them into</span>
<span class="hljs-section"># into this layer.</span>
RUN --mount=type=bind,source=package.json,target=package.json \
<span class="hljs-code">    --mount=type=bind,source=package-lock.json,target=package-lock.json \
    --mount=type=cache,target=/root/.npm \
    npm ci --omit=dev
</span>
<span class="hljs-section"># Run the application as a non-root user.</span>
USER node

<span class="hljs-section"># Copy the rest of the source files into the image.</span>
COPY . .

<span class="hljs-section"># Expose the port that the application listens on.</span>
EXPOSE 8000

<span class="hljs-section"># Run the application.</span>
CMD npm start
</code></pre>
<h3 id="heading-step-5-run-the-application"><strong>Step 5: Run the Application</strong></h3>
<pre><code class="lang-markdown">docker compose up --build
or 
docker compose up --build -d
<span class="hljs-section">#If you want to run your application on background.</span>
</code></pre>
<p>The <code>docker-compose up --build</code> command is used to build or rebuild Docker images and start containers defined in the <code>compose.yml</code> file. Output:-</p>
<pre><code class="lang-markdown">http://localhost:8000
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703574851302/cb18e432-5d17-49af-b0e4-6e43a97a77d4.png" alt class="image--center mx-auto" /></p>
<p><strong>Note:-</strong> Docker Desktop must be running.</p>
<h3 id="heading-step-6-push-a-docker-image-to-docker-hub"><strong>Step 6: Push a Docker image to Docker Hub</strong></h3>
<p>1&gt;<strong>Login to Docker Hub:</strong> Before pushing an image, make sure you are logged in to your Docker Hub account using the <code>docker login</code> command. Open a terminal and run:</p>
<pre><code class="lang-markdown">docker login
</code></pre>
<p>2&gt;<strong>Tag your Docker Image:</strong>Before pushing, you need to tag your Docker image with your Docker Hub username and the repository name. Use the following command:</p>
<pre><code class="lang-markdown">docker tag local-image:tag username/repository:tag
</code></pre>
<p>Replace <code>local-image:tag</code> with the name and tag of your local Docker image, and <code>username/repository:tag</code> with your Docker Hub username, the repository name, and the tag you want to use on Docker Hub.<br />Example:</p>
<pre><code class="lang-markdown">docker tag book<span class="hljs-emphasis">_api-server:latest harshal12001/book_</span>api-server:latest
</code></pre>
<p>3&gt;<strong>Push the Docker Image:</strong>After tagging, push the image to Docker Hub using the <code>docker push</code> command:</p>
<pre><code class="lang-markdown">docker push username/repository:tag
</code></pre>
<p>Example:</p>
<pre><code class="lang-markdown"> docker push harshal12001/book<span class="hljs-emphasis">_api-server:latest</span>
</code></pre>
<p>This command uploads your Docker image to Docker Hub. The image will be available in your Docker Hub repository.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703577981785/9dacb54e-bc2d-45db-b49f-8abc054013f4.png" alt class="image--right mx-auto mr-0" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703578021612/b4270e38-9064-4702-bb59-9207ba3038d9.png" alt class="image--center mx-auto" /></p>
<p><strong>4&gt;Verify on Docker Hub:</strong> Visit Docker Hub in your web browser and log in to your account. You should see your pushed image in your repository.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703578178298/fbc6dffc-ea33-409d-b2ed-c8e3e068be8c.png" alt class="image--center mx-auto" /></p>
<p>We are committed to delivering content that informs, inspires, and resonates with you. Your comments, and shared insights fuel our passion to continue creating valuable content.</p>
<p>As we move forward, we invite you to stay connected with us. Feel free to share your thoughts in the comments.</p>
<p>Once again, thank you for being a part of our community. We look forward to continuing this journey together.<br /><em>"Happy Coding"</em></p>
]]></content:encoded></item><item><title><![CDATA[Essential Docker Commands for Container Management and Deployment]]></title><description><![CDATA[1> container ls:- This command lists the currently running Docker containers on your system.syntax:- docker container ls

i> container ls -a :- This command lists hidden docker container.

2> docker container run:- This command is used to create and ...]]></description><link>https://blog.harshalyadav.in/essential-docker-commands-for-container-management-and-deployment</link><guid isPermaLink="true">https://blog.harshalyadav.in/essential-docker-commands-for-container-management-and-deployment</guid><category><![CDATA[WeMakeDevs]]></category><category><![CDATA[Docker]]></category><category><![CDATA[docker images]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Sat, 11 Nov 2023 03:40:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1699608134487/0576965a-5da3-4b93-9199-260f8747a7f8.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>1&gt; <strong>container ls</strong>:- This command lists the currently running Docker containers on your system.<br />syntax:- <code>docker container ls</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1698654517716/14820038-0b5a-4186-897c-6a168530dd85.png" alt class="image--center mx-auto" /></p>
<p>i&gt; <strong>container ls -a</strong> :- This command lists hidden docker container.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699600865928/94aeafbf-3243-4c4f-ad60-8a0ef4069114.png" alt class="image--center mx-auto" /></p>
<p><strong>2&gt; docker container run</strong>:- This command is used to create and run a container from a specified image.<br />syntax:- <code>docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]</code><br />Example:-<br /><code>docker container run ubuntu</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699611559466/05229280-85e9-46bb-a3f3-5983a4e1d253.png" alt class="image--center mx-auto" /></p>
<p>This specifies the name of the image. If the image is not already present on your system, Docker will automatically pull it from Docker Hub<br />i&gt; If you want to run the container in the background.<br />syntax:- <code>docker container run -d ubuntu</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699612983675/aed57349-3236-4552-b5dd-92bb07be72a9.png" alt class="image--center mx-auto" /></p>
<p>ii&gt; If you want to see the background processes running in a detached container. syntax:- <code>docker container run -it ubuntu</code><br />iii&gt; The command executed in the container is <mark>sleep 30</mark>, which means the container will stay running for 30 seconds before it completes<br />syntax:- <code>docker container run -d ubuntu sleep 30</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699612837216/321cc155-37a6-4181-bc16-2d70727e12bc.png" alt class="image--center mx-auto" /></p>
<p>iv&gt; when you exit the interactive shell in the detached container, the container continues running.<br />synatx:- <code>docker stop container-id</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699612316499/2fbead67-acd6-4078-bb98-eec8ccce3c3d.png" alt class="image--center mx-auto" /></p>
<p>v&gt; This command is used to start a stopped container.<br />syntax:- <code>docker start container-id</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699612669797/dc576c3c-89f5-4d16-90e0-89b4381766db.png" alt class="image--center mx-auto" /></p>
<p>3&gt; <strong>container rm</strong>:- Command is used to remove one or more containers from your Docker environment.<br />syntax:- <code>docker container rm "container name" or docker container rm "container id"</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699610903272/553b2f77-4eb0-4286-a2ef-624484084339.png" alt class="image--center mx-auto" /></p>
<p>i&gt; <strong>Remove Multiple Containers:-</strong> You can remove multiple containers at once by specifying their names or IDs separated by spaces:<br />syntax:- <code>docker container rm container1 container2 container3........</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699669768370/b2b305fa-a44b-44f3-b526-afde5b415857.png" alt class="image--center mx-auto" /></p>
<p><strong>4&gt; Container logs</strong>:-In Docker, container logs provide valuable information about the status and activities of a running container.<br />syntax :- <code>docker logs [OPTIONS] CONTAINER</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699664177835/d8d16d70-316b-4de1-827c-c7c918d9cb2d.png" alt class="image--center mx-auto" /></p>
<p>Replace <em><mark>CONTAINER </mark></em> with the ID or name of your Docker container.<br />i&gt;docker logs -f container-id:- Follow log output.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699664589586/597b2c6a-e0eb-4f84-b82d-a03cd1c4204f.png" alt class="image--center mx-auto" /></p>
<p>ii&gt;docker logs --tail 20 container-id:- Number of lines to show from the end of the logs.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699664768092/1d3e104d-e297-43e5-8902-532cdb3fa025.png" alt class="image--center mx-auto" /></p>
<p>iii&gt;docker logs --since="2023-01-01T00:00:00" my_container:- Show logs since or until a specific timestamp or relative time.<br />iv&gt;docker logs --timestamps container-id:- Show timestamps in the log entries.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699664913691/bdbbd094-e63f-435e-a2d9-a2ad3679e95a.png" alt class="image--center mx-auto" /></p>
<p>5&gt; <strong>docker container inspect</strong>:- This command is used to obtain detailed information about a running or stopped container.<br />syntax:- <code>docker container inspect container-id</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699673202729/75d57ff2-29e0-4cb5-9b4e-73649cb11925.png" alt class="image--center mx-auto" /></p>
<p>6&gt; <strong>docker container top</strong>:- This command is used to display the running processes of one or more containers.<br />syntax:- <code>docker container top container-id</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699665007700/2320065f-7d12-4e1e-8c16-dda62b3f40b5.png" alt class="image--center mx-auto" /></p>
<p>7&gt; <strong>docker stats:-</strong> This command provides real-time information about CPU usage, memory usage, network I/O, and block I/O of one or more containers.<br />syntax:- <code>docker stats container-id</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699670185779/350e4684-75a6-490f-a0e2-dd8f1b0d05ba.png" alt class="image--center mx-auto" /></p>
<p>8&gt; <strong>docker container restart:-</strong> This command is used to restart one or more stopped containers.<br />syntax:- <code>docker container restart container-id</code><br />note:- If you want to restart multiple containers,<br /><code>docker container restart container-id1 container-id2</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699665047519/3622af5d-bac7-4f79-bef2-4d5d95500d39.png" alt class="image--center mx-auto" /></p>
<p>9&gt; <strong>docker container attach:-</strong> This command is used to attach the terminal to a running container. When you attach to a container, you connect your terminal's input and output streams to the container, allowing you to interact with the running processes in the container as if you were connected directly to its console.<br />syntax:- <code>docker container attach container-id</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699670378264/edf8abef-b6b5-4e70-9ad2-263c83792268.png" alt class="image--center mx-auto" /></p>
<p>10&gt; <strong>docker container kill:-</strong> This command is used to send a signal to a running container, causing it to stop abruptly.<br />syntax:- <code>docker container kill container-id</code><br />note:- 1&gt; By default, the <code>docker container kill</code> command sends the SIGKILL signal to the container, which immediately terminates the processes in the container.<br />2&gt; This is a forceful way to stop a container and should be used judiciously.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699665103373/7839ee24-6f90-4310-b700-9c43d5566b14.png" alt class="image--center mx-auto" /></p>
<p>11&gt; <strong>docker container wait:-</strong> This command is used to block until a container stops, then prints the container's exit code.</p>
<p>syntax:- <code>docker container wait container-id</code><br />note:-<br />1&gt; This command will block until the specified container stops, and then it will print the exit code of that container.<br />2&gt; The exit code is a numeric value that indicates the exit status of the container, where 0 typically means success and non-zero values indicate an error.</p>
<p>12&gt; <strong>docker container pause:-</strong> This command is used to suspend the processes in a running container.<br />syntax:- <code>docker container pause container-id</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699670635663/c8191307-96e5-4305-b4c8-d5a338eeebe3.png" alt class="image--center mx-auto" /></p>
<p>13&gt;<strong>docker container unpause:-</strong> This command is used to resume the execution of processes in a paused container.<br />syntax:- <code>docker container unpause container-id</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699670656863/56af80ff-fb8a-48a0-863a-83e134b3ecbf.png" alt class="image--center mx-auto" /></p>
<p><strong>14&gt; image ls</strong>:- This command is used to list the Docker images that are currently available on your system.<br />syntax:- <code>docker image ls</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1698654649329/392d8659-a397-46ae-b500-ef6a87a65e9b.png" alt class="image--center mx-auto" /></p>
<p>15&gt; <strong>network ls</strong>:- This command lists the docker networks on your system.<br />syntax:- <code>docker network ls</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699600759950/eaf13651-eb01-43a9-8a26-5b7e6e2e1b6a.png" alt class="image--center mx-auto" /></p>
<p>16&gt; <strong>docker run Image</strong>:- This command is a fundamental and essential command in Docker used to create and start a new container from a specified image.<br />syntax:- <code>docker run Image-name</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699610727758/8b1cf443-c872-40d8-9a8f-ba3ee5c7346f.png" alt class="image--center mx-auto" /></p>
<p>17&gt; <strong>container run ubuntu cat /etc/os-release</strong>:- This is the command that will be executed inside the container. It reads the contents of the <code>/etc/os-release</code> file, which contains information about the operating system.<br />syntax:- <code>docker container run ubuntu cat /etc/os-release</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699600727753/601f7653-a9bc-4970-b2e2-b3fe20d2d5b5.png" alt class="image--center mx-auto" /></p>
<p><strong>18&gt; Port Mapping:-</strong> Port mapping is the process of binding a network port on the host machine to a port on the container. This allows external traffic to access services running inside the container.<br />Port mapping is a crucial aspect of Docker networking, enabling communication between the container and the host machine or external networks.<br />syntax:- <code>docker run -p hostPort:containerPort ...</code><br /><code>docker run -p 8080:80 nginx</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699672995650/64fa0b26-06f1-4cf2-b5e4-dcc2b4fa2dd8.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1699673012782/c5738386-d591-4f1e-b395-4dd14e69fb44.png" alt class="image--center mx-auto" /></p>
<p><strong>i&gt; Mapping Multiple Ports:-</strong> <code>docker run -p hostPort1:containerPort1 -p hostPort2:containerPort2 -p hostPort3:containerPort3 ... image</code><br />The <mark>-p </mark> option automatically maps all exposed ports on the container to random ports on the host.</p>
]]></content:encoded></item><item><title><![CDATA[What is PostgreSQL?]]></title><description><![CDATA[Introduction

PostgreSQL is an Object Relational Database Management System.

It's also called ORDMS.

It's an Open-Source Database Management System.

It uses MYSQL standards.

It follows a client-server architecture.



Client Applications: Postgre...]]></description><link>https://blog.harshalyadav.in/what-is-postgresql</link><guid isPermaLink="true">https://blog.harshalyadav.in/what-is-postgresql</guid><category><![CDATA[Databases]]></category><category><![CDATA[MySQL]]></category><category><![CDATA[PostgreSQL]]></category><category><![CDATA[backend]]></category><category><![CDATA[database]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Thu, 01 Jun 2023 15:49:40 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1706755372036/3ad91e48-6170-41bf-8b9e-9e262d82facf.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<ol>
<li><p>PostgreSQL is an Object Relational Database Management System.</p>
</li>
<li><p>It's also called ORDMS.</p>
</li>
<li><p>It's an Open-Source Database Management System.</p>
</li>
<li><p>It uses MYSQL standards.</p>
</li>
<li><p>It follows a client-server architecture.</p>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1685633300800/043b7f70-2e71-4fdc-b253-90cf514ba732.png" alt class="image--center mx-auto" /></p>
<p>Client Applications: PostgreSQL can be accessed by various client applications such as command-line tools, graphical user interfaces (GUIs), web applications, and programming languages.</p>
<p>Server: The PostgreSQL server is the core component that manages the database and handles client requests. It consists of several processes and components:<br />Postmaster: This is the main process that manages the database connections, authentication, and other server-level operations.</p>
<ul>
<li><p>Background Writer (BGW): It manages the writing of modified data from memory (shared buffers) to disk (data files) to ensure data durability.</p>
</li>
<li><p>Checkpointer: This process writes dirty pages from shared buffers to disk and updates the checkpoint records.</p>
</li>
<li><p>Autovacuum Launcher: It automatically initiates the vacuuming and analyzing of tables to reclaim disk space and update query statistics.</p>
</li>
<li><p>Shared Memory: PostgreSQL uses shared memory to facilitate communication and data sharing among various server processes.</p>
</li>
</ul>
<p>We are committed to delivering content that informs, inspires, and resonates with you. Your comments, and shared insights fuel our passion to continue creating valuable content.</p>
<p>As we move forward, we invite you to stay connected with us. Feel free to share your thoughts in the comments.</p>
<p>Once again, thank you for being a part of our community. We look forward to continuing this journey together.</p>
]]></content:encoded></item><item><title><![CDATA[Docker]]></title><description><![CDATA[What is Docker?


Docker is an open-source, centralized platform designed to create, deploy and run applications.

Docker is a set of "platform as a service" that uses operating system-level virtualization. Whereas VMware uses hardware-level virtuali...]]></description><link>https://blog.harshalyadav.in/docker</link><guid isPermaLink="true">https://blog.harshalyadav.in/docker</guid><category><![CDATA[Docker]]></category><category><![CDATA[WeMakeDevs]]></category><category><![CDATA[TrainWithShubham]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Wed, 03 May 2023 11:56:29 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1680691622076/df7ab000-89d5-43b0-8a00-0ffdc9317d92.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-what-is-docker">What is Docker?</h2>
<blockquote>
<ol>
<li><p>Docker is an open-source, centralized platform designed to create, deploy and run applications.</p>
</li>
<li><p>Docker is a set of "platform as a service" that uses operating system-level virtualization. Whereas VMware uses hardware-level virtualization.</p>
</li>
<li><p>Docker is written in the "Go" language. It is a tool that performs OS-level virtualization, also known as containerization.</p>
</li>
</ol>
</blockquote>
<h3 id="heading-advantages-of-docker"><strong>Advantages of Docker :-</strong></h3>
<blockquote>
<ol>
<li><p>Less Cost.</p>
</li>
<li><p>No pre-allocation of RAM.</p>
</li>
<li><p>CI Efficiency- Docker enables you to build a container image and use that same image across every step of the deployment process.</p>
</li>
<li><p>It is lightweight.</p>
</li>
<li><p>It can run on physical hardware/virtual hardware or the cloud.</p>
</li>
<li><p>We can reuse the image.</p>
</li>
<li><p>It takes very less time to create the container.</p>
</li>
</ol>
</blockquote>
<h3 id="heading-disadvantages-of-docker"><strong>Disadvantages of Docker :-</strong></h3>
<blockquote>
<ol>
<li><p>Docker is not a good solution for application that requires rich GUI.</p>
</li>
<li><p>Docker does not provide platform compatibility. This means if the application is designed to run in a docker container on Windows then it can't run on Linux or vice versa.</p>
</li>
<li><p>The docker is suitable when the development O.S. and testing O.S. same. If OS is different we should run VM.</p>
</li>
<li><p>No solution for data recovery and backup.</p>
</li>
</ol>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Linux and its basic commands]]></title><description><![CDATA[What is Linux?
Linux is an open-source Operating system based on Unix. It was first developed by Linus Torvalds in 1991 and is now widely used in various computer systems, from desktop computers to servers, and even in mobile devices.
One of the main...]]></description><link>https://blog.harshalyadav.in/linux-and-its-basic-commands</link><guid isPermaLink="true">https://blog.harshalyadav.in/linux-and-its-basic-commands</guid><category><![CDATA[Linux]]></category><category><![CDATA[linux for beginners]]></category><category><![CDATA[BlogsWithCC]]></category><category><![CDATA[@hiteshchoudharylco]]></category><category><![CDATA[TrainWithShubham]]></category><dc:creator><![CDATA[Harshal Yadav]]></dc:creator><pubDate>Thu, 30 Mar 2023 08:04:36 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1680162802511/ef5dd8ab-70ac-4dde-8925-b04a9457dee9.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-what-is-linux"><strong>What is Linux?</strong></h3>
<p>Linux is an open-source Operating system based on Unix. It was first developed by Linus Torvalds in 1991 and is now widely used in various computer systems, from desktop computers to servers, and even in mobile devices.</p>
<p>One of the main advantages of Linux is its flexibility and customizability.</p>
<p>It has many flavors like Ubuntu, CentOS, Kali-Linux, Fedora, etc.</p>
<h3 id="heading-linux-commands"><strong>Linux commands</strong></h3>
<p>1&gt; pwd : - Show your current directory.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1680160124808/93c59ad6-4bf6-45d5-83f2-425fa2728492.png" alt class="image--center mx-auto" /></p>
<p>2&gt; ls :- It is used to list all files and folders present in a directory.<br />ls -a :- It is used to list all files and folders including hidden files and folders.<br />ls -R :- It is used to list the contents of the subdirectories recursively.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1680160430335/4346fc70-41ef-4927-a820-dd2fe05d569c.png" alt class="image--center mx-auto" /></p>
<p>3&gt; <strong>cd</strong> :- This command is used to change the directories.<br /><strong>cd &lt;path&gt;</strong> :- To change the directory to the provided path.<br /><strong>cd ..</strong> :- To change the directory to one step back.<br /><strong>cd ~ or cd</strong> :- Used to bring the user to the home directory.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1680160927118/de9acb36-3bd3-40fd-94e9-c1452050cb12.png" alt class="image--center mx-auto" /></p>
<p>4&gt; mkdir :- This command is used to create the directory.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1680160644687/516e44cc-8782-42cb-8dcc-4ce376451474.png" alt class="image--center mx-auto" /></p>
<p>5&gt; mv :- This command is used to rename file or directory.<br /><strong>mv Original_name New_name</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1680161639713/fcf9e1e7-0cc8-4ec6-af90-aadb73f58d1a.png" alt class="image--center mx-auto" /></p>
<p>6&gt; rm :- This command is used to remove/delete files.<br />rm -r :- Delete a non-empty file directory and all the files within it.<br />rmdir :- Delete a directory.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1680161477962/c6aeb382-d4cf-4fe0-aeec-a5ff91ac93e5.png" alt class="image--center mx-auto" /></p>
<p>7&gt; cp :- This command is used to copy a directory.<br /><strong>cp -r dirname new_dirname</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1680162508828/5d8b8af2-30b2-47ec-a780-1ede667e86e3.png" alt class="image--center mx-auto" /></p>
<p>8&gt; cat :- This is used to display content inside the file.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1680162314718/b622b7d5-ce1c-4ed6-a611-7eb11b5f0e26.png" alt class="image--center mx-auto" /></p>
<p>9&gt; touch :- This command is used to create a file.<br /><strong>touch file_name</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1680162062048/19d9f61e-0ec8-4ac7-8f90-f311b765491f.png" alt class="image--center mx-auto" /></p>
<p>10&gt; clear :- This command is used to clear the terminal.</p>
<p>10&gt; sudo :-This is used to allow a regular user to run programs with the security privileges of the superuser or root user.</p>
]]></content:encoded></item></channel></rss>