<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Malar_nath</title>
    <description>The latest articles on Forem by Malar_nath (@malar_nath).</description>
    <link>https://forem.com/malar_nath</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2598330%2Fc645a9d6-7e77-4984-9ae9-6b9bec425d80.jpg</url>
      <title>Forem: Malar_nath</title>
      <link>https://forem.com/malar_nath</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/malar_nath"/>
    <language>en</language>
    <item>
      <title>DevOps Principles</title>
      <dc:creator>Malar_nath</dc:creator>
      <pubDate>Fri, 27 Dec 2024 18:11:26 +0000</pubDate>
      <link>https://forem.com/malar_nath/devops-principles-3p2b</link>
      <guid>https://forem.com/malar_nath/devops-principles-3p2b</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ai4mjpjx58pqc2sgli1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ai4mjpjx58pqc2sgli1.png" alt="Image description" width="736" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Hey Everyone! 👋 Welcome back! 🎉&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I’m thrilled to be back with fresh content! In my previous blogs, we’ve covered some solid topics like SDLC, CI/CD, and how security fits into the mix. Now, it’s time to level up and dive into something even more exciting — &lt;strong&gt;the powerful principles behind DevOps&lt;/strong&gt; and how they are revolutionizing software development, making it faster, more reliable, and super efficient. 🚀&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is DevOps and Its Principles?&lt;/strong&gt;&lt;br&gt;
DevOps is a collaboration between developers and operations team where they can get closer to the user by gaining a better understanding of user requirements and needs. The main goal of DevOps is to automate and streamline workflows, ensure seamless collaboration between teams, and improve software delivery and reliability. Let’s break down the core principles that make DevOps effective.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;DevOps Principles&lt;/strong&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;1. Collaboration and Communication:&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;DevOps is about removing the barriers between Development and Operations teams. It focuses on teamwork and shared responsibility to build and deliver software more quickly and reliably.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Historically, developers and operations teams worked separately. Developers wrote the code, while operations teams deployed and maintained the systems. This caused delays and communication gaps.&lt;/p&gt;

&lt;p&gt;Now DevOps aims to create a collaborative culture. Developers and operation team will share their code into a shared repository, this reduce delays and errors and make them work together throughout the development cycle, from code creation to deployment&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2. Automation&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In DevOps, we automate as much of the software development lifecycle (SDLC) as possible. Using CI tools like Jenkins, developers can automate repetitive tasks such as building, testing, deploying, and monitoring applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Automation speeds up processes, reduces the chance of human errors, and ensures tasks are consistently performed. By automating manual steps, teams can focus more on development and improving software quality.&lt;/p&gt;

