[DevOps] DevOpsμ λꡬμ κΈ°μ μ€ν

DevOpsλ₯Ό μ΄ν΄νκ³ μ€μ²νκΈ° μν΄μλ λ€μν λꡬμ κΈ°μ μ€νμ μ νμ©νλ κ²μ΄ μ€μν©λλ€.
DevOpsμμ μμ£Ό μ¬μ©λλ μ£Όμ λꡬλ€μ μ΄ν΄λ³΄κ³ , κ°κ°μ λκ΅¬κ° μ΄λ€ μν μ νλ©°, μ΄λ»κ² μ¬μ©λλμ§μ λν΄ μμμ ν¨κ» μ€λͺ νκ² μ΅λλ€.
1. Jenkins: μ§μμ μΈ ν΅ν©/λ°°ν¬μ μμ§

Jenkinsλ 무μμΈκ°μ?
Jenkinsλ μννΈμ¨μ΄ κ°λ° κ³Όμ μμ μ½λμ λ³κ²½ μ¬νμ μ§μμ μΌλ‘ ν΅ν©(CI)νκ³ λ°°ν¬(CD)νλ μμ μ μλνν΄ μ£Όλ λꡬμ λλ€. κ°λ°μκ° μ½λλ₯Ό μμ νκ³ μ΄λ₯Ό μμ€ μ½λ μ μ₯μ(Git λ±)μ νΈμνλ©΄, Jenkinsκ° μλμΌλ‘ μ½λλ₯Ό λΉλνκ³ , ν μ€νΈλ₯Ό μ€ννλ©°, λ¬Έμ κ° μλ€λ©΄ μλ‘μ΄ λ²μ μ μννΈμ¨μ΄λ₯Ό λ°°ν¬ν μ μκ² ν΄μ€λλ€.
μμ
μλ₯Ό λ€μ΄, μ¬λ¬ λͺ μ κ°λ°μκ° νμ νμ¬ μ ν리μΌμ΄μ μ κ°λ°νκ³ μλ€κ³ μμν΄ λ΄ μλ€. κ° κ°λ°μλ μμ μ μμ μ λ§μΉ λλ§λ€ Gitμ μ½λλ₯Ό νΈμν©λλ€. Jenkinsλ μ£ΌκΈ°μ μΌλ‘ λλ μ½λκ° νΈμλ λλ§λ€ μ΄λ₯Ό κ°μ§νμ¬ μλμΌλ‘ λΉλλ₯Ό μμν©λλ€. λ§μ½ λΉλ κ³Όμ μμ λ¬Έμ κ° λ°μνλ©΄ Jenkinsλ ν΄λΉ λ¬Έμ λ₯Ό κ°λ°μμκ² μ¦μ μλ¦¬κ³ , λ¬Έμ κ° μλ€λ©΄ μλ‘μ΄ μ ν리μΌμ΄μ λ²μ μ λ°°ν¬ν©λλ€. μ΄λ κ² μλνλ νλ‘μΈμ€ λλΆμ κ°λ°μλ μ½λ νμ§μ μ§μμ μΌλ‘ μ μ§ν μ μκ³ , λ°°ν¬ κ³Όμ μμ λ°μν μ μλ μ€μλ₯Ό μ΅μνν μ μμ΅λλ€.
μ μ€μνκ°μ?
- μμμ μΌλ‘ μ§ννλ λΉλ, ν μ€νΈ, λ°°ν¬ κ³Όμ μ μλννμ¬ κ°λ° μλμ νμ§μ ν₯μμν΅λλ€.
- μ½λ λ³κ²½ μ¬νμ΄ λ°λ‘ μ μ©λμ΄, λΉ λ₯΄κ² νΌλλ°±μ λ°μ μ μμ΅λλ€.
2. Docker: 컨ν μ΄λμ ν

