Dear DevOps, If you're still running Jenkins pipelines in 2025, you're not wrong but you're probably spending more time maintaining infrastructure than shipping features. The shift to GitHub Actions and ArgoCD isn't just about trendy tools. It's about treating your deployment process like code: versioned, reviewable, and declarative. Here's what's actually changing: instead of configuring Jenkins servers and managing plugins, teams define workflows in YAML that live right next to their application code. Instead of imperative deploy scripts, GitOps controllers like ArgoCD watch your Git repos and reconcile the desired state automatically. The practical wins? Multi-cloud deployments without custom scripting. Visual pipeline builders that non-ops team members can actually understand. And for K8s-heavy teams, declarative deploys that make rollbacks a Git revert away. But here's the reality check: GitOps isn't a silver bullet. It works brilliantly for container-native workloads. It's still maturing for legacy apps, database migrations, and stateful services. Start where it makes sense: containerized microservices, infrastructure-as-code, and environments that benefit from audit trails. Don't rip out working CI/CD just to chase the hype. The 2026 job market is clear though GitHub Actions experience is becoming table stakes. Not because it's the only way, but because it represents a fundamental shift toward Git as the single source of truth. Learn it now. Your future interviews will thank you. #GitOps #GitHubActions #ArgoCD #CICD #Kubernetes #DevOps
CABREL TCHOFFO’s Post
More Relevant Posts
-
🚀 Why I Choose Jenkins Over GitHub Actions for CI/CD When setting up a CI/CD pipeline, the first question that usually comes up is: 👉 “Why not just use GitHub Actions? It’s built in and so convenient!” True — GitHub Actions is an amazing tool for automation and integration within the GitHub ecosystem. But after comparing both for a real-world project, I decided to go with Jenkins, and here’s why: 1️⃣ Full Control and Flexibility Jenkins gives me complete control over the build environment, pipelines, and plugins. I can customize everything — from node configurations to secret management — without worrying about external restrictions or billing tiers. 2️⃣ Vendor Independence GitHub Actions works great inside GitHub, but it ties your CI/CD tightly to a single platform. Jenkins, being open-source and self-hosted, keeps the setup portable and cloud-agnostic — I can move my infrastructure between providers like Hetzner, AWS, or GCP without changing workflows. 3️⃣ Scalability and Extensibility With Jenkins, scaling build agents across nodes or integrating custom tools (Vault, ArgoCD, SonarQube, etc.) is straightforward. Its plugin ecosystem remains one of the most extensive in CI/CD. 4️⃣ Cost and Control Over Compute Running Jenkins on my own infrastructure (e.g., Kubernetes or Docker) means I control the compute cost and performance. No hidden runner limitations or minute-based billing. 5️⃣ Security and Secrets Management Integrating Jenkins with Vault gives me a centralized, auditable way to manage secrets — a level of security control that’s harder to achieve with GitHub-hosted runners. 💡 In short: GitHub Actions is great for simplicity and small-to-medium workflows. Jenkins shines when you need deep customization, infrastructure control, and scalability — especially in multi-environment or self-hosted setups. Both tools are powerful — the choice depends on your project’s long-term vision. For mine, Jenkins fit the DevOps architecture I’m building perfectly. Tell me in the comments which tool are you currently using (actions, gitlab ci, jenkins...) #DevOps #CICD #TradeOff #Dev
To view or add a comment, sign in
-
-
🔄 Restoring Lost Work with Git Stash — Hands-On DevOps Practice Today, I worked on an interesting Git task in the /usr/src/kodekloudrepos/demo repository on the Storage Server in Stratos DC. One of the developers had stored some changes using git stash, and my job was to restore those stashed changes safely and push them back to the remote repo. 🛠 What I Did ✔ Checked the repository status and verified the current branch (master) ✔ Viewed available stashes using: git stash list ✔ Inspected stash details using: git stash show ✔ Applied the correct stash (stash@{1}) ✔ Committed the restored file (welcome.txt) with the message: "Restore the stash 1" ✔ Successfully pushed changes to the remote repository 📌 Final Commands Used git stash list git stash show git stash apply stash@{1} git commit -m "Restore the stash 1" git push origin master 🚀 Outcome The previously stashed file was fully restored, committed, and pushed — ensuring no work was lost and the repository is back in a clean, consistent state. Always good to see how Git’s stash mechanism helps recover changes effortlessly during real-world DevOps workflows! 💡 #DevOps #Git #VersionControl #KodeKloudEngineer #GitStash #LearningByDoing #100DaysOfDevOps
To view or add a comment, sign in
-
🚀 Git Advanced Concepts: Cherry-Pick | Stash | Rebase | Reset | Revert As we go deeper into #Git, mastering these commands becomes essential for every Cloud & DevOps Engineer 👩💻👨💻 Let’s break them down 👇 🍒 1️⃣ Git Cherry-Pick Copies a specific commit from one branch and applies it to another. 🔹 Example: You fixed a bug on dev and want the same fix in main - just cherry-pick that commit! ✅ Use Case: To apply individual changes without merging the entire branch. 📦 2️⃣ Git Stash & Pop Temporarily saves your uncommitted changes, letting you switch branches safely. git stash → Stores your work in a stack. git stash pop → Restores (applies) the most recent stashed changes. ✅ Use Case: When you need to pull or switch branches without losing local edits. 🔄 3️⃣ Git Rebase Moves or replays commits from one branch onto another to create a cleaner, linear history. ✅ Use Case: Keeps your commit history neat, often used before merging a feature branch. ⚠️ Caution: Rebasing rewrites history, so avoid rebasing shared branches. ⏪ 4️⃣ Git Reset & Git Revert Both undo changes - but in different ways. 🔹 Reset: Moves the HEAD pointer and can permanently delete commits (local). 🔹 Revert: Creates a new commit that undoes previous changes (safe for shared branches). ✅ Use Case: Use Reset for local cleanup. Use Revert for safely undoing commits already pushed to remote. 💡 Pro Tip: Always double-check before using destructive commands like reset or rebase. Use them wisely to keep your repo healthy. 🎯 This is part of my ongoing #GitRevision series! Follow me to continue learning Git step by step - from basics to advanced DevOps-level workflows. #Git #DevOps #VersionControl #GitLearning #CloudComputing #100DaysOfDevOps #GitCommands #GitRebase #GitReset #GitCherryPick
To view or add a comment, sign in
-
Git & GitHub: The Backbone of Modern Engineering ⚡ In today’s world, whether you are a developer or a DevOps engineer, Git & GitHub aren’t optional, they are essentials. Here’s what makes them powerful (straight from my Git & GitHub handbook 📘 ✅Track & Rollback – Every change is recorded, and you can move back in time anytime. ✅Branching & Merging – Safely test features without touching the main codebase. ✅Collaboration – Pull requests, issues, and discussions keep teams aligned. ✅CI/CD with GitHub Actions – Automate builds, tests, and deployments directly from your repo. ✅Security & Access – Work smarter with SSH keys, Personal Access Tokens, and protected workflows. ✅Infra as Code – From Terraform files to Kubernetes manifests, Git is the single source of truth. 💡 The flow is simple but powerful: Workspace → Staging → Local Repo → Remote Repo And this cycle powers everything from feature development to cloud deployments. 👉 For developers: It’s about writing and securing great code. 👉 For DevOps engineers: It’s about automating, deploying, and scaling with confidence. Every commit isn’t just code – it’s collaboration, automation, and innovation in motion. 🚀 #Git #GitHub #DevOps #CLI #Linux #Cloud #OpenSource #CI #CD #Automation #Learning #ShellScripting #CloudComputing #SRE #Jenkins #Docker #Kubernetes #Bash #SysAdmin
To view or add a comment, sign in
-
I'm excited to share this visual that clearly breaks down the difference between a traditional 𝗗𝗲𝘃𝗢𝗽𝘀 𝗖𝗜/𝗖𝗗 𝗽𝗶𝗽𝗲𝗹𝗶𝗻𝗲 𝗮𝗻𝗱 𝗮 𝗺𝗼𝗱𝗲𝗿𝗻 𝗚𝗶𝘁𝗢𝗽𝘀 𝗖𝗜/𝗖𝗗 𝗽𝗶𝗽𝗲𝗹𝗶𝗻𝗲! While both share the 𝗖𝗼𝗻𝘁𝗶𝗻𝘂𝗼𝘂𝘀 𝗜𝗻𝘁𝗲𝗴𝗿𝗮𝘁𝗶𝗼𝗻 (𝗖𝗜) steps from Source Code to Unit Test, Artifact Build, Image Build, and finally Image Registry the 𝗖𝗼𝗻𝘁𝗶𝗻𝘂𝗼𝘂𝘀 𝗗𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁 (𝗖𝗗) stage is where GitOps truly changes the game. 𝗞𝗲𝘆 𝗗𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝗰𝗲𝘀 𝗶𝗻 𝗗𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁: 𝗗𝗲𝘃𝗢𝗽𝘀 𝗖𝗜/𝗖𝗗: The deployment is typically push-based. After the image is built, a tool (like Jenkins, GitLab CI, etc.) pushes the new image to the Kubernetes Cluster. 𝗚𝗶𝘁𝗢𝗽𝘀 𝗖𝗜/𝗖𝗗: The deployment is pull-based and Git-centric. • The deployment configuration (𝗠𝗮𝗻𝗶𝗳𝗲𝘀𝘁𝘀 𝗮𝗻𝗱 𝗖𝗵𝗮𝗿𝘁𝘀) is 𝘀𝘁𝗼𝗿𝗲𝗱 𝗶𝗻 𝗮 𝗚𝗶𝘁 𝗿𝗲𝗽𝗼𝘀𝗶𝘁𝗼𝗿𝘆. • The Container Version 𝗨𝗽𝗱𝗮𝘁𝗲 𝘁𝗿𝗶𝗴𝗴𝗲𝗿𝘀 𝗮 𝗣𝘂𝗹𝗹 𝗥𝗲𝗾𝘂𝗲𝘀𝘁 𝘁𝗼 𝘂𝗽𝗱𝗮𝘁𝗲 𝘁𝗵𝗲 𝗺𝗮𝗻𝗶𝗳𝗲𝘀𝘁𝘀 𝗶𝗻 𝗚𝗶𝘁. • A 𝗚𝗶𝘁𝗢𝗽𝘀 𝗧𝗼𝗼𝗹 (𝗹𝗶𝗸𝗲 𝗔𝗿𝗴𝗼𝗖𝗗 𝗼𝗿 𝗙𝗹𝘂𝘅) 𝗿𝘂𝗻𝘀 𝗶𝗻𝘀𝗶𝗱𝗲 𝘁𝗵𝗲 𝗰𝗹𝘂𝘀𝘁𝗲𝗿 𝗮𝗻𝗱 𝗽𝘂𝗹𝗹𝘀 the desired state from Git, syncing the cluster with the repository's source of truth. 𝗪𝗵𝘆 𝗚𝗶𝘁𝗢𝗽𝘀? 𝗦𝗶𝗻𝗴𝗹𝗲 𝗦𝗼𝘂𝗿𝗰𝗲 𝗼𝗳 𝗧𝗿𝘂𝘁𝗵: Git becomes the single, declarative source for your application and infrastructure state. 𝗔𝘂𝗱𝗶𝘁𝗮𝗯𝗶𝗹𝗶𝘁𝘆 & 𝗥𝗼𝗹𝗹𝗯𝗮𝗰𝗸: Every change is a committed version in Git, making auditing easier and rollbacks as simple as reverting a commit. 𝗦𝗲𝗰𝘂𝗿𝗶𝘁𝘆: Clusters only need read access to the repo, avoiding the need for CI tools to hold sensitive cluster credentials. GitOps is the future of declarative infrastructure and Kubernetes management! 𝗪𝗵𝗮𝘁 𝗮𝗿𝗲 𝘆𝗼𝘂𝗿 𝗳𝗮𝘃𝗼𝗿𝗶𝘁𝗲 𝗚𝗶𝘁𝗢𝗽𝘀 𝘁𝗼𝗼𝗹𝘀? 𝗟𝗲𝘁 𝗺𝗲 𝗸𝗻𝗼𝘄 𝗶𝗻 𝘁𝗵𝗲 𝗰𝗼𝗺𝗺𝗲𝗻𝘁𝘀! 👇 #DevOps #GitOps #CI/CD #Kubernetes #CloudNative #ContinuousDeployment
To view or add a comment, sign in
-
-
🚀 Day 31 of #100DaysOfDevOps – Git Stash Today’s focus was on mastering Git Stash, a powerful feature for managing in-progress work without losing context. The Nautilus development team had previously stashed some unfinished changes in their repository located at /usr/src/kodekloudrepos/news. My task: restore the stashed changes identified as stash@{1} and push them to the remote repository. Steps followed: Checked all stashes using git stash list Applied the required stash with git stash apply stash@{1} Verified the recovered file welcome.txt Committed the change with the message “Added stash 1” Pushed the update to the origin branch Key takeaway: Git Stash acts as a temporary workspace buffer, allowing developers to context-switch effortlessly without losing progress — an essential skill in real-world DevOps environments. "Efficiency is doing things right; effectiveness is doing the right things." – Peter Drucker #Git #DevOps #GitCommands #VersionControl #DevOpsJourney #100DaysOfDevOps #LearningInPublic #CloudOps #ContinuousIntegration #SoftwareDevelopment #GitTips
To view or add a comment, sign in
-
-
🎓 Excited to share my latest project in my DevOps journey at Senior Academy - Professional Training, in partnership with Education For Employment-Egypt! One of the biggest bottlenecks in CI/CD is static Jenkins agents—they're either sitting idle (costing money) or struggling under peak load (slowing builds). My solution? I built a fully automated CI/CD pipeline for a 3-tier app (Nginx, Go, MySQL) using Dynamic Jenkins Agents on Kubernetes. Jenkins now launches a new, ephemeral agent pod for each build and automatically destroys it afterward. The results are immediate: • ⚡ Zero idle compute • 🧩 Fully isolated build environments • 💰 Optimized resource usage • 🔄 True automatic scaling The agent pod acts as a "toolbox," spinning up sidecar containers for: • Docker-in-Docker (DinD) to build and push new images. • Helm to deploy the entire application stack. While the auto-scaling is a huge win, the most critical challenge was configuring Kubernetes RBAC correctly. I had to give the agent's Service Account precise permissions to: • Manage resources (Deployments, Services, Secrets) inside the dev namespace (using a Role and RoleBinding). • Manage 𝗣𝗲𝗿𝘀𝗶𝘀𝘁𝗲𝗻𝘁𝗩𝗼𝗹𝘂𝗺𝗲𝘀 at the cluster level (using a ClusterRole and ClusterRoleBinding). This secure foundation allows the pipeline to seamlessly build, push, and deploy the entire application, passing the build number directly into the Helm chart for perfect versioning. 🔗 Check out the complete Jenkinsfile, Helm chart, and all the RBAC YAML files here: https://lnkd.in/dfaYEPWh A huge thank you to my mentors, Abdelrahman Ahmed and Gamal Mohammad, for their continuous guidance and support! #DevOps #Jenkins #Kubernetes #Docker #Helm #CICD #Automation #GitOps #3Tier #Scalability #Cloud #RBAC
To view or add a comment, sign in
-
-
💡 Jenkins + CI/CD — My DevOps Adventure 😄 Ever wondered how developers push code and boom! it’s tested and deployed automatically? 🚀 That’s the magic of Jenkins — the superhero of automation in DevOps 🦸♂️ Recently, I got my hands dirty with Jenkins and learned: ⚙️Setup on AWS EC2 (port 8080 gang 😅) 🔁 CI/CD — build, test, deploy… repeat automatically! 🔌 Power of plugins (Git, Maven, WildFly — like adding superpowers 🧩) 🤖 GitHub & GitLab triggers — no more manual builds! 🔥 WildFly deployment through Jenkins pipeline 💼 📬 Bonus: Email alerts when builds fail (Jenkins tattles instantly 😂) 🧠 Added parameterized builds — choose version, branch, or environment dynamically 💻 Integrated shell scripts in pipeline for automation and server checks 📦 Configured artifact management — build once, deploy anywhere ⚡ Set up master-agent configuration for distributed builds and better performance 📊 Monitored build history, logs, and trends to analyze success rates If you’re starting in DevOps — Jenkins is a must-learn tool! It really teaches what “automation” means 💪 Stay tuned — more tech adventures coming soon! #DevOps #Jenkins #WildFly #CICD #Automation #LearningByDoing #AWS #ShellScripting #TechFun
To view or add a comment, sign in
-
-
🚀 “Every great DevOps Engineer starts with one command — git init.” 💻 When I began my DevOps journey, I thought it was all about 🐳 Docker, ⚙️ Jenkins, and ☸️ Kubernetes... But the real game-changer wasn’t a container or a CI tool — it was 💥 GIT. Git taught me that: 💡 Version control isn’t just about saving code — it’s about saving progress. 🤝 Collaboration isn’t chaos — it’s branching done right. 🛡️ Recovery isn’t luck — it’s knowing when to revert and stash. Once I mastered Git, everything else in DevOps started clicking ✨ ✅ CI/CD pipelines became smoother ✅ Team collaborations got faster ✅ My confidence skyrocketed 🚀 So here’s my advice to every aspiring DevOps Engineer 👇 👉 Before diving into 🧱 Kubernetes or ☁️ Terraform, master Git like your career depends on it. Because honestly — it does 😉 Connect for more exciting content 🔗 https://lnkd.in/dvPrnG_Z #DevOps #Git #VersionControl #Automation #GitHub #Learning #CareerGrowth #DevOpsJourney #Coding #Terraform #AWS
To view or add a comment, sign in
-
🧩 𝗖𝗜/𝗖𝗗 𝗗𝗲𝗯𝘂𝗴𝗴𝗶𝗻𝗴 𝗜𝗻𝘀𝗶𝗴𝗵𝘁: 𝗟𝗲𝘀𝘀𝗼𝗻𝘀 𝗟𝗲𝗮𝗿𝗻𝗲𝗱 𝘄𝗶𝘁𝗵 𝗚𝗶𝘁𝗛𝘂𝗯 𝗔𝗰𝘁𝗶𝗼𝗻𝘀 & 𝗗𝗼𝗰𝗸𝗲𝗿 Today, I ran into an interesting issue while refining a CI/CD pipeline one that builds, pushes, and tests Docker images. I usually use self hosted agents but this time I tried github hosted ones... Everything looked fine until the testing stage… where the pipeline suddenly failed while trying to pull the image it had just built. 🤔 After some deep debugging, the reason became clear: 👉 Docker login is required in every job when using GitHub-hosted runners. Here’s why it happens: 🔹 𝗘𝗽𝗵𝗲𝗺𝗲𝗿𝗮𝗹 𝗿𝘂𝗻𝗻𝗲𝗿𝘀: Each GitHub Actions job runs in a completely fresh virtual environment. 🔹 𝗡𝗼 𝗺𝗲𝗺𝗼𝗿𝘆 𝗯𝗲𝘁𝘄𝗲𝗲𝗻 𝗷𝗼𝗯𝘀: Credentials, environment variables, or logins from a previous job don’t persist. 🔹 𝗥𝗲𝘀𝘂𝗹𝘁: Even if your build job successfully pushes an image, a later job trying to pull it will fail unless it authenticates again. ✅ 𝗞𝗲𝘆 𝘁𝗮𝗸𝗲𝗮𝘄𝗮𝘆: Always include a docker login step in every job that interacts with a container registry. It’s a small addition, but it ensures consistent authentication and prevents hours of unnecessary debugging. 💡 Debugging CI/CD issues often teaches the most practical lessons especially when working with ephemeral, cloud-hosted runners. #DevOps #CICD #GitHubActions #Docker #Containerization #CloudNative #Automation #ContinuousIntegration #ContinuousDelivery #SoftwareEngineering #PlatformEngineering #BuildPipelines #Kubernetes #InfrastructureAsCode #Debugging #LearningInPublic #TechInsights #DeveloperExperience #DevOpsCulture #Containers #GitOps #CloudComputing #Microservices #EngineeringBestPractices
To view or add a comment, sign in
More from this author
Explore related topics
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development