<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/tags/devops/best-of/2025/01" -->

---
title: Best DevOps posts — January 2025 | daily.dev
description: The most upvoted DevOps posts from January 2025, curated by the daily.dev community.
canonical: https://daily.dev/tags/devops/best-of/2025/01
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/tags/devops/best-of/2025/01
og:type: website
og:site_name: daily.dev
og:title: Best DevOps posts — January 2025 | daily.dev
og:description: The most upvoted DevOps posts from January 2025, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of DevOps — January 2025

1. 1  
[](/posts/system-design-cheatsheet-for-interview-teul0ryab "System Design CheatSheet for Interview")  
Article  
![Avatar of javarevisited](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/9ca6532654d146408235d53f0823a26d)Javarevisited · 2y  
System Design CheatSheet for Interview  
This post provides a comprehensive cheatsheet of essential system design concepts commonly covered in interviews. Topics include REST API, networking, OAuth & JWT, cookies vs sessions, CI/CD workflows, Kafka, various databases, system testing, Git, Docker, Kubernetes, design patterns, logging, load balancing, and more. It's aimed at helping readers quickly revise these concepts before an interview.

1.2K  
19
2. 2  
[](/posts/a-docker-tutorial-for-dummies-4gmvtd5n7 "A Docker Tutorial For Dummies")  
Video  
![Avatar of thecodingsloth](https://media.daily.dev/image/upload/s--xF5NuN79--/f_auto/v1712314515/logos/thecodingsloth)The Coding Sloth · 2y  
A Docker Tutorial For Dummies  
Docker is a widely-used tool that simplifies the process of developing, deploying, and running applications within lightweight containers. It helps developers avoid compatibility issues by packaging code and its dependencies together. This tutorial provides a step-by-step guide to getting started with Docker, covering the basics of images and containers, setting up Docker on your development environment, writing Dockerfiles, and managing multi-container applications with Docker Compose.  
589  
11
3. 3  
[](/posts/learn-to-use-github-actions-a-step-by-step-guide-nngbpzafo "Learn to Use GitHub Actions: a Step-by-Step Guide")  
Article  
![Avatar of freecodecamp](https://media.daily.dev/image/upload/t_logo,f_auto/v1628412854/logos/freecodecamp)freeCodeCamp · 2y  
Learn to Use GitHub Actions: a Step-by-Step Guide  
GitHub Actions allows developers to automate, build, test, and deploy their applications directly from GitHub. This guide provides step-by-step instructions for creating GitHub Actions using either the GitHub UI or locally via an IDE. It covers key concepts like workflows, events, jobs, and runners, and includes examples for setting up Node.js, Deno environments, zipping files, and deploying static websites to GitHub Pages.  
517  
9
4. 4  
[](/posts/essential-cli-tui-tools-for-developers-w5lsqee8c "Essential CLI/TUI Tools for Developers")  
Article  
![Avatar of itnext](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/itnext2)ITNEXT · 2y  
Essential CLI/TUI Tools for Developers  
Discover a categorized list of essential CLI/TUI tools that can boost developer productivity and make terminal usage more enjoyable. The post covers tools for managing Kubernetes clusters, container metrics, file and text operations, Git commands, development tasks, and networking. Each tool is briefly described with its main features and use cases.  
433  
9
5. 5  
[](/posts/mastering-docker-and-jenkins-build-robust-ci-cd-pipelines-efficiently-b3kvhipze "Mastering Docker and Jenkins: Build Robust CI/CD Pipelines Efficiently")  
Article  
![Avatar of docker](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/8a1022bebfc04a7d824c309bd3686787)Docker · 2y  
Mastering Docker and Jenkins: Build Robust CI/CD Pipelines Efficiently  
Learn how combining Docker and Jenkins can enhance CI/CD pipelines, ensuring consistent environments and faster deployments. The guide covers setup essentials, pipeline configuration, using plugins, optimizing pipelines, and troubleshooting. Key benefits include uniformity from development to production, scalability, and reduced errors.  
329  
5
6. 6  
[](/posts/dockerfiles-for-absolute-beginners-a3me3vvmi "Dockerfiles for absolute beginners")  
Video  
![Avatar of flydotio](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/deb71e3b6f964388876ecc82c26c8f6c)Fly.io · 2y  
Dockerfiles for absolute beginners  
Containerized apps are common, but Dockerfile complexity can intimidate newcomers. This guide breaks down Dockerfile basics, including instructions, layers, and multi-stage builds. You can generate Dockerfiles using tools like fly.io and npm packages to simplify the process.  
257  
1
7. 7  
[](/posts/this-one-tool-forever-changed-how-i-use-docker-rhfscejct "This one tool forever changed how I use Docker")  
Video  
![Avatar of typecraft](https://media.daily.dev/image/upload/s--iVakgkBx--/f_auto/v1728807219/logos/typecraft)typecraft · 2y  
This one tool forever changed how I use Docker  
Managing Docker containers and images can be simplified with a tool called lazy Docker. Created by Jesse Duffield, it offers a terminal UI that helps users perform Docker commands with ease. This tool allows you to manage containers, images, volumes, and networks through a clean and efficient terminal interface. Instructions for installation on different operating systems, such as Mac, Windows, and others, are provided. It’s useful for those who often forget Docker commands or prefer working within the terminal.  
232  
3
8. 8  
[](/posts/python-for-devops-nvkix0rzh "Python for DevOps")  
Article  
![Avatar of pulumi](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/9792c211dccf434c8b469efac5b7b2ec)Pulumi · 2y  
Python for DevOps  
Python is highly versatile for both quick fixes and long-term infrastructure in DevOps. It excels at building custom solutions and automating tasks using libraries like Django, Flask, Prometheus, Schedule, and Airflow. Additionally, Python supports network analysis with Scapy, security scanning with Bandit, container management with Docker SDK, and infrastructure as code with Pulumi. Combining these tools allows the efficient creation of dashboards, automations, and complex deployments from a single language.  
217  
4
9. 9  
[](/posts/how-to-containerize-a-node-js-application-using-docker-a-beginner-s-guide-babzmclp6 "How to Containerize a Node.js Application Using Docker – A Beginner's Guide")  
Article  
![Avatar of freecodecamp](https://media.daily.dev/image/upload/t_logo,f_auto/v1628412854/logos/freecodecamp)freeCodeCamp · 2y  
How to Containerize a Node.js Application Using Docker – A Beginner's Guide  
Learn how to containerize a Node.js application using Docker with this step-by-step guide. The tutorial covers the basics of Docker, key terms, and commands, providing a hands-on demo project to containerize a simple Node.js-based backend service. Instructions on creating a Dockerfile, setting up Docker, and running your application inside a container are included, along with benefits and best practices of using Docker.  
180
10. 10  
[](/posts/end-to-end-data-engineering-kdtec3ugx "End to End Data Engineering")  
Article  
![Avatar of detlife](https://media.daily.dev/image/upload/s--8lmPEq7G--/f_auto/v1725038518/logos/detlife)Data Engineer Things · 2y  
End to End Data Engineering  
This post details the tools, technologies, and concepts essential for data engineering, emphasizing different paths for success based on roles and backgrounds. It highlights the importance of both analytics and infrastructure sides and mentions popular tools like Airflow and Snowflake. The significance of software engineering principles and specific data engineering roles is also discussed.  
161  
1
11. 11  
[](/posts/how-to-secure-typescript-applications--uwo2nn0gi "How to Secure TypeScript Applications...??")  
Article  
![Avatar of devto](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/devto)DEV · 2y  
How to Secure TypeScript Applications...??  
Developing secure TypeScript applications involves more than just leveraging the language's type system; it requires comprehensive strategies that address code vulnerabilities, runtime safeguards, and secure deployment practices. Key practices include setting strict compiler options, validating inputs, preventing common vulnerabilities like XSS and SQL injection, ensuring type-safe APIs, auditing dependencies, and configuring proper security measures during deployment and monitoring.  
125
12. 12  
[](/posts/a-look-inside-docker-its-working--olehoyelc "A Look Inside Docker & Its working.")  
Article  
![Avatar of devto](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/devto)DEV · 2y  
A Look Inside Docker & Its working.  
Docker is a tool to run containers and build images, providing a CLI and API for container management. Containers are isolated entities that include applications and their dependencies. Docker images define container contents and operation. The Docker CLI translates commands into API requests for the Docker daemon, which manages container and image operations via ContainerD and runc. Key Linux features, Namespaces and C-Groups, provide process isolation and resource allocation within containers.  
116
13. 13  
[](/posts/kubernetes-best-practices-i-wish-i-had-known-before-fvkn22nnd "Kubernetes Best Practices I Wish I Had Known Before")  
Article  
![Avatar of pulumi](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/9792c211dccf434c8b469efac5b7b2ec)Pulumi · 2y  
Kubernetes Best Practices I Wish I Had Known Before  
Kubernetes has revolutionized the building, shipping, and running of applications, but adopting best practices can save time, money, and headaches. Key recommendations include setting resource requests and limits, using namespaces for organization, avoiding multi-container pods unless necessary, using package managers for YAML files, implementing ingress and networking best practices, and setting up proper monitoring and security measures. Additionally, it's important to automate deployments with CI/CD, keep the cluster updated, and use labels and annotations wisely. Adopting a multi-environment approach, optimizing container images, and following a reliable logging strategy further enhance efficiency and reliability.  
113  
1
14. 14  
[](/posts/stop-using-docker-use-open-source-instead-6iv8loqn8 "Stop Using Docker. Use Open Source Instead")  
Video  
![Avatar of youtube](https://media.daily.dev/image/upload/s--W5zMumpP--/f_auto/v1725350181/logos/youtube)YouTube · 2y  
Stop Using Docker. Use Open Source Instead  
The post discusses the transition from using Docker to alternatives like Podman for container management, highlighting Podman's benefits such as being open-source, free for commercial use, faster, safer, and less resource-intensive. It emphasizes that Podman complies with the Open Container Initiative (OCI) standards, making it a true drop-in replacement for Docker. The post also shows how Podman integrates with Kubernetes and other tools for a seamless workflow.  
94  
6
15. 16  
[](/posts/the-devops-certifications-tech-companies-want-maquqcsif "The devops certifications tech companies want")  
Article  
![Avatar of infoworld](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/bf6d68a999064029b0bb09aa6268f1f3)InfoWorld · 2y  
The devops certifications tech companies want  
Devops certifications are highly valued by tech companies and can significantly impact career advancement and salary for both early-career professionals and those transitioning into devops roles. The global devops market is projected to grow substantially, increasing the demand for certified professionals. Certifications such as AWS Certified Devops Engineer, Certified Kubernetes Administrator, and Microsoft Certified Azure Devops Engineer are popular and demonstrate expertise in key tools and methodologies. While practical experience is crucial, certifications validate skills and commitment to continuous learning, making candidates more attractive to employers.  
77  
3
16. 17  
[](/posts/test-your-database-without-mocks-8pvs8q2sq "Test Your Database Without Mocks")  
Article  
![Avatar of neontech](https://media.daily.dev/image/upload/s--65EDghou--/f_auto/v1724339118/logos/neontech)Neon · 2y  
Test Your Database Without Mocks  
Mocks for databases are often too brittle and complex to be useful, leading to unreliable tests and maintenance headaches. Instead of mocks, using database branching provides isolated, real-environment testing without the downsides of mock setups. Branching allows efficient and cost-effective testing by creating copies of databases that only differ when changes are made, offering a more realistic and reliable testing scenario.  
74  
1
17. 18  
[](/posts/goodbye-github-pages-hello-coolify-quakkels-com-ppydglyvm "Goodbye Github Pages, Hello Coolify · Quakkels.com")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Goodbye Github Pages, Hello Coolify · Quakkels.com  
Quakkels.com has moved from Github Pages to Coolify, an open-source PaaS that enables self-hosting applications, databases, and services without managing servers. The transition is driven by a desire for more independence from big tech. Coolify supports various applications like Laravel, Django, Nextjs, and more, automating deployments and notifications to minimize self-hosting complexities.  
71  
1
18. 19  
[](/posts/linuxserver-io-tpmmtnnq2 "LinuxServer.io")  
Article  
![Avatar of hn](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn)Hacker News · 2y  
LinuxServer.io  
Webtop provides Alpine, Ubuntu, Fedora, and Arch based containers with full desktop environments accessible via modern web browsers. It supports multiple architectures, various desktop environments, and allows configuration through environment variables. Security setups are crucial if exposed to the internet. GPU acceleration, language support, and application persistence are further features available. Updating, managing, and building these containers require specific steps and commands.  
69
19. 20  
[](/posts/aptakube-kubernetes-gui-brjvprkfd "Aptakube · Kubernetes GUI")  
Article  
![Avatar of community](https://media.daily.dev/image/upload/t_logo,f_auto/v1655817725/logos/community)Community Picks · 2y  
Aptakube · Kubernetes GUI  
Aptakube is a modern, lightweight Kubernetes GUI that enables users to view, compare, and manage workloads across multiple clusters simultaneously. It provides features such as an aggregated log viewer, resource diff, quick actions, port forwarding, and human-friendly resource views. Designed to work seamlessly with existing configurations, Aptakube offers enhanced usability and resource management without requiring additional setup on clusters.  
62  
4
20. 21  
[](/posts/nix---death-by-a-thousand-cuts-zgzooxjb7 "Nix - Death by a thousand cuts")  
Article  
![Avatar of hn](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn)Hacker News · 2y  
Nix - Death by a thousand cuts  
The author shares their experience of using NixOS, highlighting benefits like declarative configuration, easy service setup, and ephemeral shells. However, they discuss various drawbacks such as version upgrade complexities, community challenges, and high resource use. They conclude that while Nix offers significant advantages, especially for reproducible configurations, it requires a steep learning curve and ongoing maintenance that may not suit all users.  
60  
2
21. 22  
[](/posts/scaling-monoliths-a-practical-guide-for-growing-systems-1whmmjqgn "Scaling Monoliths: A Practical Guide for Growing Systems")  
Article  
![Avatar of milanjovanovic](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/78d8abfb692746538410dee47f93e566)Milan Jovanović · 2y  
Scaling Monoliths: A Practical Guide for Growing Systems  
Scaling monoliths can be achieved through various strategies such as vertical scaling, horizontal scaling, database scaling, caching, and using message queues. Vertical scaling involves adding more resources to a single machine, while horizontal scaling involves running multiple instances behind a load balancer. Database scaling can be done using read replicas, materialized views, and database sharding. Effective caching can reduce database load, and message queues can help manage traffic spikes by deferring heavy tasks. The key is to implement the right solution based on specific bottlenecks and system requirements.  
54  
2
22. 23  
[](/posts/getting-started-with-ci-cd-an-introductory-guide-to-github-actions-for-new-developers-qu0zfyczk "Getting Started with CI/CD: An Introductory Guide to GitHub Actions for New Developers")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium · 2y  
Getting Started with CI/CD: An Introductory Guide to GitHub Actions for New Developers  
Learn how to create CI/CD pipelines using GitHub Actions for automating code integration and deployment processes. The guide explains the basics of Continuous Integration (CI) and Continuous Deployment (CD), providing step-by-step instructions on writing workflows for a Node.js project with deployment to an AWS EC2 instance. It also covers Docker integration and managing secrets for secure operations.  
52
23. 24  
[](/posts/4-tiny-docker-images-for-lightweight-containers-yzyzkuhxq "4 tiny Docker images for lightweight containers")  
Article  
![Avatar of infoworld](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/bf6d68a999064029b0bb09aa6268f1f3)InfoWorld · 2y  
4 tiny Docker images for lightweight containers  
This post explores how small you can make a Docker image, focusing on four tiny but powerful base images: Alpine, BusyBox, Debian Slim, and Red Hat UBI Micro/Minimal. It discusses the advantages of lightweight containers, such as reduced attack surfaces, fewer dependencies, and faster build times. Additionally, it highlights a bonus repository by Jérôme Petazzoni, which offers experimental minimal Docker images for various tasks.  
51  
3
24. 25  
[](/posts/my-favorite-angular-setup-in-2025-obesntd7k "My favorite Angular Setup in 2025")  
Article  
![Avatar of devto](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/devto)DEV · 2y  
My favorite Angular Setup in 2025  
The post shares an opinionated guide on the most effective tools, libraries, and practices for Angular development in 2025\. It covers the adoption of Signals for reactivity, use of Angular CLI over Nx, combining Angular Material with Tailwind CSS for UI development, testing frameworks like Jasmine/Karma and Playwright, and code guidelines involving ESLint, Prettier, Husky, Lint-Staged, and Sheriff. Other topics include state management with SignalStore, the usage of 'inject' over constructors for dependency injection, and the advantages of zoneless mode and OnPush strategy for performance.  
51

[See all DevOps archives](/tags/devops/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/tags/devops/best-of/2025/01#page","url":"https://daily.dev/tags/devops/best-of/2025/01","name":"Best DevOps Posts — January 2025","description":"The most upvoted DevOps posts from January 2025, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/tags/devops/best-of/2025/01#items","numberOfItems":24,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/system-design-cheatsheet-for-interview-teul0ryab","name":"System Design CheatSheet for Interview"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/a-docker-tutorial-for-dummies-4gmvtd5n7","name":"A Docker Tutorial For Dummies"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/learn-to-use-github-actions-a-step-by-step-guide-nngbpzafo","name":"Learn to Use GitHub Actions: a Step-by-Step Guide"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/essential-cli-tui-tools-for-developers-w5lsqee8c","name":"Essential CLI/TUI Tools for Developers"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/mastering-docker-and-jenkins-build-robust-ci-cd-pipelines-efficiently-b3kvhipze","name":"Mastering Docker and Jenkins: Build Robust CI/CD Pipelines Efficiently"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/dockerfiles-for-absolute-beginners-a3me3vvmi","name":"Dockerfiles for absolute beginners"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/this-one-tool-forever-changed-how-i-use-docker-rhfscejct","name":"This one tool forever changed how I use Docker"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/python-for-devops-nvkix0rzh","name":"Python for DevOps"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/how-to-containerize-a-node-js-application-using-docker-a-beginner-s-guide-babzmclp6","name":"How to Containerize a Node.js Application Using Docker – A Beginner's Guide"},{"@type":"ListItem","position":10,"url":"https://daily.dev/posts/end-to-end-data-engineering-kdtec3ugx","name":"End to End Data Engineering"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/how-to-secure-typescript-applications--uwo2nn0gi","name":"How to Secure TypeScript Applications...??"},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/a-look-inside-docker-its-working--olehoyelc","name":"A Look Inside Docker & Its working."},{"@type":"ListItem","position":13,"url":"https://daily.dev/posts/kubernetes-best-practices-i-wish-i-had-known-before-fvkn22nnd","name":"Kubernetes Best Practices I Wish I Had Known Before"},{"@type":"ListItem","position":14,"url":"https://daily.dev/posts/stop-using-docker-use-open-source-instead-6iv8loqn8","name":"Stop Using Docker. Use Open Source Instead"},{"@type":"ListItem","position":16,"url":"https://daily.dev/posts/the-devops-certifications-tech-companies-want-maquqcsif","name":"The devops certifications tech companies want"},{"@type":"ListItem","position":17,"url":"https://daily.dev/posts/test-your-database-without-mocks-8pvs8q2sq","name":"Test Your Database Without Mocks"},{"@type":"ListItem","position":18,"url":"https://daily.dev/posts/goodbye-github-pages-hello-coolify-quakkels-com-ppydglyvm","name":"Goodbye Github Pages, Hello Coolify · Quakkels.com"},{"@type":"ListItem","position":19,"url":"https://daily.dev/posts/linuxserver-io-tpmmtnnq2","name":"LinuxServer.io"},{"@type":"ListItem","position":20,"url":"https://daily.dev/posts/aptakube-kubernetes-gui-brjvprkfd","name":"Aptakube · Kubernetes GUI"},{"@type":"ListItem","position":21,"url":"https://daily.dev/posts/nix---death-by-a-thousand-cuts-zgzooxjb7","name":"Nix - Death by a thousand cuts"},{"@type":"ListItem","position":22,"url":"https://daily.dev/posts/scaling-monoliths-a-practical-guide-for-growing-systems-1whmmjqgn","name":"Scaling Monoliths: A Practical Guide for Growing Systems"},{"@type":"ListItem","position":23,"url":"https://daily.dev/posts/getting-started-with-ci-cd-an-introductory-guide-to-github-actions-for-new-developers-qu0zfyczk","name":"Getting Started with CI/CD: An Introductory Guide to GitHub Actions for New Developers"},{"@type":"ListItem","position":24,"url":"https://daily.dev/posts/4-tiny-docker-images-for-lightweight-containers-yzyzkuhxq","name":"4 tiny Docker images for lightweight containers"},{"@type":"ListItem","position":25,"url":"https://daily.dev/posts/my-favorite-angular-setup-in-2025-obesntd7k","name":"My favorite Angular Setup in 2025"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Tags","item":"https://daily.dev/tags"},{"@type":"ListItem","position":3,"name":"DevOps","item":"https://daily.dev/tags/devops"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/tags/devops/best-of"},{"@type":"ListItem","position":5,"name":"January 2025"}]}]}
```