&lt;p&gt;In short: Automated processes, like using Jenkins, can automatically build, test, and deploy new versions of an application. Once code is pushed to the repository, Jenkins triggers the automation to build the application, run tests, and deploy it to production, all without manual intervention.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;3. Continuous Integration (CI)&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;CI means automatically integrating code changes into a shared repository several times a day, helping detect defects and bugs early.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By frequently integrating changes, teams catch bugs and errors early, reducing large-scale integration issues later in the process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When developers push code to GitHub, Jenkins can immediately trigger unit tests to ensure code quality.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;4. Continuous Delivery/Deployment (CD)&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Continuous Delivery ensures that code is always ready for production. Continuous Deployment automates the entire delivery process, deploying directly to production after testing without human intervention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CD minimizes delays and reduces errors between writing code and delivering it to users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After Jenkins tests the code, it can automatically deploy the app to a staging environment (CD) or directly to production (Continuous Deployment).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;5. Infrastructure as Code (IaC)&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;IaC means managing infrastructure (servers, networks) through code, automating provisioning and ensuring consistency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IaC enables scalability, repeatability, and error-free infrastructure management. Teams can replicate environments easily and maintain consistency across development and production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With Terraform or Ansible, developers can create server environments or deploy applications automatically by running scripts.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;6. Customer-Centric Action:&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;DevOps encourages continuous feedback loops from end users, helping teams stay focused on user needs throughout the development process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; Real-time monitoring and immediate feedback enable teams to improve software quickly and ensure the product is aligned with user needs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;7. Continuous Monitoring and Feedback:&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;DevOps ensures that applications are monitored constantly to track performance, security, and availability, allowing teams to react fast to issues before users are affected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; Continuous monitoring ensures system health and performance, enabling quick response to performance bottlenecks, bugs, or security breaches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Tools like Prometheus and Grafana monitor system performance and send alerts if there are any issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;How Does This Relate to SDLC and SSDL?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You’ll notice the DevOps principles share some similarities with what we discussed in the SDLC and SSDL blogs. The idea is to automate, improve, and continuously deploy without compromising security — making everything faster and more reliable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39sa0seruj9xhnj1tmep.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39sa0seruj9xhnj1tmep.png" alt="Image description" width="640" height="638"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In the Next Blog, Let’s See How Docker Fits into DevOps&lt;/strong&gt;&lt;br&gt;
Now that we’ve covered the basics of DevOps principles, let’s dive into how Docker fits into the DevSecOps cycle.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;DevOps principles provide the structure to streamline collaboration and delivery, driving speed, quality, and consistency in software development. With Docker added to the mix, teams can create isolated, reproducible environments for development, testing, and production.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmxeg6hvuqnmxacog5nr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmxeg6hvuqnmxacog5nr.png" alt="Image description" width="800" height="717"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>docker</category>
      <category>cicd</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>Enhancing SDLC with Security: A Guide to SSDL and CI/CD Pipelines</title>
      <dc:creator>Malar_nath</dc:creator>
      <pubDate>Mon, 23 Dec 2024 17:28:17 +0000</pubDate>
      <link>https://forem.com/malar_nath/enhancing-sdlc-with-security-a-guide-to-ssdl-and-cicd-pipelines-23he</link>
      <guid>https://forem.com/malar_nath/enhancing-sdlc-with-security-a-guide-to-ssdl-and-cicd-pipelines-23he</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02vszbtmn43u5eze4gci.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02vszbtmn43u5eze4gci.png" alt="Image description" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Welcome back! In my last blog post, we explored the SDLC and CI/CD pipeline processes. Today, we’ll discuss how these concepts extend into SSDL with CI/CD pipelines.&lt;/p&gt;

&lt;p&gt;Previously, we covered essential topics including the fundamentals of SDLC, its importance, its various phases, and how CI/CD pipelines work. We also examined both traditional and modern CI/CD pipeline methods, and how organizations can scale their pipelines based on business needs.&lt;/p&gt;

&lt;p&gt;If you need a refresher/not yet familiar with SDLC and its relationship with CI/CD pipelines, I encourage you to review my previous blog post. Now, let’s dive into today’s topic!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/malar_nath/from-sdlc-to-cicd-a-beginners-guide-2l39"&gt;https://dev.to/malar_nath/from-sdlc-to-cicd-a-beginners-guide-2l39&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What is Secure Software Development Lifecycle (SSDL)?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is an approach to SDLC that integrated security practices in each phases of the Software Development Lifecycle. Here, the primary goal for this SSDL is to identify and address security vulnerabilities early, minimizing risks and ensuring the final product is secure.&lt;/p&gt;

