阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!

介紹

隨著組織認識到簡化開發、自動化和持續交付的價值,對 DevOps 技能的需求激增。對於有抱負且經驗豐富的 DevOps 工程師來說,實務經驗對於掌握複雜且動態的 DevOps 世界至關重要。從事現實世界的專案是發展和展示這些技能的最佳方式。

本指南提供了50 個 DevOps 專案想法,從初級到高級,涵蓋了 DevOps 的所有基本面向。無論您是剛開始還是想要升級,這些專案都涵蓋關鍵的 DevOps 領域,包括:

  • 自動化:簡化重複性任務以提高效率並減少人為錯誤。

  • CI/CD 管道:實現持續整合和交付,這是 DevOps 的基石。

  • 容器化和編排:使用 Docker 和 Kubernetes 大規模部署和管理應用程式。

  • 監控和日誌記錄:即時追蹤應用程式效能和故障排除。

  • 雲端部署和基礎架構即程式碼:在 AWS、Azure 和 Google Cloud 等雲端平台上建置可擴展、靈活的基礎架構。

  • 安全性和合規性:將安全實踐直接整合到 DevOps 管道中,也稱為 DevSecOps。

本文中的每個專案創意旨在幫助您建立一個展示您的知識和實踐專業知識的作品集。閱讀本指南後,您將具備應對現實環境中各種 DevOps 挑戰的知識和技能。


