본문으로 바로가기

terraform101.inflearn.devopsart.dev/

 

Terraform & AWS 101 :: Terraform & AWS 101

Terraform & AWS 101 본 자료는 인프런 강의(DevOps : Infrastructure as Code with Terraform and AWS)의 강의자료입니다. 본 자료에 대한 상세한 설명은 강의에서 확인하실 수 있습니다. 강의 소개 이 강의는 DevOps의

terraform101.inflearn.devopsart.dev

 

DevOps는 무엇인가

 

-- 이전에 정리한 내용

 

DevOps란 개발조직과 운영조직의 벽을 최소화하자는 개념입니다. 그러니까 커뮤니티 사이트를 운영한다면 개발진과 운영진이 분리 되겠죠. 서비스를 운영하고 이슈가 발생하면 운영진은 개발진에게 보고를 하거나, 개발진이 운영진에게 보고를 할 것입니다. (이슈를 어느 단에서 해결하는 것이 적절할 것인지에 따라 다르겠죠)

 

그런데 운영조직과 개발조직 사이에는 벽(Silo)가 있습니다. 사용하는 언어도 다르고, 서비스 규모가 큰 경우 이슈를 구체화하는 데에도 어려움을 겪을 수 있습니다.이러한 장벽은 비즈니스를 신축적으로 확장하는 데에 병목현상을 일으키기도 합니다.

 

따라서 비즈니스의 요구에 적시에 대처하고 지속적인 개선을 위해서는 Dev와 Ops의 차이를 줄이고 가급적 통합할 필요가 있습니다. (그러나 소규모 서비스에서 개발자가 운영까지 한다면 뭐... Dev 자체가 Ops니까 상관은 없습니다.)

 

DevOps가 이렇듯 추상적인 개념이라면 DevOps를 달성하기 위한 방법으로 CI(Continuous Integration-지속통합)와 CD(Continuous Deployment-지속배포)가 있습니다. 요구한대로 개발하고 곧바로 올려서 운영팀이 확인하고, 서비스에 반영할 수 있도록 만들어 격차를 줄이는 것이죠.

 

 

-- 최근에 정리한 내용

 

개발(Development)과 운영(Operations)의 합성어이다.
그러나 현재 데브옵스는 단순한 개발과 운영의 통합을 말하지 않음. 단순 CI/CD 세팅이 다가 아님.
개발과 운영의 경계를 허물고 통합한다는 '문화' 혹은 '철학'에 가까움.

어떤 요구사항을 효율적으로 만족시키기 위하여 일을 자동화하며, 변경사항 지표들을 측정하고 공유하고
이 모든 결과물들을 지속적으로 축적해 나아가는 문화를 만들어가는 철학, 방법론

 

  • 문화(Culture) - 사람, 서비스, S/W 라이프 싸이클
  • 자동화(Automation) - 프로그래밍, 자동화 툴, 네트워크 등
  • 측정(Measurement) - 테스트 및 데이터를 통한 추론
  • 공유(Sharing) - 어떤 문제를 최단 시간의 해결하는 방법.
  • 축적(File up and Pile up) - 재반복할 수 있는 이 문제에서 정확하게 회고하고, 축적해 나가는 것.

 

 

CI(Continuous Integration-지속통합)와 CD(Continuous Deployment-지속배포)

 

"CI"는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미합니다. CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있습니다. 그러니까 git을 통해서 코드의 버전을 관리하고 merge하는 그런 작업이라고 할 수 있겠습니다.

 

지속적인 배포(또 다른 의미의 "CD": Continuous Deployment)란 개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 것을 의미합니다. 그러니까 젠킨스나 Circle CI, Travis CI를 이용해서 github에 푸쉬한 코드를 자동으로 배포하는 것입니다.

 

 

참고한 글)

 

https://www.redhat.com/ko/topics/devops/what-is-ci-cd

 

CI/CD(지속적 통합/지속적 제공): 개념, 방법, 장점, 구현 과정

