1년 전 MongoDB 4.0 에서 복제셋(ReplicaSet) 내에서 트랜잭션을 지원하기 시작했습니다. MongoDB 4.2이에서는 해당기능을 샤딩(Sharding) 까지 확장했으며 이를 통해 MongoDB를 활용한 개발을 더욱 쉽게 만들었습니다. 스냅샷 격리(Snapshot Isolation), 쓰기에 대한 원자성 ( Write Atomicity ) 그리고 분산 커밋( Distributed Commit) 을 다룰 예정이며 , 분산 트랜잭션을 운영 업무에 적용하기 위해 필요한 모든 것을 배우게 될 것입니다.
1년 전 MongoDB 4.0 에서 복제셋(ReplicaSet) 내에서 트랜잭션을 지원하기 시작했습니다. MongoDB 4.2이에서는 해당기능을 샤딩(Sharding) 까지 확장했으며 이를 통해 MongoDB를 활용한 개발을 더욱 쉽게 만들었습니다. 스냅샷 격리(Snapshot Isolation), 쓰기에 대한 원자성 ( Write Atomicity ) 그리고 분산 커밋( Distributed Commit) 을 다룰 예정이며 , 분산 트랜잭션을 운영 업무에 적용하기 위해 필요한 모든 것을 배우게 될 것입니다.
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
It explains virtualization technology, KVM How-To, RHEV introduction for users and engineers.
KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). RHEV is based on KVM and includes Red Hat Subscription program. You can understand about virtualization in this document.
Enjoy.
빌드? 우선 사용부터 매뉴얼? Getting started 한 번 돌려보기 TV 리모컨 버튼 5개 전문가는 교육받아 만들어진다? 경험=시간+시행착오+성공실패 오픈소스 트러블슈팅 “메시지” 구글링 오픈소스 함부로 수정하지 마라 최신 버전을 대하는 우리의 자세 LTS로 대동단결 팀장 설득하기 오픈소스는 공짜가 아닙니다. 저도 기여하고 싶어요 2,000년 톰캣을 시작으로 Ant, Eclipse, JUnit, JMeter를 거쳐 현재 개발에 잘 사용하고 있는 Yona, Git, VSCode, Jenkins, CentOS, VirtualBox, Nginx, Node.js, Express.js, MariaDB, Uptime, Mocha, SonarQube, ZAP 이야기 등입니다.
https://www.youtube.com/watch?v=5LHOTBxG0hc
3. 해본것들 정리
• Hypervisor 형 1 Type (ex Xenserver, OpenStack, Vspear) 으로
host, guest 설치만
• Hypervisor 형 2 Type (ex kvm, qemu 등 오픈소스들) gui 환경
에서 host, guest 설치후 mysql 등 연결한 반면에 cli 환경에서
는 host 설치만
• Container 형 Docker 설치후 mysql 등 n개를 띄우고 연결
4. Hypervisor 형 1 Type
• 일반적인 OS 와 달리 1 Type 은 하이퍼바이저 기술을 지원해주
는 리눅스환경을 제공해줌으로써 2 Type 에 비해 상대적으로
오버헤드를 덜먹음
• 대부분이 유료소프트웨어이기때문에 무료로사용할경우 제약이
많음
• 초기 환경세팅등에 관한 레퍼런스가 많이 없음
5. Hypervisor 형 2 Type
• 일반적인 ubuntu, centOS 를 사용하여 그안에 emulation 을 통하여 가상머신을 관리함
• 다만 2 Type 형은 일반적인 OS 를 사용하고있기때문에 하나의 가상머신을 만들때마다
기가단위로 OS 설치할 용량이 필요함
• 오버헤드또한 3개중에서 가장 높다
• 우분투 16.04 이후로는 버그해결이 안됨(ubuntu 커뮤니티 참조)
• 가상머신들 관리, 외부인프라(네트워크, 스토리지)등과 연계, 전체인프라의 사용계획 반영
등 개인이 설정해야할부분이 매우 많아지기 떄문에 개인이 구현하는건 비용이 많이듦
• 사실상 위와 같은 문제점이 있기때문에 여러 회사들이 가상화 솔루션을 제공하고 있음
6. Docker
• 3개중에서 특이하게 프로세스 격리를 하여 가상화를 실현했기때문에 오버헤드 없음
• 가장 쉽게 개발 환경 세팅가능
• 여러개의 디비를 띄울순있지만 상용쪽에 디비를 운영하면서 생성되는 데이터파일들을 관리하기 애
매함. 사실상 도커로써의 장점이 디비에는 적용되지않음 ** 도커의 장점은 쉽게 올리고 쉽게 내리
는것이기때문이다.
• 위에서 애매하다는점은 모든 가상화들의 특징을 말하는건데 DB 프로그램은 애초에 모든 자원들을
사용할것을 권장한다. 근데 가상화라는것자체는 자원을 쪼개서 사용하는것이기 때문에 문제가 된
다는점 다만 production 쪽에서 문제없이 사용하고있다는 사람들도 존재함 작은 프로젝트기준
• 많은 레퍼런스가 존재하는대신에 러닝커브가 존재함.
• 개발환경을 위해 호스트의 환경을 손대지않아도 됨