初級專案

  1. 用於自動化的簡單 Bash 腳本
  • 建立一組 Bash 腳本來自動執行常見的管理任務,例如清理日誌檔案、備份重要資料或更新系統。這個專案將幫助您學習基本的腳本概念、條件、循環以及如何有效地使用 shell 命令。
  1. 使用 GitHub Actions 的基本 CI/CD 管道
  • 使用 GitHub Actions 自動測試和部署簡單的程式碼庫。設定工作流程,以便在程式碼推送到儲存庫時自動執行測試,並在測試成功後部署到測試環境。這將向您介紹 CI/CD 管道基礎知識。
  1. 使用 Docker 部署靜態網站
  • 建立一個簡單的 HTML/CSS 網站,將其打包到 Docker 容器中,並在本機伺服器上執行。該專案教授 Dockerfile 建立、映像建置和執行 Docker 容器的基礎知識。
  1. 設定基本系統監控
  • 安裝和設定基本監控工具(如tophtopuptimedf來追蹤系統指標(如 CPU 負載、記憶體使用量和磁碟空間)。了解根據這些指標設定警報,以便在資源使用量超過特定閾值時收到通知。
  1. 自動化軟體包安裝
  • 編寫一個腳本,在新的 Linux 伺服器上安裝必要的套件(如 Git、Node.js、Docker)。該專案將教您套件管理命令並幫助您標準化多台電腦上的伺服器環境。
  1. 使用 Git 進行版本控制
  • 練習 Git 的基本知識,包括複製儲存庫、提交、建立分支、合併分支和解決衝突。在小型專案中使用 Git 進行版本控制,為協作軟體開發打下堅實的基礎。
  1. 使用 Ansible 進行簡單的伺服器配置
  • 編寫基本的 Ansible 劇本來設定新伺服器。任務可能包括安裝 Web 伺服器、建立使用者和設定權限。此專案向您介紹基礎架構即程式碼 (IaC) 概念和 Ansible 的聲明性語法。
  1. 自動日誌輪轉
  • 使用logrotate或自訂腳本設定日誌輪替以歸檔和刪除舊日誌檔案。這有助於確保日誌不會消耗太多磁碟空間,從而有助於維護伺服器的健康狀況。
  1. 基礎架構即程式碼 (IaC) 的 Terraform 簡介
  • 使用 Terraform 建立一個簡單的設定文件,以在 AWS 或 Azure 等雲端供應商中配置虛擬機器。本專案將向您介紹 Terraform 的 HCL(HashiCorp 配置語言)和雲端基礎設施配置的基礎知識。
  1. 使用 Cron 作業監控網站正常運作時間
- Write a script that pings a website and sends an alert email if it becomes unreachable. Use a cron job to run this script at regular intervals. This project teaches basic monitoring and alerting using shell scripting and cron scheduling.

中級專案

  1. 使用 Jenkins 的容器化 CI/CD 管道
- Set up a Jenkins server with a pipeline that uses Docker to containerize builds, run tests, and deploy to a test environment. This project helps you learn Jenkins' pipeline-as-code approach and using Docker within a CI/CD context.
  1. 使用 Terraform 將 Web 應用程式部署到 AWS
- Use Terraform to provision AWS resources (EC2 instances, security groups, load balancers) and deploy a simple web application. This project helps deepen your Terraform skills and exposes you to AWS resource management.
  1. 使用 Shell 腳本自動執行資料庫備份
- Write a script that backs up a database (e.g., MySQL) daily, compresses the backup, and stores it securely (e.g., on AWS S3). Automate this with a cron job. This project is a great way to learn database management, shell scripting, and cloud storage basics.
  1. 使用 Minikube 進行基本 Kubernetes 叢集設置
- Set up a local Kubernetes cluster using Minikube and deploy a simple application to it. This project introduces Kubernetes concepts like pods, services, and deployments in a local environment before using managed clusters.
  1. 使用 ELK Stack 進行集中日誌管理
- Set up Elasticsearch, Logstash, and Kibana (ELK Stack) to collect, analyze, and visualize logs from multiple applications or servers. Learn to configure Logstash to parse logs, send them to Elasticsearch, and create Kibana dashboards.
  1. 使用 Docker 和 Kubernetes 實現微服務的 CI/CD 管道
- Create a CI/CD pipeline that builds, tests, and deploys microservices in Docker containers to a Kubernetes cluster. This project introduces the complexity of managing multiple services in a CI/CD workflow and deploying to Kubernetes.
  1. 使用 Puppet 進行伺服器設定管理
- Use Puppet to write manifests and configure servers automatically. Automate tasks like installing packages, configuring services, and managing users, which will introduce you to configuration management in a DevOps setting.
  1. 使用 Nagios 進行網路監控
- Install and configure Nagios to monitor network health and send alerts if any issues arise. Set up monitoring for key resources like CPU usage, memory, disk space, and network availability.
  1. 使用 SonarQube 進行自動程式碼品質檢查
- Integrate SonarQube with a CI/CD pipeline to automatically analyze code quality and generate reports. This helps maintain code quality standards and highlights potential issues before deployment.
  1. 使用 Ansible 和 Terraform 自動化基礎架構配置
- Combine Terraform for infrastructure provisioning and Ansible for configuration management to automate the setup of an environment in the cloud. This project demonstrates the power of combining IaC tools in complex setups.

進階專案

  1. 使用 Jenkins、Docker 和 Kubernetes 建立完整的 DevOps 管道
- Build a full CI/CD pipeline using Jenkins, Docker, and Kubernetes to deploy a complex, multi-container application. This project involves managing integration points between each tool and implementing a fully automated deployment.
  1. 多雲上的 Terraform 基礎架構即程式碼
- Use Terraform to manage resources across multiple cloud providers (AWS, Azure, GCP). This project teaches you multi-cloud resource management and helps develop expertise in Terraform's provider system.
  1. 使用 OpenVAS 或 Clair 進行自動安全審核
- Set up OpenVAS or Clair to scan Docker containers and infrastructure for vulnerabilities, creating automated security scans in your CI/CD pipeline to ensure code and deployments meet security standards.
  1. 使用 Jaeger 和 Prometheus 進行分散式追蹤
- Set up Jaeger and Prometheus to trace distributed microservices applications, allowing you to monitor and analyze inter-service communication and latency across different services in real time.
  1. 自動化災難復原計劃
- Design a disaster recovery solution by automating regular backups and configuring automated failover mechanisms for critical services. This project will deepen your understanding of high availability and redundancy.
  1. 在 AWS Lambda 上建置無伺服器 CI/CD 管道
- Use AWS Lambda to build a serverless CI/CD pipeline. Implement functions to test, build, and deploy code, leveraging Lambda for a fully serverless and cost-efficient pipeline.
  1. 雲端成本優化自動化
- Write scripts or use tools to automatically monitor cloud resource usage and optimize costs by identifying unused or underutilized resources and rightsizing instances.
  1. DevSecOps 的自動化合規性審計
- Set up automated compliance checks to ensure infrastructure meets security and compliance standards (e.g., CIS benchmarks), integrating audits into your CI/CD pipeline for DevSecOps practices.
  1. Kubernetes 的藍綠部署策略
- Implement a blue-green deployment strategy in a Kubernetes environment to ensure zero downtime during deployments. Use Kubernetes services and deployment configurations to switch traffic between versions.
  1. 使用 Inspec 或 Terratest 進行基礎設施測試
- Use Inspec or Terratest to validate that infrastructure is configured correctly and meets compliance requirements, integrating these tests into your pipeline to catch misconfigurations early.
  1. 使用 Helm 進行多環境設定管理
  • 使用 Helm 圖表來管理 Kubernetes 中跨多個環境(例如,開發、登台、生產)的應用程式配置。該專案涉及建立可重複使用的 Helm 範本以及學習如何使用 Helm 值檔案將應用程式部署到不同的環境。
  1. 在 Kubernetes 中實作金絲雀版本
  • 在 Kubernetes 中設定金絲雀發布策略,逐步推出新功能。設定流量分割機制(使用 Istio 或 NGINX Ingress Controller 等工具)來控制流向新版本的流量,從而實現更安全的增量部署。
  1. 使用 Let's Encrypt 進行自動化憑證管理
  • 使用 Let's Encrypt 和 Certbot 設定自動化系統來頒發、續約和管理 SSL/TLS 憑證,或使用 Cert-Manager 在 Kubernetes 中整合自動化憑證管理。該計畫的重點是透過最少的手動幹預來增強安全性。
  1. 跨地域多雲容災
  • 使用多個雲端供應商(例如AWS和Azure)為關鍵應用程式設計跨區域災難復原解決方案,以確保高可用性。配置區域之間的故障轉移並建立資料同步計劃以實現無縫恢復。
  1. 使用 ArgoCD 的 GitOps 工作流程
  • 使用 ArgoCD 實作 GitOps 實務來管理 Kubernetes 部署。透過這種方法,所有配置變更都透過 Git,ArgoCD 處理與叢集的自動同步,提供宣告式、版本控制的部署方法。
  1. 使用 Terraform 和 Ansible 設定 Kubernetes 集群
  • 使用 Terraform 在雲端提供者(例如 AWS EKS、Google GKE)上配置 Kubernetes 集群,並使用 Ansible 對其進行配置。此專案教您使用多工具 IaC,重點是管理生產級 Kubernetes 環境。
  1. 使用 Prometheus 和 Grafana 進行基礎設施監控
  • 設定 Prometheus 和 Grafana 來監控您的基礎架構、追蹤應用程式效能和視覺化指標。為關鍵指標建立自訂 Grafana 儀表板,並設定 Prometheus 警報規則以進行主動問題管理。
  1. 使用 Istio 實施服務網格
  • 將 Istio 部署為 Kubernetes 叢集中的服務網格,以管理微服務通訊、安全性和可觀察性。此專案提供 Kubernetes 中服務之間的高階網路和流量管理的實務經驗。
  1. 在 Kubernetes 中實現零停機部署
  • 使用滾動更新、藍綠部署或金絲雀發佈在 Kubernetes 中設計零停機部署策略。了解如何避免服務中斷並確保部署期間的平穩過渡。
  1. 使用 Fluentd 和 Elasticsearch 進行 Kubernetes 日誌記錄
  • 設定 Fluentd 從 Kubernetes Pod 收集日誌並將其傳送至 Elasticsearch 進行儲存和分析。使用 Kibana 視覺化和搜尋日誌,幫助您解決問題並監控應用程式行為。
  1. 在 CI/CD 管道中使用 JMeter 進行自動化性能測試
  • 將 Apache JMeter 與 CI/CD 管道集成,以自動執行應用程式的效能測試。該專案教您如何設定自動負載測試來監控應用程式回應能力並確保它可以處理預期的流量水平。
  1. 使用 HashiCorp Vault 進行秘密管理
  • 配置 HashiCorp Vault 以安全儲存和存取敏感資訊(例如 API 金鑰、資料庫密碼)。了解如何將 Vault 與應用程式集成,並以安全且可擴展的方式自動檢索機密。
  1. 使用 Kafka 和 ELK Stack 進行即時監控的資料管道
  • 使用 Apache Kafka 建立即時資料管道,將日誌或指標串流傳輸到 ELK(Elasticsearch、Logstash、Kibana)堆疊。此專案示範如何建立可擴展、高吞吐量的管道以進行監控和日誌記錄。
  1. 使用 Terraform 和 Checkov 進行基礎設施安全掃描
  • 使用靜態程式碼分析工具 Checkov 掃描 Terraform IaC 配置是否有安全漏洞。此專案將安全性檢查整合到您的 IaC 工作流程中,可協助您辨識錯誤配置並執行合規性標準。
  1. Kubernetes 中失敗部署的自動回滾
  • 在 Kubernetes 中設定自動回滾,以便在部署失敗時還原到先前的版本。了解如何使用 Kubernetes 部署策略和 CI/CD 整合來自動偵測和修正問題。
  1. Chef 的持續配置自動化
  • 使用 Chef 編寫和執行組態管理程式碼,以自動化跨多個伺服器的基礎架構配置。自動執行軟體安裝、使用者管理和伺服器配置等任務,以確保一致性。
  1. 使用 Gremlin 或 Chaos Monkey 進行混沌工程
  • 使用 Gremlin 或 Chaos Monkey 等工具實施混沌工程實踐,在系統中引入受控故障。該專案將教您透過模擬現實世界的故障場景來設計能夠抵禦意外中斷的系統。
  1. 使用 AWS Config 和 Security Hub 進行自動合規性審核
  • 使用 AWS Config 和 Security Hub 自動檢查您的 AWS 環境是否符合標準(例如 CIS 基准或 HIPAA)並應對潛在的安全風險。
  1. 使用 OpenTelemetry 進行分散式應用程式監控
  • 設定 OpenTelemetry 以從分散式應用程式收集追蹤、日誌和指標。此專案可協助您了解如何在複雜的微服務架構中實現可觀察性,並提供對系統行為和效能的洞察。
  1. 使用 Jenkins 和 Terraform 的多雲 CI/CD 管道
  • 使用 Jenkins 和 Terraform 設計 CI/CD 管道,可以將應用程式部署到多個雲端環境(例如 AWS、Azure)。此專案可協助您培養多雲部署技能,並了解跨供應商管理基礎架構的複雜性。

結論

這 50 個 DevOps 專案想法涵蓋從自動化和 CI/CD 基礎到複雜的多雲基礎設施和進階 SRE 實踐。完成這些專案可以增強您的 DevOps 技能,為您應對現實世界的挑戰做好準備,並建立在競爭激烈的科技產業中脫穎而出的產品組合。從初學者課程開始,隨著您獲得信心和熟練程度,逐漸提升到高級水平。快樂編碼,快樂自動化!

👤 作者

橫幅

加入我們的Telegram 社群||在 GitHub 上關注我以獲取更多 DevOps 內容!


原文出處:https://dev.to/prodevopsguytech/50-devops-project-ideas-to-build-your-skills-from-beginner-to-advanced-3e07


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!