Vingle tech talk #1

Tylor Shin
Tylor ShinProgrammer at Vingle en Vingle
VINGLE Front End
Managing and deploying service in 5 minutes
신미르 Tylor Shin
불행했던 개발자 1
Before microservice
Web Server(Ruby on Rails)
Desktop Web
Mobile Web
Admin 개발자,
기획자,
마케터,
젠킨스
의 얼굴이 될 수 있습니다.
너무 크고 복잡한 프로젝트(Repository)
+
서비스 간 극심한 커플링
+
최소 2시간 이상 걸리는 배포, 롤백
Same Repository
Same Deploy
Same CI
나는 어떻게 빙글을 망가뜨렸나(과거형)
• 테스트가 제대로 작성되어 있지 않은 경우
• BackEnd - (API) 부분을 잘못 건드린 경우
• 라이브러리 간 충돌이나 버그가 존재하는 경우
(ex: Rails Sprocket…)
• 백엔드가 배포되면 안됐는데 배포를 눌러버린 경우
• + 처음 프로젝트를 봤을 때의 심정 ———>
독립 프론트엔드 서버를 구축시 필요한 사
항들
1. 원래 웹서버와 완벽하게 분리된 환경에서 존재해야 함
2. 빌드, 배포, 테스트, 롤백을 모두 자동화하여 관리할 수 있는
CI 환경 (Jenkins와 같은 CI Tool을 사용)
3. 실시간 변동적인 Scalability 확보
4. 서버 상황에 대한 실시간 Monitoring 환경 확보
5. 서버 Logger와 같은 필수적인 기능들 확보
6. Universal Rendering(isomorphic)이 가능해야 함(Server-side
rendering)
Client-side rendering
Universal rendering
독립 서버를 위한 대안 후보들
Static Page
NodeJS server
AWS Lambda
Vingle Mobile Web
No Service
Vingle Desktop Web
Independent NodeJS
server
Independent NodeJS
server
• 일반적인 nodeJS 서버(ExpressJS, KoA …)
• 유니버설(Isomorphic) 렌더링
• 가변적인 Scalability 확보가 필요함
• 모니터링 및 관리 환경을 설정해야 함
• SSL 및 Cors 등 귀찮은 각종 환경들을 설정해야 함
Static Page
Static Page
• index.html와 bundle.JS를 S3에 업로드
• 웹 서버(Nginx) -> CDN -> S3 식으로 앞단에 CDN 배치
• 장/단점
클라이언트 사이드 렌더링
SEO가 보장되지 않음
느린 최초 렌더링
CDN을 통한 모니터링 가능
가변적인 Scalability 확보 가능
AWS Lambda?
• 이벤트에 응답하여 코드를 실행하고
자동으로 기본 컴퓨팅 리소스를 관리
하는 서버리스 컴퓨팅 서비스
• nodeJS, Java, Python , C# 코드 실행
가능
• 이벤트가 HTTP 요청일 경우
Response를 Customizing 가능
AWS Lambda
AWS Lambda
• Universal(isomorphic) rendering
• 가변적 scalability 확보
• 모니터링 및 배포 관리 시스템 기본 제공
• Serverless와 AWS CloudFormation을 통한 다중 AWS 서비스 관리 가
능
• SSL, Cors 세팅 등 귀찮은 설정들 기본 설정
• 일반 서버보다 훨씬 저렴한 가격
쌉니다
모니터링도 좋습니다!
실제로 보는 CI - CD 적용 이후 업무 프
로세스
New branch
Build bundleJS
Unit & E2E test
Upload bundle to S3
Notify Slack
Pull Request is
merged
Build bundleJS
Unit & E2E test
Notify Slack
Deploy
After 30 minutes
1. 새로운 Branch에서 개발을 시작함
2. 새 Branch를 Push하면 새 Jenkins pipeline 생성
3. 자동으로 Build - Test - Demo Branch 생성
4. 이후 Slack으로 노티
실제로 개발자가 하는 일은 새 Branch를 Push하는 것 뿐
Example Jenkins Pipeline
Demo Branch?
디자이너와의 협업, QA 과정에서의 효율성
Production에서만 확인 가능한 기능들 검증
(Facebook oAuth 등…)
Pull Request가 Merge된 이후?
1. 자동으로 다시금 빌드, 테스트를 실행
2. Demo Branch를 통해 마지막 30분 동안
최후의 QA를 할 수 있는 시간을 줌
3. 자동으로 Lambda가 가르키는 타겟 JS파일
주소를 현재 버젼으로 바꿈으로 배포 끝
실제적인 배포는 2분 안에 완료
Rollback?
방법 1
가장 최근에 성공했던 배포 Jenkins job 을 돌린다.
안전하고, 2분 안에 다시 롤백 가능
방법 2
AWS Console에 접속해서 Lambda script를
이전에 성공했던 것으로 롤백하게 한다.
즉시 롤백 가능
현재 빙글에서는 원칙적으로 방법 1을 사용하고 있음
모든 건 자동화에 맡기고 놀러가세요
저분은 왜 아마존 티셔츠(…)
행복해진 개발자들
감사합니다
1 de 24

