분류 전체보기 367

마이크로서비스와 애자일 개발 프로세스

중 4장. 마이크로서비스와 애자일 개발 프로세스를 읽고 정리한 글입니다 마이크로서비스를 구현하기 위한 필요조건 팀 구성: 기술별로 팀이 분리되는 것이 아니라(UI팀, 서버개발팀, DB팀) 업무 기능을 중심으로 기술이 다양한 사람들이 하나의 팀(BE개발자, 기획자, 디자이너, FE개발자, 테스터)(Cross-Function Team)이 되어 서비스를 만들어나간다. 문화: 자율적인 업무 기능 중심 팀과 자율적인 개발 문화가 필요. 관리체계: Cross-Function Team이 개발과 운영을 책임진다. (You built it. You run it). 각 마이크로서비스를 맡은 Cross-Function Team이 그 서비스에 맞는 최적의 언어와 저장소를 자율적으로 선택한다. 빠르게 서비스를 만드는 것을 최우..

[Docker, AWS] Docker log를 AWS Cloudwatch에서 보기

EC2에서 docker를 실행시키는 경우 container의 log가 EC2 자체에 저장된다. 즉, container의 로그는 /var/lib/docker/containers/[contianer ID]/container-cached.log 에 모이게 되는데, 이렇게 되면 instance에 직접 들어가서 docker logs [container ID] 로 확인하거나 저 파일에 들어가서 로그를 하나하나 확인해야 한다. 그래서 효율적인 로그 관리를 위해서는 container의 log를 cloudwatch로 실시간 export 하는 과정이 필요하다. 그리고 추가적으로 Cloudwatch에는 Log groups이 있고 그 안에 Log Streams이 있고 각 stream안에 log들이 모이게 되는데 이 때 Log..

Dev/DevOps, Infra 2021.10.22

211021) docker-compose --exit-code-from

name: ML application unittest on: push: branches: [test] jobs: test: runs-on: [self-hosted, gpu] steps: - uses: actions/checkout@v2 - name: ML inference code Unittest run: docker-compose -f docker-compose-unittest.yml up 이런 github actions workflow script가 있다고 하자. 그런데 docker-compose 을 통해 실행된 unittest가 실패해서 FAILED (errors=1) [container] exited with code 1 으로 실행이 종료되어도 docker-compose가 정상적으로 작동하였다면 ..

211012) 하던 작업 임시 저장 및 적용 git stash, 원격 저장소와 local저장소의 소스코드를 일치 git fetch, git reset

하던 작업을 임시로 저장해두고 나중에 그대로 적용시키고 싶을 때가 있다. 예를 들면 A branch에서 신나게 작업을하고 있는데 알고보니 B branch에서 해야했던 작업일 경우 또는 하던 작업을 멈추고 잠시 브랜치를 바꿔야하는데 작업 중인 것이라 commit을 할 만한 것은 아닐 때 최근 이런 경우가 생겨 git stash를 사용해 보았다. git stash git stash apply [Git] git stash 명령어 사용하기 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io git stash (feat. 내가 왜 마스터 브랜치에 있지) 개인적으로 프로젝트를 하다 보면, 브랜치를 생성하지 않은 채로 (그러니까 실..

211014) Docker multi-stage build

https://www.hahwul.com/2020/10/07/docker-multistage-build-for-optimazation/ Docker multi-stage build를 통해 이미지 경량화하기 Why? 보통 베이스가 되는 도커 이미지는 생각보다 큰 용량을 가지고 있습니다. 거기에 의존성으로 추가적인 도구를 설치하고, 빌드하게 되면 생각보다 엄청 큰 용량으로 탄생합니다. 이런 경우에 www.hahwul.com https://docs.docker.com/develop/develop-images/multistage-build/ Use multi-stage builds docs.docker.com

211013) 리눅스 터미널 환경에서 다른 서버와 파일 복사/받기

[SCP] 리눅스 터미널 환경에서 다른서버와 파일 복사 리눅스 작업을 하다보면 의외로(?) 다른 리눅스 서버와 파일을 복사 할 경우가 생긴다. 여러 방법 들이 있을 수 있겠지만... SCP(Secure CoPy)를 사용하면 편리하다. 사용법은 대략 아래와 같다. 다른 noota.tistory.com # from 다른 서버 to 내 서버 $ scp [옵션] [다른 서버 계정]@[다른 서버 주소]:[다른 서버의 파일 또는 디렉터리] [지금 서버의 디렉터리] # from 내 서버 to 다른 서버 $ scp [옵션] [지금 서버의 파일 또는 디렉터리] [다른 서버 계정]@[다른 서버 주소]:[다른 서버의 디렉터리] 리눅스 scp 사용법 - 제타위키 다음 문자열 포함... zetawiki.com

[Github, CI/CD] Github Actions self hosted runner with own GPUs

Github Actions self hosted runner with own GPUs Github Actions는 Gtihub을 기반으로 하는 CI/CD, 여러 개발 Workflow 자동화 툴이다. 그런데 사용하다 보면 Github Actions workflow를 Github-hosted runner에서만 실행시키는데 한계가 있는 경우가 있다. A GitHub-hosted runner is a virtual machine hosted by GitHub with the GitHub Actions runner application installed. 구체적으로 어떤 경우가 있을 수 있는지 'ML application을 위한 Workflow를 Github Actions로 실행하고자 할 때'를 예시로 살펴보자면..

Dev/DevOps, Infra 2021.10.10

재택근무와 신뢰

https://now.rememberapp.co.kr/2021/07/25/13835/ 직원을 감시하려 하지 마세요 코로나가 없던 시절이나 지금이나 원격 관리는 특히 경영진들에게 매우 까다로운 방식으로 여겨졌습니다. 까다롭게 만드는 가장 큰 요인은 '감시 비용'입니다. 경영을 할 때는 직원들을 감시하 now.rememberapp.co.kr 감시를 할 필요가 없는 조직을 만들고자하는 접근이 필요 '내가 지켜보지 않으면 분명히 농땡이 피울 사람들을 관리한다'는 마인드를 버려야한다. 현업의 목소리와 연구들은'관리'가 아닌 '신뢰'로 움직이는 조직이 되어야 한다는 메세지를 던지고 있음. 근거는 있는가? => 실제로 조직 내 구성원간 신뢰의 수준이 높을 때 감시 비용이 현저히 줄어들고 심지어 재무적 성과까지 늘어난..