Dockerλ 무μμΈκ°μ?
Dockerλ μ ν리μΌμ΄μ κ³Ό κ·Έ μ€ν νκ²½μ 컨ν μ΄λλΌλ λ 립μ μΈ λ¨μλ‘ ν¨ν€μ§ν΄μ£Όλ λꡬμ λλ€. 컨ν μ΄λλ μΌμ’ μ κ°λ²Όμ΄ κ°μν κΈ°μ λ‘, μ ν리μΌμ΄μ μ΄ μ€νλλ λ° νμν λͺ¨λ κ²μ νλμ ν¨ν€μ§λ‘ λ¬Άμ΄ λ€λ₯Έ μμ€ν μμλ λμΌνκ² μ€νλ μ μκ² ν΄μ€λλ€.
μμ
μλ₯Ό λ€μ΄, μ¬λ¬λΆμ΄ μΉ μ ν리μΌμ΄μ μ κ°λ°νκ³ μλ€κ³ ν©μλ€. μ΄ μ ν리μΌμ΄μ μ΄ νΉμ λ²μ μ λΌμ΄λΈλ¬λ¦¬λ λꡬμ μμ‘΄νκ³ μλ€λ©΄, μ΄ λͺ¨λ κ²μ μ€μ νλ λ° λ§μ μκ°μ΄ 걸릴 μ μμ΅λλ€. νμ§λ§ Dockerλ₯Ό μ¬μ©νλ©΄, κ°λ° νκ²½μμ μ€μ ν λͺ¨λ μμλ₯Ό 컨ν μ΄λμ λ΄μ μ΄μ νκ²½μμλ λκ°μ΄ μ€νν μ μμ΅λλ€. μ΄λ κ² νλ©΄ "λ΄ μ»΄ν¨ν°μμλ μ μλνλλ° μ μλ²μμλ μ λ κΉ?"λΌλ λ¬Έμ λ₯Ό νΌν μ μμ΅λλ€.
μ μ€μνκ°μ?
- κ°λ° νκ²½κ³Ό μ΄μ νκ²½μ μΌκ΄λκ² μ μ§ν μ μμ΅λλ€.
- μ ν리μΌμ΄μ λ°°ν¬κ° κ°νΈν΄μ§κ³ , νμ₯μ±μ΄ ν₯μλ©λλ€.
3. Kubernetes: 컨ν μ΄λ μ€μΌμ€νΈλ μ΄μ

Kubernetesλ 무μμΈκ°μ?
Kubernetes(μΏ λ²λ€ν°μ€)λ Dockerμ κ°μ 컨ν μ΄λλ₯Ό λκ·λͺ¨λ‘ κ΄λ¦¬νκ³ μ‘°μ νλ λꡬμ λλ€. μ¬λ¬ κ°μ 컨ν μ΄λλ₯Ό λ°°ν¬νκ³ , μ΄λ€μ μνλ₯Ό κ΄λ¦¬νλ©°, μλμΌλ‘ μ€μΌμΌλ§νκ±°λ 볡ꡬνλ λ±μ κΈ°λ₯μ μ 곡ν©λλ€.
μμ
μΉμ¬μ΄νΈκ° μΈκΈ°κ° λ§μμ Έ κ°μκΈ° λ§μ νΈλν½μ΄ λͺ°λ¦°λ€κ³ κ°μ ν΄ λ΄ μλ€. Kubernetesλ μλμΌλ‘ μΆκ° 컨ν μ΄λλ₯Ό μμ±νμ¬ νΈλν½μ μ²λ¦¬ν μ μλλ‘ νμ₯ν©λλ€. λ°λλ‘, νΈλν½μ΄ μ€μ΄λ€λ©΄ λΆνμν 컨ν μ΄λλ₯Ό μλμΌλ‘ μ κ±°νμ¬ λ¦¬μμ€λ₯Ό ν¨μ¨μ μΌλ‘ μ¬μ©ν©λλ€. μ΄λ κ² Kubernetesλ μμ€ν μ΄ νμ μμ μ μ΄κ³ μ΅μ μ μνλ‘ μ΄μλλλ‘ λμμ€λλ€.
μ μ€μνκ°μ?
- λκ·λͺ¨μ 컨ν μ΄λ κΈ°λ° μ ν리μΌμ΄μ μ ν¨κ³Όμ μΌλ‘ κ΄λ¦¬ν μ μμ΅λλ€.
- μμ€ν μ κ°μ©μ±κ³Ό μμ μ±μ 보μ₯ν©λλ€.
4. Ansible: κ΅¬μ± κ΄λ¦¬μ λ§λ²μ¬