Recomendados

리액트 적용기 por
리액트 적용기리액트 적용기
리액트 적용기Hun Yong Song
238 vistas22 diapositivas
React vac pattern por
React vac patternReact vac pattern
React vac patternNAVER Engineering
2K vistas21 diapositivas
Golang+on+analytics+and+blockchain por
Golang+on+analytics+and+blockchainGolang+on+analytics+and+blockchain
Golang+on+analytics+and+blockchainNAVER Engineering
271 vistas81 diapositivas
How_to_choose_the_right_framework por
How_to_choose_the_right_frameworkHow_to_choose_the_right_framework
How_to_choose_the_right_frameworkJT Jintae Jung
849 vistas18 diapositivas
Web Framework (웹 프레임워크) por
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Junsu Kim
3.3K vistas33 diapositivas
[D2 campus]착 하면 척! chak 서비스 개발기 por
[D2 campus]착 하면 척! chak 서비스 개발기[D2 campus]착 하면 척! chak 서비스 개발기
[D2 campus]착 하면 척! chak 서비스 개발기NAVER D2
8.5K vistas85 diapositivas

Más contenido relacionado

La actualidad más candente

bamboo 로 PHP 프로젝트 지속적인 배포 por
bamboo 로 PHP 프로젝트 지속적인 배포bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포KwangSeob Jeong
6.2K vistas24 diapositivas
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문 por
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문종훈 박
4.3K vistas44 diapositivas
Laravel로 스타트업 기술 스택 구성하기 por
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기KwangSeob Jeong
7.5K vistas84 diapositivas
Cooking jquery por
Cooking jqueryCooking jquery
Cooking jqueryJinKwon Lee
834 vistas14 diapositivas
모두의 클라우드 딥러닝 por
모두의 클라우드 딥러닝모두의 클라우드 딥러닝
모두의 클라우드 딥러닝NAVER Engineering
889 vistas57 diapositivas
PHP로 웹개발을 해보자 por
PHP로 웹개발을 해보자PHP로 웹개발을 해보자
PHP로 웹개발을 해보자Young Min Shin
4.3K vistas126 diapositivas

La actualidad más candente(20)

bamboo 로 PHP 프로젝트 지속적인 배포 por KwangSeob Jeong
bamboo 로 PHP 프로젝트 지속적인 배포bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포
KwangSeob Jeong6.2K vistas
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문 por 종훈 박
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
종훈 박4.3K vistas
Laravel로 스타트업 기술 스택 구성하기 por KwangSeob Jeong
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
KwangSeob Jeong7.5K vistas
PHP로 웹개발을 해보자 por Young Min Shin
PHP로 웹개발을 해보자PHP로 웹개발을 해보자
PHP로 웹개발을 해보자
Young Min Shin4.3K vistas
신림프로그래머모임_개발프로세스개선기 por none
신림프로그래머모임_개발프로세스개선기신림프로그래머모임_개발프로세스개선기
신림프로그래머모임_개발프로세스개선기
none5.5K vistas
JavaScript로 오픈소스를 해보자. bsJS por NAVER D2
JavaScript로 오픈소스를 해보자. bsJSJavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJS
NAVER D219K vistas
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework por Inseok Lee
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
Inseok Lee11K vistas
Sonatype nexus 로 docker registry 관리하기 por KwangSeob Jeong
Sonatype nexus 로 docker registry 관리하기Sonatype nexus 로 docker registry 관리하기
Sonatype nexus 로 docker registry 관리하기
KwangSeob Jeong6.8K vistas
PHP Slim Framework with Angular por JT Jintae Jung
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with Angular
JT Jintae Jung1.6K vistas
커뮤니티와 함께한 예비개발자 성장기- 조성수님 por NAVER D2
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
NAVER D27.7K vistas
5.yobi를 활용한 개발자 협업 및 배포 프로세스 por NAVER D2
5.yobi를 활용한 개발자 협업 및 배포 프로세스5.yobi를 활용한 개발자 협업 및 배포 프로세스
5.yobi를 활용한 개발자 협업 및 배포 프로세스
NAVER D216.9K vistas
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018 por devCAT Studio, NEXON
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
devCAT Studio, NEXON3.4K vistas
Web assembly 맛보기 por GyeongSeok Seo
Web assembly 맛보기Web assembly 맛보기
Web assembly 맛보기
GyeongSeok Seo11.9K vistas
웹 Front-End 실무 이야기 por JinKwon Lee
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
JinKwon Lee54.3K vistas
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017 por devCAT Studio, NEXON
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재 por NAVER D2
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
NAVER D26K vistas