&lt;p&gt;With this information let’s move on to the Phases of SDLC with security in mind :)&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Focusing on Each Phase: SDLC + Secure SDLC (SSDL):&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Planning —&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;SDLC Goal:&lt;/strong&gt; Define project goals, scope, and resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SSDL Enhancement:&lt;/strong&gt; Set security objectives, perform preliminary threat modeling, and align with compliance requirements (e.g., PCI DSS, GDPR).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For an e-commerce website, security goals include payment data encryption, maintaining uptime during peak sales, and ensuring PCI DSS compliance for protecting cardholder data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Requirement Analysis —&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SDLC Goal:&lt;/strong&gt; Understand what software must do and gather functional and non-functional requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SSDL Enhancement:&lt;/strong&gt; Identify security-specific requirements like authentication, data encryption, and compliance integration (e.g., GDPR, HIPAA).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Functional:&lt;/strong&gt; User authentication, access authorization, and secure data encryption.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Non-functional:&lt;/strong&gt; System uptime, performance scaling, and security incident handling (In short, it ensures the functionality of enabling easy browsing, checkout systems, and efficient order tracking with best practices such as compliance implementation identifying risk).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Stakeholders require the payment gateway to implement two-factor authentication and TLS encryption for all financial transactions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Design —&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SDLC Goal:&lt;/strong&gt; Architect the software with workflows, modules, and database schemas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SSDL Enhancement:&lt;/strong&gt; Use frameworks like STRIDE to detect potential threats such as spoofing, tampering, and data breaches. Apply secure design principles like least privilege, defense in depth, and secure defaults.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In an e-commerce system, the customer payment database is kept separate from the application server to prevent unauthorized access.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncruurvgxjmjvqst86gg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncruurvgxjmjvqst86gg.png" alt="Image description" width="753" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The CI/CD process (Continuous Integration and Continuous Deployment/Delivery) starts in the Development phase of the SDLC and extends through Testing, Deployment, and into the Maintenance phase.&lt;/p&gt;