CI/CD는 애플리케이션의 통합 및 테스트부터 제공 및 배포까지 전체 라이프사이클에서 지속적인 자동화와 모니터링을 제공합니다. 개념, 차이점, 학습방법(인강)을 보세요.

www.redhat.com

 

 

IaC는 왜 해야 하는가?

 

코드로서의 장점을 가지기 때문. 작성이 용이하고 재사용이 가능하며 유지 보수가 쉬워진다.

도입이 늦어지지도 않는다. console에서 직접 인프라를 세팅하는 것보다 훨씬 빠르다. IaC를 인지한 순간이 도입해야 하는 시점이다.

 

hashicorp 사의 terraform이 주로 사용된다.

www.terraform.io/

 

Terraform by HashiCorp

Terraform is an open-source infrastructure as code software tool that enables you to safely and predictably create, change, and improve infrastructure.

www.terraform.io

 

모든 조직이 DevOps를 해야 하는 것은 아니다.

 

brunch.co.kr/@fits-b/2#comment

 

데브옵스(DevOps)를 하지 말아야 할 기업이 있다

디지털 트랜스포메이션에 대하여- 2 | 저번 애자일 관련 글에 이어서, 이번 글에서는 또 하나의 핫이슈인 데브옵스(DevOps)의 개념을 간단하게 알아보고, 기업에서 적용할 때 고려해야 할 부분을 

brunch.co.kr

 

 

DevOps 로드맵

roadmap.sh/devops

 

1. Learn a Programming Lang

언어는 Go와 Python을 추천함. 그러나 언어를 편식하지 말고 이것저것 다 해보자. 사실 언어는 하나 잘 하면 다른 언어에 대한 이해도가 높아진다. 

 

2. Understand different OS Concepts

OS에 대한 이해도가 매우 중요. Process, Threads, Socket, TCP/IP, 7-Layers, Monitering, File System...

커널 깊숙히 까지 알 필요는 없지만 가장 근간이 되는 부분이기 때문에 매우 잘 알아둬야 한다. 

Service Managment를 위한 systemd를 잘 알아두는 것도 중요하다.

 

 

3. Learn about Managing Server

그림을 보면 알 수 있지만 가장 넓은 부분을 차지하고 있다.

- 다양한 OS들(SUSE Linux, Debian, Fedora...)

- 네트워크 http, https, ssl/tls, ftp...

- Intrastructur 툴들, Reverse Proxy, Forward Proxy, Caching server, Load balancer, firewall 등에 대한 이해가 필요하고

당연히 툴들을 구체적으로 구현하기 위한 nginx와 같은 웹서버를 익히는 것이 중요하다. (요새는 apache보다 nginx를 많이 쓰죠). java면 tomcat을 많이 쓴다.

 

4. Learn IaC

- 컨테이너 기술인 Docker

- 컨테이너 오케스트레이션을 위한 k8s. 쿠버네티스가 사실상 평정.

- 그리고 이들을 관리하고 프로비젼하기 위한 terraform이 많이 사용된다.

- configuration 관리는 Ansible이 거의 평정을 했다.

- Immutable Intrastucture 개념을 이해하자.

 

5. CI/CD

원하는 걸 사용하면 된다. 뭘 써도 능숙하게 사용하면 된다. 

 

6. Monitoring

로그 관리는 ELK가 사실상 통일.

application monitering 재거나 뉴렐릭이 자주 사용됨.

infrastructur monitering은 프로메테우스와 그라파나가 평정. 상용 솔루션 중에서는 Datadog가 좋아서 한국 기업에서도 많이 사용중

 

7. 퍼블릭 클라우드

AWS가 많이 쓰고는 있지만 제일 중요한 건 회사가 사용하고 있는 것이다.

더 나아가 클라우드 디자인 패턴을 익히자.

 

 

 

 

DevSecOps는 또 무엇인가

 

 

[NBP기술&경험]DevSecOps란 무엇인가? 커밋부터 디플로이까지 안전하게!

네이버 클라우드 플랫폼 DevSecOps를 소개합니다.

medium.com

 


darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체