Destacado

DSR Testing (Part 1) por
DSR Testing (Part 1)DSR Testing (Part 1)
DSR Testing (Part 1)Steve Upton
1.1K vistas188 diapositivas
Rule of two por
Rule of twoRule of two
Rule of twoRich Moyse
182 vistas9 diapositivas
Bootstrapping Microservices por
Bootstrapping MicroservicesBootstrapping Microservices
Bootstrapping MicroservicesNoah Zoschke
757 vistas18 diapositivas
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ... por
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
1.2K vistas19 diapositivas
Security enforcement of Java Microservices with Apiman & Keycloak por
Security enforcement of Java Microservices with Apiman & KeycloakSecurity enforcement of Java Microservices with Apiman & Keycloak
Security enforcement of Java Microservices with Apiman & KeycloakCharles Moulliard
3.6K vistas40 diapositivas
Microservice Websites (microXchg 2017) por
Microservice Websites (microXchg 2017)Microservice Websites (microXchg 2017)
Microservice Websites (microXchg 2017)Gustaf Nilsson Kotte
1.2K vistas41 diapositivas

Destacado(18)

DSR Testing (Part 1) por Steve Upton
DSR Testing (Part 1)DSR Testing (Part 1)
DSR Testing (Part 1)
Steve Upton1.1K vistas
Rule of two por Rich Moyse
Rule of twoRule of two
Rule of two
Rich Moyse182 vistas
Bootstrapping Microservices por Noah Zoschke
Bootstrapping MicroservicesBootstrapping Microservices
Bootstrapping Microservices
Noah Zoschke757 vistas
Security enforcement of Java Microservices with Apiman & Keycloak por Charles Moulliard
Security enforcement of Java Microservices with Apiman & KeycloakSecurity enforcement of Java Microservices with Apiman & Keycloak
Security enforcement of Java Microservices with Apiman & Keycloak
Charles Moulliard3.6K vistas
Microservices Standardization - Susan Fowler, Stripe por Ambassador Labs
Microservices Standardization - Susan Fowler, StripeMicroservices Standardization - Susan Fowler, Stripe
Microservices Standardization - Susan Fowler, Stripe
Ambassador Labs7.6K vistas
Modernizing IT with Microservices por LeanIX GmbH
Modernizing IT with MicroservicesModernizing IT with Microservices
Modernizing IT with Microservices
LeanIX GmbH633 vistas
Microservice Architecture por Rich Lee
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
Rich Lee528 vistas
Authorization and Authentication in Microservice Environments por LeanIX GmbH
Authorization and Authentication in Microservice EnvironmentsAuthorization and Authentication in Microservice Environments
Authorization and Authentication in Microservice Environments
LeanIX GmbH48.5K vistas
Full lifecycle of a microservice por Luigi Bennardis
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microservice
Luigi Bennardis3.4K vistas
Verifying Microservice Integrations with Contract Testing por Atlassian
Verifying Microservice Integrations with Contract TestingVerifying Microservice Integrations with Contract Testing
Verifying Microservice Integrations with Contract Testing
Atlassian20.3K vistas
Microservices with Nancy and vs Code por Celso Junior
Microservices with Nancy and vs CodeMicroservices with Nancy and vs Code
Microservices with Nancy and vs Code
Celso Junior385 vistas
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao... por Chris Richardson
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Chris Richardson53.3K vistas
Deploying Microservices as Containers por Veer Muchandi
Deploying Microservices as ContainersDeploying Microservices as Containers
Deploying Microservices as Containers
Veer Muchandi1.4K vistas
How to Become a Thought Leader in Your Niche por Leslie Samuel
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Leslie Samuel1.6M vistas