&lt;p&gt;Let’s explore how it fits into the SSDL process:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Development (Implementation) —&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SDLC Goal:&lt;/strong&gt; Write and integrate code based on design documents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SSDL Enhancement:&lt;/strong&gt; Code review will happen as part of Secure Coding Practices using SAST tool.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What happens here?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Developers write the code for e-commerce application in IDE’s or Git.&lt;/li&gt;
&lt;li&gt;Developers push their code to a shared repository (e.g., GitHub or GitLab).&lt;/li&gt;
&lt;li&gt;CI tools like Jenkins, GitLab CI, or CircleCI gets trigger/update and automatically fetch the code, build it, and run automated tests (unit and integrated test will happen to ensure the code works as expected).&lt;/li&gt;
&lt;li&gt;Integration checks verify that new code maintains compatibility with existing functionality.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Security Perspective:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The CI pipeline integrates SAST (Static Application Security Testing) tools to scan code for security vulnerabilities (e.g., hardcoded secrets or SQL injection risks).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Note:&lt;/strong&gt; How CI pipeline perform SAST scan? Well, In CI Pipeline, for example Jenkins, it have plugins which is integrated into CI pipeline. Many SAST tools provide dedicated plugins for CI/CD platforms like Jenkins, GitLab CI, or Azure DevOps. Tools like SonarQube, Checkmarx, and Fortify offer plugins that can be added to the CI pipeline.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How It Works:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The CI tool (Jenkins) installs the SAST plugin.&lt;/li&gt;
&lt;li&gt;During the build or testing phase, the plugin automatically scans the source code.&lt;/li&gt;
&lt;li&gt;The CI/CD dashboard displays the scan results, highlighting any vulnerabilities or code quality issues.&lt;/li&gt;
&lt;li&gt;However, command-line and API methods are also common when a plugin isn’t available.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; When developers implement new payment features for an e-commerce site, Jenkins initiates a build to verify functionality and employs SonarQube to detect potential security flaws.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Testing —&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SDLC Goal:&lt;/strong&gt; Identify and fix bugs through functional and performance&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SSDL Enhancement:&lt;/strong&gt; Code reviews and Penetration Testing will happen using SAST, DAST, Burpsuite, OWASP ZAP tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens here?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The CI/CD pipeline runs comprehensive automated tests, including unit, integration, performance, and security testing.&lt;/li&gt;
&lt;li&gt;DAST (Dynamic Application Security Testing) tools like OWASP ZAP or Burp Suite test the application’s security by simulating real-world attacks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Security Perspective:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This testing catches critical vulnerabilities like cross-site scripting (XSS) and insecure APIs before they reach production.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; For the e-commerce site, DAST tools verify that the login system is protected against brute force attacks and session hijacking attempts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Deployment(Continuous Deployment — CD) —&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SDLC Goal:&lt;/strong&gt; Launch the software in a production environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SSDL Enhancement:&lt;/strong&gt; Here before sending the build artifacts to CD tools (e.g., Ansible or Kubernetes), it ensure the hardening configurations for servers, databases, APIs are well and secure to move. Deploy monitoring tools (e.g., Splunk, New Relic) to track system performance and detect potential breaches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens here?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security Perspective:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After the tests are completed, the code is packaged into deployable artifacts (e.g., Docker images, JAR files).&lt;/li&gt;
&lt;li&gt;This build artifact is then pushed to JFrog Artifactory for storage.&lt;/li&gt;
&lt;li&gt;While Jenkins doesn’t initially know the artifactory repository location, it uses integrated plugins to interact with artifactory repository hubs like JFrog, AWS, Azure, and GCP.&lt;/li&gt;
&lt;li&gt;Jenkins shares the compiled executable files with these hubs through artifactory plugins.&lt;/li&gt;
&lt;li&gt;For additional security testing or containerization, Jenkins retrieves the artifacts from the artifactory repository to create Docker images (If it is for large-scale application. For small scale, we can just move the build artifact to deployment process directly).&lt;/li&gt;
&lt;li&gt;The artifact is incorporated into a Dockerfile, which defines the container’s environment.&lt;/li&gt;
&lt;li&gt;These Docker images are then sent back to the artifactory repository for container security scans and storage.&lt;/li&gt;
&lt;li&gt;Security professionals review the registry repository and application image, conducting security scans.&lt;/li&gt;
&lt;li&gt;Once security professionals confirm no vulnerabilities exist, developers retrieve the build artifacts from the artifactory repository through Jenkins for the deployment process.&lt;/li&gt;
&lt;li&gt;Deployment tools like Ansible, Kubernetes, or Spinnaker handle the automated rollout to staging or production environments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Ansible deploys a new version of the e-commerce site while maintaining the database’s security rules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Maintenance (Continuous Monitoring and Updates) —&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SDLC Goal:&lt;/strong&gt; Ensure the software runs smoothly post-deployment with regular updates and patches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SSDL Enhancement:&lt;/strong&gt; Continuous monitoring with SIEM tools (e.g., Splunk, QRadar) helps detect unusual activities. Regular patch management ensures updates to libraries, frameworks, and tools to mitigate vulnerabilities, and a documented incident response plan is in place to detect, respond to, and recover from security incidents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens here?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Continuous monitoring tools (e.g., Splunk, Dynatrace) track application performance and detect anomalies.&lt;/li&gt;
&lt;li&gt;When vulnerabilities are discovered in libraries or frameworks, CD pipelines are triggered to patch and deploy updates.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; The CI/CD pipeline automates patching a vulnerable library in the e-commerce payment module.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Lastly,&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;SSDL integrates security measures into every stage of software development. Without SSDL, security checks would only occur in the final phases of SDLC, risking the oversight of major vulnerabilities. Instead, SSDL helps identify and fix problems from the initial phase through completion. Through CI/CD pipelines, teams can automate security tasks, accelerate development, and ensure software is both functional and secure from the start. Hope we’ve explored the complete process of SDLC, SSDL, and their integration with the CI/CD pipeline process.&lt;/p&gt;

&lt;p&gt;In the next blog, we’ll dive into another exciting topic. Stay tuned for more insights!&lt;/p&gt;

