This document discusses designing a real-time service platform using Node.js and building a distributed server environment. It covers setting up load balancing with Nginx and Zookeeper for scaling, designing the server architecture for authentication, assigning servers, and monitoring servers with tools like PM2, InfluxDB and Grafana. The document provides code examples and explanations for key aspects like authentication, server assignment, load balancing algorithms and monitoring the distributed system.
Backing Up Amazon EC2 with Amazon EBS Snapshots (CMP301-R1) - AWS re:Invent 2018Amazon Web Services
With Amazon EBS, you can easily create a simple point-in-time backup for your Amazon EC2 instances. In this deep dive session, you learn how to use Amazon EBS snapshots to back up your Amazon EC2 environment. We review how snapshots work, and we share best practices for tagging snapshots, cost management, and snapshot automation.
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
An overview of one of the worlds largest content delivery networks, how it is used for accerlation of websites and applications for dynamic and static content. We will cover recent feature additions including integration of the new AWS WAF and other security features.
VMware terminology can be confusing
this presentation tries to clarify some names and analyze vRealize Operations in-depth.
Check my books about VMware products at https://beacons.ai/tagido
Backing Up Amazon EC2 with Amazon EBS Snapshots (CMP301-R1) - AWS re:Invent 2018Amazon Web Services
With Amazon EBS, you can easily create a simple point-in-time backup for your Amazon EC2 instances. In this deep dive session, you learn how to use Amazon EBS snapshots to back up your Amazon EC2 environment. We review how snapshots work, and we share best practices for tagging snapshots, cost management, and snapshot automation.
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
An overview of one of the worlds largest content delivery networks, how it is used for accerlation of websites and applications for dynamic and static content. We will cover recent feature additions including integration of the new AWS WAF and other security features.
VMware terminology can be confusing
this presentation tries to clarify some names and analyze vRealize Operations in-depth.
Check my books about VMware products at https://beacons.ai/tagido
Sensitive customer data needs to be protected throughout AWS. This session discusses the options available for encrypting data at rest in AWS. It focuses on several scenarios, including transparent AWS management of encryption keys on behalf of the customer to provide automated server-side encryption and customer key management using partner solutions or AWS CloudHSM. This session is helpful for anyone interested in protecting data stored in AWS.
Modernizing Applications by Replacing F5 with the NGINX Application Delivery ...NGINX, Inc.
F5’s rigid and centralized approach to load balancing and web application firewall (WAF) prevents enterprises from modernizing their applications. In this webinar we describe how replacing or augmenting your F5 deployment with the NGINX application delivery controller and Signal Sciences helps reduce costs and improve agility.
On-Demand Webinar:
https://www.nginx.com/resources/webinars/modernizing-replacing-f5-nginx-application-delivery-controller-signal-sciences/
If you're a system administrator, technician, or IT manager looking to reduce and simplify your multi-platform monitoring workload, this PowerPoint is for you. Learn tips for easier application monitoring across your IBM i, Windows, AIX, and Linux platforms. We will dissect complex systems monitoring by introducing best practices and smart techniques that will help you.
Choose Right Stream Storage: Amazon Kinesis Data Streams vs MSKSungmin Kim
This presentation compares Amazon Kinesis Data Streams to Managed Streaming for Kafka (MSK) in both architectural perspective and operational perspective. In addition, it shows common architectural patterns: (1) Data Hub: Event-Bus, (2) Log Aggregation, (3) IoT, (4) Event sourcing and CQRS.
Local Testing and Deployment Best Practices for Serverless Applications - AWS...Amazon Web Services
Learning Objectives:
- Learn best practices for testing, debugging, and deploying serverless applications
- Understand how to use the AWS Serverless Application Model (AWS SAM) to model and deploy serverless applications
- Learn to use the AWS SAM Local CLI tool to locally test Lambda functions
Everything You Need To Know About Persistent Storage in KubernetesThe {code} Team
Applications need data. Containers remain ephemeral but we don't want our data to disappear. So how does it work with Kubernetes?
This session will examine the individual pieces required for creating persistent applications in Kubernetes. You will learn about in-tree and out-of-tree storage drivers, PersistentVolumes (PV), PersistentVolumeClaims (PVC), Dyanamic Provisioning, how to use all of these in your Deployments and StatefulSets, high availability, and what happens to the volumes when you delete objects. Get ramped up on everything you need to know about using persistent storage in Kubernetes
This presentation was delivered at Open Source Summit EU 2017
This session is focused on the Hashicorp vault which is a secret management tool. We can manage secrets for 2-3 environments but what if we have more than 10 environments, then it will become a very painful task to manage them when secrets are dynamic and need to be rotated after some time. Hashicorp vault can easily manage secrets for both static and dynamic also it can help in secret rotations.
OSMC 2022 | Ignite: Observability with Grafana & Prometheus for Kafka on Kube...NETWAYS
Self-managing a highly scalable distributed system with Apache Kafka® at its core is not an easy feat. That’s why operators prefer tooling such as Confluent Control Center for administering and monitoring their deployments. However, sometimes, you might also like to import monitoring data into a third-party metrics aggregation platform for service correlations, consolidated dashboards, root cause analysis, or more fine-grained alerts. If you’ve ever asked a question along these lines: Can I export JMX data from Confluent clusters to my monitoring system with minimal configuration? What if I could correlate this service’s data spike with metrics from Confluent clusters in a single UI pane? Can I configure some Grafana dashboards for Confluent clusters?
This talk will enable you on achieving the below:
Monitoring Your Event Streams: Integrating Confluent with Prometheus and Grafana (this article)
Monitoring Your Event Streams: Tutorial for Observability Into Apache Kafka Clients
Sensitive customer data needs to be protected throughout AWS. This session discusses the options available for encrypting data at rest in AWS. It focuses on several scenarios, including transparent AWS management of encryption keys on behalf of the customer to provide automated server-side encryption and customer key management using partner solutions or AWS CloudHSM. This session is helpful for anyone interested in protecting data stored in AWS.
Modernizing Applications by Replacing F5 with the NGINX Application Delivery ...NGINX, Inc.
F5’s rigid and centralized approach to load balancing and web application firewall (WAF) prevents enterprises from modernizing their applications. In this webinar we describe how replacing or augmenting your F5 deployment with the NGINX application delivery controller and Signal Sciences helps reduce costs and improve agility.
On-Demand Webinar:
https://www.nginx.com/resources/webinars/modernizing-replacing-f5-nginx-application-delivery-controller-signal-sciences/
If you're a system administrator, technician, or IT manager looking to reduce and simplify your multi-platform monitoring workload, this PowerPoint is for you. Learn tips for easier application monitoring across your IBM i, Windows, AIX, and Linux platforms. We will dissect complex systems monitoring by introducing best practices and smart techniques that will help you.
Choose Right Stream Storage: Amazon Kinesis Data Streams vs MSKSungmin Kim
This presentation compares Amazon Kinesis Data Streams to Managed Streaming for Kafka (MSK) in both architectural perspective and operational perspective. In addition, it shows common architectural patterns: (1) Data Hub: Event-Bus, (2) Log Aggregation, (3) IoT, (4) Event sourcing and CQRS.
Local Testing and Deployment Best Practices for Serverless Applications - AWS...Amazon Web Services
Learning Objectives:
- Learn best practices for testing, debugging, and deploying serverless applications
- Understand how to use the AWS Serverless Application Model (AWS SAM) to model and deploy serverless applications
- Learn to use the AWS SAM Local CLI tool to locally test Lambda functions
Everything You Need To Know About Persistent Storage in KubernetesThe {code} Team
Applications need data. Containers remain ephemeral but we don't want our data to disappear. So how does it work with Kubernetes?
This session will examine the individual pieces required for creating persistent applications in Kubernetes. You will learn about in-tree and out-of-tree storage drivers, PersistentVolumes (PV), PersistentVolumeClaims (PVC), Dyanamic Provisioning, how to use all of these in your Deployments and StatefulSets, high availability, and what happens to the volumes when you delete objects. Get ramped up on everything you need to know about using persistent storage in Kubernetes
This presentation was delivered at Open Source Summit EU 2017
This session is focused on the Hashicorp vault which is a secret management tool. We can manage secrets for 2-3 environments but what if we have more than 10 environments, then it will become a very painful task to manage them when secrets are dynamic and need to be rotated after some time. Hashicorp vault can easily manage secrets for both static and dynamic also it can help in secret rotations.
OSMC 2022 | Ignite: Observability with Grafana & Prometheus for Kafka on Kube...NETWAYS
Self-managing a highly scalable distributed system with Apache Kafka® at its core is not an easy feat. That’s why operators prefer tooling such as Confluent Control Center for administering and monitoring their deployments. However, sometimes, you might also like to import monitoring data into a third-party metrics aggregation platform for service correlations, consolidated dashboards, root cause analysis, or more fine-grained alerts. If you’ve ever asked a question along these lines: Can I export JMX data from Confluent clusters to my monitoring system with minimal configuration? What if I could correlate this service’s data spike with metrics from Confluent clusters in a single UI pane? Can I configure some Grafana dashboards for Confluent clusters?
This talk will enable you on achieving the below:
Monitoring Your Event Streams: Integrating Confluent with Prometheus and Grafana (this article)
Monitoring Your Event Streams: Tutorial for Observability Into Apache Kafka Clients
We offer custom mobile website design that is both affordable and results driven. We are a leader in mobile web and have designed hundreds of custom mobile websites.
How To Set Up SQL Load Balancing with HAProxy - SlidesSeveralnines
We continuously see great interest in MySQL load balancing and HAProxy, so we thought it was about time we organised a live webinar on the topic! Here is the replay of that webinar!
As most of you will know, database clusters and load balancing go hand in hand.
Once your data is distributed and replicated across multiple database nodes, a load balancing mechanism helps distribute database requests, and gives applications a single database endpoint to connect to.
Instance failures or maintenance operations like node additions/removals, reconfigurations or version upgrades can be masked behind a load balancer. This provides an efficient way of isolating changes in the database layer from the rest of the infrastructure.
In this webinar, we cover the concepts around the popular open-source HAProxy load balancer, and show you how to use it with your SQL-based database clusters. We also discuss HA strategies for HAProxy with Keepalived and Virtual IP.
Agenda:
* What is HAProxy?
* SQL Load balancing for MySQL
* Failure detection using MySQL health checks
* High Availability with Keepalived and Virtual IP
* Use cases: MySQL Cluster, Galera Cluster and MySQL Replication
* Alternative methods: Database drivers with inbuilt cluster support, MySQL proxy, MaxScale, ProxySQL
OpenSource API Server based on Node.js API framework built on supported Node.js platform with Tooling and DevOps. Use cases are Omni-channel API Server, Mobile Backend as a Service (mBaaS) or Next Generation Enterprise Service Bus. Key functionality include built in enterprise connectors, ORM, Offline Sync, Mobile and JS SDKs, Isomorphic JavaScript and Graphical API creation tool.
PLNOG 17 - Tomasz Stachlewski - Infrastruktura sieciowa w chmurze AWSPROIDEA
Celem prezentacji jest przedstawienie sposobu tworzenia i zarządzania infrastrukturą sieciową w chmurze (AWS). Podczas prezentacji użytkownicy dowiedzą się z jakich komponentów składa się infrastruktura w chmurze, zapoznają się z tematyką VPC (Virtual Private Cloud), Security Group, Direct Connect, Avaibility Zone, Route53, Regions. Dodatkowo dowiedzą się jak należy projektować systemy aby były określane jako HA oraz w jaki sposób można tworzyć rozwiązania hybrydowe i połączyć chmurę z istniejącą infrastrukturą on-premise. Dodatkowo słuchacze zapoznają się ze sposobem zarządzania infrastrukturą sieciową jak kodem (tzw. IaC - Infrastructure as Code) – co pozwala w szybki sposób tworzyć i zarządzać całością infrastruktury sieciowej w chmurze.
Load Balancing MySQL with HAProxy - SlidesSeveralnines
Agenda:
* What is HAProxy?
* SQL Load balancing for MySQL
* Failure detection using MySQL health checks
* High Availability with Keepalived and Virtual IP
* Use cases: MySQL Cluster, Galera Cluster and MySQL Replication
* Alternative methods: Database drivers with inbuilt cluster support, MySQL proxy, MaxScale, ProxySQL
Bare Metal to OpenStack with Razor and ChefMatt Ray
Slides from the OpenStack Spring 2013 Summit workshop presented by Egle Sigler (@eglute) and Matt Ray (@mattray) from Rackspace and Opscode respectively. Please refer to http://anystacker.com/ for additional content.
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)Kai Wähner
High level introduction to Confluent REST Proxy and Schema Registry (leveraging Apache Avro under the hood), two components of the Apache Kafka open source ecosystem. See the concepts, architecture and features.
AWS CloudFormation Automation, TrafficScript, and Serverless architecture wit...PolarSeven Pty Ltd
Chris Kawchuck has 20 years experience in the Telecom and Service provider industry. He will be demonstrating how easy it is to spin up a Brocade vADC in AWS; enabling serverless architectures using S3 buckets, and accomplish real-time traffic rewrites to get you out of sticky situations.
Learn about:
1. Load balancing and scaling options available on AWS
2. Automating the Brocade vADC spin up using Cloudformation Templates
3. Enabling use of "Serverless" web pages in AWS 4.Taking care of tricky situations using TrafficScript
Implementing any 3rd party Load Balancer from the Amazon AWS Marketplace can be a daunting task. Not only does one have to learn the vendor's specific interface, you also need to perform quite a few administrative tasks to setup front end IPs, back end pools, clustering, and so on.
Brocade has published a CloudFormation Template (CFT) which takes all the hard work out of setting it up and operating. Using DevOps tools and open source scripts, we not only automate the deployment of the Brocade vADC within AWS, but all the configuration you need to administer, cluster, and provision your Load Balancers; including public IPs and your back-end server pools.
We would like you to try it, and take advantage of the powerful feature of the Brocade vADC.
https://github.com/dkalintsev/Brocade/tree/master/vADC/CloudFormation/Templates/Variants-and-experimental/Configured-by-Puppet
* Presented at the Sydney AWS User Group session 1st February 2017
http://www.meetup.com/AWS-Sydney/
Hosted and organised by PolarSeven - http://polarseven.com
View the full video presentation here:
https://youtu.be/rKTG2zjQS6o
Quick introduction to Apache OpenWhisk, an open source, distributed Serverless platform that executes functions (fx) in response to events at any scale. OpenWhisk manages the infrastructure, servers and scaling using Docker containers so you can focus on building amazing and efficient applications.
Scalable Architecture Design
DEVIEW 2013 에서 발표한 "오픈소스를 활용한 분산 아키텍처 구현기술" 장표입니다.
Scalable Architecture 디자인을 위해 필요한 다양한 구현 기술 중 몇가지를 소개해 드립니다.
관련된 내용으로 문의 있으시면 메일로 연락 주세요~
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
18. is ideal for building dashboards, activity streams, notification
and chat systems, backend-less apps and websites, real-time
collaboration, live statistics, remote controls, multiplayer games,
and more.
REAL-TIME SERVICE PLATFORM
41. CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
NGINX
HA PROXY
ELB
Elastic Load Balancing (AWS)
Websocket 을 지원하지 않는,
IE 에서 socket.io로 접속할 때
xhr-polling
42. CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
NGINX
HA PROXY
ELB
Elastic Load Balancing (AWS)
같은 서버에 polling 해야만 함
43. CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
NGINX
HA PROXY
ELB
Elastic Load Balancing (AWS)
같은 서버에 polling 해야만 함
CHAT SERVERX
44. CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
NGINX
upstream io_nodes {
ip_hash;
server 127.0.0.1:6001;
server 127.0.0.1:6002;
server 127.0.0.1:6003;
server 127.0.0.1:6004;
}
Client 의 IP 를 해싱하여 분배
45. CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
HA PROXY
backend io_nodes
balance source
server 127.0.0.1:6001 . . . .
server 127.0.0.1:6002 . . . .
server 127.0.0.1:6003 . . . .
server 127.0.0.1:6004 . . . .
Client 의 IP 를 해싱하여 분배 (v1.5 부터 SSL 지원)
54. REST SERVER
REST SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
HA PROXY
HA PROXY
REDIS
publish
subscribe
Broker
(pub/sub server)
Publisher
Subscriber 1
Subscriber 2
Subscriber 3
redis rabbitMQ
62. REST SERVER
REST SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
HA PROXY
123.0.0.2:9002
123.0.0.1:9001
123.0.0.2:9002
123.0.0.3:9004
어느 서버에
접속해?
63. REST SERVER
REST SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
HA PROXY
123.0.0.2:9002
123.0.0.1:9001
123.0.0.2:9002
123.0.0.3:9004
어느 서버에
접속해?
64. REST SERVER
REST SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
HA PROXY
123.0.0.2:9002
123.0.0.1:9001
123.0.0.2:9002
123.0.0.3:9004
어느 서버에
접속해?
REDIS
ABCDEFG01234인증 토큰
ABCDEFG01234
SET 토큰
GET 토큰
70. REST SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
123.0.0.1:9001
123.0.0.2:9002
123.0.0.3:9004
서버 목록을 모두 가지고 있어야 함.
장애난 서버와 신규 추가된 서버 정보도 동기화 되어야 함
71. REST SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
123.0.0.1:9001
123.0.0.2:9002
123.0.0.3:9004
zookeeper
watching node
변경된 노드 정보 동기화
72. REST SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
123.0.0.1:9001
123.0.0.2:9002
123.0.0.3:9004
zookeeper
watching node
변경된 노드 정보 동기화
create EPHEMERAL node
임시 노드로 서버 정보 생성
The King of Coordination
apache zookeeper
- DISTRIBUTED LOCKING
- SERVICE MANAGEMENT
(LOAD BALANCER, DNS . . .)
73. REST SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
123.0.0.1:9001
123.0.0.2:9002
123.0.0.3:9004
zookeeper
watching node
변경된 노드 정보 동기화
create EPHEMERAL node
임시 노드로 서버 정보 생성
85. https://github.com/Unitech/pm2
PM2 is a production process manager for Node.js
applications with a built-in load balancer .
It allows you to keep applications alive forever ,
to reload them without downtime and to facilitate
common system admin tasks.
94. CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
admin
Log Collector
InfluxDB
NGINX
Socket.IO
(separated namespace for monitoring)
{
pid : process.pid,
arch : process.arch,
platform : process.platform,
uptime : process.uptime(),
memory : process.memoryUsage(),
// 그 외
// 서버에 연결된 Client 수
// 체팅방 수 등
}
95. CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
admin
Log Collector
InfluxDB
NGINX
Influx.writePoint()
Socket.IO-client
96. CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
CHAT SERVER
admin
Log Collector
InfluxDB
NGINX +
//
nginx
설정
auth_basic
Restricted;
auth_basic_user_file
/path/to/my/htpasswd/file;
99. Availability Zone #1
Auth Servers
(EC2 instances)
Chat Servers
(EC2 instances)
redis
(ElastiCache)
zookeeper
(EC2 instances)
message DB
(DynamoDB)
security group
security group security group security group
100. Availability Zone #1
Auth Servers
(EC2 instances) Chat Servers
(EC2 instances)
redis
(ElastiCache)
zookeeper
(EC2 instances)
message DB
(DynamoDB)
security
group
security group security group security group
Availability Zone #2
Auth Servers
(EC2 instances) Chat Servers
(EC2 instances)
redis
(ElastiCache)
zookeeper
(EC2 instances)
message DB
(DynamoDB)
security
group
security group security group security group
Auto Scaling group
VPC
Elastic Load Balancing
101. Availability Zone #1
Auth Servers
(EC2 instances) Chat Servers
(EC2 instances)
redis
(ElastiCache)
zookeeper
(EC2 instances)
message DB
(DynamoDB)
security
group
security group security group security group
Availability Zone #2
Auth Servers
(EC2 instances) Chat Servers
(EC2 instances)
redis
(ElastiCache)
zookeeper
(EC2 instances)
message DB
(DynamoDB)
security
group
security group security group security group
Auto Scaling group
VPC
Elastic Load Balancing
102. Availability Zone #1
Auth Servers
(EC2 instances) Chat Servers
(EC2 instances)
redis
(ElastiCache)
zookeeper
(EC2 instances)
message DB
(DynamoDB)
security
group
security group security group security group
Availability Zone #2
Auth Servers
(EC2 instances) Chat Servers
(EC2 instances)
redis
(ElastiCache)
zookeeper
(EC2 instances)
message DB
(DynamoDB)
security
group
security group security group security group
Auto Scaling group
VPC - Service Platform
Elastic Load Balancing
VPC - Operation
VPC peeringLog Collector
(EC2 instances)
InfluxDB
(EC2 instances)
Grafana
(EC2 instance)
security group security group
Administrator
103. Availability Zone #1
Auth Servers
(EC2 instances) Chat Servers
(EC2 instances)
redis
(ElastiCache)
zookeeper
(EC2 instances)
message DB
(DynamoDB)
security
group
security group security group security group
Availability Zone #2
Auth Servers
(EC2 instances) Chat Servers
(EC2 instances)
redis
(ElastiCache)
zookeeper
(EC2 instances)
message DB
(DynamoDB)
security
group
security group security group security group
Auto Scaling group
VPC - Service Platform
Elastic Load Balancing
VPC - Operation
VPC peeringLog Collector
(EC2 instances)
InfluxDB
(EC2 instances)
Grafana
(EC2 instance)
security group security group
Administrator
104. VPC - Authorization Service
VPC - AAA 서비스 플랫폼
VPC - BBB 서비스 플랫폼
VPC - 실시간 서비스 플랫폼
AAA 서비스 Clients 실시간 서비스 Clients
VPC - 운영관리
실시간 자원/성능 모니터링, 통합 로그 수집
. . . . .
VPC peering