본문 바로가기

Work/Conference15

HashCorp 밋업 - 데브시스터즈 Valut 사용기 데브시스터즈에서 사용하는 HashiCorp 제품테라폼PackerValut기존 시스템의 문제점초기에는 모든 팀원이 공용비밀번호와 공용 SSH Key 발급 받아 사용퇴사자 발생 시 Key Rotate관리해야할 패스워드가 점점 많아져서 기억하기가 어려워짐패스워드가 필요한 환경이 많다보니 키교체의 일부 자동화는 가능하지만 완벽한 자동화가 어려움Valut를 통한 SSHValut는 SSH 기본 제공 인증서 기반믿을 수 있는 Secret StoreFlow클라이언트가 SSH Pulbic Key를 통해 Valut CA에 인증 요청Valut는 클라이언트에게 접근 허용을 하고 Expire 시간을 지정발급 받은 public key로 서버에 접근서버는 authorized_keys와 대조하여 접근 허용서버 셋업Valut 명령으로.. 2018. 8. 15.
HashoCorp 밋업 - 레거시 위에서 재현 가능한 환경 구축하기 발표자migrammer선데이토즈기존 개발환경IDC로 운영 중5년정도 운영하다보니 각 서버에안에 어떻게 구성되어 있는지 알 수 없는 상태가 됨서버마다 환경이 다름로컬 디버깅의 어려움망 분리로 인해 원격 디버깅 불가능사내 Vagrant Box도 시간이 지남에 따라 제대로 동작을 안함환경 정의가 코드로 되어 있었으면 좋겠다는 생각다중 테스트 서버의 필요성환경 구성이 번거로워서 한대의 서버로 다중 테스트를 진행서버를 찍어 낼 수 있는 무언가가 필요함버그 발생 시 환경 재현의 어려움Dump 만으로는 버그 발견이 어려움동일 환경을 찍어낼 수 있는 무언가가 필요함AWS로 인프라 이전 진행HashiCorp 사용HashCorp로컬 서버 프로비저닝Vagrant다중 머신 구동 지원다중 머신 구동 시 실행 순서에 주의새로운 .. 2018. 8. 15.
HashiCorp 밋업 - 당근마켓에서 Packer와 Vagrant 사용기 발표자nackot당근마켓Packer커스텀 이미지 빌드 도구Base 이미지를 기반으로 타겟 어플리케이션에 필요한 구성을 프로비저닝 완료한 이미지 생성기존에는 만들어진 이미지를 실행시키고 수정 후 다시 이미지로 생성해서 사용하는 것이 혁신적이었음이미지 빌드 과정을 재현할 수 없기 때문에 자동화가 어려움이미지 빌드/삭제를 손수 해야함이미지가 계속 쌓이기만 하고 지울 수 없는 상태가 됨패커의 핵심 도구빌더 / 프로비저너의 조합으로 구성됨빌더 : 특정 플랫폼의 이미지를 만드는 플러그인프로비저너 : 프로비저닝을 수행하는 플러그인실제 Packer가 하는 것은 아니고 쉘 스크립트나, 쉐프, 앤서블과 같은 도구로 프로비저닝AWS뿐만아니라 docker, virtual box 이미지 빌드까지 일관된 방식(빌더와 프로비저너의.. 2018. 8. 15.
Golang 밋업 - Bazel 소개와 카카오 게임즈 사례 Bazel for GoBazel빌드를 도와주는 시스템다양한 언어 빌드 지원다양한 하드웨어 플랫폼, 크로스 컴파일 지원구글에서 내부 빌드툴로 사용 중오픈 소스에서는 일부 기능만 오픈빌드 명세를 정확히 작성해 주어야 동작함의존되는 라이브러리 모두 명시해야함Skylark 룰 기반python과 유사한 스크립트 언어Bazel을 빌드하기 위한 언어로 사용됨참고 : https://docs.bazel.build/versions/master/skylark/language.html빌드를 코드로 관리Docker Image 빌드 제공Bazel 사용의 장점빠르고 정확한 빌드병렬화병렬화를 위해 빌드 명세가 필요각 소스코드 파일마다 필요한 라이브러리를 알기 때문에 병렬이 가능멀티 머신 기능은 아직 작업 중캐싱필요한 부분만 다시 빌.. 2018. 8. 14.