</description>
      <category>ssdl</category>
      <category>sdlc</category>
      <category>security</category>
      <category>gitlab</category>
    </item>
    <item>
      <title>From SDLC to CI/CD: A Beginner’s Guide</title>
      <dc:creator>Malar_nath</dc:creator>
      <pubDate>Sun, 22 Dec 2024 10:26:34 +0000</pubDate>
      <link>https://forem.com/malar_nath/from-sdlc-to-cicd-a-beginners-guide-2l39</link>
      <guid>https://forem.com/malar_nath/from-sdlc-to-cicd-a-beginners-guide-2l39</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frfsyfiotd8z0sn4vowol.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frfsyfiotd8z0sn4vowol.png" alt="Image description" width="500" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hey, I’m Malarvizhi! Thank you for your interest in my first blog! In this post, we’ll explore the Software Development Lifecycle (SDLC) and explore how CI/CD pipelines streamline traditional processes for faster, more reliable software delivery.&lt;/p&gt;

&lt;p&gt;In today’s fast-paced digital world, software development relies on structured methodologies to deliver reliable and high-quality products. One such methodology is the Software Development Lifecycle (SDLC) — a step-by-step framework that guides the development of software from inception to maintenance.&lt;/p&gt;

&lt;p&gt;With the rise of CI/CD (Continuous Integration/Continuous Deployment) pipelines, SDLC has become more automated and agile, allowing teams to rapidly deliver updates while maintaining high standards. In this blog, we’ll explore the SDLC, its phases, and how modern CI/CD pipelines enhance its efficiency.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What is SDLC?&lt;/strong&gt;&lt;br&gt;
SDLC means, it is a structured framework, where it used to design, develop, test and deploy the software applications. It covers the entire process, from the creation of software to its deployment in the production environment.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;ok, so what is the need of SDLC — Well, It ensures software (or application) are well-managed, delivered on time, and meet both business and quality standards, ultimately enhancing customer satisfaction and helps the organization build a stronger brand reputation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example&lt;/strong&gt;, A company is planning to launch a new e-commerce website to allow customers to browse the products, make purchases, and track orders. The company wants to ensure the site is user-friendly, secure, and performs well under traffic spikes. Now the company must have to follow the process of SDLC to create an application and send it to production environment. Let’s see how SDLC plays in the given example.&lt;/p&gt;

&lt;p&gt;First, let discuss what are the phases of SDLC and how we can build an e-commerce application in the phases of SDLC.&lt;/p&gt;

&lt;p&gt;To meet the requirements of the production environment, the SDLC consists of several phases, those are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Planning&lt;/strong&gt; — &lt;strong&gt;Goal&lt;/strong&gt;: Define project goals, scope, and resources.&lt;br&gt;
Example — talks about the scope of how website should look, features it needs(product catalog, shopping cart, and payment gateway), discuss on target launch date.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Requirement Analysis — Goal&lt;/strong&gt;: Understand what software must do and gather functional and non-functional requirements.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; — ensures the business requirements from stakeholders are clearly understood such as enabling easy browsing, checkout systems, and efficient order tracking.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Design — Goal:&lt;/strong&gt; Architect the software with workflows, modules, and database schemas&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; — helps to plan the website’s architecture. The development team would design the website’s UI and define how the application will interact with the database to store user data, product details, and transaction history.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Development (Implementation) — Goal&lt;/strong&gt;: Write and integrate code based on design documents.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; — The development team writes the code to build the website’s functionality, such as the product catalog, shopping cart, and checkout system. Then the application is tracked using version control, and checks the code is regularly updated to ensure progress.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: why tracking using version control, because it allows developers to keep track of code changes over time.&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Testing — Goal:&lt;/strong&gt; Identify and fix bugs through functional and performance&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; — Thorough testing is conducted to ensure the website works as expected. Tests like unit test to ensure each feature functionality; integration tests to verify entire application works together as expected; performance testing ensures the website can handle a high number of users during peak traffic times.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Deployment — Goal:&lt;/strong&gt; Launch the software in a production environment.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; — Here the company will use some deployment tools to push the application to deploy in the production environment, where it becomes publicly accessible.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Maintenance — Goal:&lt;/strong&gt; Provide updates, fix bugs, and ensure long-term performance.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; — After the website is live, the development team monitors its performance and addresses any issues that arise, such as bug fixes or updates regularly.&lt;/p&gt;