Ansibleμ΄λ 무μμΈκ°μ?
Ansibleμ μλ²λ λ€νΈμν¬ μ₯λΉ λ±μ μ€μ μ μ½λλ‘ μ μνκ³ μλννλ λꡬμ λλ€.
Ansibleμ μ¬μ©νλ©΄ μλ² μ€μ , μ ν리μΌμ΄μ λ°°ν¬, λ€νΈμν¬ μ€μ λ±μ μΌκ΄λκ² κ΄λ¦¬ν μ μμ΅λλ€.
μμ
μ¬λ¬ λμ μλ²μ λμΌν μ€μ μ μ μ©ν΄μΌ νλ μν©μ μμν΄ λ³΄μΈμ. μμμ μΌλ‘ λͺ¨λ μλ²μ μ€μ μ μ μ©νλ €λ©΄ μκ°μ΄ λ§μ΄ κ±Έλ¦¬κ³ , μ€μλ λ°μνκΈ° μ½μ΅λλ€. Ansibleμ μ¬μ©νλ©΄ ν λ²μ λͺ¨λ μλ²μ λμΌν μ€μ μ μ μ©ν μ μμΌλ©°, μ΄ κ³Όμ μ΄ μλνλλ―λ‘ μ€μλ₯Ό μ€μΌ μ μμ΅λλ€. μλ₯Ό λ€μ΄, Ansible νλ μ΄λΆμ μμ±νμ¬ μλ²μ λ°©νλ²½ κ·μΉμ μ€μ νκ³ , μ ν리μΌμ΄μ μ μ€μΉνλ©°, μλΉμ€λ₯Ό μμνλ μμ μ μλνν μ μμ΅λλ€.
μ μ€μνκ°μ?
- λ°λ³΅μ μΈ μμ μ μλννμ¬ μκ°κ³Ό λ Έλ ₯μ μ μ½ν μ μμ΅λλ€.
- μλ² νκ²½μ μΌκ΄λκ² μ μ§νμ¬ μ€λ₯λ₯Ό μ€μΌ μ μμ΅λλ€.
5. Terraform: μΈνλΌλ₯Ό μ½λλ‘

Terraformμ΄λ 무μμΈκ°μ?
Terraformμ ν΄λΌμ°λ μΈνλΌλ₯Ό μ½λλ‘ κ΄λ¦¬νλ λꡬλ‘, μλ², λ€νΈμν¬, λ°μ΄ν°λ² μ΄μ€ λ±μ μ½λλ‘ μ μνκ³ μλμΌλ‘ λ°°ν¬ν μ μκ² ν΄μ€λλ€. μ΄λ₯Ό ν΅ν΄ μΈνλΌ μ€μ μ λ²μ κ΄λ¦¬νκ³ , νμμ λ°λΌ μ½κ² μ¬λ°°ν¬ν μ μμ΅λλ€.
μμ
AWS(Amazon Web Services)μμ μ¬λ¬ κ°μ μλ²μ λ°μ΄ν°λ² μ΄μ€, λ€νΈμν¬ μ€μ μ κ΄λ¦¬νλ€κ³ κ°μ ν΄ λ΄ μλ€. Terraformμ μ¬μ©νλ©΄ μ΄ λͺ¨λ μ€μ μ μ½λλ‘ μ μνκ³ , λ¨ ν λ²μ λͺ λ ΉμΌλ‘ λͺ¨λ 리μμ€λ₯Ό μμ±ν μ μμ΅λλ€. λν, μΈνλΌμ λ³κ²½ μ¬νμ΄ μκΈΈ κ²½μ° μ½λλ§ μμ νλ©΄ μλμΌλ‘ μ μ©ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, μλ‘μ΄ μλ² μΈμ€ν΄μ€λ₯Ό μΆκ°νκ±°λ, κΈ°μ‘΄ μΈμ€ν΄μ€μ ν¬κΈ°λ₯Ό μ‘°μ νλ μμ μ΄ Terraformμ ν΅ν΄ λ§€μ° κ°νΈνκ² μ΄λ£¨μ΄μ§λλ€.
μ μ€μνκ°μ?
- μΈνλΌλ₯Ό μ½λλ‘ κ΄λ¦¬νμ¬ λ³κ²½ μ¬νμ μ½κ² μΆμ νκ³ λ³΅κ΅¬ν μ μμ΅λλ€.
- λ€μν ν΄λΌμ°λ νλ«νΌμ μ§μνμ¬ μ μ°ν μΈνλΌ κ΄λ¦¬λ₯Ό κ°λ₯νκ² ν©λλ€.
6. Prometheus & Grafana: λͺ¨λν°λ§κ³Ό μκ°ν

