CS

[오픈소스 컨트리뷰션 아카데미] Git 활용 및 DevOps / MLOps

광화문 마이크로소프트에서 첫 오프라인 모임을 가졌다.

사실 DevOps에 대해서 하나도 모르고 있었는데

회사에서 차세대 때문에 이것저것 도입하면서 배포 방식이 바뀌는 걸 지켜보며 알아둬야겠다는 생각이 들었다.

보안이 철저해서 소심하게.. 한컷

DevOps는 Development + Operation를 합친 말이지만 그보단 더 큰 의미를 가지고 있다.

일단 일차적으로 개발팀과 운영자의 커뮤니케이션 격차를 해소한다.

지금 회사는 개발팀과 운영팀이 나누어져있다. 운영팀에서도 개발을 안하지는 않지만, 개발팀은 운영에 전혀 개입하지 않는다.

개발팀에서 짧게는 한달 길게는 두세달에 가까운 시간 동안 개발한 내용을 운영팀에서는 파악할 시간이 부족하고 커뮤니케이션의 오류가 많이 생겨버린다. 그래서 더 리스키하기 때문에 운영팀은 항상 날카롭고, 방어적인 태도를 갖출 수 밖에 없게 된다. 내가 보기에는 굉장히 비효율적인 구조이다. 

어떻게하면 사람-프로세스-제품 간의 격차를 줄여가며 사용자에게 빠르게 가치를 제공해줄 수 있을까가 DevOps에서 고민하는 지점!

멘토님께서 이 표가 제일 중요하다고 하셨다!

그래서 나름대로 이 표를 좀 이해해보려고 노력해봤다. 추가로 틈틈히 메꿔나가야겠지만... 그래도 큰 틀을 알고 가니까 편ㅡ안.

 

1번은 로컬 개발 과정인데 https://d2.naver.com/helloworld/7861046

해당 링크와 같이 로컬에서도 클러스터를 사용하여 테스트하고 디버깅해볼 수 있다.

2번은 원격 저장소와 소스 동기화 과정

3번은 빌드와 배포 과정인데 특히 코드가 잘못된 부분을 사람이 직접 말해주는 것이 아니라 코드 품질을 지키기 위해서 시스템으로 유지되는 방향이다.

-> 추가로 개인적으로 깃액션 강의를 학습했다! 정말 이해가 잘 되게 쏙쏙 잘 가르쳐주신다

3번 빌드까지는 CI(Continuous Integration) 이후부턴 CD(Continuous Deployment)로 보면 되지 않을까 싶다.

CD는 느린 배포주기와 반복작업을 자동화하는 등 배포를 빠르고 안정적이게 가능하게 하는 방법이다.

4번은 특히 한 번쯤은 들어봤던  Infrastructure as Code 와도 연관된 내용이고

5번의 경우에는 관련된 내용을 꼽자면 또한 쿠버네티스 뿐만 아니라 ACI와 같은 컨테이너에서 2개 이상의 타겟으로 배포한다거나, 블루그린 배포, 카나리 테스트 배포 등 여러 배포 시나리오를 구현하는 내용이 여기 해당할 수 있겠다.

다음 포스팅은 맛보기로 해본 https://github.com/Azure/mlops-v2/blob/main/README.md 찍먹 후기로 땅땅