&lt;p&gt;Hope, we have covered the phases of SDLC with its best example, lets check how CI/CD pipelines are used to automate SDLC phases in modern development.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;CI/CD process in SDLC:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwlpk12idh4s35hxvese8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwlpk12idh4s35hxvese8.png" alt="Image description" width="317" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the process that CI/CD includes in SDLC&lt;/strong&gt; — Build, Test, Package, Deploy&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where these process are relating to SDLC phases&lt;/strong&gt; — Build (Development phase), Test(Testing phase), Package(Testing phase), Deploy(Deployment phase)&lt;/p&gt;

&lt;p&gt;Lets discuss, what developers will do to meet business needs and on time delivery before CI/CD. Before the technology of CI/CD pipeline automation, developers will work largely on manuals, slower and mostly it prone to errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here the overview:&lt;/strong&gt; Manually writing the code; testing was done manually or with limited automation tools; Once testing was complete, the application was manually packaged into deployable formats (e.g., JAR or WAR files); Deployment involved copying files to servers manually or running custom scripts. Overall its time-consuming for developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Transition to CI/CD:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F323w68vc32chtsvmwpba.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F323w68vc32chtsvmwpba.png" alt="Image description" width="498" height="308"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CI/CD replaced these manual processes with automated pipelines, enabling faster builds, automated testing, seamless deployments, and quick feedback loops. Let check what it does :)&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Continuous Integration (CI):&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Automates the integration of code changes into a shared repository.&lt;/li&gt;
&lt;li&gt;Example: Developers push code to GitHub repository, and Jenkins gets triggers/updates and it automatically builds and tests the application.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Continuous Deployment (CD):&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ensures the software is always ready for deployment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; Artifacts like Docker containers are stored in a repository like JFrog Artifactory, ready for staging or production.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lets don’t get confused, we will break this down now. We discussed on what are the process it needs for CI/CD pipeline workflow to complete the SDLC process. In that process the organization might follows in 2 different menthods. Let break it.&lt;/p&gt;

&lt;h2&gt;
  
  
  METHOD 1:
&lt;/h2&gt;

&lt;p&gt;This process is handled entirely within Jenkins, which builds, tests, packages, and deploys the software:&lt;/p&gt;