Similar a Vingle tech talk #1

DevOps (AWS, Docker, Ansible, Jenkins) por
DevOps (AWS, Docker, Ansible, Jenkins)DevOps (AWS, Docker, Ansible, Jenkins)
DevOps (AWS, Docker, Ansible, Jenkins)완철 김
1.4K vistas9 diapositivas
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기 por
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기Amazon Web Services Korea
3.8K vistas76 diapositivas
쿠키런 1년, 서버개발 분투기 por
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기Brian Hong
109.6K vistas43 diapositivas
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013) por
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)Brian Hong
46.2K vistas35 diapositivas
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017 por
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017Amazon Web Services Korea
5.7K vistas75 diapositivas
[NDC17] Kubernetes로 개발서버 간단히 찍어내기 por
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기SeungYong Oh
17.5K vistas59 diapositivas

Similar a Vingle tech talk #1(20)

DevOps (AWS, Docker, Ansible, Jenkins) por 완철 김
DevOps (AWS, Docker, Ansible, Jenkins)DevOps (AWS, Docker, Ansible, Jenkins)
DevOps (AWS, Docker, Ansible, Jenkins)
완철 김1.4K vistas
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기 por Amazon Web Services Korea
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
쿠키런 1년, 서버개발 분투기 por Brian Hong
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
Brian Hong109.6K vistas
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013) por Brian Hong
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
Brian Hong46.2K vistas
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017 por Amazon Web Services Korea
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
[NDC17] Kubernetes로 개발서버 간단히 찍어내기 por SeungYong Oh
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
SeungYong Oh17.5K vistas
DevOps를 위한 AWS 서비스 및 개발도구 -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나 por Amazon Web Services Korea
DevOps를 위한 AWS 서비스 및 개발도구  -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나 DevOps를 위한 AWS 서비스 및 개발도구  -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나
DevOps를 위한 AWS 서비스 및 개발도구 -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나
[NDC17] 왓 스튜디오 서비스파트 por Chanwoong Kim
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트
Chanwoong Kim4.6K vistas
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토... por Amazon Web Services Korea
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016 por Amazon Web Services Korea
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes por NAVER D2
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
NAVER D23.5K vistas
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬) por Amazon Web Services Korea
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore... por Amazon Web Services Korea
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해 por Terry Cho
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
Terry Cho33.9K vistas
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다 por Jongwon Han
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
Jongwon Han341 vistas
AWS Lambda를 이용한 CI/CD 기법 por Jesang Yoon
AWS Lambda를 이용한 CI/CD 기법AWS Lambda를 이용한 CI/CD 기법
AWS Lambda를 이용한 CI/CD 기법
Jesang Yoon2.5K vistas
HB Smith에서는 AWS 이렇게 사용한다 por Jongwon Han
HB Smith에서는 AWS 이렇게 사용한다HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다
Jongwon Han1.8K vistas
서버학개론(백엔드 서버 개발자를 위한) por 수보 김
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
수보 김29.6K vistas
AWS CLOUD 2018- 보다 강력한 Serverless, AWS Lambda 기능 확장(안효빈 솔루션즈 아키텍트) por Amazon Web Services Korea
AWS CLOUD 2018- 보다 강력한 Serverless, AWS Lambda 기능 확장(안효빈 솔루션즈 아키텍트)AWS CLOUD 2018- 보다 강력한 Serverless, AWS Lambda 기능 확장(안효빈 솔루션즈 아키텍트)
AWS CLOUD 2018- 보다 강력한 Serverless, AWS Lambda 기능 확장(안효빈 솔루션즈 아키텍트)

