<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Anshika Sharma on Medium]]></title>
        <description><![CDATA[Stories by Anshika Sharma on Medium]]></description>
        <link>https://medium.com/@anshu-anshikasharma114?source=rss-a79a80bf99f5------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*0K2_L1NNOKZIXMWtaTDWuA.jpeg</url>
            <title>Stories by Anshika Sharma on Medium</title>
            <link>https://medium.com/@anshu-anshikasharma114?source=rss-a79a80bf99f5------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 19 May 2026 19:13:45 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@anshu-anshikasharma114/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Stop Hoping, Start Enforcing: The Power of Claude Hooks]]></title>
            <link>https://anshu-anshikasharma114.medium.com/stop-hoping-start-enforcing-the-power-of-claude-hooks-264bb9fdeff2?source=rss-a79a80bf99f5------2</link>
            <guid isPermaLink="false">https://medium.com/p/264bb9fdeff2</guid>
            <category><![CDATA[claude-hooks]]></category>
            <category><![CDATA[claude-code]]></category>
            <category><![CDATA[anthropic-claude]]></category>
            <category><![CDATA[claude-opus]]></category>
            <dc:creator><![CDATA[Anshika Sharma]]></dc:creator>
            <pubDate>Fri, 10 Apr 2026 09:29:18 GMT</pubDate>
            <atom:updated>2026-04-10T09:29:18.593Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RS2F4XfisGiwm2yjHfBJow.png" /></figure><blockquote><strong>Your CLAUDE.md Is a Suggestion. Hooks Make It Law.</strong></blockquote><p>When adding your instructions to claude.md even at different level — Claude takes it like a suggestion.</p><p>Suppose if Claude take your suggestions as a command to complete a step. To achieve this with Claude, need make it a rule — then Claude have to use it.</p><p>Turning your suggestion to a must do step,<strong> Hooks are there to help</strong>.</p><p>Lets get more and more types and use case of hooks.</p><p><strong>Use Cases of Hooks:</strong></p><p>1. Run a formate checker after every Claude edit a file. To ensure an error free edit.<br>2. Restrict Claude form reading particular file/s. Basically the files contain sensitive information like secrets and credentials.<br>3. Execute test cases once the code update happen. <br>4. Check for all the vulnerabilities, if there is any container image configuration.<br>5. Block file edits which do not follow the naming convention for variable definition.<br>6. Block the usage of deprecated function usage.</p><p>If we observe here, every use case is playing around the functionality of Claude’s main operation/tools. So the most usable hooks named after — <strong><em>PreToolUse</em></strong> and <strong><em>PostToolUse</em></strong> Hooks.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*H4pvwpV0ssZ5egs1IVk_xw.png" /></figure><p>As this depicts, the hooks will be called as per the tool call and hook definition.</p><p><strong>Problem Statement:</strong> Using AI tools, we are always worried about our sensitive data and files. Using claude this is very normal as we are providing the folder level access and if any .env file is staored then its high chance that Claude might read it.</p><p>Lets define a PreToolUse hook at project level for restricting it to read the data from sensitive file ./.claude/settings.local.json</p><pre>{<br>    &quot;hooks&quot;: {<br>        &quot;PreToolUse&quot;: [<br>            {<br>                &quot;matcher&quot;: &quot;Read|Grep&quot;,<br>                &quot;hooks&quot;: [<br>                    {<br>                        &quot;type&quot;: &quot;command&quot;,<br>                        &quot;command&quot;: &quot;node ./hooks/read_hook.js&quot;<br>                    }<br>                ]<br>            }<br>        ]<br>    }<br>}</pre><p>But what’s inside ./hooks/read_hook.js</p><pre>async function main() {<br>  const chunks = [];<br>  for await (const chunk of process.stdin) {<br>    chunks.push(chunk);<br>  }<br>  <br>  const toolArgs = JSON.parse(Buffer.concat(chunks).toString());<br>  <br>  // Extract the file path Claude is trying to read<br>  const readPath = <br>    toolArgs.tool_input?.file_path || toolArgs.tool_input?.path || &quot;&quot;;<br>  <br>  // Check if Claude is trying to read the .env file<br>  if (readPath.includes(&#39;.env&#39;)) {<br>    console.error(&quot;You cannot read the .env file&quot;);<br>    process.exit(2);<br>  }<br>}<br><br>// invoke the hook<br>main();</pre><p>Flow with a Hook:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/848/1*bUAGEO9jBDpBwUNplYvnhg.png" /></figure><p>Lets see how Claude response when we try to read a sensitive info from .env file.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BcWy6ZeDW0QH3xYfIgZCCQ.png" /><figcaption>Blocked the read request by LLM to Claude</figcaption></figure><p>If we ask Claude why it blocked the Operation. It will provide the details for why the operation was blocked along with the complete details about how the tool works.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jcTDpywLSt9zejX5UNMD9Q.png" /><figcaption>How it blocked the request and why</figcaption></figure><p>Building a Hook Includes:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/756/1*_pb0x9G9ui5ix6n5mqRfhg.png" /></figure><p>Similar to <strong>PreToolUse</strong> we also have many cases for <strong>PostToolUse</strong> like we discussed above.</p><p>Apart from Pre and Post, there are many useful hooks available in-build within Claude. Here are the hooks:</p><ol><li><strong>Stop</strong>: Executed by Claude when its finished its task/s.</li><li><strong>SubAgentStop</strong>: Run when the assigned tasks of a subAgent is completed</li><li><strong>SessionStart</strong>: When starting a session — Customise it to greet as well ⭐️</li><li><strong>SessionEnd</strong>: Runs when command to end the session.</li></ol><p>📍Note: For each hook call, the tool input is different. To check that create a hook.</p><pre>{<br>    &quot;hooks&quot;: {<br>        &quot;PostToolUse&quot;: [<br>            {<br>                &quot;matcher&quot;: &quot;*&quot;,<br>                &quot;hooks&quot;: [<br>                    {<br>                        &quot;type&quot;: &quot;command&quot;,<br>                        &quot;command&quot;: &quot;jq . &gt; post-log.json&quot;<br>                    }<br>                ]<br>            }<br>        ]<br>    }<br>}</pre><p>🕵🏻 Lets try finding more such use cases where your concerns can be transfered to Claude and your suggestions to be written as rules. Till then</p><p>✨ <strong>Keep learning, keep sharing</strong> ✨</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=264bb9fdeff2" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Claude Code: Turning a Tool into a Habit]]></title>
            <link>https://anshu-anshikasharma114.medium.com/claude-code-turning-a-tool-into-a-habit-e3ac6f2326e8?source=rss-a79a80bf99f5------2</link>
            <guid isPermaLink="false">https://medium.com/p/e3ac6f2326e8</guid>
            <dc:creator><![CDATA[Anshika Sharma]]></dc:creator>
            <pubDate>Mon, 06 Apr 2026 19:16:57 GMT</pubDate>
            <atom:updated>2026-04-09T08:54:32.267Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/296/1*v4hTtuTF9BgA5nnTFtGNqg.jpeg" /></figure><blockquote>Adoption of Claude from just a tool to a daily habit</blockquote><p>Now a days we all are using Claude in our day to day coding tasks. But is it enough to just using it as tool?</p><p>or</p><p>Should we go to the habit of efficiently use Claude?</p><p>When we take a look toward Claude it is very efficient in writing code, create test cases and also resolve any coding related problems with better strategies and appropriate flow of execution. <br>But we cannot trust the flow and strategies blindly instead we should follow:</p><p><strong><em>HIL: Human-in-loop [strategy] 🙋🏻‍♂️</em></strong></p><p>There are few ways by which we can closely monitor and optimise Claude performance along with less token consumption. Here we go with few basic practices for our day-to-day tasks using Claude:</p><ol><li><strong>Instruction MD files:</strong> <br>To handle different projects you need different set of instructions or ruleset, to make Claude clearly understood about this seperation use different claude.md files. <br><strong><em>Example</em></strong>: <br> a. <strong>Claude.md:</strong> This is a project level instruction file, can also be shared with others. It includes generic set of instructions.<br> b. <strong>Claude.local.md:</strong> This should not be shared with others, only for local purpose.<br> c. <strong>~/.claude/claude.md:</strong> Its the system level instructions. Common for all project. Mostly contain the instruction for how your code practices should be.</li><li><strong>Codebase references</strong>: Best practice to use Claude is only provide the required files, don’t over burden the coding assistant when that data is not required. <br><strong>Example:</strong> Suppose faced an issue with the icon placement on the web page we have developed, now to fix it: we need html file and the css one (if need some change in styling). In this case, don’t push all the data of that web page to the coding assistant. `<strong>@+&lt;path_to_reference_file&gt;`</strong></li><li><strong>Different modes in Claude:</strong> There are different modes in Claude<br>a). Default mode: Where we interact, give prompts, get response and actions performed.<br>b). Planning mode: Claude will do exploration and planning before moving to write something. Shift+tab<br>c). Thinking mode: Allow Claude to do reasonings about more challenging problems. Add this instruction to the prompt like Use Ultrathink mode for this complex task</li><li><strong>Context Control:</strong> While interacting with Claude, many operations it perform including some success along with some failed executions leads to <em>pollute the context</em> which will just create an unnecessary burden to the context and no value addition. Use the concept of <strong><em>Rewind Conversation</em></strong> means revert to a previous message. Its like an hard push to a specific git commit from where we wanna start again, to achieve the same use:<br>1. <strong>Rewind Conversation:</strong> Use escape + escape<br>2. <strong>Clear context:</strong> Use /clear<br>3. <strong>Summarise Context:</strong> Use /compact<br>4. <strong>Redirect Conversation:</strong> Use escape<br><strong><em>Note: Each of these commands are very very useful and can be your token saviour.</em></strong></li><li><strong>Command customisation:</strong> Claude provide a large set of build-in commands like some we discussed above. Still we have scope for custom commands for different set of use cases. Like syntax command for checking syntax in file/s in that project. <br>To build the same add &lt;project&gt;/.claude/command/&lt;custom_command&gt;.mdto your project directory. Add required Instructions to say syntax.md here: your goal is to check and fix all the syntax issues in a set of files exist in the current project. Do: check, fix and validate.</li><li><strong>Tool Enrichment using MCP servers:</strong> With default set of tools, Claude doing great. Just think if Claude gets an extra hand to operate, it will become Ultra Powerful. To add an MCP server use claude add mcp &lt;server-name&gt; npx @&lt;package-name&gt;:&lt;package-version&gt;</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-VgdLv4PS1u5Dzn4wH11jw.jpeg" /><figcaption>claude + mcp colab</figcaption></figure><p>Note: These are just basic capabilities of Claude. Its much more capable in customising your coding ecosystem.</p><p>We will explore more capabilities together. Till the time — <br>✨Keep Learning, Keep Sharing! ✨</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e3ac6f2326e8" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[️ Mystery of Different LLMs: A Conversational Detective Story]]></title>
            <link>https://anshu-anshikasharma114.medium.com/%EF%B8%8F-mystery-of-different-llms-a-conversational-detective-story-8248f3929fb9?source=rss-a79a80bf99f5------2</link>
            <guid isPermaLink="false">https://medium.com/p/8248f3929fb9</guid>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[llama-3]]></category>
            <category><![CDATA[deepseek]]></category>
            <category><![CDATA[agentic-ai]]></category>
            <category><![CDATA[genai]]></category>
            <dc:creator><![CDATA[Anshika Sharma]]></dc:creator>
            <pubDate>Sun, 01 Jun 2025 18:02:15 GMT</pubDate>
            <atom:updated>2025-06-01T18:02:15.968Z</atom:updated>
            <content:encoded><![CDATA[<h4><em>“Two large language models, one keyboard, and a curious mind to question them both…”</em></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*by99AqlTUPT96cye.png" /></figure><p>Welcome readers to my AI detective diary.</p><p><strong>The scene?</strong> My terminal.<br><strong>The suspects?</strong> Two open-source large language models from the <em>Ollama</em> lineup:</p><ul><li>🦙 <strong>LLaMA</strong> — llama3.2:3b (2.0 GB)</li><li>🧠 <strong>DeepSeek</strong> — deepseek-r1:latest (4.7 GB)</li></ul><p>Both models were summoned using the mighty spell:</p><pre>ollama run llama3.2:3b<br>ollama run deepseek-r1:latest</pre><p><strong>My mission</strong>: Ask them identical questions and let their answers unravel the mystery of their intelligence, behaviour, and personality.</p><h3>🗣️ Interrogation Round 1: The Icebreaker</h3><blockquote><strong>Detective:</strong> “Hello!”</blockquote><h4>🦙 LLaMA Responds:</h4><blockquote><em>Hello! It’s nice to meet you. Is there something I can help you with or would you like to chat?</em></blockquote><h4>🧠 DeepSeek Replies:</h4><pre>&lt;think&gt;<br>&lt;/think&gt;<br>Hello! How can I assist you today? 😊</pre><h3>📓 Detective’s Note:</h3><ul><li><strong>LLaMA</strong> was straight to the point. Friendly, a little formal, and already offering help.</li><li><strong>DeepSeek</strong> brought something different — an inner monologue (&lt;think&gt;), as if it&#39;s reasoning about how to respond. This adds a layer of self-awareness, although it&#39;s less conversational at first glance.</li></ul><h3>💻 Interrogation Round 2: Programming Knowledge</h3><blockquote><strong><em>Detective:</em></strong><em> “Do you know Python?”</em></blockquote><h3>🦙 LLaMA Answers:</h3><pre>I have been trained on a wide range of programming languages, including Python.<br><br>Python is a popular and versatile language that is widely used in various fields such as web development, data science, machine learning, automation, and more. I can help with:<br><br>1. Basic syntax and data types<br>2. Control structures (if-else, for loops, while loops)<br>3. Functions and modules<br>4. Data structures (lists, tuples, dictionaries, sets)<br>5. Object-Oriented Programming (OOP) concepts<br>6. File input/output and persistence<br>7. Error handling and debugging<br><br>I can also help with more advanced topics such as:<br><br>1. Web development (Flask, Django)<br>2. Data analysis and visualization (Pandas, NumPy, Matplotlib)<br>3. Machine learning (Scikit-learn, TensorFlow)<br>4. Automation and scripting (requests, BeautifulSoup)<br><br>What specific aspect of Python would you like to know or work on?</pre><h3>🧠 DeepSeek Thinks and Replies:</h3><pre>&lt;think&gt;<br>Alright, the user asked if I know about programming languages. I should start by acknowledging their question and confirming that I&#39;m a text-based AI without personal experience.<br><br>I&#39;ll list out some of the most popular ones to give them an overview: Python, JavaScript, Java, C++, Ruby, etc. It&#39;s good to mention why these are widely used—like Python being great for machine learning <br>or JavaScript being everywhere on the web.<br><br>Then, I should offer further assistance in case they have a specific language or topic in mind. That way, I keep the conversation open and helpful.<br>&lt;/think&gt;<br><br>I&#39;m an AI developed by DeepSeek, so I don&#39;t have personal experiences or emotions. However, I can provide information based on publicly available data and my programming.<br><br>Here are some of the most popular programming languages:<br><br>1. **Python**: A versatile language with extensive libraries for machine learning, web development, and scientific computing.<br>2. **JavaScript**: The primary language for web development, used by millions of websites worldwide.<br>3. **Java**: Known for its platform independence and widely used in enterprise applications.<br>4. **C++**: A powerful language often used for system programming and performance-critical applications.<br>5. **Ruby**: Known for its simplicity and versatility, it&#39;s great for scripting and web development.<br>6. **JavaScript (ES6+)**: Modern JavaScript features like classes, emojis, and destructuring assignments make it even more powerful.<br>7. **SQL**: Used for managing and querying databases.<br>8. **Go (Golang)**: A language designed for building scalable and efficient systems.<br>9. **PHP**: Popular for web development, especially in the Asia-Pacific region.<br>10. **C#**: A Windows-specific language with features like LINQ and asynchronous programming.<br><br>If you have any specific questions about these languages or need further assistance, feel free to ask! 😊</pre><h3>🧾 Detective’s Analysis:</h3><ul><li><strong>LLaMA</strong> was laser-focused on Python — and detailed. Perfect for a coder needing quick help.</li><li><strong>DeepSeek</strong> took a broader approach. Before diving into languages, it acknowledged its AI nature, then listed multiple languages. It felt more like a Wikipedia-style guide than a conversation.</li></ul><p>🧠 <strong>Verdict:</strong></p><ul><li><strong>Clarity &amp; Specificity</strong>: ✅ <em>LLaMA</em></li><li><strong>Breadth &amp; Meta-thinking</strong>: ✅ <em>DeepSeek</em></li><li><strong>Conversational Flow</strong>: ✅ <em>LLaMA</em></li></ul><h3>💻 Interrogation Round 2: Think out of the box</h3><blockquote><strong>Detective:</strong> “I want to know more on Agentic AI . You know its very hyped in the market now a days”</blockquote><h3>🦙 LLaMA Answers:</h3><pre>Agentic AI is indeed a hot topic in the field of artificial intelligence! It refers to a type of AI that can act independently, make decisions, and adapt to new situations without being explicitly <br>programmed.<br><br>**What is Agentic AI?**<br><br>Agentic AI is an extension of traditional machine learning (ML) and deep learning (DL). Traditional ML/DL focuses on predicting outcomes based on historical data. In contrast, agentic AI aims to enable <br>machines to interact with their environment, make decisions, and learn from the consequences of those actions.<br><br>**Key characteristics of Agentic AI:**<br><br>1. **Autonomy**: Agentic AI systems can operate independently, making decisions without human intervention.<br>2. **Self-awareness**: These systems can recognize themselves as agents within a larger system or environment.<br>3. **Adaptability**: Agentic AI can adapt to new situations, learning from experience and adjusting its behavior accordingly.<br><br>**Types of Agentic AI:**<br><br>1. **Agent-based modeling**: This approach involves creating complex systems that interact with each other, leading to emergent behaviors.<br>2. **Reinforcement learning (RL)**: RL algorithms learn by trial and error, receiving rewards or penalties for their actions.<br>3. **Deep reinforcement learning (DRL)**: DRL combines the power of deep neural networks with RL, enabling more complex decision-making.<br><br>**Applications of Agentic AI:**<br><br>1. **Robotics**: Autonomous robots can navigate complex environments, perform tasks, and adapt to new situations.<br>2. **Game playing**: Agentic AI systems can beat humans in games like Go, Poker, or Starcraft II.<br>3. **Finance**: Autonomous traders can make decisions based on market trends and adapting to changing conditions.<br>4. **Healthcare**: Personalized medicine and disease diagnosis rely on agentic AI&#39;s ability to learn from patient data.<br><br>**Challenges and controversies:**<br><br>1. **Value alignment**: As agentic AI systems become more autonomous, ensuring they align with human values becomes increasingly important.<br>2. **Safety concerns**: Uncontrolled agentic AI can pose significant risks to humans, the environment, or other systems.<br>3. **Transparency and explainability**: Understanding how agentic AI systems make decisions is essential for trust and accountability.<br><br>**Current research and development:**<br><br>1. **Google&#39;s AlphaGo**: A DRL system that defeated a human world champion in Go.<br>2. **DeepMind&#39;s Robot Operating System (ROS)**: A framework for developing autonomous robots that can interact with their environment.<br>3. **Microsoft&#39;s Azure Machine Learning**: A platform for developing and deploying agentic AI systems.<br><br>Agentic AI is indeed an exciting field, with potential applications across various industries. However, it also raises important questions about safety, transparency, and value alignment.<br><br>What specific aspects of Agentic AI would you like to explore further?</pre><h3>🧠 DeepSeek Thinks and Replies:</h3><pre>&lt;think&gt;<br>Alright, so I&#39;m trying to wrap my head around this &quot;Agentic AI&quot; thing that&#39;s been popping up a lot lately. First off, I know AI has always been around to automate tasks and solve problems, but agentic AI <br>seems different. It sounds like it has something to do with agents or some kind of self-awareness in AI systems.<br><br>I remember hearing terms like &quot;autonomous systems&quot; before, where robots can operate without constant human oversight, but agentic AI might be a bit more advanced than that. Maybe it&#39;s about creating AI <br>that can think and make decisions on its own? That would definitely be a big deal because right now, most AI relies heavily on data and predefined instructions.<br><br>I&#39;m curious about how agentic AI actually works. Does it learn from experience like humans do, or is it more rule-based? I suppose learning from experience could make it more adaptable to new situations, <br>which sounds pretty cool but also tricky because learning can go wrong in unpredictable ways.<br><br>Also, what are the applications of agentic AI? I imagine it could be used in self-driving cars, where the vehicle needs to navigate complex environments without human input. It might also apply to other <br>areas like healthcare or even gaming, where an AI agent could make decisions autonomously in real-time.<br><br>But there must be challenges too. Safety and reliability come to mind. If an agentic AI makes a wrong decision because of some flaw in its learning process, that could have serious consequences. There&#39;s <br>also the issue of ethical considerations—wouldn&#39;t an agentic AI need to follow specific moral guidelines or laws? How do you ensure that when it learns from data, it doesn&#39;t perpetuate biases or make <br>unfair decisions?<br><br>I&#39;m wondering about the development timeline too. How soon can we expect full-fledged agentic AI systems? There&#39;s a lot of research happening in AI these days, but I don&#39;t think we&#39;re there yet. Maybe <br>it&#39;s still in the conceptual phase with some experimental applications.<br><br>And then there&#39;s the question of regulation. If agentic AI becomes mainstream, who will be responsible for overseeing its use ethically and responsibly? There must be international laws or guidelines that <br>would need to be established to guide the development and deployment of such systems.<br><br>I also think about how this could impact industries that rely heavily on human expertise. For example, in customer service chatbots, an agentic AI might evolve beyond just responding to queries by <br>offering solutions or even taking over certain roles if it&#39;s trained properly. That could change how businesses operate and interact with customers.<br><br>Another thought is about creativity and innovation. If an agentic AI can generate ideas or conceptualize new things based on its learning, does that mean we&#39;re in danger of losing our creative edge? It <br>would be fascinating to see how industries adapt to this new kind of intelligence.<br><br>I&#39;m also considering the economic implications. The cost of developing and maintaining an agentic AI system must be significant. Are there economies of scale or opportunities for investment that could <br>make its widespread adoption possible?<br><br>Lastly, I&#39;m curious about how agentic AI interacts with humans beyond just providing tasks. Is it designed to collaborate closely with people, or is it meant to operate independently? What happens when <br>two agentic AI systems need to work together—how do they communicate and coordinate their actions effectively?<br><br>Overall, Agentic AI seems like a promising field with immense potential but also carries significant challenges that need to be carefully managed as it evolves.<br>&lt;/think&gt;<br><br>Agentic AI represents an exciting evolution in artificial intelligence, characterized by the development of autonomous systems capable of self-awareness, learning from experience, and making decisions <br>independently. Here&#39;s a structured overview of its implications and considerations:<br><br>### Understanding Agentic AI:<br>1. **Concept**: Unlike traditional AI that relies on predefined instructions or data, agentic AI focuses on creating agents with autonomy, enabling them to operate without constant human oversight.<br>2. **Mechanism**: It involves systems that can learn from experience, adapt to new situations, and make decisions autonomously, though the exact nature of learning (rule-based vs. experiential) is still a <br>topic of research.<br><br>### Applications:<br>1. **Self-Driving Cars**: Potential for vehicles to navigate complex environments independently.<br>2. **Healthcare**: Autonomous systems could aid in diagnostics, treatment planning, and rehabilitation.<br>3. **Gaming and Simulations**: AI agents could engage in real-time decision-making, enhancing interactive experiences.<br><br>### Challenges:<br>1. **Safety and Reliability**: Ensuring that agentic AI operates without errors is crucial to prevent unforeseen consequences from incorrect decisions.<br>2. **Ethical Considerations**: Necessitates the development of frameworks to ensure AI adheres to moral guidelines and avoids perpetuating biases or unfair practices.<br>3. **Regulation**: The need for international laws and guidelines to oversee the ethical use of agentic AI is imperative.<br><br>### Development Timeline:<br>- Likely still in the conceptual and experimental stages, with full-fledged systems emerging gradually as technology advances.<br><br>### Impact on Industries:<br>1. **Customer Service**: Potential evolution from chatbots into solution-providing agents that may take over certain roles.<br>2. **Economic Implications**: Considerable costs associated with development and maintenance, alongside opportunities for investment in AI infrastructure.<br><br>### Considerations Beyond Functionality:<br>- **Interaction with Humans**: Agentic AI&#39;s design—whether collaborative or autonomous—affects how it operates within human systems.<br>- **Collaboration Between AI Systems**: Challenges include effective communication and coordination among independent agents.<br><br>### Future Considerations:<br>- **Creativity and Innovation**: The ability of agentic AI to generate ideas may impact creative processes in industries, necessitating adaptation strategies.<br>- **Potential Loss of Human Edge**: Concerns about whether AI might diminish human creativity or innovation are valid and require careful management.<br><br>In summary, Agentic AI holds significant potential for transforming various sectors through autonomy and adaptability, yet it also presents substantial challenges related to safety, ethics, regulation, <br>and economic implications. As research and development continue, managing these challenges will be crucial for harnessing the full benefits of agentic AI while mitigating its potential drawbacks.</pre><h3>🧾 Detective’s Verdict:</h3><ul><li><strong>Depth of Knowledge:</strong><br> <em>LLaMA</em> gave a <strong>crisp, structured, and textbook-like explanation</strong>, hitting all the key points in a clear hierarchy. It’s like reading a well-edited encyclopedia entry — perfect for readers wanting quick clarity.</li><li><strong>Thoughtfulness &amp; Reflection:</strong><br> <em>DeepSeek</em> delivered a <strong>deep, nuanced reflection</strong>, almost like an internal monologue. It explored the topic’s complexity — considering ethical issues, risks, and broader impacts, showing “thinking-out-loud” intelligence. This gives readers a rich, immersive experience but demands patience.</li><li><strong>Engagement &amp; Tone:</strong><br> <em>LLaMA</em>’s tone is confident and direct — great for straightforward Q&amp;A.<br> <em>DeepSeek</em> comes across as curious and exploratory, inviting readers to ponder alongside it.</li></ul><h3>🕵️‍♂️ Final Detective’s Note:</h3><p>In this story, <em>DeepSeek</em> truly lived up to its name — diving deep, seeking connections, and unpacking the hype with caution and curiosity. Meanwhile, <em>LLaMA</em> shone as the reliable expert you’d consult for a quick, solid briefing.</p><p><strong>If you want a clear, concise primer → LLaMA is your go-to.</strong><br><strong>If you want to think deeply, question assumptions, and explore implications → DeepSeek takes the lead.</strong></p><p>Exploring LLMs is truly fascinating! It feels like having a conversation with an expert — a mind brimming with the ability to think, understand, create, and respond.🕵️‍♂️</p><p>More detective stories are on the way to help you uncover the unique strengths and capabilities of these models up close.<br>Until then… keep learning and keep sharing! 😊</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8248f3929fb9" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Manage PV and PVC Binding in Helm Templates: From Challenges to Solutions]]></title>
            <link>https://anshu-anshikasharma114.medium.com/manage-pv-and-pvc-binding-in-helm-templates-from-challenges-to-solutions-ba13652f4a17?source=rss-a79a80bf99f5------2</link>
            <guid isPermaLink="false">https://medium.com/p/ba13652f4a17</guid>
            <category><![CDATA[containers]]></category>
            <category><![CDATA[storage]]></category>
            <category><![CDATA[storage-solutions]]></category>
            <category><![CDATA[kubernetes]]></category>
            <category><![CDATA[helm]]></category>
            <dc:creator><![CDATA[Anshika Sharma]]></dc:creator>
            <pubDate>Tue, 24 Sep 2024 08:26:43 GMT</pubDate>
            <atom:updated>2024-09-24T08:26:43.456Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/868/0*0uoVehyP1LbbrU_4.png" /></figure><h3><strong>Intro to Helm</strong></h3><ul><li>Helm is a powerful package manager for Kubernetes, enabling developers to automate the deployment, scaling, and management of applications.</li><li>It uses “charts” — pre-configured templates of Kubernetes resources — to simplify the installation of complex applications.</li><li>Helm streamlines Kubernetes deployments by allowing users to version, share, and reuse configurations across different environments.</li></ul><h3>Importance of Helm Templates in Simplifying Kubernetes Deployments:</h3><ul><li>Helm templates provide a dynamic way to manage Kubernetes resources, avoiding the need for repetitive and error-prone YAML writing.</li><li>Templates allow users to define variables and conditions, making it easy to customize deployments for various environments (dev, staging, production).</li><li>With Helm, teams can deploy and upgrade applications with minimal manual intervention, ensuring consistency across deployments.</li></ul><p>PV and PVC are the Kubernetes resources available. Let’s understand what they are ? and how they are used within Kubernetes:</p><h3>What are Persistent Volumes (PV) and Persistent Volume Claims (PVC)?</h3><ul><li><strong>Persistent Volumes (PV)</strong>: PVs are storage resources in Kubernetes that exist independently of pods, offering a way to store data beyond the lifecycle of individual containers. That means even if the containers removed, they can again access the data that they have stored previously.</li><li><strong>Persistent Volume Claims (PVC)</strong>: PVCs are requests by applications (or pods) for storage. They specify the storage size and access modes required. When a PVC is created, Kubernetes finds a PV to bind it to.</li></ul><h3>Why PV and PVC are Critical for Data Persistence in Kubernetes:</h3><ul><li>Kubernetes pods are ephemeral by nature, meaning they can be restarted or terminated at any time, which would result in data loss without persistent storage.</li><li>PV and PVC ensure that <strong>data persistency</strong> is maintained independently of the pods, allowing applications to store data that is maintained outside the lifecycle of containers.</li><li>They provide a <strong>layer of abstraction</strong> between the application and the underlying storage infrastructure, making it easier to manage storage across cloud platforms or on-premise systems.</li></ul><h3>Use Case Scenario</h3><p><strong><em>Scenario 1</em></strong>:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/620/0*kKu4naYgkG4VdIbH.png" /><figcaption>Use case scenario 1</figcaption></figure><p>Suppose we have a deployment that is going to use a PVC to access a PV. Below is the definition for PV and PVC:</p><pre>apiVersion: v1<br>kind: PersistentVolume<br>metadata:<br>  name: shared-volume<br>spec:<br>  storageClassName: shared-storage<br>  capacity:<br>    storage: 2Gi<br>  accessModes:<br>    - ReadWriteMany<br>  hostPath:<br>    path: &quot;/mnt/shared-volume&quot;<br><br>---<br><br>apiVersion: v1<br>kind: PersistentVolumeClaim<br>metadata:<br>  name: shared-volume-claim<br>  namespace: monitoring<br>spec:<br>  storageClassName: shared-storage<br>  accessModes:<br>    - ReadWriteMany<br>  resources:<br>    requests:<br>      storage: 2Gi</pre><p>With this definition, it will create a PV and PVC and bind them together within current helm release. That’s an ideal case by the way.</p><p><strong><em>Scenario 2:</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uv8fKOOhpzrlka34HEi-Hg.png" /><figcaption>Use case scenario 2 (Ideal Case)</figcaption></figure><p>Suppose we have a deployment that is going to use 2 PVCs to access two different PVs. Below is the definition for PVs and PVCs:</p><p>PV 1 and PVC 1 are defined below:</p><pre>apiVersion: v1<br>kind: PersistentVolume<br>metadata:<br>  name: shared-volume-1<br>spec:<br>  storageClassName: shared-storage<br>  capacity:<br>    storage: 2Gi<br>  accessModes:<br>    - ReadWriteMany<br>  hostPath:<br>    path: &quot;/mnt/shared-volume&quot;<br><br>---<br><br>apiVersion: v1<br>kind: PersistentVolumeClaim<br>metadata:<br>  name: shared-volume-claim-1<br>  namespace: monitoring<br>spec:<br>  storageClassName: shared-storage<br>  accessModes:<br>    - ReadWriteMany<br>  resources:<br>    requests:<br>      storage: 2Gi</pre><p>Here is the details about PV 2 and PVC 2:</p><pre>apiVersion: v1<br>kind: PersistentVolume<br>metadata:<br>  name: shared-volume-2<br>spec:<br>  storageClassName: shared-storage<br>  capacity:<br>    storage: 2Gi<br>  accessModes:<br>    - ReadWriteMany<br>  hostPath:<br>    path: &quot;/mnt/shared-volume&quot;<br><br>---<br><br>apiVersion: v1<br>kind: PersistentVolumeClaim<br>metadata:<br>  name: shared-volume-claim-2<br>  namespace: monitoring<br>spec:<br>  storageClassName: shared-storage<br>  accessModes:<br>    - ReadWriteMany<br>  resources:<br>    requests:<br>      storage: 2Gi</pre><p>What you suggest ? Will it behave the same as per the ideal case in this scenario?</p><p>The answer is no!!! Because it create both the PVs and both the PVCs but at the time of binding them they can be mismatched as they don’t have any proper mechanism to match the perfect PV for a PVC. So the scenario can be visualized like:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*138l40aqg7XwM8NnPg9NTg.png" /></figure><p>This scenario can change the whole architecture of the application and hamper the functionality of the same.</p><p><strong>Resolution to the problem</strong>:</p><p>To achieve the ideal state of the same, we have to use labels and selectors in PV and PVCs respectively so that they can find a perfect match of PV and PVC on the basis of these labels. <br>Here is an example of their definitions with labels and selectors:</p><pre>apiVersion: v1<br>kind: PersistentVolume<br>metadata:<br>  name: shared-volume<br>  labels:<br>    type: volume<br>spec:<br>  storageClassName: shared-storage<br>  capacity:<br>    storage: 2Gi<br>  accessModes:<br>    - ReadWriteMany<br>  hostPath:<br>    path: &quot;/mnt/shared-volume&quot;<br><br>---<br><br>apiVersion: v1<br>kind: PersistentVolumeClaim<br>metadata:<br>  name: shared-volume-claim<br>  namespace: monitoring<br>spec:<br>  storageClassName: shared-storage<br>  accessModes:<br>    - ReadWriteMany<br>  resources:<br>    requests:<br>      storage: 2Gi<br>  selector:<br>    matchLabels:<br>      type: volume</pre><p>Here it for first PV and PVC. Create yours for the second one and also for more number of PV and PVCs as per the requirements.</p><p>Hope this will help you managing persistent storage in a scenario where you have n number of PV and PVCs.</p><p>Stay tuned for more such concepts of Kubernetes!!😄</p><h3>🌟 Keep Learning, Keep Sharing 🌟</h3><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ba13652f4a17" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Helm Chart for Prometheus and Grafana on Kubernetes]]></title>
            <link>https://anshu-anshikasharma114.medium.com/helm-chart-for-prometheus-and-grafana-on-kubernetes-888b91046ce4?source=rss-a79a80bf99f5------2</link>
            <guid isPermaLink="false">https://medium.com/p/888b91046ce4</guid>
            <category><![CDATA[grafana]]></category>
            <category><![CDATA[prometheus]]></category>
            <category><![CDATA[helm-chart]]></category>
            <category><![CDATA[kubernetes]]></category>
            <dc:creator><![CDATA[Anshika Sharma]]></dc:creator>
            <pubDate>Sat, 24 Jul 2021 19:45:50 GMT</pubDate>
            <atom:updated>2021-07-24T19:45:50.086Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*C3DtAn9J1Wn4xFAm.png" /></figure><p>Hello everyone,</p><p>As we know, monitoring is the major demand with each and every setup. Either in terms of server setup or setting up a cloud environment. So, in this article we are going to create a Helm Chart to create the Setup of <strong>Prometheus and Grafana</strong>.</p><p>But first we need to understand what are Helm Charts and how we gonna create them?🤔</p><p>For creating a setup, we need to fulfill multiple dependencies and configuration! but that is very manual kind of setup. Suppose we need to create a web server and for that first you need to install httpd , php ,……and so on. Here you will work on each of them one by one.</p><p>Do you think, that is a good approach ??🤔</p><p>In my opinion, its not !! So for this, we create packages….means the file/code that is capable of creating the whole setup. <strong><em>Although in redhat, package is as good as a Software</em></strong>.</p><p>Hence, <strong>HELM is a Package Manager Tool </strong>📦. It is a 3rd party tool.</p><p>In this, we call packages as Charts! So we are going to create HELM charts. A chart can help us to download and Install the software as per the requirement.</p><p>Although there are many pre-created charts by the community for different-different uses, also we can create a customized one.</p><h4>Helm Chart : Setup of Prometheus and Grafana on K8s</h4><p>Pre-requisite for creating a Helm chart is:</p><ol><li>Kubernetes Cluster(here I gonna use minikube setup)</li><li>Helm software</li></ol><p>* for the setup of Helm, Please refer the link below: 👇</p><p><a href="https://helm.sh/docs/intro/quickstart/">Quickstart Guide</a></p><ol><li>After this setup, lets check the version of Helm</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MKyBcCT5bRKMePyC5xQ3hw.png" /><figcaption>checking Helm Version</figcaption></figure><p>2. Create a directory, put the name same as your Helm Chart (say Prometheus_Grafana_on_kubernetes) and then go inside that directory.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Fl24e8dWmC970nf6JElNjw.png" /><figcaption>creating directory</figcaption></figure><p>3. For creating the chart create a YAML file with name (Chart.yaml)that will be loaded when we start creating the Helm chart.</p><p>code of Chart.yaml:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/d9cc92328ac58ade4a72f9ff15c15e62/href">https://medium.com/media/d9cc92328ac58ade4a72f9ff15c15e62/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VbURhc6AYwVVOFMpRzRB4A.png" /><figcaption>Chart.yaml file</figcaption></figure><p>4. All the yml files for the further setup on kubernetes, we can put them in the templates folder.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TfFPwmbbS8vAo2zvn5WKMQ.png" /><figcaption>creating templates directory</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*q7psE34FwZ731LbVl5IRTA.png" /><figcaption>list of yml files for the setup</figcaption></figure><p>You can access all the code, on the GitHub repository below:</p><p><a href="https://github.com/Anshika-Sharma-as/Task-24.git">GitHub - Anshika-Sharma-as/Task-24</a></p><p>5. Now lets start the process of creating our Helm Chart, before that check for the existing pods or services on Kubernetes cluster</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BcGR4kbnEFVa8ST9VSTvqg.png" /><figcaption>pods/services status on Kubernetes</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/814/1*xiP-C8Ruq6qiTWTZgw6UDg.png" /><figcaption>Checking helm charts</figcaption></figure><p>So, no helm charts are there.</p><p>Create the helm chart using “<strong><em>helm install &lt;chart-name&gt; &lt;directory/&gt;</em></strong>”</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pqXwttzOPZYLONwPDEZ84A.png" /><figcaption>Chart created sucessfully</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*H0qBMaUgVKuJsEyz0_ewFw.png" /><figcaption>We can access the chart using helm list</figcaption></figure><p>6. Check for the services, installed or not?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/926/1*zBU5tx12LwWlPGCv91kFXA.png" /><figcaption>Successfully created all deployments and services</figcaption></figure><p>7. Move to the Prometheus and Grafana Dashboard:</p><p>To get that, we need to use the minikube IP using command: “<strong><em>minikube ip</em></strong>”</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/430/1*M_6MfyL2m-rB3v9yy6IN8w.png" /><figcaption>Minikube IP</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RwnuB5xhyEmwlr7e6z1QPA.png" /><figcaption>Prometheus Dashboard</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*N-22-6K7U5fATGSlMEo0Og.png" /><figcaption>Grafana Dashboard</figcaption></figure><p>We can simply login and start using Grafana…😃</p><p>After the successful use you can delete it anytime and just in one go.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zss_7kNQVRSCf4t8I7PGYA.png" /><figcaption>Successfully uninstalled the helm chart</figcaption></figure><p>Now it became very simple for us to create this setup just in one go, we can use this concept while automating the things.😁</p><p>Similarly, we can have any customized Helm Chart to make our work standardized, customized and easy to perform.</p><p>Stay tuned for more such interesting technical articles….😁😁</p><p>Till the time……..⏲️</p><h4>Keep Sharing, Keep Learning..✨✨</h4><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=888b91046ce4" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The guide to my data: Inode]]></title>
            <link>https://anshu-anshikasharma114.medium.com/the-guide-to-my-data-inode-a4f5287439?source=rss-a79a80bf99f5------2</link>
            <guid isPermaLink="false">https://medium.com/p/a4f5287439</guid>
            <category><![CDATA[inode-number]]></category>
            <category><![CDATA[inode]]></category>
            <category><![CDATA[inode-table]]></category>
            <category><![CDATA[partitioning]]></category>
            <dc:creator><![CDATA[Anshika Sharma]]></dc:creator>
            <pubDate>Tue, 22 Jun 2021 17:12:33 GMT</pubDate>
            <atom:updated>2021-06-22T17:20:22.344Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/502/0*uUIfL2Cxyd8ndLdQ.gif" /></figure><blockquote>Do you know where the data is stored and how does is arranged in order to have easy and fast storing and retrieval.🤔</blockquote><p>So lets have a scenario, to arrange some student’s sitting arrangement we use some strategy like rows and columns, then we follow the pattern of their enrollment no. but do you think why this is required?🤔</p><p>Yeah, the proper organization is very required in order to manage them properly and easily !!</p><p>Do you think arranging them properly is enough?🙄 No, its not in order to manage them in an efficient way we must have some information like “Which desk is assigned to whom? What’s the range of students(in each row)….etc!!” 🤷‍♀️</p><p><strong>So basically this information for the management of things is known as metadata(Information about data).</strong>📄</p><p>Now, in order to manage the files/dir in the disk, there is some strategy/system that is called as <strong>File system</strong>.</p><p><em>e.g., ext3, ext4….etc!!</em></p><p>Now what pattern they follow and how actually a file system works ?🤔</p><p>So basically every file system has two parts:- <strong>block devices and inode tables</strong>.</p><p>In this, block devices are fixed like we have added a block device(an EBS volume) to an EC2 instance. In this device we setup the file system whatever is the requirement(say ext4 this time).</p><p>**Next comes to the inode table.</p><p>Before moving to inode table we need to understand the concept of inodes and how they used in File system?🧠</p><p>Have you seen the content page/ index page of any of your book ….❓</p><p>With the index page of a book, we used to look for the page number as per the chapter/topic names! And we try to access the chapter/topic through this page number.</p><p>The concept of inode is similar to the concept of index page…how? Lets work on this!!</p><p><strong>Now as we have unique page numbers for a particular chapter or topic…..similar to that when a file/dir(set of files) is created in the system(say linux in my case) a unique number is assigned to it….this number is called as inode number.</strong></p><p>*One more thing !!!!</p><blockquote><strong>Inode table is similar to index table…..mark my works ,…..its not same…</strong></blockquote><p>How ❓</p><p>First, mark what are the details a inode table consist about a file: it contains ..</p><p>Inode number, owner info, permissions…size etc.</p><p>Now does it contain the file name as well? The answer is no!</p><p>The name is stored in different table and inode number in different — -à map to the inode table means two different tables are mapped to track each file through inode number.</p><p>To get the inode numbers associated with each file, we use:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*31ltm74pcdP1YM6lHbJRnw.png" /><figcaption>getting inode number assigned to each file and directory</figcaption></figure><p>List of all the inode numbers..</p><p>Lets see what happen when we create a new file🤔</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*6pWJhCc3aMckxF8XumKEYg.png" /></figure><h4><strong>Inode is the entry point or we can say the initial block where we create a file.</strong></h4><p><strong>Note</strong>:- Have you tried to create multiple files with same name ? or we can say same files at different location? Does they have same inode number ? is it really possible??🤯</p><p>The answer is yes😁….but only if they belong to different partitions. What does that means, first lets have two different partitions of a block device!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*AA00aKehZe0zgJeWhbQvEg.png" /><figcaption>inode number of the dir /test_env</figcaption></figure><p>The inode number for this directory is already created, when we created the directory.</p><p>Lets try to read the inode table, for this we need to use the filesystem that have ext4 format type</p><p>For this lets create a different block device if not available ….else create a partition in it</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*qHj3ZavrEu7lbbcf2E1-3w.png" /><figcaption>Attach a block storage to the same</figcaption></figure><p>I have attached a new one</p><p>Now to create a partition in this new device, open this block device</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*acvDEfjn66wurBbP7X-FpQ.png" /><figcaption>going into the block device</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*v5Pmdn5K6E-yMer8aWMGSQ.png" /><figcaption>creating partition</figcaption></figure><p>Successfully created a partition, lets check whether it has the inode table now?🤔</p><p>No it won’t be, for that first we have to mount this on some directory!! But before that it need to be formatted to some file system</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*zdO5o5FIIptDACLlVrwAYw.png" /><figcaption>Formatting the block device</figcaption></figure><p>Now just mount it to the directory</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/542/1*ElaLPWzz7OHzytrLuMXtjw.png" /><figcaption>Mounting drive to the directory</figcaption></figure><p>Lets check the inode status for each file system</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*-NVFzGjlKNE5cDY6L-jV2w.png" /><figcaption>Checking available file systems, also their inode usage</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/418/1*ZB_2-MsW-y_g7DiMLdCkOA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*sJ57m54ZLBJjO8QNd8Q4oA.png" /><figcaption>listing files in /test_env dir along with inode number</figcaption></figure><p>Here we tried to get the information in the file system about the file abcd.txt,🤔 it will provide all the information regarding the inode number along with the access control etc.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*3AFayVU2NyRiTO5iA0xM1w.png" /><figcaption>Working with file system /dev/sdb1</figcaption></figure><p>We have used<strong> debugfs </strong>command to debug the file system /dev/sdb1</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*_qBya5e7hPVhkh8KGRhL3g.png" /><figcaption>checking the no. of links with each inode number</figcaption></figure><p>Here the link value is 3 for the directory ‘ . ‘ because Each directory contains entries for “.” and “..” — — the current directory and its parent.</p><p>The same inode number of ‘.’ And /test_env are pointing to the same node ……..as ‘.’ Represent the current directory.😌</p><p>This is how we can have deep information about the inode tables, by debugging into the file system.🤩</p><p>You wanna know how the data is being transferred between RAM and main memory❓ Then …….stay tuned!!😄</p><h3>🌟<strong>Keep Sharing, Keep Learning!! </strong>🌟</h3><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a4f5287439" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[SELinux as the Locker for our Linux]]></title>
            <link>https://anshu-anshikasharma114.medium.com/selinux-as-the-locker-for-our-linux-e573e1e01f33?source=rss-a79a80bf99f5------2</link>
            <guid isPermaLink="false">https://medium.com/p/e573e1e01f33</guid>
            <category><![CDATA[selinux-gui]]></category>
            <category><![CDATA[selinux]]></category>
            <category><![CDATA[security]]></category>
            <category><![CDATA[access-control]]></category>
            <category><![CDATA[cad]]></category>
            <dc:creator><![CDATA[Anshika Sharma]]></dc:creator>
            <pubDate>Sun, 30 May 2021 18:41:52 GMT</pubDate>
            <atom:updated>2021-05-30T18:41:52.952Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/680/1*9mWLZp__OrDqvRrilr7CQQ.png" /></figure><p>You guys may be confused….😕</p><p>What kind of security I am talking about? So lets finish this confusion😉</p><p><strong>Its about the Access control for files, processes, ports etc. </strong>💡</p><p>Earlier , for this type of security, we work on the concept of <strong>Discretionary access control.</strong> Now what’s this Discretionary access control, how we use this?</p><p>For all these questions, refer to the below link:</p><p><a href="https://www.linkedin.com/pulse/dac-permission-vijay-kanth/?trackingId=V6e9QRrTRm%2BgPjkKnDovAg%3D%3D">DAC Permission!</a></p><p>Now, the question is why we need any extension to the security, when we already have DAC concept?</p><p><strong>The Answer is, some limitations of DAC!!</strong>🤞 What’s that ?</p><ul><li>* Lets assume a scenario that if the user downloaded the malicious file unknowing for the internet then the file will have permissions as like the other file in the user workspace. As the malicious user may have the permission to access a file unlike the other file it can execute and may access the other file data sometimes take the system down. Basically, the permissions and the access control is depends on the file itself!! But it can be dangerous too😨</li></ul><p>What to do in this case??……🤔💭</p><p>I just remember the concept of <strong>SELinux which is Security-Enhanced Linux!!</strong></p><h4>What is SELinux??</h4><p>SELinux is the security Architecture that allows administrators to have more control on, who can access the system.</p><h4>🤩 National Security Agency (NSA) added a security patch to Linux Kernel using Linux Security Modules(LSM).</h4><p>I think instead of just knowing it theoretically, it would be more interesting to know that how does it work and on which concept!! isn’t it ? 🤔</p><h4>Lets directly jump to <strong>how it works??</strong></h4><p>SELinux defines access controls for the applications, processes, and files on a system. It uses security policies, which are a set of rules that tell SELinux what can or can’t be accessed, to enforce the access allowed by a policy.</p><p>Let’s understand the scenario first:</p><blockquote><strong>When an application or process, known as a subject, makes a request to access an object, like a file, SELinux checks with an access vector cache (AVC), where permissions are cached for subjects and objects. Like which object is accessible by which subject as per the permissions.</strong></blockquote><p>If SELinux is unable to make a decision about access based on the cached permissions, it sends the request to the security server. The security server checks for the security context of the app or process and the file. Security context is applied from the SELinux policy database. Permission is then granted or denied.</p><p>If permission is denied, an “<strong>avc: denied</strong>” message will be available in <strong>/var/log.messages</strong></p><p>Its Amazing, how securely it is allowing a subject to access an object.🤩</p><p>Is it enough to just know about how it works or we should also go for its configuration part? I think we should 😄</p><p><strong>To configure SELinux</strong></p><p>Basically there are 2 ways:</p><ol><li><strong>Targeted Policy(mostly used, default option)</strong></li><li><strong>Multi Level Security(generally used by govt. organizations)</strong></li></ol><p>Targeted policy is the default option and covers a range of processes, tasks, and services.</p><p>To see how the type is targeted🧠, go to the file <strong>“/etc/sysconfig/selinux”</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*qi_NsgrweeGtQNS840-TXA.png" /><figcaption>information about SELinux</figcaption></figure><p>Here we are not using <strong>MLS</strong>, we are using targeted policy⭐</p><p>This file also giving us some information regarding the <strong>selinux mode</strong>, through SELINUX key.</p><blockquote>The values of SELINUX key can be enforcing, permissive, disabled, each mode have different meaning. Here enforcing means this SELinux feature is enabled and is helping us to secure our Linux system.</blockquote><p>So, what each mode is meant for?🤔</p><p>👉 <strong>Enforcing:</strong> Means that the SELinux policy is in effect and the policies will be followed according to it very strictly.</p><p>👉 <strong>Permissive:</strong> Means handy mode when trying to debug or allow some features to run on some instances which are not allowed in enforcing mode. The system remains operational and SELinux does not deny any operations but only logs AVC messages, which can be then used for troubleshooting, debugging, and SELinux policy improvements.</p><p><strong>It will give an alert message/notification📍</strong></p><p>👉 <strong>Disabled:</strong> When the SELinux policies won’t apply anywhere in the system.</p><h4><strong>Now we go the next stage of SELinux, that how it actually works, and on which concept!!</strong></h4><p>So, there are two main concepts on which SELinux works are:</p><p><strong>* Type enforcement</strong></p><p><strong>* Labelling</strong></p><p><strong><em>SELinux works as a labeling system</em></strong>, which means that all of the files, processes, and ports in a system have an SELinux label associated with them. Labels are a logical way of grouping things together. The kernel manages the labels during boot.</p><blockquote>Labels are in the format <strong>user:role:type:level</strong> (level is optional). User, role, and level are used in more advanced implementations of SELinux, like with MLS.</blockquote><h3>💡 <strong>Label type is the most important for targeted policy.</strong></h3><p>SELinux uses type enforcement to enforce a policy that is defined on the system. Type enforcement is the part of an SELinux policy that defines <strong><em>“whether a process running(subject) with a certain type can access a file(object) labeled with a certain type.”</em></strong></p><p>You might be very curious🧐 to know that</p><p><strong>how these labels are attached with the files or the processes ?</strong></p><p>For this, lets take an example and understand with the same:</p><p>Suppose root is one user(subject) and /dev/sr0 is the directory(object) that contain all the files and software available for linux.</p><p>Lets check the label with our dir /dev/sr0</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*WkbKDUBoCTg9hlrWgnrWsA.png" /><figcaption>General label with a block device</figcaption></figure><p>Here the Label is <strong><em>“RHEL-8–0–0-BaseOS-x86_64”</em></strong></p><p>Now lets move to our user i.e., root</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/1*pDQ2tyaa6TdXKJ9P5A5OoA.png" /><figcaption>general label with root</figcaption></figure><p>This is how the labels used in general.</p><p>But if we talk about SELinux, the label format is different i.e., <strong><em>“SELinux_user:user_role:type”</em></strong></p><p>To access the roles assigned with each file, we use Command:<strong> “ls -Z”</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/566/1*vUQX3sCb-QBMxSneiWjhiQ.png" /><figcaption>labels used by SELinux</figcaption></figure><p><strong>The highlighted label is for the system user and for the anaconda-ks.cfg file access control</strong></p><h3>👉This label is helping the targeted policy for the access control management of the files and devices or processes.</h3><h4><strong>How to Control this SELINUX mode like permissive, enforcing or disabled?? </strong>🤔</h4><p>There are some points that need to be considered, before enforcing SELinux, that are:</p><ol><li>If SELinux has been disabled in your environment, you can enable SElinux by editing <strong><em>/etc/selinux/config</em></strong> and setting <strong>SELINUX=permissive</strong>.</li></ol><p>2. Since SELINUX was not enabled currently, so instead of enforcing it directly we should put it in permissive mode because everything may be mislabelled.</p><p>3. We can also force the system to <strong>automatically relabel the filesystem</strong> by creating <strong><em>“.autorelabel”</em></strong> file in root directory and then reboot the system. We can also deep dive into auto relabel further.</p><p>For now lets focus on selinux 💯</p><p>So after successful fixing/relabelling of the filesystem.</p><p><strong>Set SELINUX to enforcing with <em>“/etc/selinux/config”</em> and then reboot or simply run the command <em>“setenforce 1”</em></strong></p><p>And you are done with the SELINUX security setup. ✨</p><pre>Note: If in case anyone(sysadmin) is not familiar with command like then they can use the graphical tool also to manage SELinux. The Graphical tool can be used by installing the package “<strong>policycoreutils-gui”</strong></pre><p>Don’t worry there is a complete process of using this GUI tool, I will definitely share one article for the GUI Installation and Implementation soon.😎</p><p><em>Till the time, go ahead with Command line 😁</em></p><p><strong>Stay tuned for further amazing concepts!!</strong></p><h4><strong>Keep Sharing, Keep Learning ✨</strong></h4><p><strong>Thank You </strong>🤗</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e573e1e01f33" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Terraform as an Infra-Magic Tool]]></title>
            <link>https://anshu-anshikasharma114.medium.com/terraform-as-an-infra-magic-tool-2be904a48657?source=rss-a79a80bf99f5------2</link>
            <guid isPermaLink="false">https://medium.com/p/2be904a48657</guid>
            <category><![CDATA[infrastructure-as-code]]></category>
            <category><![CDATA[kubernetes-cluster]]></category>
            <category><![CDATA[terraform]]></category>
            <dc:creator><![CDATA[Anshika Sharma]]></dc:creator>
            <pubDate>Fri, 28 May 2021 19:10:56 GMT</pubDate>
            <atom:updated>2021-05-28T19:10:56.538Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/841/1*eHXhVVBWU4HIHWvkeMv4kw.png" /></figure><p>You guys may be thinking like what’s this Infra-Magic…🤔</p><p>Don’t worry, its simply an open-source infrastructure as code software tool…means we can setup the required infrastructure simply with a code, even without going to that ?</p><p>Now question is 🤔 where to setup the infrastructure …. ?</p><p>Mostly people use it with multiple clouds like AWS, AZure, GCP etc, But is it only restricted to that ? Does it only restricted to these public/private clouds ?</p><p>Answer is absolutely no…🤩</p><p>How???? Lets see today!!!</p><p>Do you remember why we have come up with the concepts of Containerization ? Absolutely it was regarding the speed and time for the environment setup…….Later we come up with the <strong>concept of Kubernetes</strong> that is a open-source system that is used for automating deployment, scaling, and management of containerized applications.</p><p>If you know about kubernetes(k8s), then you must remember that we work on a multi node cluster, whats that ?</p><blockquote>A <strong>Kubernetes cluster</strong> is a set of <strong>node</strong> machines for running containerized applications. If you’re running <strong>Kubernetes</strong>, you’re running a <strong>cluster</strong>. At a minimum, a <strong>cluster</strong> contains a control plane and one or more compute machines, or <strong>nodes</strong>.</blockquote><p>This is a small statement but provide deep insights about a kubernetes cluster. A kubernetes cluster is as <strong>equivalent to a cloud that can provide resources on-premises basis whenever required by the container</strong>, that would be launched and maintained within this container.</p><p>Now lets come to the interesting fact !!! 🤔</p><p>Is it possible to setup the required Infrastructure on a Kubernetes cluster using Terraform ??</p><p>The answer is absolutely Yesssss……..😎</p><p>Lets come to the documentaion of HashiCorp documentation!!!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*adDt7u2FnAqmIIIiN2h-5A.png" /><figcaption>Terraform have something for kubernetes, what’s that?</figcaption></figure><p>Since we already have kubectl to configure or setup container or any infrastructure over kubernetes cluster, also if we have requirement to write up a script then we can create a YAML script. But why to use Terraform ? 🤔</p><p>Orchestration with Terraform presents a few benefits.</p><ul><li>Use the same configuration language to provision the Kubernetes infrastructure and to deploy applications into it.</li><li>drift detection — terraform plan will always present you the difference between reality at a given time and config you intend to apply.</li><li>full lifecycle management — Terraform doesn’t just initially create resources, but offers a single command for creation, update, and deletion of tracked resources without needing to inspect the API to identify those resources.</li><li>synchronous feedback — While asynchronous behaviour is often useful, sometimes it’s counter-productive as the job of identifying operation result (failures or details of created resource) is left to the user. e.g. you don’t have IP/hostname of load balancer until it has finished provisioning, hence you can’t create any DNS record pointing to it.</li><li>graph of relationship — Terraform understands relationships between resources which may help in scheduling — e.g. if a Persistent Volume Claim claims space from a particular Persistent Volume Terraform won’t even attempt to create the PVC if creation of the PV has failed.</li></ul><p>What’s the plan to see how it actually works ?🤔</p><p>How to connect to kubernetes cluster using Terraform:-</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/15c3b0e16fde834e8b33be77610424ed/href">https://medium.com/media/15c3b0e16fde834e8b33be77610424ed/href</a></iframe><p>Its just about connecting, but what about the plan if we setup everything with Terraform with Kubernetes !! 😎</p><p>So I am gonna try every setup on kubernetes using terraform !! Stay tuned for the further articles ….</p><p>I hope you got my point that why I describe Terraform as Infra-Magic 😉 Lets use this magic to create interesting and useful Integrations……🤟🏻</p><p><strong>Till the time, stay tuned…..Keep Learning, Keep Sharing⭐</strong></p><p><strong>Thank you😇</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2be904a48657" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[RedHat OpenShift Industry Use Case]]></title>
            <link>https://anshu-anshikasharma114.medium.com/redhat-openshift-industry-use-case-b020a97c8fa5?source=rss-a79a80bf99f5------2</link>
            <guid isPermaLink="false">https://medium.com/p/b020a97c8fa5</guid>
            <category><![CDATA[use-cases]]></category>
            <category><![CDATA[red-hat-openshift]]></category>
            <category><![CDATA[openshift]]></category>
            <dc:creator><![CDATA[Anshika Sharma]]></dc:creator>
            <pubDate>Wed, 24 Mar 2021 11:13:38 GMT</pubDate>
            <atom:updated>2021-03-24T11:13:38.436Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/733/0*hWyqGKiZLLRVGqWQ" /><figcaption>logo</figcaption></figure><p><strong>OpenShift</strong> is a family of containerization software products developed by RedHat. Its flagship product is the <strong>OpenShift Container Platform</strong> — an on-premises as a services built around Docker Container orchestrated and managed by Kubernetes on a foundation of Red Hat Enterprise Linux. The family’s other products provide this platform through different environments: OKD serves as the community-driven upstream(akin to the way that Fedora is upstream of Red Hat Enterprise Linux), OpenShift Online is the platform offered as Software as a Service, and Openshift Dedicated is the platform offered as a managed service.</p><h3>Features and benefits</h3><ul><li><strong>Manage with simplicity. In the cloud or anywhere</strong> : Red Hat OpenShift offers automated installation, upgrades, and lifecycle management throughout the container stack — the operating system, Kubernetes and cluster services, and applications — on any cloud.</li><li><strong>Build fast, Ship first, Deploy everywhere</strong> : Red Hat OpenShift helps teams build with speed, agility, confidence, and choice. Code in production mode anywhere you choose to build. Get back to doing work that matters.</li><li><strong>Build with Kubernetes, Trust with Red Hat </strong>: Red Hat OpenShift is focused on security at every level of the container stack and throughout the application lifecycle. It includes long-term, enterprise support from one of the leading Kubernetes contributors and open source software companies.</li></ul><h3>Architecture</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*HHii3LJ9763pSWnc.png" /><figcaption>architecture of OpenShift</figcaption></figure><p>OpenShift Container Platform has a microservices-based architecture of smaller, decoupled units that work together. It runs on top of a <a href="https://docs.openshift.com/container-platform/3.5/architecture/infrastructure_components/kubernetes_infrastructure.html#architecture-infrastructure-components-kubernetes-infrastructure">Kubernetes cluster</a>, with data about the objects stored in <a href="https://docs.openshift.com/container-platform/3.5/architecture/infrastructure_components/kubernetes_infrastructure.html#master">etcd</a>, a reliable clustered key-value store. Those services are broken down by function:</p><ul><li>REST API, which expose each of the core objects.</li><li>Controllers, which read those APIs, apply changes to other objects, and report status or write back to the object.</li></ul><p>Users make calls to the REST API to change the state of the system. Controllers use the REST API to read the user’s desired state, and then try to bring the other parts of the system into sync. For example, when a user requests a build they create a “build” object. The build controller sees that a new build has been created, and runs a process on the cluster to perform that build. When the build completes, the controller updates the build object via the REST API and the user sees that their build is complete.</p><p>The controller pattern means that much of the functionality in OpenShift Container Platform is extensible. The way that builds are run and launched can be customized independently of how images are managed, or how deployments happen. The controllers are performing the “business logic” of the system, taking user actions and transforming them into reality. By customizing those controllers or replacing them with your own logic, different behaviors can be implemented. From a system administration perspective, this also means the API can be used to script common administrative actions on a repeating schedule. Those scripts are also controllers that watch for changes and take action. OpenShift Container Platform makes the ability to customize the cluster in this way a first-class behavior.</p><h3>Use Cases</h3><p>There are a huge use cases for OpenShift, one of which is:</p><h3>Turkish financial company delivers services 95% faster with Red Hat OpenShift</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/940/0*nBY6D9haJa6WNs6W.PNG" /><figcaption>company logo</figcaption></figure><p>Turkish pension and life insurance provider AvivaSA sought to expand its IT Modernization Program to prepare for government permission to use public cloud environments. To create a container- and microservices-based architecture, the company expanded its Red Hat environment with Red Hat OpenShift. Now, AvivaSA uses its responsive, reliable container platform to deliver services 95% faster while reducing costs by 23% — leading the way to a cloud-based future for Turkey’s finance industry.</p><h3>Benefits</h3><ul><li>Reduced operating costs by 23% with optimized management and resource use</li><li>Cut environment build times by 95%, accelerating time to market</li><li>Extended platform reliability to container environment</li><li>Created foundation for future cloud adoption</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*J4mG-jfCXsaGWNKZ.PNG" /><figcaption>location of the company</figcaption></figure><h3>Achieving cost and performance improvements with containers</h3><ul><li><strong>Reduced OpEx by 23% :</strong> AvivaSA has used the self-healing and auto-scaling capabilities built into the latest version of Red Hat OpenShift to help reduce its operational expenses (OpEx) by 23% by reducing manual work time for maintenance and other routine tasks. For example, SabancıDX’s team no longer needs to spend time monitoring and adjusting the production environment to meet service-level agreements (SLAs) that ensure service availability for customers.</li><li><strong>Cut environment build times by more than 95%</strong> : “Red Hat OpenShift lets us quickly set up a new environment or easily make changes to the applications running in production, with minimal disruption to our service availability,” said Aydınyüz.</li><li><strong>Achieved high reliability for container environment</strong> : Dynamic management built into Red Hat OpenShift helps AvivaSA extend the reliability of its existing Red Hat architecture to its new, container-based environment. This reliability has helped AvivaSA extend its partnership with Akbank, which now operates some financial applications on Red Hat OpenShift on AvivaSA’s behalf.</li><li><strong>Created foundation for future cloud adoption</strong> : Migrating critical core applications to Red Hat OpenShift on premise has helped AvivaSA be prepared if the Turkish government allows the use of cloud computing environments in the future. “As a Kubernetes platform, Red Hat OpenShift ensures we are ready for public cloud when Turkish regulations allow,” said Aydınyüz. “It will make it very easy for us to move to a public or hybrid cloud environment.”</li></ul><p><strong>Hope this information about OpenShift help you to find multiple facts about OpenShift uses at different places and requirements.</strong></p><p><strong>Keep Learning, Keep Sharing!!✨</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b020a97c8fa5" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Jenkins working and using by companies]]></title>
            <link>https://anshu-anshikasharma114.medium.com/jenkins-working-and-using-by-companies-42410a2403f1?source=rss-a79a80bf99f5------2</link>
            <guid isPermaLink="false">https://medium.com/p/42410a2403f1</guid>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[continuous-delivery]]></category>
            <category><![CDATA[jenkins-pipeline]]></category>
            <category><![CDATA[jenkins]]></category>
            <category><![CDATA[continuous-integration]]></category>
            <dc:creator><![CDATA[Anshika Sharma]]></dc:creator>
            <pubDate>Mon, 22 Mar 2021 14:00:00 GMT</pubDate>
            <atom:updated>2021-03-22T14:00:00.716Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*QPxWDiN1LvLM_Mpz.jpg" /><figcaption>logo</figcaption></figure><h3>What is Jenkins?</h3><p><strong>Jenkins</strong> — an open source automation server which enables developers around the world to reliably build, test, and deploy their software.</p><p>It is used to build and test your software projects continuously making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. Jenkins is one of the great tool for the DevOps world. It helps us in Continuous Integration and Continuous Development.</p><h3>Work Flow by Jenkins</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/951/0*7C0M6Fo5WQqg1HhX.jpeg" /><figcaption>Workflow by jenkins</figcaption></figure><p>These are the 5 stages that are performed by Jenkins .</p><h3>Features of Jenkins</h3><ul><li><strong>Continuous Integration and Continuous Delivery : </strong>As an extensible automation server, Jenkins can be used as a simple CI server or turned into the continuous delivery hub for any project.</li><li><strong>Easy installation :</strong> Jenkins is a self-contained Java-based program, ready to run out-of-the-box, with packages for Windows, Linux, macOS and other Unix-like operating systems.</li><li><strong>Easy configuration :</strong> Jenkins can be easily set up and configured via its web interface, which includes on-the-fly error checks and built-in help.</li><li><strong>Plugins :</strong> With hundreds of plugins in the Update Center, Jenkins integrates with practically every tool in the continuous integration and continuous delivery toolchain.</li><li><strong>Extensible :</strong> Jenkins can be extended via its plugin architecture, providing nearly infinite possibilities for what Jenkins can do.</li><li><strong>Distributed :</strong> Jenkins can easily distribute work across multiple machines, helping drive builds, tests and deployments across multiple platforms faster.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*gcf3p7XELwDpNfpP.jpg" /><figcaption>features of jenkins</figcaption></figure><h3>Use Case Study</h3><p>There are many stories of how this great tool helped in the efficient development.</p><h3><strong>Jenkins accepted in SheCodeAfrica Contribution</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/331/1*IrUopberO5j42PKRBEmFHA.png" /><figcaption>logo of SheCodeAfrica</figcaption></figure><p><strong>SheCodeAfrica</strong> is a non-profit organization focused on celebrating and empowering young girls and women in technology across Africa. They provide resources and events that help women grow and achieve their personal and career goals. Their mentoring programs provide help and guidance as participants learn and grow in their careers.</p><p>This year, <strong>SheCodeAfrica </strong>is organizing the SheCodeAfrica Contribution. Contribution is a boot camp where African women are paid to work with open source organizations on selected projects with dedicated mentors. This program aims to create a more diverse, inclusive, and innovative culture within the African open source ecosystem by matching African women in technology with sponsor and mentor open source organizations.</p><h4>Working of Jenkins in this Contribution</h4><ul><li>The Jenkins project has been accepted as a Contribution Mentoring Organization.</li><li>Our project idea will introduce participants to Jenkins and plugin development as they create Pipeline examples and create Pipeline help for Jenkins Pipeline plugins.</li><li>Participants will learn more about Jenkins Pipeline and will submit plugin pull requests with examples and online help.</li><li>The Jenkins Pipeline Steps reference and Pipeline online help often receive feedback that more examples are needed, that step return values need to be described, and that arguments need more description of their purpose, allowed values, and expected results.</li><li>Most plugin maintainers do not provide detailed documentation of the pipeline steps, or the arguments to those pipeline steps.</li><li>This project will improve the documentation of pipeline steps and their arguments while introducing Jenkins Pipeline, Jenkins plugin development, Jenkins documentation as code, and the concepts of GitHub forks and pull requests.</li></ul><p>They say —<strong><em> “We’ve identified development tasks that up to their Contribution participants will complete during April. The tasks will introduce the participants to Jenkins plugin development. They will experiment with plugin changes in Jenkins and submit pull requests to provide Pipeline examples and help.”</em></strong></p><h3>Overall Benefits of Jenkins</h3><p>1. Jenkins is an open-source tool that is extremely easy to install and use. You need no extra components to use it</p><p>2. It is free and available to be used with different platforms, such as Windows, Linux, macOS, and others</p><p>3. It is widely used, so finding support on online communities is not a big problem</p><p>4. Jenkins automates all integration work. Integration issues are scarce, and so, it helps in saving time and money over the project lifecycle.</p><p>5. It is easy to configure, extend, and modify. It allows the instant generation of tests and building, automation, and deployment of code on different platforms</p><p>6. Jenkins can be configured to run CI and CD concepts properly</p><p>7. It can easily detect and fix issues. The software is always ready for a sudden release</p><p>8. Supports a variety of plugins, which allows better flexibility</p><p>9. It helps in detecting errors very early, thus saving developers a lot of time and hard work</p><p><strong>Hope this detailed information about Jenkins and may help you to find multiple Jenkins uses at different places and requirements.</strong></p><p><strong>Keep Learning, Keep Sharing!!✨</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=42410a2403f1" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>