&lt;p&gt;Till Phase 3, the process will be same, from phase 4 of SDLC the following CI/CD workflow will happen. Let’s explore.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build —&lt;/strong&gt; When Jenkins receives updates/triggers from repositories (like GitHub, GitLab, Bitbucket), it pulls the latest code, use that code to build and compiles it, and resolves any dependencies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test —&lt;/strong&gt; Jenkins runs automated tests — including unit tests, integration tests — to verify the code functions correctly as expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Package —&lt;/strong&gt; After successful testing, Jenkins packages the code into a deployable build artifact. The build artifacts could be executable files (eg., JAR file, WAR file, ZIP file or docker image)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deployment —&lt;/strong&gt; Jenkins automatically pushes the software to CD tools like Ansible, Kubernetes, or other deployment tools for staging and production environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Points:&lt;/strong&gt; This process compiles and packages code directly into deployable artifacts and sends them for deployment without intermediate steps. It works best for small-scale applications or environments that don’t require storing artifacts in a centralized repository for reuse or auditing. Since there’s no artifact repository (like JFrog Artifactory or Docker Hub ) in this workflow, artifacts move directly from Jenkins to the deployment tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  METHOD 2:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Build —&lt;/strong&gt; When Jenkins receives triggers for updated code from repositories (like GitHub, GitLab, Bitbucket), it pulls the latest code, builds and compiles it, and resolves dependencies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test —&lt;/strong&gt; Jenkins runs automated tests, including unit tests, integration tests, to ensure the code works as expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Package -&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Jenkins packages the application into a build artifact, such as a JAR file, WAR file, or Docker image.&lt;/li&gt;
&lt;li&gt;The packaged artifacts are pushed to an artifact repository (e.g., JFrog Artifactory, AWS, Azure, GCP) using Jenkins Artifactory plugins.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Here the Jenkins do not know where the artifactory repository is placed. However, jenkins have plugins which is integrated into CI/CD pipelines.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For additional containerization: Jenkins retrieves the artifacts from the artifact repository.&lt;/li&gt;
&lt;li&gt;Creates Docker images using a Dockerfile that defines the container environment.&lt;/li&gt;
&lt;li&gt;The Docker images are sent back to the artifact repository for: Storage for later use.&lt;/li&gt;
&lt;li&gt;Once the above process and security checks are done, developers retrieve the build artifacts from the repository for deployment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Keypoints:&lt;/strong&gt; This process includes the use of an artifact repository like JFrog Artifactory, Docker Hub, Aws, GCP, Azure for centralized storage and distribution of build artifacts. It is common in large-scale applications or containerized environments where multiple teams need access to the same artifacts, Artifacts need to be stored for auditing, compliance, or reusability. The use of an artifact repository provides better version control, traceability, and scalability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deployment —&lt;/strong&gt; After the above processes, Jenkins triggers a deployment job that passes the artifact to a CD tool (such as Ansible for server configuration or Kubernetes for container orchestration). In other words, the CI tool (Jenkins) shares the artifact with CD tools (Ansible or Kubernetes) for production deployment.&lt;/p&gt;

&lt;p&gt;And Lastly, after the deployment phase, it’ll go for continuous monitoring.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maintenance —&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Provide updates, fix bugs, and ensure long-term performance.&lt;br&gt;
Example: Regularly patching vulnerabilities and releasing new features based on user feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Real-World Example: Jenkins and Ansible for an E-Commerce Website&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Let’s see how Jenkins and Ansible work together when deploying an e-commerce website with a new payment gateway feature:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code Integration:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers push code updates to a GitHub repository.&lt;/li&gt;
&lt;li&gt;Jenkins automatically fetches the code and runs unit tests to verify the payment gateway functionality.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Build and Artifact Storage:&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Jenkins creates a Docker image of the website and stores it in a secure repository (e.g., Docker Hub or JFrog Artifactory).&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Deployment:&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Kubernetes pulls the Docker image, deploys it to production, and manages automatic scaling during high-traffic periods.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This automated pipeline accelerates delivery while maintaining quality standards, minimizing human error, and meeting business objectives.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Note:&lt;/strong&gt; CI and CD tools are vary based on the project needs. Few CI and CD tools are listed for follow up :)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;_&lt;strong&gt;Other CI Tools:&lt;/strong&gt; Jenkins, GitLab CI, Travis CI, Circle CI, TeamCity, Azure DevOps, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Other CD Tools:&lt;/strong&gt; Bamboo, Ansible, Argo CD, Spinnaker, Harness, Buildkit_&lt;/p&gt;

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

&lt;p&gt;The SDLC forms the backbone of structured software development, while modern CI/CD pipelines enhance it with speed, automation, and reliability. This powerful combination enables teams to rapidly deliver high-quality applications that meet both user expectations and business needs.&lt;/p&gt;

&lt;p&gt;Let me know what are your thoughts on SDLC and CI/CD? Share your experiences or questions in the comments below!&lt;/p&gt;

&lt;p&gt;In the next blog, we’ll explore &lt;strong&gt;how to integrate security into SDLC, transforming it into Secure SDLC (SSDL)&lt;/strong&gt; to ensure robust, secure software development. Stay tuned!&lt;/p&gt;

</description>
      <category>cicdpipelines</category>
      <category>sdlc</category>
      <category>ssdl</category>
      <category>devsecops</category>
    </item>
  </channel>
</rss>