Prometheusμ Grafanaλ 무μμΈκ°μ?
Prometheusλ μμ€ν μ μνλ₯Ό λͺ¨λν°λ§νκ³ , Grafanaλ μ΄λ¬ν λͺ¨λν°λ§ λ°μ΄ν°λ₯Ό μκ°νν΄μ£Όλ λꡬμ λλ€. Prometheusλ λ€μν μμ€ν λ©νΈλ¦μ μμ§νμ¬ λ¬Έμ κ° λ°μνμ λ κ²½κ³ λ₯Ό 보λ΄μ£Όλ©°, Grafanaλ μ΄ λ°μ΄ν°λ₯Ό λμ보λ ννλ‘ λ³΄μ¬μ€λλ€.
μμ
μλ₯Ό λ€μ΄, μΉ μλ²μ CPU μ¬μ©λμ΄λ λ©λͺ¨λ¦¬ μ¬μ©λμ λͺ¨λν°λ§νλ€κ³ κ°μ ν΄ λ΄ μλ€. Prometheusλ μ£ΌκΈ°μ μΌλ‘ μ΄λ¬ν λ°μ΄ν°λ₯Ό μμ§νκ³ , νΉμ μκ³κ°μ μ΄κ³Όν κ²½μ° κ²½κ³ λ₯Ό 보λ΄μ€λλ€. Grafanaλ μ΄λ¬ν λ°μ΄ν°λ₯Ό μκ°μ μΌλ‘ νννμ¬, νλμ μμ€ν μ μνλ₯Ό νμ ν μ μκ² ν΄μ€λλ€. μλ₯Ό λ€μ΄, CPU μ¬μ©λμ΄ κΈμ¦νλ μμ μ μ½κ² μμ차릴 μ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ μ±λ₯ μ΄μλ₯Ό μ¬μ μ μλ°©ν μ μμ΅λλ€.
μ μ€μνκ°μ?
- μμ€ν μ μ±λ₯κ³Ό μνλ₯Ό μ€μκ°μΌλ‘ λͺ¨λν°λ§νμ¬ λ¬Έμ λ₯Ό μ¬μ μ κ°μ§ν μ μμ΅λλ€.
- λ°μ΄ν°λ₯Ό μκ°ννμ¬ μ΄μμμκ² λͺ νν μ 보λ₯Ό μ 곡ν©λλ€.
λ§λ¬΄λ¦¬
DevOpsμ μ±κ³΅μ μ μ ν λꡬλ₯Ό μ ννκ³ νμ©νλ λ° λ¬λ € μμ΅λλ€.
Jenkins, Docker, Kubernetes, Ansible, Terraform, Prometheus, Grafana λ± λ€μν λꡬλ€μ μ΄ν΄νκ³ μ¬μ©ν μ μλ€λ©΄, κ°λ°κ³Ό μ΄μμ λμ± ν¨μ¨μ μΌλ‘ μνν μ μμ΅λλ€. μμΌλ‘μ λΈλ‘κ·Έ ν¬μ€νΈμμλ μ΄λ€ λꡬλ₯Ό μ§μ μ€μΉνκ³ μ¬μ©νλ λ°©λ²μ λ¨κ³λ³λ‘ μ€λͺ ν μμ μ λλ€.
μ΄κΈμ΄ νμ¬μμ DevOps μμ§λμ΄λ‘ μμνλ μ μ μ¬λ¬λΆμ DevOpsμ λν 첫걸μμ λ΄λλ λ° λμμ΄ λμκΈ°λ₯Ό λ°λλλ€.