Skip to main content

Command Palette

Search for a command to run...

πŸš€ DevSecOps Journey β€” Day 16

Published
β€’3 min read
πŸš€ DevSecOps Journey β€” Day 16

Understanding Build Tools & Project Architecture Across Java, Node.js, .NET & Python

✨ How modern applications are structured, built, and executed in real systems

After completing Linux, Shell Scripting, and Git, I moved forward into build tools and project architectures.
Today’s learning focused on how real-world projects are organized, how dependencies are managed, and how applications are built and run across different technology stacks.

This understanding is crucial in DevOps and DevSecOps pipelines, where builds, tests, and deployments are automated.


🧱 Why Build Tools Matter in DevOps

Build tools help:

  • πŸ“¦ Manage dependencies

  • πŸ”„ Automate builds

  • πŸ§ͺ Run tests

  • πŸš€ Prepare artifacts for deployment

  • βš™οΈ Integrate with CI/CD pipelines

Each programming ecosystem has its own standard build tool.


β˜• Project #2: Java Monitoring System (Maven)

🧠 Project Structure & Dependency Management

  • Java projects use Maven as the build tool

  • All dependencies and metadata are defined in pom.xml

pom.xml contains:

  • πŸ“„ Project metadata

  • πŸ›  Build tools

  • πŸ“Œ Versions

  • πŸ“š Libraries


πŸ“¦ JAR vs WAR (Simple Explanation)

  • JAR (Java Archive)

    • Standalone application

    • Can run directly using Java

  • WAR (Web Application Archive)

    • Requires external server (e.g., Tomcat)

πŸ“Œ If <packaging>war</packaging> is explicitly mentioned β†’ WAR
πŸ“Œ Otherwise β†’ Default is JAR


πŸ”„ Maven Build Lifecycle

compile β†’ test β†’ package β†’ install β†’ deploy
  • mvn clean β†’ Clears old builds

  • mvn package β†’ Creates artifact

  • mvn install β†’ Stores artifact in local .m2

  • mvn deploy β†’ Pushes artifact to Nexus / JFrog

πŸ” Credentials are secured in settings.xml.

Skipping tests when required:

mvn clean package -DskipTests=true

πŸ“Œ Maven must be run from the directory where pom.xml exists.


🌐 Project #3: Node.js Monitoring System (NPM)

🧠 Project Structure

  • Dependencies are managed in package.json

  • NPM is used as the build and dependency tool

πŸ“¦ Dependency Types

  • dependencies β†’ Required at runtime

  • devDependencies β†’ Required only during development

πŸ“Œ node_modules is mandatory for execution.


▢️ Running the Application

npm start

NPM makes JavaScript-based services easy to install, build, and run.


πŸ”· Project #4: .NET Monitoring System

🧠 Project Structure & Dependency Management

  • Dependencies are defined in .csproj file

  • Follows a standardized folder structure


βš™οΈ Common .NET Commands

dotnet restore   # Install dependencies
dotnet test      # Run test cases
dotnet build     # Compile the application
dotnet run       # Start the application

πŸ“€ Build Output

  • .dll

  • .exe

This structured workflow ensures consistent builds across environments.


🐍 Project #5: Python Monitoring System

🧠 Project Structure

  • Dependencies are stored in requirements.txt

  • app.py acts as the entry point


πŸ§ͺ Virtual Environment (Best Practice)

  • Create a project-specific virtual environment (venv)

  • Prevents dependency conflicts between projects

▢️ Running the Application

python app.py

This ensures clean, isolated Python environments.


🎯 Why This Learning Matters in DevOps / DevSecOps

Understanding build tools across multiple stacks helps with:

  • βš™οΈ CI/CD pipeline design

  • πŸ“¦ Artifact management

  • πŸ§ͺ Test automation

  • πŸš€ Deployment automation

  • πŸ” Secure dependency handling

DevOps engineers must know how builds work before automating them.


βœ… Day 16 Summary

Today, I explored:

  • β˜• Java build system using Maven

  • 🌐 Node.js build system using NPM

  • πŸ”· .NET project structure and commands

  • 🐍 Python project structure and virtual environments

  • πŸ“¦ Dependency management across ecosystems

  • πŸš€ How build artifacts are generated and deployed

This learning bridges the gap between development and deployment, strengthening my understanding of real-world DevSecOps pipelines.