데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
이제 컨테이너는 IT 산업 전반에서 빼놓을 수 없는 구성요소로 자리 잡고 있습니다. 이런 컨테이너는 일반적으로 가상화 기술로 소개가 되어 virtual machine과 비교되고 있습니다. 하지만 이런 접근 방법들이 컨테이너를 올바르게 이해하도록 하는데 방해가 될 수도 있다고 생각합니다.
이 세션에서는 컨테이너에 대해서 여러가지 다양한 접근 방법들과 기능들을 살펴보면서 컨테이너에 대해 다시금 생각 해볼 수 있는 시간을 갖고자 합니다. 또한 이를 통해 어떤식으로 실제 production 환경들에서 사용되어질 수 있을지 그리고 이런 모습들로 부터 향후 컨테이너의 발전방향을 이야기 해보려고 합니다.
Container technologies use namespaces and cgroups to provide isolation between processes and limit resource usage. Docker builds on these technologies using a client-server model and additional features like images, containers, and volumes to package and run applications reliably and at scale. Kubernetes builds on Docker to provide a platform for automating deployment, scaling, and operations of containerized applications across clusters of hosts. It uses labels and pods to group related containers together and services to provide discovery and load balancing for pods.
The document discusses various ways to structure microservices using different technologies like React.js, Clojure, and Golang. It provides examples of Dockerfile configurations to daemonize or run microservices that incorporate a React.js or Clojure frontend with a Golang or Clojure backend. It also briefly mentions tools like Webpack, Swagger, and deploying microservices to Azure.
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
이제 컨테이너는 IT 산업 전반에서 빼놓을 수 없는 구성요소로 자리 잡고 있습니다. 이런 컨테이너는 일반적으로 가상화 기술로 소개가 되어 virtual machine과 비교되고 있습니다. 하지만 이런 접근 방법들이 컨테이너를 올바르게 이해하도록 하는데 방해가 될 수도 있다고 생각합니다.
이 세션에서는 컨테이너에 대해서 여러가지 다양한 접근 방법들과 기능들을 살펴보면서 컨테이너에 대해 다시금 생각 해볼 수 있는 시간을 갖고자 합니다. 또한 이를 통해 어떤식으로 실제 production 환경들에서 사용되어질 수 있을지 그리고 이런 모습들로 부터 향후 컨테이너의 발전방향을 이야기 해보려고 합니다.
Container technologies use namespaces and cgroups to provide isolation between processes and limit resource usage. Docker builds on these technologies using a client-server model and additional features like images, containers, and volumes to package and run applications reliably and at scale. Kubernetes builds on Docker to provide a platform for automating deployment, scaling, and operations of containerized applications across clusters of hosts. It uses labels and pods to group related containers together and services to provide discovery and load balancing for pods.
The document discusses various ways to structure microservices using different technologies like React.js, Clojure, and Golang. It provides examples of Dockerfile configurations to daemonize or run microservices that incorporate a React.js or Clojure frontend with a Golang or Clojure backend. It also briefly mentions tools like Webpack, Swagger, and deploying microservices to Azure.
[D2 COMMUNITY] Open Container Seoul Meetup - Kubernetes를 이용한 서비스 구축과 openshiftNAVER D2
Junho Lee is a Solutions Architect who has worked at Rockplace Inc. since 2014. The document compares Kubernetes (k8s), OpenShift, and Google Kubernetes Engine (GKE). k8s is an open-source container cluster manager originally designed by Google. OpenShift is Red Hat's container application platform based on k8s. GKE provides k8s clusters on Google Cloud Platform. Both OpenShift and GKE add services on top of k8s like app stores, logging, monitoring and technical support. The document outlines the key components, architectures and capabilities of each platform.
[D2 COMMUNITY] Open Container Seoul Meetup - Running a container platform in ...NAVER D2
This document discusses containers and related technologies like Docker, Kubernetes, and Openshift. It provides an overview of the container approach taken by GS Shop including their experience running non-microservice applications on containers in production. Some areas they are currently working on include containerized stateful services, multi-tenant container infrastructure, and container infrastructure provisioning automation.
The document discusses abstracting loops using generators. It shows how generators can abstract the structure of loops to make them iterable with for-of. This allows composite patterns with multiple nested loops to all be abstracted and exposed via for-of. It also discusses lazy evaluation of loops using generators to delay running loops until needed and avoid overhead up front. Examples show filtering, mapping and chaining these operations lazily on generated iterators.
Functions in JavaScript create a unique execution context each time they are called. The execution context contains an environment record and a variable environment. When a function is defined, it is associated with the lexical environment of the context where it was defined. This means that nested functions have access to variables from outer scopes. Arrow functions lexically bind the value of 'this' from the enclosing context.
This document discusses mobile web debugging. It describes Park Jae-sung's background developing the Jindo framework at Naver Labs. It then provides tips on using Weinre and Chrome DevTools for remote debugging of webviews on Android devices.
본 자료는 2017년 4월 6일 진행된 온라인 세미나 'RAD Studio 10.2 도쿄' 출시 세미나 자료입니다.
RAD Studio는 오브젝트 파스칼, C++ 중 원하는 언어를 선택해 단 하나의 코드베이스로 윈도우, 리눅스, 맥, 안드로이드, iOS 앱을 개발해 배포할 수 있는 개발툴입니다.
2017년 3월 출시된 새버전 '10.2 도쿄'에서는 최초의 LLVM 기반의 리눅스 컴파일러를 선보였습니다.
본 세미나 관련 자료는 다음 링크를 통해 확인할 수 있습니다.
http://tech.devgear.co.kr/delphi_news/431914
2017년 5월 31일, "코딩이랑 무관합니다만, + 오픈스택 한국 커뮤니티" 공동 주관 세미나에서 발표한 자료를 공유합니다. 클라우드 컴퓨팅 인프라에서 API 필요성 및 CLI에 대한 내용을 설명하였습니다.
- 행사 URL: http://onoffmix.com/event/101353
Backend.AI (https://backend.ai)는 클라우드 및 온-프레미스 환경에서 여러 사용자가 안전하고 효율적으로 컴퓨팅 자원을 공유할 수 있는 머신러닝에 특화된 인프라 관리 프레임워크입니다. 현재 널리 사용되고 있는 오픈소스 기술인 OpenStack, Kubernetes 등과 비교하여 어떤 특징과 차이점이 있는지 소개하고, 프레임워크의 구조와 기반 기술 및 응용 사례를 데모와 함께 소개합니다.
Openshift 활용을 위한 Application의 준비, Cloud Nativerockplace
What is Cloud-native - DevOps, MSA and Cloud-native: Openshift 활용을 위한 Application의 준비, Cloud Native
*웨비나 다시보기 영상 바로가기:
https://www.youtube.com/watch?v=tzSBS-vki6w
designing, implementing and delivering microservices with event storming, spr...uEngine Solutions
Implementing Microservices is something like an adventure. Analyzing and decomposing microservices with applying DDD and make them into code, all is not easy. With new simple approach - Event storming, designing and implementing an event-driven MSA became easier ever seen before.
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례Jeongsang Baek
대부분의 중소 모바일 게임 업체는 앱을 잘 만들기에도 시간이 모자라 출시일을 잘 맞추기 급급한 상황이다. 그러다 보니 운영을 위한 툴은 소홀히 개발하는 경우가 대부분이고 운영 캠페인은 날림으로 개발하거나 그때 그때 개발자가 필요한 부분만 개발하기 일쑤다. 그러다보니 마케터는 결국 늘 개발자 눈치만 살피게 된다. 필자는 블루윈드에서 이러한 문제를 절감했고 '모바일 게임 개발사가 앱 개발에만 집중할 수 있게 해주고 싶다'는 IGAworks의 철학에 공감하여 라이브 오퍼레이션 프로젝트를 시작하게 되었다.
라이브 오퍼레이션의 개발 중점과제는 5가지였다. 첫번째, 다수의 개발사가 하나의 큰 클라우드 시스템을 사용하도록 multi-tenant 인프라를 구축해야 한다. 두번째, TCO(Total cost of ownership)를 최소화해야 한다. 세번째, 앱의 핵심유저를 실시간으로 그룹화하여 타게팅 캠페인을 할 수 있어야 한다. 네번째, 캠페인의 성과를 마케터에게 실시간으로 피드백해야 한다. 다섯째, 3개월 안에 정식 서비스가 되어야 한다는 점이었다. (왜 우리에게 주어지는 시간은 늘 3개월인가) 그리고 당연하지만 이 서비스를 혼자 개발해야 했다.
이 다섯가지 이슈를 해결하기 위하여 AWS 클라우드 상에 생산성과 성능이 검증된 node.js 와 mongodb를 이용하여 서비스 백엔드를 구성하였고, multi-tenant를 구성하기 위한 여러가지 고민과 그 해결책을 직접 구현하였다. 필자는 node.js와 mongodb를 사용해 본 경험이 충분하다 생각했지만 대규모 정식 서비스를 진행하며 많은 함정에 빠졌고 결국 해결했다.
이 발표를 통해 청강자는 node.js와 mongodb를 이용하여 multi-tenant 인프라를 구축해야 할 때 고려해야 할 설계 방식과 기술적인 고민, 그것에 대한 현실적인 해법을 얻을 수 있다.
The document discusses various machine learning clustering algorithms like K-means clustering, DBSCAN, and EM clustering. It also discusses neural network architectures like LSTM, bi-LSTM, and convolutional neural networks. Finally, it presents results from evaluating different chatbot models on various metrics like validation score.
The document discusses challenges with using reinforcement learning for robotics. While simulations allow fast training of agents, there is often a "reality gap" when transferring learning to real robots. Other approaches like imitation learning and self-supervised learning can be safer alternatives that don't require trial-and-error. To better apply reinforcement learning, robots may need model-based approaches that learn forward models of the world, as well as techniques like active localization that allow robots to gather targeted information through interactive perception. Closing the reality gap will require finding ways to better match simulations to reality or allow robots to learn from real-world experiences.
[243] Deep Learning to help student’s Deep LearningNAVER D2
This document describes research on using deep learning to predict student performance in massive open online courses (MOOCs). It introduces GritNet, a model that takes raw student activity data as input and predicts outcomes like course graduation without feature engineering. GritNet outperforms baselines by more than 5% in predicting graduation. The document also describes how GritNet can be adapted in an unsupervised way to new courses using pseudo-labels, improving predictions in the first few weeks. Overall, GritNet is presented as the state-of-the-art for student prediction and can be transferred across courses without labels.
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
This document provides a summary of new datasets and papers related to computer vision tasks including object detection, image matting, person pose estimation, pedestrian detection, and person instance segmentation. A total of 8 papers and their associated datasets are listed with brief descriptions of the core contributions or techniques developed in each.
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
그림이 정상 출력되는 다음 링크의 자료를 확인해 주세요.
https://www.slideshare.net/deview/233-network-load-balancing-maglev-hashing-scheduler-in-ipvs-linux-kernel
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
This document presents a formula for calculating the loss function J(θ) in machine learning models. The formula averages the negative log likelihood of the predicted probabilities being correct over all samples S, and includes a regularization term λ that penalizes predicted embeddings being dissimilar from actual embeddings. It also defines the cosine similarity term used in the regularization.
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
The document discusses running a TensorFlow Serving (TFS) container using Docker. It shows commands to:
1. Pull the TFS Docker image from a repository
2. Define a script to configure and run the TFS container, specifying the model path, name, and port mapping
3. Run the script to start the TFS container exposing port 13377
The document discusses linear algebra concepts including:
- Representing a system of linear equations as a matrix equation Ax = b where A is a coefficient matrix, x is a vector of unknowns, and b is a vector of constants.
- Solving for the vector x that satisfies the matrix equation using linear algebra techniques such as row reduction.
- Examples of matrix equations and their component vectors are shown.
This document describes the steps to convert a TensorFlow model to a TensorRT engine for inference. It includes steps to parse the model, optimize it, generate a runtime engine, serialize and deserialize the engine, as well as perform inference using the engine. It also provides code snippets for a PReLU plugin implementation in C++.
The document discusses machine reading comprehension (MRC) techniques for question answering (QA) systems, comparing search-based and natural language processing (NLP)-based approaches. It covers key milestones in the development of extractive QA models using NLP, from early sentence-level models to current state-of-the-art techniques like cross-attention, self-attention, and transfer learning. It notes the speed and scalability benefits of combining search and reading methods for QA.
2. Google Cloud Platform 2
발표자 소개
조 대
협
본명:
조병욱
회원 13만명 온라인 개발자 커뮤니티 자바스터디(www.javastudy.co.kr) 운영자.. (기억의
저편..)한국 자바 개발자 협회 부회장,서버사이드 아키텍트 그룹
운영자벤쳐
개발자BEA 웹로직 기술 지원
엔지니어장애 진단, 성능
튜닝NHN
잠깐오라클 컨설턴트 (SOA,EAI,ALM,Enterprise 2.0,대용량 분산
시스템)MS APAC 클라우드 수석
아키텍트프리렌서 (잘나가는
사장님)삼성전자 무선 사업부 B2B팀 Chief
Architect피키캐스트 CTO
구글 클라우드 엔지니어
5. Google Cloud Platform 5
전통적인 아키텍쳐 스타일
• 모노리틱 아키텍쳐 (통서버)
• 하나의 서버에 모든 비지니스 로직이 들어가 있는 형태
• 하나의 중앙 집중화된 데이타 베이스에 모든 데이타가 저장됨
6. Google Cloud Platform 6
전통적인 아키텍쳐 스타일의 장단점
• 단점
• 여러개의 기술을 혼용해서 사용하기 어려움 (node.js , Ruby, Python etc)
• 배포 및 재기동 시간이 오래 걸림
• 수정이 용이하지 않음 (타 컴포넌트 의존성)
• 장점
• 기술 단일화
• 관리 용이성
7. Google Cloud Platform 7
마이크로서비스 아키텍쳐란?
• 시스템을 여러개의 독립된 서비스로 나눠서, 이 서비스를 조합함으로서 기능을 제공하는 아키텍쳐
디자인 패턴
• SOA의 경량화 버전 (실패한다면 실패하는 이유도 같음)
서비스란?
– 단일된 기능 묶음으로 개발된 서비스 컴포넌트
– REST API등을 통하여 기능을 제공
– 데이타를 공유하지 않고 독립적으로 가공 저장
사용자 관리 인터페이스
• REST
• Thrift,Protocol buffer
• AMQP
• :사용자 데이타
8. Google Cloud Platform 8
서비스 조합
• 하나의 기능을 구현 하는데, 여러개의 서비스를 조합하여 기능을 제공
예) 주문 하기 : 사용자 정보 조회, 상품 정보 조회, 신규 주문 생성
사용자 관리
상품 관리
주문 관리
쇼핑몰 웹
API CALL
사용자정보
상품정보
주문정보 사용자 관리 상품 관리 주문 관리
사용자 정보 상품 정보 주문 정보
쇼핑몰 웹
API CALL
모노리틱
아키텍쳐
마이크로 서비스
아키텍쳐
9. Google Cloud Platform 9
기술 스택
• 마이크로 서비스 아키텍쳐는 서비스 별로 다른 기술 스택을 사용할 수 있음
사용자 관리
(JAVA)
상품 관리
(node.js)
주문 관리
(JAVA)
사용자 정보
(Cassandra)
상품 정보
(MySQL)
주문 정보
(CouchBase)
쇼핑몰 웹
API CALL
장점일까?
• 운영 관점에서 여러가지 기술을
동시에 다뤄야 함
(Devops – You build, You run)
• 사람이 떠나면 보수 불가
(Product not a project)
단점일까?
• 적절한 기술을 적절하게 배치 가능
o 복잡한 데이타 RDBMS, 양이
많은 고속 데이타 NoSQL
o C10K NoSQL, 빠른 개발
스크립트 언어, 튼튼한
시스템은 자바 …
10. Google Cloud Platform 10
팀 모델
• 컨웨이의 법칙
• 뼈저리게 느낌
“소프트웨어의 구조는 그 소프트웨어를 만드는 팀의
구조와 일치한다.”
설계 백날 잘해야 소용없음
제대로 된 팀 구조를 만드는 것이 설계 (그 다음은 알아서 됨 ?)
• 친한팀 컴포넌트끼리는 개발이 잘됨. 그러다 보니 그쪽으로 기능이
몰림
• 잘하는 팀한테 자꾸 중요 기능이 몰림
서비스 컴포넌트들이 균등하게 디자인 되지 않음
11. Google Cloud Platform 11
팀모델
• 분산형 거버넌스 (각 팀이 알아서. 적합한 기술, 스스로 하기)
• You build & You run!!
• Self Organized Team
• Product vs Project
• Cross functional team
• Alignment (소통!!)
12. Google Cloud Platform 12
팀 모델
• 팀간 조율이 핵심
• 새로운 조율자 ROLE이 요구됨
프로그램 메니져 : 팀간 일정 조율
치프 아키텍트 : 서비스간 흐름 정의, 표준 정의, 에러 추적/처리 방법 정의
14. Google Cloud Platform 14
마이크로 서비스 아키텍쳐 토폴로지
• 일반적인 마이크로 서비스 아키텍쳐 스택 구조
API gateway
Service orchestration
(mediation, aggregation)
CommonAPIs
CommonAPIs
CommonAPIs
CommonAPIs
CommonAPIs
CommonAPIs
생략 가능 영역
• API 게이트 웨이 : API의 single end point
• Common APIs : 범용 API
• Orchestration : 여러 API를 묶어서, 요구 사항에
맞는 로직을 구현
• Service Orchestration
규모가 커질 수 록 추가되는 계층들 (오케스트레이션, API 게이트 웨이)
1단계
2단계
3단계
15. Google Cloud Platform 15
쇼핑몰 API
서버
서비스 오케스트레이션 계층의 활용
사용자 관리 상품 관리 주문 관리
사용자 정보 상품 정보 주문 정보
앱 또는
자바스크립트
클라이언트
API CALL
사용자 관리 상품 관리 주문 관리
사용자 정보 상품 정보 주문 정보
API CALL
클라이언트
API CALL
클라이언트에서 직접
서비스를 조합 하는 방식
별도의 조합 계층(Orchestration or Mediation)
을 넣는 방식
다른 프로토콜 사용
가능
ex)내부 PB, 외부 REST
• API가 범용적으로 잘 짜야 있어야함
• 클라이언트 팀이 모든 컴포넌트팀과
조율이 필요
규모가 크지 않은 구조에서
효과적
• 중간에 API를 커스터마이제이션 또는 조합
하는 계층을 별도로 둠
• 클라이언트팀은 조합 API 개발팀과
커뮤니케이션만 하면 됨
• 클라이언트 요구 사항에 기민하게 대처
• 그러나 계층은 하나 더 늘어남 (성능,
디버깅,배포)
일정 규모 이상. 특히
클라이언트가 여러개인 구조에
16. Google Cloud Platform 16
API 게이트 웨이
• 클라이언트와 API 서버 앞에서
일종의 프록시 처럼 위치 하여 다양한
기능을 수행함
• API 인증/인가
• 로깅
• 라우팅
• 메시지 변환
• 메시지 프로토콜 변환
:
API 서버 API 서버 API 서버
데이타 데이타 데이타
API 게이트 웨이
17. Google Cloud Platform 17
API 게이트 웨이
• SOA ESB (Enterprise Service Bus)의 단순화 버전
• 있으면 좋음. 없어도 됨
• 만들 수 있는 실력있으면, 쓰는게 좋음
• 잘못 쓰면 망하는 지름길
18. Google Cloud Platform 18
API 게이트웨이를 이용한 설계 패턴 #1
• 인증,인가의 단일화
IDM
(계정관리)
API 토큰
관리
클라이언트
API
게이트 웨이
API
서버
1. API 토큰 발급 요청
2. 사용자 인증/인가
3. API 호출
5. API 호출
4. API 토큰 인증
19. Google Cloud Platform 19
API 게이트웨이를 이용한 설계 패턴 #2
• 멀티 앤드포인트와 멀티 프로토콜 제공
<그림. 다양한 디바이스로 부터 정보를 수집하는 IOT시스템에 타입별
앤드 포인트 제공하는 예제>
20. Google Cloud Platform 20
API 게이트웨이를 이용한 설계 패턴 #3
• 오케스트레이션
• ESB 기반 SOA 프로젝트가 실패한
대부분의 원인 (안하는게 좋음)
• 오케스트레이션 서버를 별도로 두는게
좋음
21. Google Cloud Platform 21
API 게이트웨이를 이용한 설계 패턴 #4
• 메세지 기반 라우팅
• 글로벌 배포 시스템에 유용함
• 멀티 버전 시스템 (레거시 업그레이드)에 유용
22. Google Cloud Platform 22
API 게이트웨이를 이용한 설계 패턴 #5
• Cross Cutting Concern (공통 기능) 처리
• 인증,로깅등 공통 기능 처리
• API 개발팀은 비지니스 로직에 집중할 수 있도록 해줌
23. Google Cloud Platform 23
API 게이트웨이를 이용한 설계 패턴 #6
• 다중 API 게이트 웨이 패턴
• 내부,외부용 API 게이트웨이 분리
24. Google Cloud Platform 24
API 게이트웨이를 이용한 설계 패턴 #7
• API 호출용 엔드포인트와 스트리밍 (파일)용
엔드포인트 분리
25. Google Cloud Platform 25
API 게이트웨이를 이용한 설계 패턴 #6
• 비 기능 요소 제어
• QoS 제어
• Metering & Charging (상용 API 서비스 과금)
• API 모니터링
26. Google Cloud Platform 26
분산 트렌젝션의 추적
• 여러개의 서비스 컴포넌트를 조합하여 움직이는
트렌젝션에 대한 추적 디자인 패턴
• 원리 (XA 분산 트렌젝션과 유사)
• 초기 API에서 GTXID와 LTXID를 생성
• 서버를 넘어갈때 마다 같은 GTXID를 사용, LTXID는
하나씩 증가
• 구현시
• 서버간에는 HTTP 헤더로 TXID 전달
• 서버내에서는 Thread Local (Java)등의 컨택스트 변수
활용
→ 초기 표준 설계가 중요함
28. Google Cloud Platform 28
Container
● Linux Container (LxC)기반의 컨테이너 기술
● 애플리케이션 코드를 컨테이너로 패키징 해서, 개발에서 운영 환경으로
배포
29. Google Cloud Platform 29
Google for Mobile
Container ?
VM과 같은 컨셉이지만, 훨씬 가벼움
Physical Processor
Virtual Processor
Operating System
Libraries
User Code
Physical Processor
Virtual Processor
Operating System
Libraries
User Code
Private
Copy
Shared
Private
Copy
Shared
Virtual Machines Containers
30. Google Cloud Platform 30
Container vs VM
● 비교
Virtual machine Docker container
이미지 크기 큼 작음
부팅 속도 분단위 초단위
이미지 생성 시간 느림 (+10분) 빠름 (수분)
윈도우 지원여부 가능 불가(?)
호환성 하이퍼바이져에 종속 Docker 지원 환경이면 사용
가능
31. Google Cloud Platform 31
Large scale container service
● 컨테이너를 어느 서버(물리)에 배포하지?
Node
Container
Node Node Node Node
…...
Container
2 CPU, 4GB
Where ?
36. Google Cloud Platform 36
Kubernetes
● 구글의 오랜 컨테이너 서비스 운영 경험의 산물
● 오픈소스
● public, private 거의 모든 인프라에서 사용 가능
● 넒은 에코 시스템 (파트너, 클라우드 서비스 제공자등)
37. Google Cloud Platform 37
Virtual Network
Compute Engine
Instances
Container Engine
Kubernetes
Master
Zone
Cluster Node
Pod
Container
Container
Pod
Container
Container
Service
Proxy
Scheduler
Cluster Node
Pod
Container
Container
Pod
Container
Container
38. Google Cloud Platform 38
Cluster Resources
Pods are ephemeral units
that are used to manage one
or more tightly coupled
containers.
They enable data sharing and
communication among their
constituent components.
Pods
Replication
Controller Services
Replication controllers create
new pod "replicas" from a
template and ensure that a
configurable number pods
are running.
Services provide a bridge
based on an IP and port pair
for non-Kubernetes-native
client applications to access
backends without needing to
write code that is
Kubernetes-specific.
39. Google Cloud Platform 39
Pods
● Kubernetes 에서 최소 논리 단위
● 하나의 애플리케이션을 표현하는 최소 논리 단위
● 하나의 Pod에는 1..N개의 Container를 가질 수 있음
● 주로 Tightly Coupled 되는 Container들을 하나의 Pod에 묶음
○ 예) Nginx + Tomcat
○ 예) Tomcat + memcached
● Pod에 있는 Container는 물리적으로 같은 서버에 생성됨
Cluster Node
Pod
Container
Container
Pod
Container
Container
40. Google Cloud Platform 40
Pods
● 같은 Pod에 있는 Container는 Disk Volume을 공유할 수 있음
version: v1beta1
containers:
- name: www
…
volumeMounts:
- name: dataShard
path: /mnt/shard
readOnly: true
- name: dataLoader
…
volumeMounts:
- name: dataShard
path: /mnt/output
volumes:
- name: dataShard
www dataLoader
dataShard
41. Google Cloud Platform 41
Replication Controllers
● Pod를 생성하고 관리.
● Pod 생성은 미리 정의된 Template에서 부터 생성
● Pod의 가동 상태를 체크하고, 죽으면 다시 재기동.
version: v1beta1
containers:
- name: www
image: nginx
ports:
- name: http
hostPort: 8080
containerPort: 80
42. Google Cloud Platform 42
Services
● Pod 들의 집합 (예. 웹서버 서비스, 백앤드 서비스, 캐쉬 서비스)
● IP Address가 지정 되고, Pod 간에 로드 밸런싱을 제공
44. Google Cloud Platform 44
FE
FE
FE
FE
FE
FE
BE
BE
BE BEBE
BE
BE
BE
BE
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Kubernetes - Master/Scheduler
Labels : Too Many Pods
45. Google Cloud Platform 45
labels:
role: frontend
FE
FE
FE
FE
FE
FE
BE
BE
BE BEBE
BE
BE
BE
BE
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Kubernetes - Master/Scheduler
Labels
46. Google Cloud Platform 46
labels:
role: frontend
stage: production
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Kubernetes - Master/Scheduler
FE
FE
FE
FE
FE
FE
BE
BE
BE BEBE
BE
BE
BE
BE
Labels
47. Google Cloud Platform 47
Google for Mobile
Kubernetes on Cloud
New service for cluster-based compute
● 수초내에 Kubernetes 클러스터 생성
● 구글 클라우드 뿐 아니라, 타 클라우드 + 자체 데이타 센터를 단일 Kubernetes로
관리
Releases
● Today: General Availability
Resources
● Google Container Engine: http://cloud.google.com/container-engine
● Kubernetes: http://kubernetes.io