Vingle tech talk #1

  • 1. VINGLE Front End Managing and deploying service in 5 minutes
  • 3. Before microservice Web Server(Ruby on Rails) Desktop Web Mobile Web Admin 개발자, 기획자, 마케터, 젠킨스 의 얼굴이 될 수 있습니다. 너무 크고 복잡한 프로젝트(Repository) + 서비스 간 극심한 커플링 + 최소 2시간 이상 걸리는 배포, 롤백 Same Repository Same Deploy Same CI
  • 4. 나는 어떻게 빙글을 망가뜨렸나(과거형) • 테스트가 제대로 작성되어 있지 않은 경우 • BackEnd - (API) 부분을 잘못 건드린 경우 • 라이브러리 간 충돌이나 버그가 존재하는 경우 (ex: Rails Sprocket…) • 백엔드가 배포되면 안됐는데 배포를 눌러버린 경우 • + 처음 프로젝트를 봤을 때의 심정 ———>
  • 5. 독립 프론트엔드 서버를 구축시 필요한 사 항들 1. 원래 웹서버와 완벽하게 분리된 환경에서 존재해야 함 2. 빌드, 배포, 테스트, 롤백을 모두 자동화하여 관리할 수 있는 CI 환경 (Jenkins와 같은 CI Tool을 사용) 3. 실시간 변동적인 Scalability 확보 4. 서버 상황에 대한 실시간 Monitoring 환경 확보 5. 서버 Logger와 같은 필수적인 기능들 확보 6. Universal Rendering(isomorphic)이 가능해야 함(Server-side rendering)
  • 7. 독립 서버를 위한 대안 후보들 Static Page NodeJS server AWS Lambda Vingle Mobile Web No Service Vingle Desktop Web
  • 9. Independent NodeJS server • 일반적인 nodeJS 서버(ExpressJS, KoA …) • 유니버설(Isomorphic) 렌더링 • 가변적인 Scalability 확보가 필요함 • 모니터링 및 관리 환경을 설정해야 함 • SSL 및 Cors 등 귀찮은 각종 환경들을 설정해야 함
  • 11. Static Page • index.html와 bundle.JS를 S3에 업로드 • 웹 서버(Nginx) -> CDN -> S3 식으로 앞단에 CDN 배치 • 장/단점 클라이언트 사이드 렌더링 SEO가 보장되지 않음 느린 최초 렌더링 CDN을 통한 모니터링 가능 가변적인 Scalability 확보 가능
  • 12. AWS Lambda? • 이벤트에 응답하여 코드를 실행하고 자동으로 기본 컴퓨팅 리소스를 관리 하는 서버리스 컴퓨팅 서비스 • nodeJS, Java, Python , C# 코드 실행 가능 • 이벤트가 HTTP 요청일 경우 Response를 Customizing 가능
  • 14. AWS Lambda • Universal(isomorphic) rendering • 가변적 scalability 확보 • 모니터링 및 배포 관리 시스템 기본 제공 • Serverless와 AWS CloudFormation을 통한 다중 AWS 서비스 관리 가 능 • SSL, Cors 세팅 등 귀찮은 설정들 기본 설정 • 일반 서버보다 훨씬 저렴한 가격
  • 17. 실제로 보는 CI - CD 적용 이후 업무 프 로세스 New branch Build bundleJS Unit & E2E test Upload bundle to S3 Notify Slack Pull Request is merged Build bundleJS Unit & E2E test Notify Slack Deploy After 30 minutes
  • 18. 1. 새로운 Branch에서 개발을 시작함 2. 새 Branch를 Push하면 새 Jenkins pipeline 생성 3. 자동으로 Build - Test - Demo Branch 생성 4. 이후 Slack으로 노티 실제로 개발자가 하는 일은 새 Branch를 Push하는 것 뿐
  • 20. Demo Branch? 디자이너와의 협업, QA 과정에서의 효율성 Production에서만 확인 가능한 기능들 검증 (Facebook oAuth 등…)
  • 21. Pull Request가 Merge된 이후? 1. 자동으로 다시금 빌드, 테스트를 실행 2. Demo Branch를 통해 마지막 30분 동안 최후의 QA를 할 수 있는 시간을 줌 3. 자동으로 Lambda가 가르키는 타겟 JS파일 주소를 현재 버젼으로 바꿈으로 배포 끝 실제적인 배포는 2분 안에 완료
  • 22. Rollback? 방법 1 가장 최근에 성공했던 배포 Jenkins job 을 돌린다. 안전하고, 2분 안에 다시 롤백 가능 방법 2 AWS Console에 접속해서 Lambda script를 이전에 성공했던 것으로 롤백하게 한다. 즉시 롤백 가능 현재 빙글에서는 원칙적으로 방법 1을 사용하고 있음
  • 23. 모든 건 자동화에 맡기고 놀러가세요 저분은 왜 아마존 티셔츠(…) 행복해진 개발자들