[MeetUp][3rd] Prometheus 와 함께하는 모니터링 및 시각화InfraEngineerhttps://www.facebook.com/groups/InfraEngineer
Especially lab in here
https://github.com/gnu-gnu/infra-meetup
[17.02.09] Github introduction (Korean Version)Ildoo KimGit 혹은 소스코드 형상관리를 아예 모르는 사람을 대상으로 작성한 Starter Guide입니다. 팀에 새로운 사람이 Join하는 등의 경우에 세미나 자료로 활용합니다.
형상관리/git 개념과 command line 혹은 source tree를 활용한 기본적인 사용 방법에 대해 소개합니다.
<팀을>이라는 책을 많이 참고하였습니다.
[17.01.19] docker introduction (Korean Version)Ildoo KimDocker(도커) 소개를 위해 사용했던 자료입니다.
제가 속한 개발팀에서는 도커 컨테이너를 기반으로 개발부터 배포까지 가능한 환경 및 인프라를 구축하여 개발팀에서 대다수의 오퍼레이션까지 관여하면서 Devops 형태로 운영합니다.
Docker(도커)를 처음 사용하거나 개념적으로 익숙하지 않은 초보를 위해 만든 자료입니다.
슬라이드에서 사용된 스크립트/코드는 아래에 있습니다.
https://github.com/ildoonet/docker_introduction
----
김일두, Software Engineer @ Kakao
Github : https://github.com/ildoonet
Linkedin : https://www.linkedin.com/in/ildoo-kim-56962034/
Launchpad 활용 사례 in OpenStack: 다루어본 Bug & Blueprint를 중심으로Ian Choi2017년 5월, 우분투 한국 사용자 모임 정기세미나에서 "오픈소스 프로젝트에 기여하기" 주제로 발표한 자료입니다
(URL: http://onoffmix.com/event/99631 )
Basic of web ref.웹을지탱하는기술_01SangHun LeeBasic of web ref.웹을지탱하는기술_01
1. 웹 이전의 인터넷 : 전자메일, FTP, Telnet, Gopher
2. 팀버너스리에 의해 웹이 탄생, Mosaic 브라우저를 통해 사용자 증가
3. 표준화의 필요성 > IETF, W3C등
4. SOAP vs REST 분쟁
삐약삐약 네트워크 엔지니어 이야기InfraEngineer조준희 / Cisco - <삐약삐약 네트워크 엔지니어 이야기>
"그저 전공 공부만 하던 꿈이 없던 대학생이 네트워크엔지니어가 되는 과정과,
주니어인 제가 생각하는 네트워크 엔지니어에 대해 이야기합니다."
영상: https://youtu.be/D259i3pBYLA
주최: https://www.facebook.com/groups/InfraEngineer
Agile sw development 101Kiwon Kyung하얀 눈 위에 발자국은 반갑고 친구와 같은 느낌이었던 것 같습니다. 애자일 적용에 첫발을
내딛으려는 팀에게 도움이 되었으면 좋겠네요.
경기원, LG CNS
애자일을 통해 내가 하고 있는 무엇인가를 더 낫게 만들려는 욕심 있는 분들께 추천합니다.
신황규, 삼성SDS
현실을 부정하지 말고 일단 작게 시작하세요.
관찰하고 적응하세요. 특정 방법에 얽매이지 말고 애자일 선언문을 기억하세요. :-D
심우곤, LG전자
어제보다 나은 오늘을 만드는데 도움이 되었으면 좋겠습니다.
이승룡, 삼성SDS
애자일을 적용하려는 팀에 도움이 되었으면 좋겠어요!
채수원, NHN
여러분들이 애자일과 더 친해졌으면 합니다.
황상철, NHN
Launchpad 활용 사례 in OpenStack: 다루어본 Bug & Blueprint를 중심으로Ian Choi2017년 5월, 우분투 한국 사용자 모임 정기세미나에서 "오픈소스 프로젝트에 기여하기" 주제로 발표한 자료입니다
(URL: http://onoffmix.com/event/99631 )
Basic of web ref.웹을지탱하는기술_01SangHun LeeBasic of web ref.웹을지탱하는기술_01
1. 웹 이전의 인터넷 : 전자메일, FTP, Telnet, Gopher
2. 팀버너스리에 의해 웹이 탄생, Mosaic 브라우저를 통해 사용자 증가
3. 표준화의 필요성 > IETF, W3C등
4. SOAP vs REST 분쟁
삐약삐약 네트워크 엔지니어 이야기InfraEngineer조준희 / Cisco - <삐약삐약 네트워크 엔지니어 이야기>
"그저 전공 공부만 하던 꿈이 없던 대학생이 네트워크엔지니어가 되는 과정과,
주니어인 제가 생각하는 네트워크 엔지니어에 대해 이야기합니다."
영상: https://youtu.be/D259i3pBYLA
주최: https://www.facebook.com/groups/InfraEngineer
Agile sw development 101Kiwon Kyung하얀 눈 위에 발자국은 반갑고 친구와 같은 느낌이었던 것 같습니다. 애자일 적용에 첫발을
내딛으려는 팀에게 도움이 되었으면 좋겠네요.
경기원, LG CNS
애자일을 통해 내가 하고 있는 무엇인가를 더 낫게 만들려는 욕심 있는 분들께 추천합니다.
신황규, 삼성SDS
현실을 부정하지 말고 일단 작게 시작하세요.
관찰하고 적응하세요. 특정 방법에 얽매이지 말고 애자일 선언문을 기억하세요. :-D
심우곤, LG전자
어제보다 나은 오늘을 만드는데 도움이 되었으면 좋겠습니다.
이승룡, 삼성SDS
애자일을 적용하려는 팀에 도움이 되었으면 좋겠어요!
채수원, NHN
여러분들이 애자일과 더 친해졌으면 합니다.
황상철, NHN
『고성능 파이썬』 - 맛보기복연 이"파이썬 성능 잠재력을 끌어내는 실용적인 개발 전략서"
미샤 고렐릭,이안 오스발트 지음 / 김영근,오현석 옮김 | 한빛미디어 | 2016년 8월 | 30,000원
★ 파이썬 3 대응
★ 프로토타이핑에서 실무 운영까지 살아가는 파이썬 코드의 비밀
아이디어 무한경쟁이 펼쳐지는 대(大)스타트업 시대! 높은 생산성으로 유명한 파이썬은 최우선 고려사항이다. 한 가지, 컴파일 언어 대비 느린 성능 때문에 성공한 서비스나 성능이 중요한 기능은 컴파일 언어로 다시 작성하곤 한다. 하지만 실무 운영까지 파이썬 코드를 계속 이어가는 방법이 있다면?
이 책은 파이썬을 둘러싼 설계와 작동 원리를 설명하고 이에 기반한 실용적인 구현 전략을 소개한다. 멀티코어 아키텍처와 클러스터의 이점을 활용하려면 어떻게 해야 하는가? 안정성을 잃지 않고 확장하는 방법은 무엇인가? 여러분은 이에 대한 명확한 해법을 찾고 방대한 소셜 데이터까지도 눈부신 속도로 처리해내는 파이썬 코드를 얻게 될 것이다.
★ 주요 내용
● numpy, Cython, 프로파일러 활용하기
● 파이썬의 시선으로 바라보는 컴퓨터 아키텍처 이해하기
● CPU 시간과 메모리 사용량을 프로파일링하여 병목 지점 찾기
● 상황에 맞는 컬렉션으로 효율적인 프로그램 작성하기
● 행렬과 벡터 연산 가속하기
● 네이티브 코드로 컴파일하기
● 대량의 I/O와 연산 동시 수행하기
● 원격 클러스터로 병렬 처리하기
● 적은 메모리로 대규모 데이터 처리하기
『클라우드 시스템을 관리하는 기술』 - 맛보기복연 이토머스 리몬첼리 외 공저 / 류광 옮김 | 한빛미디어 | 2016년 2월 | 36,000원
예스24: http://www.yes24.com/24/goods/24557610
“클라우드 규모 서비스를 실현하는 이론과 실전 노하우를 정리한 지침서”
이 책은 대규모 클라우드 인프라와 서비스의 구조와 설계 패턴, 그리고 이를 운영하는 방법까지, 시스템과 팀이 유기적으로 움직이는 비법을 제시한다.
저자들의 구글, 엣시(Etsy), 트위터, 페이스북, 넷플릭스, 아마존 등 거대 기업에서의 사례와 경험에서 시기를 타지 않는 근본적인 원리(principle)와 관행(practice), 특정 제품이나 시스템을 선택할 때 독자가 반드시 살펴봐야 할 품질 요소들을 이 책에 담았다. 이러한 접근법 덕분에 시간이 흘러 기술이 변해도 독자는 이 업계에서 여전히 준비된 전문가로 남게 될 것이다.
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?nexusz99드랍박스, nDrive 등과 같은 클라우드 스토리지 서비스들은 데이터를 어떻게 저장하는지에 대한 이론적 내용과 실제 구현 내용을 살펴봅니다. 이 발표에서는 OpenStack 의 swift라는 Object Storage 를 이용하여 이론이 어떻게 구현되어있는지 알아봅니다.
서버 개발자가 되기 위한 첫 걸음nexusz99이제 막 SW개발을 시작하는 학생들을 대상으로 서버 개발자가 되기 위한 첫 걸음을 내딛을 수 있는 내용을 담아보았습니다. 웹 서비스가 무엇인지 그리고 그것을 어떻게 개발하는지 알고 싶은 학생들에게 이 슬라이드가 많은 도움이 되기를 희망합니다.
4. 일반 자료구조의 고도화
• 수업시간에 배운 자료구조의 특징은 이해가 되었다.
• 자료구조의 응용은 서비스의 개발로 이어진다.
• 어느 상황에서 써야한다는 걸 익히기엔 좋지만 도전적인가? = 결코 그렇지 않다.
• 무언가 도전적인 것을 해보자
• 기존 자료구조를 고도화하여 나만의 자료구조를 만들어보자
August 3, 2016 자료구조 최종 발표
4
기존의 자료구조를 응용한 고도화된 자료구조 개발
5. 공유 큐
• 기존의 큐는 단일 프로그램에서 사용하는 자료구조이다.
• 만일 여러 프로그램이 같은 큐를 공유해서 사용하려면 어떻게 해야할까?
• 여러 프로그램이 같이 사용할 수 있는 공유 큐를 만들어보자
August 3, 2016 자료구조 최종 발표
5
7. 생산자 / 소비자 구분
August 3, 2016 자료구조 최종 발표
7
구현의 간단함을 위해 생산자와 소비자를 구분
8. 역할 구분
August 3, 2016 자료구조 최종 발표
8
.
생산자 소비자
공유 큐에 데이터를 넣는
Enqueue 의 기능만 한다.
공유 큐에서 데이터를
꺼내는 Dequeue의
능을 한다.
9. 공유 큐를 어떻게 구현할까
• 한 컴퓨터에서 여러 프로그램이 같이 사용할 수 있는 자원??
• 가장 쉬운 방법으로 파일을 이용하자.
• 파일을 기반으로 한 공유 큐를 구현
• 공유 큐를 이용하여 메시지를 교환하는 메시지큐를 만들자
August 3, 2016 자료구조 최종 발표
9
10. 메시지큐의 응용
• 메시지큐를 이용하여 무엇을 만들까?
• 생산자와 소비자가 구분이 되는 역할의 프로그램을 만들자.
• 여러 생산자가 ‘주문’이라는 메시지를 생산하고, 매장이 ‘주문’을 소비하는
소비자가 되는 레스토랑 서비스를 만들자.
August 3, 2016 자료구조 최종 발표
10
13. 레스토랑 서비스
August 3, 2016 자료구조 최종 발표
13
• 레스토랑 서비스의 기능
• 주문
• 주문 취소
• 결제
• 회원가입
• 로그인
14. 레스토랑 서비스 구조
August 3, 2016 자료구조 최종 발표
14
• 주기적으로 메시지큐에서 메시지를
가져와 주문을 처리한다.
• Request Worker가 주문을 해석/실행
15. 어떤 자료구조를 사용할 것인가?
• 큐
• 음식 주문 큐
• 메시지큐
• 해시 테이블
• 사용자 관리
August 3, 2016 자료구조 최종 발표
15
• 링크드 리스트
• 큐 자체 구현
• 결제 내역
• 해시 테이블의 키 리스트
16. 해시 테이블
• 왜 필요한가?
• 서비스를 하는 매장이다 보니 이용하는 사람들이 매우 많을 것이다.
• 각 사람들을 기록하고, 그 사람들의 결제 내역을 기록해야한다.
• 그리고 그 사람들을 빠르게 검색해야한다.
• 어떻게 구현할 것인가?
• 사람이 매우 많으므로 좋은 해시 알고리즘을 써야한다.
• 키를 MD5 단방향 해시화하여 이용하자.
• 테이블에 저장된 키 리스트를 보관하기 위해, 링크드 리스트를 사용하자
August 3, 2016 자료구조 최종 발표
16
17. 메시지큐의 구현
August 3, 2016 Presentation Title
17
• 여러 프로그램이 동시에 사용하도록 해야한다.
• 하지만 ‘동시’ 접근을 할 경우 파일에 메시지가 올바르게 저장되지 않는다.
• ‘동시’ 접근을 방어하면서 모든 메시지를 저장할 수 있는 방안이 필요하다.
• 파일의 한 줄에 반드시 하나의 메시지가 기록되어야한다.
18. 메시지큐의 구현
August 3, 2016 자료구조 최종 발표
18
Lock 파일의 도입
-> 모든 프로그램은 메시지큐를 이용하기 전 Lock 파일이 존재하는지 확인한다.
-> 만약 존재하면 일정 시간 대기한 후 다시 접근을 시도한다.
MessageQueue.lock
21. 메시지큐의 테스트
August 3, 2016 Presentation Title
21
• 시뮬레이션 프로그램을 만들어서 메시지큐가 잘 동작하는지 확인
• Thread를 이용하여 동시 접근 클라이언트의 갯수와 요청 수를 조절
22. 메시지큐의 테스트 결과
August 3, 2016 자료구조 최종 발표
22
• 동시 접근 클라이언트가 20개 이상을 넘어가면 메시지큐에 데이터가 중첩되
어 저장된다.
• 20개 미만일 경우에도 한 클라이언트당 요청 갯수가 많다면 중첩이 발생한
다.
23. 원인 분석
August 3, 2016 자료구조 최종 발표
23
• Lock 파일을 생성해도 그것이 실제로 반영되기까지의 지연시간을 계산하지
못함.
• 1ms와 같은 찰나의 순간에 동시에 접근하는 것에 대해 컨트롤 하지 못함.
• 그래도 적절히 컨트롤 하면 메시지큐를 이용할 수 있다.
25. 회고
도전적인 정신으로 만들었던 메시지큐가 그래도 잘 동작해서 다행이다.
비록 특정 케이스에서만 잘 동작하지만 더 많은 연구를 한다면 모든 상황을 대
응할 수 있을 것이다.
하나의 주요 자료구조를 이용하여 부가적인 산출물을 만들면서 프로그램을
더 잘 만들 수 있다는 자신감이 생겼다.
August 3, 2016 Presentation Title
25