01. Kubernetes-PPT.pptxTamalBanerjee16Kubernetes is an open-source platform for managing containerized applications across multiple hosts. It provides tools for deployment, scaling, and management of containers. Kubernetes handles tasks like scheduling containers on nodes, scaling resources, applying security policies, and monitoring applications. It ensures containers are running and if not, restarts them automatically.
Kubernetes Clusters as a Service with GardenerQAware GmbHCloud Native Night November 2018, Munich: Talk by Dirk Marwinski (SAP).
Join our Meetup: www.meetup.com/cloud-native-muc
Abstract: There are many Open Source tools which help in creating and updating single Kubernetes clusters. Corporations usually require many clusters, depending on their size they may require hundreds or even thousands of clusters. However, the more clusters you need the harder it becomes to operate, monitor, manage, and keep all of them alive and up-to-date.
That is exactly what open source project “Gardener” focuses on. It is not just another provisioning tool, but it is rather designed to manage Kubernetes clusters as a service. It provides Kubernetes-conformant clusters on various cloud providers and the ability to maintain hundreds or thousands of them at scale. At SAP, we face this heterogeneous multi-cloud & on-premise challenge not only in our own platform, but also encounter the same demand at all our larger and smaller customers implementing Kubernetes & Cloud Native.
Inspired by the possibilities of Kubernetes and the ability to self-host, the foundation of Gardener is Kubernetes itself. While self-hosting, as in, to run Kubernetes components inside Kubernetes is a popular topic in the community, we apply a special pattern catering to the needs of operating a huge number of clusters with minimal total cost of ownership.
In this session Dirk will provide a comprehensive overview of Gardener, the underlying concepts, and talk about interesting implementation details. In addition there will be a hands-on sessions where attendants will be given free access to a Gardener instance and given the opportunity to dynamically create Kubernetes cluster and test them.
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea서비스 런칭을 위해 라이온하트와 카카오게임즈가 어떻게 최적 성능의 인스턴스를 선택하고, Windows 운영 체제를 최적화하며, 왜 Amazon Aurora를 기본 데이터베이스로 채택하였는지를 설명합니다. 또한, 출시부터 운영까지의 과정에서 MMORPG가 어떻게 AWS 상에서 설계되고, 게임 서버 성능을 극대할 수 있었는지에 대해 전달해드립니다.
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdfOpen Source Consulting최근 금융권이나 공공기관에서는 차세대 프로젝트에 PaaS 기반 시스템을 구축하고 그 위에 마이크로서비스아키텍처(MSA)를 구현하기 위해 많은 투자를 하고 있는데요, 많은 기업들이 오픈소스 기반의 인프라를 고려할 때 기술지원이나 버전 업그레이드 등에 대한 애로사항을 겪게 됩니다. 이런 문제에 대한 해결 방안 중 하나가 바로 커뮤니티 기반의 오픈소스 재단을 활용하는 것인데요!
본 자료에서 커뮤니티 오픈소스 기반 인프라 구축의 장점과 실제 사례에 대해 확인해 보실 수 있습니다.
Kubernetes presentationGauranG BajpaiThis document provides an overview of Kubernetes, including its architecture, components, concepts, and configuration. It describes that Kubernetes is an open-source container orchestration system designed by Google to manage containerized applications across multiple hosts. The key components include the master nodes which run control plane components like the API server, scheduler, and controller manager, and worker nodes which run the kubelet and containers. It also explains concepts like pods, services, deployments, networking, storage, and role-based access control (RBAC).
OpenStack Neutron TutorialmesteryThis was a tutorial which Mark McClain and I led at ONUG, Spring 2015. It was well received and serves as a walk through of OpenStack Neutron and it's features and usage.
Introduction to CNI (Container Network Interface)HungWei ChiuA brief introduction to the CNI (Container Network Interface), the implementation of docker bridge network and the CNI usage, including why we develop the CNI, how to use the CNI and what is CNI.
We also introduction the pause container the kubernetes PoD and how to use the CNI in the kubernetes.
In the end, we use the flannel as an example to show how to install the CNI into your kubernetes cluster
Getting Started with Kubernetes VMware TanzuIf you’re working with just a few containers, managing them isn't too complicated. But what if you have hundreds or thousands? Think about having to handle multiple upgrades for each container, keeping track of container and node state, available resources, and more. That’s where Kubernetes comes in. Kubernetes is an open source container management platform that helps you run containers at scale. This talk will cover Kubernetes components and show how to run applications on it.
Openstack 101Kamesh PemmarajuDo you think of cheetahs not RabbitMQ when you hear the word Swift? Think a Nova is just a giant exploding star, not a cloud compute engine. This deck (presented at the OpenStack Boston meetup) provides introduction will answer your many questions. It covers the basic components including: Nova, Swift, Cinder, Keystone, Horizon and Glance.
Kubernetes IntroAntonio Ojea GarciaThis document provides an overview of Kubernetes. It begins by introducing Kubernetes and its origins at Google. It then discusses key Kubernetes concepts like pods, deployments, services, ingress, namespaces, labels, and storage. It explains how Kubernetes provides automation of application deployment, scaling, and management using containers. It also discusses how Kubernetes helps enable continuous integration, continuous deployment, and digital transformation. The document concludes by mentioning the Kubernetes ecosystem and Cloud Native Computing Foundation.
The Zen of High Performance Messaging with NATS NATSThe Zen of High Performance Messaging with NATS
Waldemar Quevedo Salinas, Senior Software Engineer
NATS is an open source, high performant messaging system with a design oriented towards both being as simple and reliable as possible without at the same time trading off scalability. Originally written in Ruby, and then rewritten in Go, a NATS server can nowadays push over 11M messages per second.
In this talk, we will cover how following simplicity as the main design constraint as well as focusing on a limited built-in feature set, resulted in a system which is easy to operate and reason about, making up for an attractive choice for when building many types of distributed systems where low latency and high availability are very important.
You can learn more about NATS at http://www.nats.io
Azure vm introductionLalit RawatWe have discussed on azure virtual machines and provides the wider information on azure which will help to understand the azure modules
Kubernetes Networking 101WeaveworksKubernetes has two simple but powerful network concepts: every Pod is connected to the same network, and Services let you talk to a Pod by name. Bryan will take you through how these concepts are implemented - Pod Networks via the Container Network Interface (CNI), Service Discovery via kube-dns and Service virtual IPs, then on to how Services are exposed to the rest of the world.
Cloud for Kubernetes : Session4WhaTap LabsThis document provides an overview of Azure Kubernetes Service (AKS) and containers on Azure.
It discusses how AKS simplifies deployment, management, and operations of Kubernetes. With AKS, users can scale and run applications with confidence while securing their Kubernetes environment. It also accelerates containerized application development by allowing users to work with open source tools and APIs.
The document then covers common scenarios for using AKS like microservices, machine learning, and IoT. It also discusses how customers like Maersk, OpenAI, Xerox, and Nobel Media have benefited from using AKS and containers on Azure.
Introduction to kubernetesMichal CwienczekThis document provides an introduction to Kubernetes, an open-source system for automating deployment, scaling, and management of containerized applications. It first reviews what Docker is and its features like isolation and compatibility across platforms. It then explains that container orchestration is needed to manage thousands of containers across a cluster, ensure efficient resource use, and automate container lifecycles. Kubernetes is recommended because it is actively developed by major companies, makes scheduling and managing workloads easy through features like rolling updates, and has many extensions available.
OpenStack networking (Neutron) CREATE-NETThese are the slides from the webinar "OpenStack networking (Neutron)", which covered the topics:
- OpenStack Networking: the Neutron project (NaaS);
- Main features of Neutron;
- Advanced networking functionalities in OpenStack.
Google Kubernetes Engine (GKE) deep diveAkash AgrawalThis document provides an overview of Google Kubernetes Engine (GKE) including its architecture and request flow. It discusses GKE features like node pools, cluster scoping, auto repair, and integration with other Google Cloud services. The presenter then covers getting started with GKE, best practices for production usage, and the broader GKE ecosystem which includes GKE, GKE On-Prem, Anthos, and Cloud Run.
CQRS and Event Sourcing in ActionKnoldus Inc.Stands for Command Query Responsibility Segregation and Event Sourcing.
● When combined together they allow us to build more resilient and elastic
hence reactive applications.
● Used for building auditable, scalable, or extremely resilient applications.
● Gives our application a competitive advantage.
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개if kakao황민호(robin.hwang) / kakao corp. DSP개발파트
---
최근 Spring Cloud와 Netflix OSS로 MSA를 구성하는 시스템 기반의 서비스들이 많아지는 추세입니다.
카카오에서도 작년에 오픈한 광고 플랫폼 모먼트에 Spring Cloud 기반의 MSA환경을 구성하여, API Gateway도 적용하였는데 1년 반 정도 운영한 경험을 공유할 예정입니다. 더불어 MSA 환경에서는 API Gateway를 통해 인증을 어떻게 처리하는지 알아보고 OAuth2 기반의 JWT Token을 이용한 인증에 대한 이야기도 함께 나눌 예정입니다.
Kafka Quotas Talk at LinkedInAditya AuradkarThe document discusses implementing client quotas in Apache Kafka to ensure fair sharing of broker resources among clients. It describes enforcing quotas based on client IDs and overriding quotas for specific clients. Metrics are used to monitor client throughput and enforce quotas by delaying requests if clients exceed their limits. The approach aims to improve performance for well-behaved clients by preventing a few misbehaving clients from impacting others. Evaluation results show improved throughput and latency for clients when quotas are enforced.
Packer by HashiCorpŁukasz CieślukPacker is a tool for creating machine and container images (single static unit that contains a pre-configured operating system and installed software) for multiple platforms from a single source configuration.
Autoscaling KubernetescraigboxThis document discusses autoscaling in Kubernetes. It describes horizontal and vertical autoscaling, and how Kubernetes can autoscale nodes and pods. For nodes, it proposes using Google Compute Engine's managed instance groups and cloud autoscaler to automatically scale the number of nodes based on resource utilization. For pods, it discusses using an autoscaler controller to scale the replica counts of replication controllers based on metrics from cAdvisor or Google Cloud Monitoring. Issues addressed include rebalancing pods and handling autoscaling during rolling updates.
[NDC17] Kubernetes로 개발서버 간단히 찍어내기SeungYong Oh데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
Introduction to Kubernetes RBACKublrIncredibly powerful and flexible, Kubernetes role-based access control (RBAC) is an essential tool to effectively manage production clusters. Yet many Ops and DevOps engineers are still facing barriers to efficiently use it at scale. These include a steep learning curve, YAML-based configuration, lack of standardized best practices, and the general complexity of this functionality at large -- it truly can be somewhat overwhelming.
During this meetup Oleg, CTO at Kublr, will discuss Kubernetes RBAC concepts and objects. He'll explore different use cases ranging from simple permission management for in-cluster application accounts to integrations with external identity providers for SSO and enterprise user access management.
Leveraging the Kublr Platform, Oleg will demonstrate how it simplifies the management of access and RBAC rules in a cloud native environment while staying vendor-independent and compatible with any Kubernetes distribution.
Introduction to kubernetesRishabh IndoriaKubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery called Pods. ReplicaSets ensure that a specified number of pod replicas are running at any given time. Key components include Pods, Services for enabling network access to applications, and Deployments to update Pods and manage releases.
Getting Started with Kubernetes VMware TanzuIf you’re working with just a few containers, managing them isn't too complicated. But what if you have hundreds or thousands? Think about having to handle multiple upgrades for each container, keeping track of container and node state, available resources, and more. That’s where Kubernetes comes in. Kubernetes is an open source container management platform that helps you run containers at scale. This talk will cover Kubernetes components and show how to run applications on it.
Openstack 101Kamesh PemmarajuDo you think of cheetahs not RabbitMQ when you hear the word Swift? Think a Nova is just a giant exploding star, not a cloud compute engine. This deck (presented at the OpenStack Boston meetup) provides introduction will answer your many questions. It covers the basic components including: Nova, Swift, Cinder, Keystone, Horizon and Glance.
Kubernetes IntroAntonio Ojea GarciaThis document provides an overview of Kubernetes. It begins by introducing Kubernetes and its origins at Google. It then discusses key Kubernetes concepts like pods, deployments, services, ingress, namespaces, labels, and storage. It explains how Kubernetes provides automation of application deployment, scaling, and management using containers. It also discusses how Kubernetes helps enable continuous integration, continuous deployment, and digital transformation. The document concludes by mentioning the Kubernetes ecosystem and Cloud Native Computing Foundation.
The Zen of High Performance Messaging with NATS NATSThe Zen of High Performance Messaging with NATS
Waldemar Quevedo Salinas, Senior Software Engineer
NATS is an open source, high performant messaging system with a design oriented towards both being as simple and reliable as possible without at the same time trading off scalability. Originally written in Ruby, and then rewritten in Go, a NATS server can nowadays push over 11M messages per second.
In this talk, we will cover how following simplicity as the main design constraint as well as focusing on a limited built-in feature set, resulted in a system which is easy to operate and reason about, making up for an attractive choice for when building many types of distributed systems where low latency and high availability are very important.
You can learn more about NATS at http://www.nats.io
Azure vm introductionLalit RawatWe have discussed on azure virtual machines and provides the wider information on azure which will help to understand the azure modules
Kubernetes Networking 101WeaveworksKubernetes has two simple but powerful network concepts: every Pod is connected to the same network, and Services let you talk to a Pod by name. Bryan will take you through how these concepts are implemented - Pod Networks via the Container Network Interface (CNI), Service Discovery via kube-dns and Service virtual IPs, then on to how Services are exposed to the rest of the world.
Cloud for Kubernetes : Session4WhaTap LabsThis document provides an overview of Azure Kubernetes Service (AKS) and containers on Azure.
It discusses how AKS simplifies deployment, management, and operations of Kubernetes. With AKS, users can scale and run applications with confidence while securing their Kubernetes environment. It also accelerates containerized application development by allowing users to work with open source tools and APIs.
The document then covers common scenarios for using AKS like microservices, machine learning, and IoT. It also discusses how customers like Maersk, OpenAI, Xerox, and Nobel Media have benefited from using AKS and containers on Azure.
Introduction to kubernetesMichal CwienczekThis document provides an introduction to Kubernetes, an open-source system for automating deployment, scaling, and management of containerized applications. It first reviews what Docker is and its features like isolation and compatibility across platforms. It then explains that container orchestration is needed to manage thousands of containers across a cluster, ensure efficient resource use, and automate container lifecycles. Kubernetes is recommended because it is actively developed by major companies, makes scheduling and managing workloads easy through features like rolling updates, and has many extensions available.
OpenStack networking (Neutron) CREATE-NETThese are the slides from the webinar "OpenStack networking (Neutron)", which covered the topics:
- OpenStack Networking: the Neutron project (NaaS);
- Main features of Neutron;
- Advanced networking functionalities in OpenStack.
Google Kubernetes Engine (GKE) deep diveAkash AgrawalThis document provides an overview of Google Kubernetes Engine (GKE) including its architecture and request flow. It discusses GKE features like node pools, cluster scoping, auto repair, and integration with other Google Cloud services. The presenter then covers getting started with GKE, best practices for production usage, and the broader GKE ecosystem which includes GKE, GKE On-Prem, Anthos, and Cloud Run.
CQRS and Event Sourcing in ActionKnoldus Inc.Stands for Command Query Responsibility Segregation and Event Sourcing.
● When combined together they allow us to build more resilient and elastic
hence reactive applications.
● Used for building auditable, scalable, or extremely resilient applications.
● Gives our application a competitive advantage.
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개if kakao황민호(robin.hwang) / kakao corp. DSP개발파트
---
최근 Spring Cloud와 Netflix OSS로 MSA를 구성하는 시스템 기반의 서비스들이 많아지는 추세입니다.
카카오에서도 작년에 오픈한 광고 플랫폼 모먼트에 Spring Cloud 기반의 MSA환경을 구성하여, API Gateway도 적용하였는데 1년 반 정도 운영한 경험을 공유할 예정입니다. 더불어 MSA 환경에서는 API Gateway를 통해 인증을 어떻게 처리하는지 알아보고 OAuth2 기반의 JWT Token을 이용한 인증에 대한 이야기도 함께 나눌 예정입니다.
Kafka Quotas Talk at LinkedInAditya AuradkarThe document discusses implementing client quotas in Apache Kafka to ensure fair sharing of broker resources among clients. It describes enforcing quotas based on client IDs and overriding quotas for specific clients. Metrics are used to monitor client throughput and enforce quotas by delaying requests if clients exceed their limits. The approach aims to improve performance for well-behaved clients by preventing a few misbehaving clients from impacting others. Evaluation results show improved throughput and latency for clients when quotas are enforced.
Packer by HashiCorpŁukasz CieślukPacker is a tool for creating machine and container images (single static unit that contains a pre-configured operating system and installed software) for multiple platforms from a single source configuration.
Autoscaling KubernetescraigboxThis document discusses autoscaling in Kubernetes. It describes horizontal and vertical autoscaling, and how Kubernetes can autoscale nodes and pods. For nodes, it proposes using Google Compute Engine's managed instance groups and cloud autoscaler to automatically scale the number of nodes based on resource utilization. For pods, it discusses using an autoscaler controller to scale the replica counts of replication controllers based on metrics from cAdvisor or Google Cloud Monitoring. Issues addressed include rebalancing pods and handling autoscaling during rolling updates.
[NDC17] Kubernetes로 개발서버 간단히 찍어내기SeungYong Oh데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
Introduction to Kubernetes RBACKublrIncredibly powerful and flexible, Kubernetes role-based access control (RBAC) is an essential tool to effectively manage production clusters. Yet many Ops and DevOps engineers are still facing barriers to efficiently use it at scale. These include a steep learning curve, YAML-based configuration, lack of standardized best practices, and the general complexity of this functionality at large -- it truly can be somewhat overwhelming.
During this meetup Oleg, CTO at Kublr, will discuss Kubernetes RBAC concepts and objects. He'll explore different use cases ranging from simple permission management for in-cluster application accounts to integrations with external identity providers for SSO and enterprise user access management.
Leveraging the Kublr Platform, Oleg will demonstrate how it simplifies the management of access and RBAC rules in a cloud native environment while staying vendor-independent and compatible with any Kubernetes distribution.
Introduction to kubernetesRishabh IndoriaKubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery called Pods. ReplicaSets ensure that a specified number of pod replicas are running at any given time. Key components include Pods, Services for enabling network access to applications, and Deployments to update Pods and manage releases.
Mhug apache stormJoseph NiemiecStorm is a framework for real-time stream processing. It allows users to define stream processing topologies that can process data in real-time. Key constructs in Storm include tuples, streams, spouts, bolts and topologies. Spouts generate streams of tuples, which are then processed by bolts. Bolts can perform operations like filtering, aggregations, persistence to databases etc. Multiple instances of spouts and bolts can run in parallel. Fields grouping determines how to route tuples from spouts to bolts. Storm provides at-least once processing guarantees through replay of tuples on failure. It is used by many companies for applications like real-time analytics, monitoring, fraud detection and more.
AWS Webcast - Amazon Kinesis and Apache StormAmazon Web ServicesJoin us for a for a Amazon Kinesis tutorial webinar. In this session we will provide a reference architecture and instructions for building a system that performs real-time sliding-windows analysis over streaming clickstream data. We will use Amazon Kinesis for managed ingestion of streaming data at scale with the ability to replay past data, and run sliding-window computation using Apache Storm. We’ll demonstrate in the webinar on how to build the system and deploy on AWS and walkthrough all the steps from ingestion, processing, and storing to visualizing of the data in real-time.
하둡 좋은약이지만 만병통치약은 아니다민철 정민철열린세미나 첫번째 발표자료
과거시스템에서의 문제점
그리고 하둡에서는 어떻게 그런문제를 해결했는설명하고
사실 몇가지 불편한점에 대한 이야기
https://www.facebook.com/groups/576473599127259
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for HadoopSeungYong Baek하둡 기초 개념
빅 데이터 기초 개념
하둡과 NFS
Learn about Hadoop basic
Hadoop with NetApp NFS Connector
(TR-4382: NetApp FAS NFS Connector for Hadoop)
Zeppelin(Spark)으로 데이터 분석하기SangWoo Kim스사모 (한국 스파크 사용자 모임) 페이스북 그룹
https://www.facebook.com/groups/sparkkoreauser
Zeppelin (오픈소스)
http://zeppelin-project.org/
https://github.com/NFLabs/zeppelin
Apache spark 소개 및 실습동현 강빅데이터 개념 부터 시작해서 빅데이터 분석 플랫폼의 출현(hadoop)과 스파크의 등장배경까지 풀어서 작성된 spark 소개 자료 입니다.
스파크는 RDD에 대한 개념과 spark SQL 라이브러리에 대한 자료가 조금 자세히 설명 되어있습니다. (텅스텐엔진, 카탈리스트 옵티마이져에 대한 간략한 설명이 있습니다.)
마지막에는 간단한 설치 및 interactive 분석 실습자료가 포함되어 있습니다.
원본 ppt 를 공개해 두었으니 언제 어디서든 필요에 따라 변형하여 사용하시되 출처만 잘 남겨주시면 감사드리겠습니다.
다른 슬라이드나, 블로그에서 사용된 그림과 참고한 자료들은 작게 출처를 표시해두었는데, 본 ppt의 초기버전을 작성하면서 찾았던 일부 자료들은 출처가 불분명한 상태입니다. 자료 출처를 알려주시면 반영하여 수정해 두도록하겠습니다. (제보 부탁드립니다!)
OpenStack Swift DebuggingOpenStack Korea Community오픈스택 커뮤니티 - 제1회 공개 SW 커뮤니티데이 (2017년 9월 정기 세미나 대체)
- 일시: 9월 22일 금요일
- 발표자: 장태희 (운영진, 스터디 매니저)
- 행사 정보: https://www.facebook.com/groups/openstack.kr/permalink/1826976907316452/
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?nexusz99드랍박스, nDrive 등과 같은 클라우드 스토리지 서비스들은 데이터를 어떻게 저장하는지에 대한 이론적 내용과 실제 구현 내용을 살펴봅니다. 이 발표에서는 OpenStack 의 swift라는 Object Storage 를 이용하여 이론이 어떻게 구현되어있는지 알아봅니다.
Golang Project Guide from A to Z: From Feature Development to Enterprise Appl...Kyuhyun ByunThis comprehensive presentation offers a deep dive into Go language development methodologies, covering projects of all scales. Whether you're working on a small prototype or a large-scale enterprise application, this guide provides valuable insights and best practices.
Key topics covered:
Distinguishing between small and large projects in Go
Code patterns for small, feature-focused projects
Comparison of Handler and HandlerFunc approaches
Enterprise application design using Domain Driven Design (DDD)
Detailed explanations of architectural layers: Presenter, Handler, Usecase, Service, Repository, and Recorder
NoSQL (DynamoDB) modeling techniques
Writing effective test code and using mocking tools like 'counterfeiter'
Essential tools for production-ready applications: APM, error monitoring, metric collection, and logging services
This presentation is ideal for Go developers of all levels, from beginners looking to structure their first projects to experienced developers aiming to optimize large-scale applications. It provides practical advice on code organization, testing strategies, and operational considerations to help you build robust, maintainable Go applications.
Whether you're starting a new project or looking to improve an existing one, this guide offers valuable insights into Go development best practices across different project scales and complexities.
Mcollective orchestration tool 소개태준 문RabbitMQ/ActiveMQ 와 같은 비동기 메시징 미들웨어를 이용하여 다량의 서버를 orchestration(command & control) 할 수 있는 mcollective에 대한 한글 ppt 자료입니다. 상세한 내용은 http://wiki.tunelinux.pe.kr/x/LQAy 를 참고하시면 됩니다.
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)Cloud-Barista Community[ CB-Larva - 멀티클라우드 인프라 및 응용을 위한 네트워킹 (Networking for multicloud infrastructure and applications) ]
- 글로벌 스케일 네트워킹
- Cloud Adaptive Network 구조 및 주요 기능
- CLADNet 기술 시연: 글로벌 스케일 MCIS에 CLADNet 입혀 보기
- Cloud Adaptive Network 활용 예시
- CB-Larva의 현재, 비전, 그리고 공개SW
# 발표영상(YouTube) : https://youtu.be/6ylyEoQvNN8?t=7741
----------------------------------------------------------------------------------------------------------
# Cloud-Barista Community Homepage : https://cloud-barista.github.io
# Cloud-Barista Community GitHub : https://github.com/cloud-barista
# Cloud-Barista YouTube channel : https://cloud-barista.github.io/youtube
# Cloud-Barista ݺߣShare : https://cloud-barista.github.io/slideshare
2. 클러스터에 필요한 것
● 클러스터 구성원 관리
o 살았니? 죽었니?
o 누가 마스터?
● 클러스터 구성원 간 정보 공유
● 분산 서버의 동시 접근 제어
3. ZooKeeper 갵Ӛ
● 분산 시스템을 위한 코디네이터
● 서버와 클라이언트로 구성
o 서버 앙상블: n개 서버로 단일 주키퍼 클러스터 구성
o 클라이언트: 앙상블에 속한 서버에 연결하여, 서비스
사용
● 서버 제공 서비스
o 데이터 스토리지 (영속 데이터/임시 데이터)
클러스터 구성원 간 데이터 공유
o 데이터 변경 통지(Watch)
클러스터 멤버십 관리
o 시퀀스 노드
마스터, 분산 락 등에 활용
5. ZNode
● ZNode
o ZooKeeper는 계층형 네임스페이스를 가짐
o 계층의 각 노드를 ZNode라고 부름
계층의 각 경로는 ‘/’로 구분
o znode는 데이터를 가질 수 있음 (byte[])
o znode는 자식 노드를 가질 수 있음
예, /svc 노드는 /svc/nodes 노드를 가질 수 있음
● 영속 종류
o PERSISTENT: 클라이언트가 종료되도 유지
o EPHEMERAL: znode를 생성한 클라이언트의 연결이
끊기면 삭제
자식 znode를 가질 수 없음
6. 주요 오퍼레이션
● 주요 오퍼레이션
o create
o delete
o exists
o getChildren
o getData
o setData
● 언어 별 바인딩 제공
o Java, C, Python, Ruby, Scala 등
https://cwiki.apache.org/confluence/display/ZOOKEEPER/ZKClientBindings
7. ZNode Watch
● znode의 변화를 통지 받음
● 오퍼레이션 실행시 Wacher 등록
o zk.getChildren(“/mysvc/nodes”, watcher)
ZK 서버클라이언트 클라이언트
Watcher 등록
변경 통지
znode 변경
8. ZNode Watch 이벤트 종류
Watch 생성
오퍼레이션
znode 생성 znode 삭제 자식 생성 자식 삭제 znode 값 변경
exists NodeCreated NodeDeleted NodeDataCha
nged
getData NodeDeleted NodeDataCha
nged
getChildren NodeDeleted NodeChildren
Changed
NodeChildren
Changed
9. Watch 특징
● 일회성 이벤트 수신
o 다시 Watch하고 싶으면 재등록해야 함
o 재등록 전에 발생한 변경은 수신하지 못함
● 상태 변경 요청한 클라이언트가 성공 코드를
받은 이후에, Watcher를 등록한 클라이언트
에 통지 됨
● ZooKeeper의 변경 순서대로 Watch 이벤트를
수신 함
10. 시퀀스 노드
● 자식 노드가 생성한 순서에 따라 일렬 번호를
가짐
o 예, /svc 노드의 자식 노드로 /nodes를 시퀀스 노드로
생성하면 다음과 같은 순서로 노드 생성
/svc/nodes0000000001
/svc/nodes0000000002
o PERSISTENT와 EPHEMERAL에 모두 적용 가능
o 시퀀스 범위 (4 byte 정수)
-2,147,483,647 ~ 2,147,483,647 (-21억~21억)
12. 그룹 관리: 자식 ZNODE, Watch
● 그룹 멤버십 목록을 가질 부모 znode 생성
○ 예: /members
멤버십 참여
● 부모 znode에 자신을 위한 자식 znode를
ephemeral로 생성
○ 예, /members/m-hostip
● 자식 znode 데이터는 다른 구성원이 자신과 통신
하는데 필요한 정보 저장 (예, ip/port 등)
멤버십 탈퇴
● 자신에 해당하는 자식 znode를 삭제
멤버십 목록, 주기적 갱신 (각 클라이언트)
● 주기적으로 getChildlen 실행해서 목록
갱신
멤버십 목록, Watch 이용 (각 클라이언트)
● 부모 znode에 getChildlen로 WATCH
등록하고, getChildlen 결과로 목록 갱
신
● NodeChildrenChanged 이벤트 수신 시,
위 과정 재실행
13. 마스터 선출: 시퀀스 노드, WATCH
● 마스터 후보를 보관할 znode 생성
○ 예: /masters
마스터 후보 등록
● 부모 znode에 자신을 위한 자식 znode를 시퀀
스 & ephemeral로 생성
○ 예, /masters/m-0000000010
마스터 선출 (각 후보 클라이언트에서 진행)
● 부모 znode에 getChild로 WATCH 등록
● NodeChildrenChanged 이벤트 수신시,
현재 마스터가 없는 지 확인
● 마스터에 해당하는 자식 znode가 없으
면
○ 부모 znode에 자식 znode 를 구한
뒤 시퀀스 번호가 가장 작은
znode를 마스터로 선택
● 부모 znode에 getChild로 WATCH 등록
14. 기타 용도
● 분산 락
o EPHEMERAL 사용
● 이벤트 통지
o WATCH 사용
● pub/sub
o SEQUENCE 사용
● 분산 카운터
o SEQUENCE 또는 znode의 version 사용
● 디렉토리 서비스
o 활성화된 서비스 목록 등 제공
16. 버전
● zxid: ZooKeeper Transaction ID
o 모든 변경은 고유 트랜잭션 ID를 가짐
o 순서를 가짐
● version
o znode가 변경될 때 마다 버전 값 증가
● cversion
o 자식 znode가 변경될 때 마다 버전 값 증가
17. 서버와 클라이언트 연결
ZK클라이언트 ZK서버
ZK서버
ZK서버(리더)
ZK서버
ZK서버
ZK클라이언트
연결 유지를 위해
주기적으로 PING
전송
연결된 서버에서
읽기 실행
일정 시간 동안 클라이언트로
부터 PING이 없으면 세션 종료
처리
ZK클라이언트
연결된 서버에 변
경 요청
리더에 변경 요청을 전달
하면,
리더가 트랜잭션 생성 후,
전 노드에 전파
PING 전송 실패시,
다른 서버에 연결
18. Quorum: 가용성, 데이터 변경
● 과반 정족수 이상 서버 다운시, 서비스 중지
o 예, 2대 중 1대 다운되면 서비스 중지
o 이런 이유로 서버 개수는 홀수로 맞춤 (3, 5 등)
● 데이터 변경시 성공 기준
o 리더 서버가 트랜잭션 생성 후 다른 서버에 전파할 때,
과반 정족수 이상 트랜잭션 성공하면 클라이언트에
변경 성공 결과 리턴
19. 일관성 보장
● Sequential Consistency: 변경 요청은 순서대
로 적용
● Atomicity: 변경은 성공 또는 실패
● Single System Image: 클라이언트는 연결한
서버에 상관없이 동일 서비스 사용
● Reliability: 클라이언트가 성공 코드를 받으면,
서버에 반영됨을 보장
● Timeliness: 클라이언트는 일정 시간내에 최
신 상태를 사용 (Eventual Consistency)
21. 믿고 쓸 만한 분산 코디네이터
● 다양한 오픈소스에서 채택
o Hadoop: 마스터(Name Node) 이중화
o HBase: 마스터 선출, 리전 데이터 공유 등에 사용
o Storm: 서버 간 데이터 공유 등에 사용
o Kafka: 클러스터 관리
o Neo4j: 마스터 선출에 사용