Jenkins is an open source automation server written in Java. Jenkins helps to automate the non-human part of software development process, with continuous integration and facilitating technical aspects of continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat.
Debezium is a Kafka Connect plugin that performs Change Data Capture from your database into Kafka. This talk demonstrates how this can be leveraged to move your data from one database platform such as MySQL to PostgreSQL. A working example is available on GitHub (github.com/gh-mlfowler/debezium-demo).
** DevOps Training: https://www.edureka.co/devops **
This Edureka tutorial on "Jenkins pipeline Tutorial" will help you understand the basic concepts of a Jenkins pipeline. Below are the topics covered in the tutorial:
1. The need for Continuous Delivery
2. What is Continuous Delivery?
3. Features before the Jenkins Pipeline
4. What is a Jenkins Pipeline?
5. What is a Jenkinsfile?
6. Pipeline Concepts
7. Hands-On
Check our complete DevOps playlist here (includes all the videos mentioned in the video): http://goo.gl/O2vo13
Understanding MicroSERVICE Architecture with Java & Spring BootKashif Ali Siddiqui
This is a deep journey into the realm of "microservice architecture", and in that I will try to cover each inch of it, but with a fixed tech stack of Java with Spring Cloud. Hence in the end, you will be get know each and every aspect of this distributed design, and will develop an understanding of each and every concern regarding distributed system construct.
Amazon Virtual Private Cloud (VPC): Networking Fundamentals and Connectivity ...Amazon Web Services
In this session, we will walk through the fundamentals of Amazon Virtual Private Cloud (VPC). We will discuss core VPC concepts including picking your IP space, subnetting, routing, security, NAT and VPC Endpoints.
Jenkins is an open source automation server written in Java. Jenkins helps to automate the non-human part of software development process, with continuous integration and facilitating technical aspects of continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat.
Debezium is a Kafka Connect plugin that performs Change Data Capture from your database into Kafka. This talk demonstrates how this can be leveraged to move your data from one database platform such as MySQL to PostgreSQL. A working example is available on GitHub (github.com/gh-mlfowler/debezium-demo).
** DevOps Training: https://www.edureka.co/devops **
This Edureka tutorial on "Jenkins pipeline Tutorial" will help you understand the basic concepts of a Jenkins pipeline. Below are the topics covered in the tutorial:
1. The need for Continuous Delivery
2. What is Continuous Delivery?
3. Features before the Jenkins Pipeline
4. What is a Jenkins Pipeline?
5. What is a Jenkinsfile?
6. Pipeline Concepts
7. Hands-On
Check our complete DevOps playlist here (includes all the videos mentioned in the video): http://goo.gl/O2vo13
Understanding MicroSERVICE Architecture with Java & Spring BootKashif Ali Siddiqui
This is a deep journey into the realm of "microservice architecture", and in that I will try to cover each inch of it, but with a fixed tech stack of Java with Spring Cloud. Hence in the end, you will be get know each and every aspect of this distributed design, and will develop an understanding of each and every concern regarding distributed system construct.
Amazon Virtual Private Cloud (VPC): Networking Fundamentals and Connectivity ...Amazon Web Services
In this session, we will walk through the fundamentals of Amazon Virtual Private Cloud (VPC). We will discuss core VPC concepts including picking your IP space, subnetting, routing, security, NAT and VPC Endpoints.
YouTube Link: https://youtu.be/GJQ36pIYbic
DevOps Training: https://www.edureka.co/devops-certification-training
This Edureka DevOps Tutorial for Beginners talks about What is DevOps and how it works. You will learn about several DevOps tools (Git, Jenkins, Docker, Puppet, Ansible, Nagios) involved at different DevOps stages such as version control, continuous integration, continuous delivery, continuous deployment, continuous monitoring.
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
This presentation about Docker will help you learn what Docker and Docker compose is, benefits of Docker compose, differences between Docker compose and Docker swarm, basic commands of docker compose and finally, a demo on docker compose. Docker is a tool which runs containers, whereas Docker Compose is used for running multiple containers as a single service. With compose, containers run in isolation (but they interact with each other). After watching this video, you will able to create a YAML file of docker compose and run multiple containers at a time. Now, let us get started and understand how does a Docker compose work.
Below are the topics covered in this Docker compose presentation:
1. What is Docker?
2. What is a Docker Compose?
3. Benefits of Docker compose
4. Docker Compose vs Docker Swarm
5. Basic commands of Docker
6. Demo
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet and Nagios in a practical, hands on and interactive approach. The Devops training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this Devops training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps was featured as one of the 11 best jobs in America for 2017, according to CBS News, and data from Payscale.com shows that DevOps Managers earn as much as $122,234 per year, with DevOps engineers making as much as $151,461. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
What is Jenkins | Jenkins Tutorial for Beginners | EdurekaEdureka!
****** DevOps Training : https://www.edureka.co/devops ******
This DevOps Jenkins Tutorial on what is Jenkins ( Jenkins Tutorial Blog Series: https://goo.gl/JebmnW ) will help you understand what is Continuous Integration and why it was introduced. This tutorial also explains how Jenkins achieves Continuous Integration in detail and includes a Hands-On session around Jenkins by the end of which you will learn how to compile a code that is present in GitHub, Review that code and Analyse the test cases present in the GitHub repository. The Hands-On session also explains how to create a build pipeline using Jenkins and how to add Jenkins Slaves.
The Hands-On session is performed on an Ubuntu-64bit machine in which Jenkins is installed.
To learn how Jenkins can be used to integrate multiple DevOps tools, watch the video titled 'DevOps Tools', by clicking this link: https://goo.gl/up9iwd
Check our complete DevOps playlist here: http://goo.gl/O2vo13
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Integration Patterns for Microservices ArchitecturesNATS
NATS was created by Derek Collison, founder and CEO
of Apcera, who has spent 20+ years designing, building, and using publish-subscribe messaging systems.
Unlike traditional enterprise messaging systems, NATS has an always-on dial tone that does whatever it takes to remain available. Learn how end users are building modern, reliable and scalable cloud and distributed systems with NATS.
Talk given by David Williams, Principal, Williams & Garcia
You can learn more about NATS at http://www.nats.io
SpringOne Platform 2016
Speakers: Kevin Hoffman; Advisory Solutions Architect, Pivotal & Chris Umbel; Advisory Architect, Pivotal
With the advent of ASP.NET Core, developers can now build cross-platform microservices in .NET. We can build services on the Mac, Windows, or Linux and deploy anywhere--most importantly to the cloud.
In this session we'll talk about Cloud Native .NET, building .NET microservices, and deploying them to the cloud. We'll build services that participate in a robust ecosystem by consuming OSS servers such as Spring Cloud Configuration Server and Eureka. We'll also show how these .NET microservices can take advantage of circuit breakers and be automatically deployed to the cloud via CI/CD pipelines.
This presentation is conducted on 14th Sept in Limerick DotNet User Group.
(https://www.meetup.com/preview/Limerick-DotNet/events/xskpdnywmbsb)
SlideShare Url: https://www.slideshare.net/lalitkale/introduction-to-microservices-80583928
In this presentation, new architectural style - Microservices and it's emergence is discussed. We will also briefly touch base on what are not microservices, Conway's law and organization design, Principles of microservices and service discovery mechanism and why it is necessary for microservices implementation.
About Speaker:
Lalit is a senior developer, software architect and consultant with more than 12 yrsof .NET experience. He loves to work with C# .NET and Azure platform services like App Services, Virtual Machines, Cortana, and Container Services. He is also the author of 'Building Microservices with .NET Core' (https://www.packtpub.com/web-development/building-microservices-net-core) book.
To know more and connect with Lalit, you can visit his LinkedIn profile below. https://www.linkedin.com/in/lalitkale/
This presentation will be useful for software architects/Managers, senior developers.
Do share your feedback in comments.
Building Kubernetes images at scale with Tanzu Build ServiceVMware Tanzu
Building a secure software supply chain
Leveraging Tanzu Build Service
How Build Service fits in the Tanzu portfolio
Modernize your applications
Live demos
Look ma: no Dockerfile!
Github Actions enables you to create custom software development lifecycle workflows directly in your Github repository. These workflows are made out of different tasks so-called actions that can be run automatically on certain events.
To test and build the software continuously, Bugraptors also uses Jenkins to easily identify the changes in the project. Jenkins is a very famous open source tool that performs continuous integration and delivery of projects.
DEVOPS 전반적인 것에 대해서 소개를 한 자료입니다.
http://wiki.tunelinux.pe.kr/display/sysadmin/DEVOPS
https://groups.google.com/forum/#!topic/sysadminstudy/g4bM_xbZPC8
DevOps 시작
DevOps 정의
Dev vs Ops 충돌
DevOps 유래
참고자료
애자일 방법론
ITIL
린스타트업
린 생산방식
애자일을 OPS로 확장
DevOps 관점 : 측정지표 관점, 프로세스 관점, 기술 관점
DevOps가 아닌 것은?
DevOps 소개
프로젝트 세팅 : 전통적인 프로젝트 세팅, 애자일 프로세스 세팅
하나의 팀
핵심
가치와 목적
프로세스
도구
DevOps 구성하기
측정지표 : cycle time, 변경(change)
흐름 개선하기
배포 개선 및 가속화 : batch size 줄이고 더 자주 배포하여 cyclle time 줄이기.
못 다한 이야기 : Metrics and Measurement View / Process View / Technical View
Top 11 Things About DevOps
DevOps의 기초 원리 : 전체 시스템적인 사고, 피드백 루프를 확대하기, 지속적인 실헝과 학습
자동화 도구
이상적인 프로젝트란?
버전관리
티켓관리
지속적인 통합(CI)
지속적인 배포(CD)
프로비저닝 툴체인
OS설치
설정
오케스트레이션(배포)/워크플로우
이제 무엇을 할까?
나가면서
참고자료
YouTube Link: https://youtu.be/GJQ36pIYbic
DevOps Training: https://www.edureka.co/devops-certification-training
This Edureka DevOps Tutorial for Beginners talks about What is DevOps and how it works. You will learn about several DevOps tools (Git, Jenkins, Docker, Puppet, Ansible, Nagios) involved at different DevOps stages such as version control, continuous integration, continuous delivery, continuous deployment, continuous monitoring.
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
This presentation about Docker will help you learn what Docker and Docker compose is, benefits of Docker compose, differences between Docker compose and Docker swarm, basic commands of docker compose and finally, a demo on docker compose. Docker is a tool which runs containers, whereas Docker Compose is used for running multiple containers as a single service. With compose, containers run in isolation (but they interact with each other). After watching this video, you will able to create a YAML file of docker compose and run multiple containers at a time. Now, let us get started and understand how does a Docker compose work.
Below are the topics covered in this Docker compose presentation:
1. What is Docker?
2. What is a Docker Compose?
3. Benefits of Docker compose
4. Docker Compose vs Docker Swarm
5. Basic commands of Docker
6. Demo
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet and Nagios in a practical, hands on and interactive approach. The Devops training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this Devops training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps was featured as one of the 11 best jobs in America for 2017, according to CBS News, and data from Payscale.com shows that DevOps Managers earn as much as $122,234 per year, with DevOps engineers making as much as $151,461. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
What is Jenkins | Jenkins Tutorial for Beginners | EdurekaEdureka!
****** DevOps Training : https://www.edureka.co/devops ******
This DevOps Jenkins Tutorial on what is Jenkins ( Jenkins Tutorial Blog Series: https://goo.gl/JebmnW ) will help you understand what is Continuous Integration and why it was introduced. This tutorial also explains how Jenkins achieves Continuous Integration in detail and includes a Hands-On session around Jenkins by the end of which you will learn how to compile a code that is present in GitHub, Review that code and Analyse the test cases present in the GitHub repository. The Hands-On session also explains how to create a build pipeline using Jenkins and how to add Jenkins Slaves.
The Hands-On session is performed on an Ubuntu-64bit machine in which Jenkins is installed.
To learn how Jenkins can be used to integrate multiple DevOps tools, watch the video titled 'DevOps Tools', by clicking this link: https://goo.gl/up9iwd
Check our complete DevOps playlist here: http://goo.gl/O2vo13
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Integration Patterns for Microservices ArchitecturesNATS
NATS was created by Derek Collison, founder and CEO
of Apcera, who has spent 20+ years designing, building, and using publish-subscribe messaging systems.
Unlike traditional enterprise messaging systems, NATS has an always-on dial tone that does whatever it takes to remain available. Learn how end users are building modern, reliable and scalable cloud and distributed systems with NATS.
Talk given by David Williams, Principal, Williams & Garcia
You can learn more about NATS at http://www.nats.io
SpringOne Platform 2016
Speakers: Kevin Hoffman; Advisory Solutions Architect, Pivotal & Chris Umbel; Advisory Architect, Pivotal
With the advent of ASP.NET Core, developers can now build cross-platform microservices in .NET. We can build services on the Mac, Windows, or Linux and deploy anywhere--most importantly to the cloud.
In this session we'll talk about Cloud Native .NET, building .NET microservices, and deploying them to the cloud. We'll build services that participate in a robust ecosystem by consuming OSS servers such as Spring Cloud Configuration Server and Eureka. We'll also show how these .NET microservices can take advantage of circuit breakers and be automatically deployed to the cloud via CI/CD pipelines.
This presentation is conducted on 14th Sept in Limerick DotNet User Group.
(https://www.meetup.com/preview/Limerick-DotNet/events/xskpdnywmbsb)
SlideShare Url: https://www.slideshare.net/lalitkale/introduction-to-microservices-80583928
In this presentation, new architectural style - Microservices and it's emergence is discussed. We will also briefly touch base on what are not microservices, Conway's law and organization design, Principles of microservices and service discovery mechanism and why it is necessary for microservices implementation.
About Speaker:
Lalit is a senior developer, software architect and consultant with more than 12 yrsof .NET experience. He loves to work with C# .NET and Azure platform services like App Services, Virtual Machines, Cortana, and Container Services. He is also the author of 'Building Microservices with .NET Core' (https://www.packtpub.com/web-development/building-microservices-net-core) book.
To know more and connect with Lalit, you can visit his LinkedIn profile below. https://www.linkedin.com/in/lalitkale/
This presentation will be useful for software architects/Managers, senior developers.
Do share your feedback in comments.
Building Kubernetes images at scale with Tanzu Build ServiceVMware Tanzu
Building a secure software supply chain
Leveraging Tanzu Build Service
How Build Service fits in the Tanzu portfolio
Modernize your applications
Live demos
Look ma: no Dockerfile!
Github Actions enables you to create custom software development lifecycle workflows directly in your Github repository. These workflows are made out of different tasks so-called actions that can be run automatically on certain events.
To test and build the software continuously, Bugraptors also uses Jenkins to easily identify the changes in the project. Jenkins is a very famous open source tool that performs continuous integration and delivery of projects.
DEVOPS 전반적인 것에 대해서 소개를 한 자료입니다.
http://wiki.tunelinux.pe.kr/display/sysadmin/DEVOPS
https://groups.google.com/forum/#!topic/sysadminstudy/g4bM_xbZPC8
DevOps 시작
DevOps 정의
Dev vs Ops 충돌
DevOps 유래
참고자료
애자일 방법론
ITIL
린스타트업
린 생산방식
애자일을 OPS로 확장
DevOps 관점 : 측정지표 관점, 프로세스 관점, 기술 관점
DevOps가 아닌 것은?
DevOps 소개
프로젝트 세팅 : 전통적인 프로젝트 세팅, 애자일 프로세스 세팅
하나의 팀
핵심
가치와 목적
프로세스
도구
DevOps 구성하기
측정지표 : cycle time, 변경(change)
흐름 개선하기
배포 개선 및 가속화 : batch size 줄이고 더 자주 배포하여 cyclle time 줄이기.
못 다한 이야기 : Metrics and Measurement View / Process View / Technical View
Top 11 Things About DevOps
DevOps의 기초 원리 : 전체 시스템적인 사고, 피드백 루프를 확대하기, 지속적인 실헝과 학습
자동화 도구
이상적인 프로젝트란?
버전관리
티켓관리
지속적인 통합(CI)
지속적인 배포(CD)
프로비저닝 툴체인
OS설치
설정
오케스트레이션(배포)/워크플로우
이제 무엇을 할까?
나가면서
참고자료
1. 자바빈
[1995년] JAVA 탄생, 애플릿의강력함에매력
[1996년12월] Sun MicroSystems에서 자바빈1.0 명세발표, (자바를 위한 소프트웨어 콤포넌트 모델을 정의) 자바빈즈는 너무 단순했고, 개발자는 엔터프라이즈 개발자들은 좀 더 나은 것을 원함. 정교한 애플리케이션은 트랜잭션 지원, 보안, 분산컴퓨팅같은 서비스가 필요한데 반해 자바빈즈는 너무 단순함
[1998년3월] EJB 1.0 발표. EJB는엔터프라이즈급의 서비스를 제공하고 자바 콤포넌트의 사상을 서버측으로 확장했지만 원래의 자바빈즈가 가지고 있던 단순함은 잃어버림. 성공한 많은 애플리케이션이 EJB를 기반으로 구축되었음에도 EJB는본래 의도와 달리 엔터프라이즈 애플리케이션 개발을 단순화하지는 못함. 모든버전의EJB 명세에는“EJB는엔터프라이즈 애플리케이션의 작성을 쉽게 해준다” 라고 되어있다. EJB의 선언적 프로그래밍 모델이 트랜잭션, 보안과 같은 개발의 기반 구조의 여러 측면을 단순화했지만 배치설명자(Deployment Descriptor), 홈 인터페
이스, 원격인터페이스 등과 같은 과도한 코드를 기술하도록 함으로써 복잡성을 가중시켰고 시
간이 지날수록 개발자들은 환멸을 느꼈으며 결국 EJB 명성은 쇠퇴하기 시작했다.
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Nanha Park
# Part 1
개발자의 주위환경에 대해 살펴보고 Cloud Foundry overview, Cloud Foundry 를 구성하는 components 마지막으로 Deploy 환경에 대해 알아보겠습니다.
# Part 2
설치부터 코드까지, 데모찍은 동영상은 추후 제공예정
부족한 부분은 nanhap@gmail.com 으로 문의메일 주시면 성심성의껏 답변 드리겠습니다. 감사합니다.
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항rockplace
[Microsoft Azure와 Red Hat OpenShift를 통한 비즈니스 스피드 업! 웨비나]
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
락플레이스 구천모 상무
영상 다시보기 : https://youtu.be/i3yKrHLHYJI
Pivotal Cloud Foundry(PCF) 2.0 and Pivotal Container Service ( PKS ) 신혜원VMware Tanzu Korea
클라우드 기반 어플리케이션을 위한 엔터프라이즈 플랫폼인 Pivotal Cloud Foundry 2.0이 새롭게 릴리즈 되면서 기존 버전과 달라진 주요 기능을 살펴보고, Pivotal Container Service (PKS)를 이용해서 개발자가 일관되고 예측 가능한 방법으로 코드를 신속하게 빌드하고 배포하는 방법에 대해 알아봅니다.
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
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSAVMware Tanzu Korea
최근 IT 시장은 ‘클라우드 네이티브’ 라는 컨셉을 적극적으로 받아들이면서 혁신의 속도를 높이기 위해 여러가지 노력을 기울이고 있습니다. 본 세션에서는 ‘클라우드 네이티브’ 를 이루는 4가지 요소인 DevOps, CICD, Container, MSA 를 간략하게 살펴보고 MSA 가 나머지 클라우드 네이티브 3 요소와 어떻게 상호작용하여 고객 여러분의 비즈니스에 도움이 되는지 알아봅니다. 그리고 MSA 로 이행하기 위한 조직면에서의 요건과 기술 면에서의 요건을 살펴봅니다.
안녕하세요. 이희종입니다. 한국 오라클에서 근무 하고 있습니다.
저희 팀에서는 지식 먹방이라는 방송을 Youtube 채널을 통해서 하고 있구요. 이번에 마이크로서비스라는 주제를 가지고 한번 다루어 보는 시간을 가져 보았습니다. 아직 마이크로서비스라는 단어에 대해서 생소하신 분이라면 개념을 이해하기에 좋은 자료라고 생각됩니다.
방송영상은 https://www.youtube.com/watch?v=64t4Kck6JEQ 보실 수 있습니다.
이와 더불어 오라클 클라우드 서비스 중에 하나인 Application Container Cloud Service 에 대한 내용도 포함되어 있습니다.
1. 2015 자바카페 OPEN SEMINAR
SpringBoot와
Docker를 이용한 MSA
JAVACAFE
김흥래
2. 2015 자바카페 OPEN SEMINAR발표자
김흥래 (Naver Business Platform)
삼성전자와 군인공제회 C&C를 거쳐
현재 NAVER에서 사내인프라를 개발하고 있습니다.
항상 새로운 것을 배우는 것을 좋아하고
프로그래머가 천직이라고 생각하고 있는 행복한 프로그래머입니다.
JAVACAFE 커뮤니티에서 10년 넘는 세월 동안 활동하고 있으며
Back-End와 Front-End 전 분야를 아우르는 개발자가 되기 위해 노력하고 있습니다.
hrkim3468@gmail.com
3. 2015 자바카페 OPEN SEMINAROverview
SpringBoot
Docker
MSA (Micro Service Architecture)
실전! 빙고게임
4. 2015 자바카페 OPEN SEMINAR
SpringBoot
Docker
MSA (Micro Service Architecture)
실전! 빙고게임
5. 2015 자바카페 OPEN SEMINARFeatures
WSA 의존 없이 Stand-Alone 형태의 Spring 어플리케이션을
만들 수 있다.
Embedded Tomcat을 이용하여 즉시 실행이 가능하다.
(WAR 파일로 Deploy하는 과정이 불필요)
강력한 Annotation 기반의 Java Configuration을 제공하기
때문에 XML 설정이 불필요하다.
개발환경 구성시 Maven Configuration을 추상화 하여 의
존성 관리가 매우 간단하다. (라이브러리 의존성 관리를 자동화)
7. 2015 자바카페 OPEN SEMINAR
공식메뉴얼 http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
몇 일 전까지 1.2.7 이었는데
릴리즈 속도가….
Release (2015. 11)
8. 2015 자바카페 OPEN SEMINARSpringBoot 1.3.0 요구사항
Java7+
Spring Framework 4.1.5 +
Maven (3.2+) or Gradle (1.12+)
Servlet 3.0 +
9. 2015 자바카페 OPEN SEMINARSpringBoot Application Starts
Spring과 통합을 위해 제공되는 각종 Template들의 설정
정보를 미리 구현하여 제공
자동 설정을 위해 내부적으로 제공되는 설정정보 Library
인기있는 대부분의 기술들에 대한 설정 정보가 기본적으로
제공
추가적인 기술에 대한 설정 정보를 제공하는 것도 가능 (확장)
spring-boot-autoconfigure.jar
15. 2015 자바카페 OPEN SEMINARSpringBoot Application Starts
프로젝트 구성시 반복적으로 설정해야 하는 Config 정보들
은 이미 대부분 정해져 있고 프로젝트 생성시마다 동일하게 사용
하고 있다. (복사 & 붙여넣기)
Web 프로젝트 구성시 필요한 라이브러리
Spring-core, Spring-web, Spring-mvc, jakson(JSON), JDBC
Test 프로젝트 구성시 필요한 라이브러
Junit, Spring-core, Spring-test, mockito
16. 2015 자바카페 OPEN SEMINARSpringBoot Application Starts
SpringBoot에서는 이러한 점에 착안하여
spring-boot-starter를 프레임워크 레벨에서 제공
프로젝트 성격에 따라 사용되는 기술들의 패턴을 규격화
하여 미리 설정된 Config 코드를 Maven으로 제공
17. 2015 자바카페 OPEN SEMINARSpringBoot Application Starts
Spring-boot-starter는 3가지로 구성
Spring-boot-starter-parent
Spring-boot-starter
Spring-boot-starter-xxx
18. 2015 자바카페 OPEN SEMINAR
Basic
Starter
SpringBoot Application Starts
19. 2015 자바카페 OPEN SEMINAR
Starter POMs를 이용하여 Spring Boot에서 자동으로 필요한
라이브러리 구성
spring-boot-starter는 모든 Starter의 Base Starter
SpringBoot Application Starts
20. 2015 자바카페 OPEN SEMINAR
Web서비스를
위해 확장 된
Starter
SpringBoot Application Starts
21. 2015 자바카페 OPEN SEMINAR
Spring-boot-starter가 Web 서비스용으로 확장되어 있다.
SpringMVC와 Embedded Tomcat이 자동으로 추가되어 있다.
SpringBoot Application Starts
22. 2015 자바카페 OPEN SEMINARSpringBoot Application Starts
공식적으로 제공하는 Starter
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter-poms
23. 2015 자바카페 OPEN SEMINARSpringBoot Application Starts
커뮤니티에서 자체 개발하여 추가적으로 제공하는 Starter
https://github.com/spring-projects/spring-boot/tree/master/spring-boot-starters
24. 2015 자바카페 OPEN SEMINARStart POMs Generator
SpringBoot는 프로젝트 생성시 Start POMs를 좀더 쉽게 사용
하기 위한 Generator를 추가적으로 제공한다.
1. 웹사이트에서 제공하는 툴
http://start.spring.io/
생성된 프로젝트 소스를 zip 파일로 생성하여 다운로드
2. STS 개발툴 옵션으로 제공하는 툴
File > New > Spring Starter Project
바로 실행 가능한 프로젝트 소스 생성
27. 2015 자바카페 OPEN SEMINAR@SpringBootApplication
SpringBoot에서 제공하는 고도로 추상화 된 Annotation
@SpringBootApplication 하나만 넣어주면 모든 설정이 완료됨
28. 2015 자바카페 OPEN SEMINAR@SpringBootApplication
Servlet 3.0 부터 제공하는 ServletInitialize 기능을 이용하여
web.xml을 자바 코드로 변경하는 것이 가능해짐 (WebApplicationInitializer)
Java Config는 Boot가 제공하는 기능이 아니라 Spirng Core에서 제공하는 기능이지만
Boot에서는 기본적으로 Java Config를 사용한다는 가정으로 동작함
Boot가 고도로 추상화된 Annotation을 제공하기 때문에 Spring 설정에서 해방될 수 있
지만 정확한 원리를 모르면 최적화가 어려울 수 있음
@SpringBootApplication =
@Configuration +
@EnableAutoConfiguration +
@ComponentScan
http://docs.spring.io/spring/docs/3.1.0.M2/javadoc-api/org/springframework/web/WebApplicationInitializer.html
31. 2015 자바카페 OPEN SEMINAR독립실행 가능한 JAR
SpringBoot는 특별한 Launcher를 이용하여 독립된 형태로 실행
이 가능
JarLauncher
WarLauncher
실행파일 내부에 의존성이 있는 라이브러리들이 repackage 작업
을 통하여 별도의 디렉토리 구조로 복사되어 빌드
SpringBoot Maven Plugin
Spring-boot:run
Spring-boot:repackage
org.springframework.boot.loader.jar.JarFile
Jar 형태의 경우 최상단에 별도의 lib 디렉토리를 별도로 분리
War 형태의 경우 lib 디렉토리와 lib-provided 디렉토리로 분리
34. 2015 자바카페 OPEN SEMINAR독립실행 가능한 JAR
http://docs.spring.io/spring-boot/docs/1.2.0.BUILD-SNAPSHOT/maven-plugin/index.html
35. 2015 자바카페 OPEN SEMINAR기타
내부에 Embed Tomcat이 내장되어 있으므로 별도의 Deploy 과정
없이 JAR 파일을 독립적으로 배포하여 웹 서비스가 가능함
Java –jar myapp.jar
WAS에 배포하는 방식도 지원 http://spring.io/guides/gs/convert-jar-to-war/
도커랑 찰떡궁합
배포된 Jar 파일을 포함한 도커 이미지를 컨테이너로 생성
원하는 시점에 원하는 만큼의 컨테이너를 손쉽게 증감 가능
Scale-Out에 손쉬운 대응이 가능함
36. 2015 자바카페 OPEN SEMINAR기타
설치형 Tomcat과 Embed Tomcat의 성능 차이는?
http://people.apache.org/~markt/presentations/2010-11-04-Embedding-
Tomcat.pdf
릴리즈된 Tomcat Core 코드를 인터페이스만 변경하여 재배포하는 방식
최신 SpringBoot에서는 Tomcat 8.0.28 버전이 포함되어 있다.
37. 2015 자바카페 OPEN SEMINAR
SpringBoot
Docker
MSA (Micro Service Architecture)
실전! 빙고게임
41. 2015 자바카페 OPEN SEMINAR
SpringBoot
Docker
MSA (Micro Service Architecture)
실전! 빙고게임
42. 2015 자바카페 OPEN SEMINARMonolithic Architecture
Architecture를 어떻게 설계해야 좋을까요?
자바카페 개발팀에서 대박을 노리고
다양한 게임을 서비스하기 위해
준비하고 있습니다.
43. 2015 자바카페 OPEN SEMINARMonolithic Architecture
일반적인 응용프로그램
핵심 Business Logic
다수의 외부 Interface Adapter
간단한 테스트 & 배포
단일 서비스에 대한 Test Case
패키징 된 응응 프로그램을
단순 복사하여 배포
손쉬운 확장
비교적 간단한 부하 분산 구성 가능
L4 뒤에 여러 복사본을 세트로 연결
프로젝트 초기 단계에서는 여전히 좋은 선택
출처 https://www.nginx.com/blog/introduction-to-microservices/#gs.mfQz0k8
44. 2015 자바카페 OPEN SEMINARMonolithic Architecture
시간이 흘러 서비스가 성장하여 개발팀의 규모가
커지고 Business Logic도 점점 더 복잡해진다면?
큰 모놀리틱 코드 기반의 서비스는 개발자를 위축시킨다.
(특히 신입들)
어플리케이션의 크기가 커지면 커질수록 구동하는데 시간이 많이 소요된다.
(개발시 생산성 하락)
지속적인 배포가 점점더 어려워진다.
(소스코드 한줄만 고쳐도 전체 서비스를 내렸다 올려야 함)
Scale 확장시 특정 컴포넌트만 확장하는 것이 불가능
(비효율적이고 불필요한 확장 비용 발생)
전체적인 안정성이 점점 더 중요해지므로 신기술 도입이 점점 더 어려워 지
고 보수적인 접근을 하게 된다.
(개발팀의 기술 정체)
45. 2015 자바카페 OPEN SEMINARScale Cube
출처 https://www.nginx.com/blog/introduction-to-microservices/#gs.mfQz0k8
46. 2015 자바카페 OPEN SEMINARScale Cube
X-axis Scaling
수평적인 복제 (Horizontal Duplication)
복제본을 이용한 확장 (Scale by cloning)
현실속의 X축 확장
L4 뒤에 다수의 어플리케이션 복제본을 세트로 구성
N개의 복제본이 있다면 이론적으로 1/N의 부하분산
47. 2015 자바카페 OPEN SEMINARScale Cube
X-axis Scaling
웹서버
사용자 요청
서비스 DB
48. 2015 자바카페 OPEN SEMINARScale Cube
X-axis Scaling
웹서버
사용자 요청
서비스
DB
웹서버 서비스
L4
49. 2015 자바카페 OPEN SEMINARScale Cube
X-axis Scaling
수평적인 복제 (Horizontal Duplication)
복제본을 이용한 확장 (Scale by cloning)
현실속의 X축 확장
L4 뒤에 다수의 어플리케이션 복제본을 세트로 구성
N개의 복제본이 있다면 이론적으로 1/N의 부하분산
생각해 봅시다
100개의 컴포넌트를 서비스하는데 1개의 컴포넌트만 대박 날 경
우 부하분산을 위해서 무작정 확장한다면?
불필요한 99개의 확장 비용은?
50. 2015 자바카페 OPEN SEMINARScale Cube
Y-axis Scaling
기능 분해(Functional Decomposition)
서비스 분리를 이용한 확장 (Scale by splitting different things)
현실속의 Y축 확장
어플리케이션 내부의 컴포넌트를 다수의 어플리케이션으로 분할하여
서비스
분할 된 서비스는 하나 또는 그 이상의 기능을 명확한 기준으로 나눈다.
독립적인 서비스들은 API를 통하여 통신한다.
51. 2015 자바카페 OPEN SEMINARScale Cube
Y-axis Scaling
웹서버
사용자 요청
서비스 DB
52. 2015 자바카페 OPEN SEMINARScale Cube
Y-axis Scaling
웹서버
사용자 요청
서비스 A
DB B서비스 B
서비스 C
서비스 C
DB A
DB C
53. 2015 자바카페 OPEN SEMINARScale Cube
Y-axis Scaling
기능 분해(Functional Decomposition)
서비스 분리를 이용한 확장 (Scale by splitting different things)
현실속의 Y축 확장
어플리케이션 내부의 컴포넌트를 다수의 어플리케이션으로 분할하여
서비스
분할 된 서비스는 하나 또는 그 이상의 기능을 명확한 기준으로 나눈다.
독립적인 서비스들은 API를 통하여 통신한다.
생각해 봅시다
독립적인 서비스간의 데이터 조인이 필요하다면 어떻게 해야 할까?
만약 조인해야 하는 서비스가 100개라면?
54. 2015 자바카페 OPEN SEMINARScale Cube
Z-axis Scaling
데이터 파티션(Data Partitioning)
데이터 분리를 이용한 확장 (Scale by splitting similar things)
현실속의 Z축 확장
데이터베이스 데이터를 분할하여 서비스
Table Partitioning
DB Sharding
X축 확장과 비슷하게 N개의 복제본으로 확장하는 측면에서는 비슷함
각각의 복제본은 데이터의 일부만 책임진다.
55. 2015 자바카페 OPEN SEMINARScale Cube
Z-axis Scaling
웹서버
사용자 요청
서비스 A
서비스 B DB
56. 2015 자바카페 OPEN SEMINARScale Cube
Z-axis Scaling
사용자 요청
웹서버
서비스 A
서비스 B
DB
웹서버
서비스 A
서비스 B
L4
57. 2015 자바카페 OPEN SEMINARScale Cube
Z-axis Scaling
데이터 파티션(Data Partitioning)
데이터 분리를 이용한 확장 (Scale by splitting similar things)
현실속의 Z축 확장
데이터베이스 데이터를 분할하여 서비스
Table Partitioning
DB Sharding
X축 확장과 비슷하게 N개의 복제본으로 확장하는 측면에서는 비슷함
각각의 복제본은 데이터의 일부만 책임진다.
생각해 봅시다
파티셔닝 된 데이터가 성장하여 또 다시 파티셔닝 해야 할 경우
어플리케이션 복잡도는?
개발환경과 리얼환경의 데이터가 다르다면 테스트는 어떻게 해야할까?
58. 2015 자바카페 OPEN SEMINARScale Cube
Micro Service
(WAS 분리)
Clustering Service
(WAS 복제)
Table Partitioning
DB Sharding
(DB 분리)
출처 https://www.nginx.com/blog/introduction-to-microservices/#gs.mfQz0k8
59. 2015 자바카페 OPEN SEMINARMonolithic Architecture
다시 자바카페 개발팀으로 가볼까요?
61. 2015 자바카페 OPEN SEMINARMonolithic Architecture
서비스 유연성을 위해서
Architecture를 어떻게 변경해 볼까요?
62. 2015 자바카페 OPEN SEMINARMonolithic Architecture
시간이 흘러 서비스가 성장하여 개발팀의 규모가
커지고 Business Logic도 점점 더 복잡해진다면?
큰 모놀리틱 코드 기반의 서비스는 개발자를 위축시킨다.
(특히 신입들)
어플리케이션의 크기가 커지면 커질수록 구동하는데 시간이 많이 소요된다. (개발시 생산성 하락)
지속적인 배포가 점점더 어려워진다.
(소스코드 한줄만 고쳐도 전체 서비스를 내렸다 올려야 함)
Scale 확장시 특정 컴포넌트만 확장하는 것이 불가능
(비효율적이고 불필요한 확장 비용 발생)
전체적인 안정성이 점점 더 중요해지므로 신기술 도입이 점점 더 어려워 지고 보수적인
접근을 하게 된다. (개발팀의 기술 정체)
63. 2015 자바카페 OPEN SEMINARMonolithic Architecture
시간이 흘러 서비스가 성장하여 개발팀의 규모가
커지고 Business Logic도 점점 더 복잡해진다면?
큰 모놀리틱 코드 기반의 서비스는 개발자를 위축시킨다.
(특히 신입들)
Scale Cube Y축 확장을 통하여 서비스를 분리하고 분리된 코드는 자신의 서비스만 책임진다.
어플리케이션의 크기가 커지면 커질수록 구동하는데 시간이 많이 소요된다. (개발시 생산성 하락)
지속적인 배포가 점점더 어려워진다.
(소스코드 한줄만 고쳐도 전체 서비스를 내렸다 올려야 함)
Scale 확장시 특정 컴포넌트만 확장하는 것이 불가능
(비효율적이고 불필요한 확장 비용 발생)
전체적인 안정성이 점점 더 중요해지므로 신기술 도입이 점점 더 어려워 지고 보수적인
접근을 하게 된다. (개발팀의 기술 정체)
64. 2015 자바카페 OPEN SEMINARMonolithic Architecture
시간이 흘러 서비스가 성장하여 개발팀의 규모가
커지고 Business Logic도 점점 더 복잡해진다면?
큰 모놀리틱 코드 기반의 서비스는 개발자를 위축시킨다.
(특히 신입들)
Scale Cube Y축 확장을 통하여 서비스를 분리하고 분리된 코드는 자신의 서비스만 책임진다.
어플리케이션의 크기가 커지면 커질수록 구동하는데 시간이 많이 소요된다. (개발시 생산성 하락)
서비스가 작게 분리되면 각각의 어플리케이션 구동 시간은 짧아진다.
지속적인 배포가 점점더 어려워진다.
(소스코드 한줄만 고쳐도 전체 서비스를 내렸다 올려야 함)
Scale 확장시 특정 컴포넌트만 확장하는 것이 불가능
(비효율적이고 불필요한 확장 비용 발생)
전체적인 안정성이 점점 더 중요해지므로 신기술 도입이 점점 더 어려워 지고 보수적인
접근을 하게 된다. (개발팀의 기술 정체)
65. 2015 자바카페 OPEN SEMINARMonolithic Architecture
시간이 흘러 서비스가 성장하여 개발팀의 규모가
커지고 Business Logic도 점점 더 복잡해진다면?
큰 모놀리틱 코드 기반의 서비스는 개발자를 위축시킨다.
(특히 신입들)
Scale Cube Y축 확장을 통하여 서비스를 분리하고 분리된 코드는 자신의 서비스만 책임진다.
어플리케이션의 크기가 커지면 커질수록 구동하는데 시간이 많이 소요된다. (개발시 생산성 하락)
서비스가 작게 분리되면 각각의 어플리케이션 구동 시간은 짧아진다.
지속적인 배포가 점점더 어려워진다.
(소스코드 한줄만 고쳐도 전체 서비스를 내렸다 올려야 함)
서비스 단위로 기능 확장, 리팩토링, 버그수정 및 배포가 쉬워진다.
Scale 확장시 특정 컴포넌트만 확장하는 것이 불가능
(비효율적이고 불필요한 확장 비용 발생)
전체적인 안정성이 점점 더 중요해지므로 신기술 도입이 점점 더 어려워 지고 보수적인
접근을 하게 된다. (개발팀의 기술 정체)
66. 2015 자바카페 OPEN SEMINARMonolithic Architecture
시간이 흘러 서비스가 성장하여 개발팀의 규모가
커지고 Business Logic도 점점 더 복잡해진다면?
큰 모놀리틱 코드 기반의 서비스는 개발자를 위축시킨다.
(특히 신입들)
Scale Cube Y축 확장을 통하여 서비스를 분리하고 분리된 코드는 자신의 서비스만 책임진다.
어플리케이션의 크기가 커지면 커질수록 구동하는데 시간이 많이 소요된다. (개발시 생산성 하락)
서비스가 작게 분리되면 각각의 어플리케이션 구동 시간은 짧아진다.
지속적인 배포가 점점더 어려워진다.
(소스코드 한줄만 고쳐도 전체 서비스를 내렸다 올려야 함)
서비스 단위로 기능 확장, 리팩토링, 버그수정 및 배포가 쉬워진다.
Scale 확장시 특정 컴포넌트만 확장하는 것이 불가능
(비효율적이고 불필요한 확장 비용 발생)
특정 서비스만 확장하는 것이 가능해진다.
전체적인 안정성이 점점 더 중요해지므로 신기술 도입이 점점 더 어려워 지고 보수적인
접근을 하게 된다. (개발팀의 기술 정체)
67. 2015 자바카페 OPEN SEMINARMonolithic Architecture
시간이 흘러 서비스가 성장하여 개발팀의 규모가
커지고 Business Logic도 점점 더 복잡해진다면?
큰 모놀리틱 코드 기반의 서비스는 개발자를 위축시킨다.
(특히 신입들)
Scale Cube Y축 확장을 통하여 서비스를 분리하고 분리된 코드는 자신의 서비스만 책임진다.
어플리케이션의 크기가 커지면 커질수록 구동하는데 시간이 많이 소요된다. (개발시 생산성 하락)
서비스가 작게 분리되면 각각의 어플리케이션 구동 시간은 짧아진다.
지속적인 배포가 점점더 어려워진다.
(소스코드 한줄만 고쳐도 전체 서비스를 내렸다 올려야 함)
서비스 단위로 기능 확장, 리팩토링, 버그수정 및 배포가 쉬워진다.
Scale 확장시 특정 컴포넌트만 확장하는 것이 불가능
(비효율적이고 불필요한 확장 비용 발생)
특정 서비스만 확장하는 것이 가능해진다.
전체적인 안정성이 점점 더 중요해지므로 신기술 도입이 점점 더 어려워 지고 보수적인
접근을 하게 된다. (개발팀의 기술 정체)
서비스 단위로 기술 Stack을 선택하는 것이 가능해지고 기술 도입 실패시에도 전체 서비스에
영향이 적어 쉽게 롤백하거나 재개발 하는 것이 가능해진다.
68. 2015 자바카페 OPEN SEMINARMicro Service Architecture
서비스 단위로 응용프로그램을 분리
Business Logic을 다수의 서비스로 분리
서비스 단위로 책임을 가짐
서비스간에 API 통신
API Gateway
다수의 서비스에 공통으로 필요한 기능 제공
(인증, 로깅, 보안정책)
모든 서비스들의 API를 등록하고 서비스 간에
통신을 중앙 통제
서비스 단위의 손쉬운 확장
부하 분산이 필요할 경우 서비스 단위로
확장이 가능
서비스 확장 후 API Gateway에 통보
출처 https://www.nginx.com/blog/introduction-to-microservices/#gs.mfQz0k8
지속적으로 성장하는 서비스라면 MSA를 추천합니다.
69. 2015 자바카페 OPEN SEMINARMicro Service Architecture
MSA로 구축된 서비스가 더욱 더 성장하여 단위 서비스가
매우 많아진다면?
API Gateway에 장애가 발생될 경우 서비스 전체가 마비 될 위험성이 있다.
(이중화 무조건 필수)
서비스 규모에 비례하여 API Gateway에 트래픽이 더욱 더 집중된다.
(우리회사 최고 트래픽을 내는 서비스는?)
단위 서비스가 늘어날수록 내부 연계와 트래픽은 기하급수적으로 증가한다.
다수의 서비스간에 조인이 필요한 업무가 생기면 성능 문제를 고려해야 한다.
(어떻게?)
70. 2015 자바카페 OPEN SEMINARMSA at Netflx
출처 http://techblog.netflix.com/2013/01/announcing-ribbon-tying-netflix-mid.html
71. 2015 자바카페 OPEN SEMINARMSA at Netflx
출처 https://blog.docker.com/2014/12/dockercon-europe-keynote-state-of-the-art-in-microservices-by-adrian-
cockcroft-battery-ventures/
72. 2015 자바카페 OPEN SEMINAR단일 서비스 배포
출처 https://www.nginx.com/blog/introduction-to-microservices/#gs.mfQz0k8
73. 2015 자바카페 OPEN SEMINAR서비스 기반 Database
출처 https://www.nginx.com/blog/introduction-to-microservices/#gs.mfQz0k8
74. 2015 자바카페 OPEN SEMINARAPI Gateway
출처 https://www.nginx.com/blog/introduction-to-microservices/#gs.mfQz0k8
75. 2015 자바카페 OPEN SEMINARSync Interaction
출처 https://www.nginx.com/blog/introduction-to-microservices/#gs.mfQz0k8
76. 2015 자바카페 OPEN SEMINARAsync Interaction
출처 https://www.nginx.com/blog/introduction-to-microservices/#gs.mfQz0k8
77. 2015 자바카페 OPEN SEMINARService Registry
출처 https://www.nginx.com/blog/introduction-to-microservices/#gs.mfQz0k8
78. 2015 자바카페 OPEN SEMINAR
SpringBoot
Docker
MSA (Micro Service Architecture)
실전! 빙고게임
79. 2015 자바카페 OPEN SEMINAR빙고게임 Architecture
SR
Service Registry
미구현
QUEUE
Ranking
DB
Rank
랭킹 서비스
Rest
API
AMQP
User
사용자 서비스
User DB
Rest
API
AMQP
Game
빙고게임 서비스
Game DB
Rest
API
AMQP
API
Gateway
AMQP
Rest
API
Front
End
프론트엔드 UI
AMQP
Rest
API
Web
Socket
사용자 브라우저
Web
Socket
내부망외부망