Socialite, the Open Source Status Feed Part 2: Managing the Social GraphMongoDB
There are many possible approaches to storing and querying relationships between users in social networks. This section will dive into the details of storing a social user graph in MongoDB. It will cover the various schema designs for storing the follower networks of users and propose an optimal design for insert and query performance, as well as looking at performance differences between them.
Socialite, the Open Source Status Feed Part 2: Managing the Social GraphMongoDB
There are many possible approaches to storing and querying relationships between users in social networks. This section will dive into the details of storing a social user graph in MongoDB. It will cover the various schema designs for storing the follower networks of users and propose an optimal design for insert and query performance, as well as looking at performance differences between them.
AWS Lambda를 통해 서버리스 애플리케이션을 실행하는 경우, 애플리케이션 성능 문제를 효과적으로 진단하는 방법이 필요합니다. 본 세션에서는 분산 애플리케이션 성능 문제 발생 위치를 파악하고 디버깅 할 수 있는 추적 서비스인 AWS X-Ray를 소개합니다. X-Ray를 사용한 동적 스택 추적 및 디버깅, 호출에 대한 시각적 그래프를 사용하여 서버리스 애플리케이션을진단하는 방법을 설명합니다..
어떻게 하면 배포 프로세스를 빠르게 개선할 수 있을까요?
git branch를 푸시하고 개별 테스트 서버를 만드려면 어떻게 해야 할까요?
쿠버네티스와 GitOps, Argo CD를 이용한 배포 방법을 소개 합니다.
Open Infrastructure & Cloud Native Days Korea 2019 발표자료
원본 슬라이드 다운로드 - http://bit.ly/subicura-gitops
[25]안드로이드에서 코루틴은 어떻게 적용할 수 있을까?: 코루틴 적용 및 ReactiveX(RxJava/RxKotlin)와 비교한다면?NAVER Engineering
안드로이드에서 코루틴은 어떻게 적용할 수 있을까?
: 코루틴 적용 및 ReactiveX(RxJava/RxKotlin)와 비교한다면?
권태환
요기요 / 안드로이드 개발
6년차 안드로이드 개발자 권태환입니다. 저는 꿈 많은 개발자가되자라는 블로그를 운영하고있고 GDG Seoul의 운영진을 하고 있습니다. 현재는 RGP Korea에서 요기요앱을 개발하고있으며, 안드로이드 개발 패턴과 코틀린에 흥미를 가지고 실무에도 적용하고 있습니다.
Learn how to build RESTful API using Node JS with Express Js Framework. Database used is Mongo DB (Mongoose Library). Learn Step by step what is Node JS, Express, API and Mongo DB. Explain and sample code step to build RESTful API
카카오 광고 플랫폼 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을 이용한 인증에 대한 이야기도 함께 나눌 예정입니다.
Light Tutorial Django
Studybee 3주차 - 가볍게 배우는 장고!!
Django를 이용해 블로그를 만들기 전에 가볍게 Django에 대해 알아보고 익숙해져 봅시다.
**http://www.studybee.kr 에서 운영하는 '초심자를 위한 웹개발' 클래스에서 만드는 교재이며,
장고를 이용해 간단하게 블로그를 만드는 것을 목표로 하고 있습니다.
2021년 12월 08일(수)
l 14:00 ~ 14:20 개발 & 인프라 소개
l 14:20 ~ 14:35 개발과 형상관리 (Github Action)
l 14:35 ~ 15:00 사용 인프라 (AZURE APP Service)
l 15:00 ~ 15:20 서비스 런칭 (Deploy & Service)
l 15:20 ~ 15:30 DevOps /Closing
AWS Lambda를 통해 서버리스 애플리케이션을 실행하는 경우, 애플리케이션 성능 문제를 효과적으로 진단하는 방법이 필요합니다. 본 세션에서는 분산 애플리케이션 성능 문제 발생 위치를 파악하고 디버깅 할 수 있는 추적 서비스인 AWS X-Ray를 소개합니다. X-Ray를 사용한 동적 스택 추적 및 디버깅, 호출에 대한 시각적 그래프를 사용하여 서버리스 애플리케이션을진단하는 방법을 설명합니다..
어떻게 하면 배포 프로세스를 빠르게 개선할 수 있을까요?
git branch를 푸시하고 개별 테스트 서버를 만드려면 어떻게 해야 할까요?
쿠버네티스와 GitOps, Argo CD를 이용한 배포 방법을 소개 합니다.
Open Infrastructure & Cloud Native Days Korea 2019 발표자료
원본 슬라이드 다운로드 - http://bit.ly/subicura-gitops
[25]안드로이드에서 코루틴은 어떻게 적용할 수 있을까?: 코루틴 적용 및 ReactiveX(RxJava/RxKotlin)와 비교한다면?NAVER Engineering
안드로이드에서 코루틴은 어떻게 적용할 수 있을까?
: 코루틴 적용 및 ReactiveX(RxJava/RxKotlin)와 비교한다면?
권태환
요기요 / 안드로이드 개발
6년차 안드로이드 개발자 권태환입니다. 저는 꿈 많은 개발자가되자라는 블로그를 운영하고있고 GDG Seoul의 운영진을 하고 있습니다. 현재는 RGP Korea에서 요기요앱을 개발하고있으며, 안드로이드 개발 패턴과 코틀린에 흥미를 가지고 실무에도 적용하고 있습니다.
Learn how to build RESTful API using Node JS with Express Js Framework. Database used is Mongo DB (Mongoose Library). Learn Step by step what is Node JS, Express, API and Mongo DB. Explain and sample code step to build RESTful API
카카오 광고 플랫폼 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을 이용한 인증에 대한 이야기도 함께 나눌 예정입니다.
Light Tutorial Django
Studybee 3주차 - 가볍게 배우는 장고!!
Django를 이용해 블로그를 만들기 전에 가볍게 Django에 대해 알아보고 익숙해져 봅시다.
**http://www.studybee.kr 에서 운영하는 '초심자를 위한 웹개발' 클래스에서 만드는 교재이며,
장고를 이용해 간단하게 블로그를 만드는 것을 목표로 하고 있습니다.
2021년 12월 08일(수)
l 14:00 ~ 14:20 개발 & 인프라 소개
l 14:20 ~ 14:35 개발과 형상관리 (Github Action)
l 14:35 ~ 15:00 사용 인프라 (AZURE APP Service)
l 15:00 ~ 15:20 서비스 런칭 (Deploy & Service)
l 15:20 ~ 15:30 DevOps /Closing
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항rockplace
[Microsoft Azure와 Red Hat OpenShift를 통한 비즈니스 스피드 업! 웨비나]
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
락플레이스 구천모 상무
영상 다시보기 : https://youtu.be/i3yKrHLHYJI
Just Model It 이벤트에서 사용할 Backend.AI 에 관한 소개입니다. Backend.AI의 개괄, 주요 기능 및 사용예들을 다룹니다. 또한 Backend.AI 를 이용한 End-to-end ML model 개발 시나리오도 소개합니다.
An Introduction to Backend.AI to use in Just Model It event. It covers the overview of Backend.AI, its main features and examples. It also introduces the scenario of developing end-to-end ML model using Backend.AI.
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...Amazon Web Services Korea
* 발표 영상 보기: https://youtu.be/mTbS1ddjTE0
최신 애플리케이션 개발에서 만났던 문제를 해결하기 위한 12가지 원칙(Twelve Factor)을 소개하고, 클라우드 네이티브 기반으로 접목해 AWS의 솔루션을 소개합니다. 2012년 이후 최근 동향을 포함한 신규 항목과 전체를 관통하는 앱 현대화를 위한 패턴도 함께 소개합니다. 본 세션은 AWS Summit Online의 보너스 세션으로 아마존 닷컴 CTO의 기조 연설과 47개의 다양한 강연 세션을 더 보실 수 있습니다.
4. https://doc.co/c7REb6
Azure App Service
• Azure의 1순위 서비스 중 하나: WAS 그 이상
• 기반은 IIS의 서브셋으로 구현 (이제는 IIS와 많이 달라짐. 보안/샌드박싱 때문)
• Linux Docker 지원 시작
• 발전 과정
• WebSites: 단순 IIS스러운 WAS + WebJobs
• App Service v1: 4개의 App 카테고리로 개편 (Web, Mobile, API, Logic)
• App Service v2: Azure Function, 부하분산 강화, Linux Docker, …
WebSites App Service v1 App Service v2
5. https://doc.co/c7REb6
앱 서비스와 아이들
• App Service: 개별 프로세스
- ~ Plan: 한 개의 서버에 다 담을 수 있음
가격은 서버 1대만!
- Web App: 프론트엔드
- WebJobs: Web App의 은밀한 보조
- Api App: Swagger 쓰면 편리함
- Logic App: 워크플로우 구성
- Function: WebJob을 꾸려서 만든
Serverless (Lambda보다 간편함)
- Mobile App: 푸시/SocialLogin/테이블
7. https://doc.co/c7REb6
본론에 들어가기 전에
• App Service 구조를 깊게 살펴봅시다
• https://youngjaekim.wordpress.com/2017/04/03/번역-azure-앱서비스-
구조를-깊게-살펴봅시다/
• App Service Environment의 네트워크 구성
• https://msdn.microsoft.com/en-us/magazine/mt797651
• 왜 이것을 아는 것이 중요한가?
• 장애 또는 특이 상황에 대해 보다 정교한 이해와 대응이 가능
8. https://doc.co/c7REb6
App Service 구조
• 언어를 만드는 언어가 있듯, PaaS를 만드는 PaaS가 있음.
• 내부는 Azure Cloud Service (classic)으로 구현됨
• 약 1,000개의 서버를 하나의 ‘확장 단위’로 관리함
• 확장단위 내에 구성요소 및 역할
• 프론트엔드: Layer-7 로드밸런서 + SSL 핸들링
• 웹 작업자(worker): 유저의 앱을 구동하는 런타임
• 파일 서버: Azure Blob Storage를 네트워크디스크로 마운트하는 역할
• API 콘트롤러: 앱의 실행/정지 등의 명령을 처리
• Publisher: 앱 배포용 FTP 프로토콜을 제공 (서비스용 아님)
• SQL: 앱 구동 메타데이터 저장
• Data Role: 내부 캐시 (유저가 쓰는게 아님)
11. https://doc.co/c7REb6
App Service의 네트워크 특성
• 1개의 인/아웃바운드 겸용 + 4개의 아웃바운드 전용=총 5개의 IP
• 고정IP 할당 가능. 앱을 정지하면 다른 IP로 바뀔 수 있음.
• 네트워크주소변환(Network Address Translation; NAT) 테이블의 한계
• B1/S1/P1 인스턴스 당 1,920 연결
• B2/S2/P2 인스턴스 당 3,968 연결
• B3/S3/P3 인스턴스 당 8,064 연결
• 앱 서비스 환경(ASE) 당 최대 64K 연결
12. https://doc.co/c7REb6
App Service 구조
• App Service Environment (ASE)
• 독립된 확장 단위를 원할 때. Premium tier만 사용 가능
• 일종의 서버팜. 여러 개의 ASP를 호스팅
• 온전히 독립된 네트워크 인프라 설정 가능
• 최대 100개의 ASP 인스턴스 호스팅 가능
• 여러 지역에 걸쳐서 설정 가능 (네트워크, 부하분산 등)
• App Service Plan (ASP)
• 가상컴퓨터 확장세트(Virtual Machine Scale Set)라고 이해하면 됩니다
• 확장 단위 (중요)
• Region, Scale instances, Instance size (Small, Medium, Large), SKU (Free, Shared, Basic, Standard, Premium)
• VNET 설정 단위
• 리소스가 허용하는 한 여러 개의 App을 호스팅
• App
• 유저가 만든 앱 하나.
• .NET, Python, Node.js, JVM, …
13. https://doc.co/c7REb6
App Service 이해 ≒ App Service Plan 이해
• 하나의 ASP에 앱 2개를 띄우면 두 App 트래픽을 같은 ASP가 받음
• ASP 2개의 인스턴스로 수평 확장하면 App도 2배 (App 4개)
• VM에 여러 was 프로세스를 돌린다고 이해하는게 편함
• App은 [같은 resource group + 같은 region] 안에서만 ASP 이동 가능
16. https://doc.co/c7REb6
일단 WebApp을 하나 만듭시다
• 추가(Add) > 웹앱(Web App)
• 앱 서비스 계획(App Service Plan): 우리는 배포슬롯(Deployment Slot)이라는
기능을 사용할 것이므로 표준 계층(Standard tier)으로 만듭니다.
• 만들자마자 기본 html 페이지가 추가되어 있습니다.
• App Service Plan 이름은 뭐로 하나요?
• {프로젝트명-Heavy} 형식으로 하면 관리하기 좋음 (나름 시행착오의 결과…)
• Heavy, Light, Free
17. https://doc.co/c7REb6
App Service 하나를 다 이해못할 정도
• ‘평범한 웹서비스 하나’를 띄우는데 어마어마하게 많은 기능 제공
• ‘요구사항 받아서 만들다보니…’
• 주요 기능
• SSL, CORS, custom domain
• Swagger 지원 및 Power BI 연동
• 지속통합/배포 제공: GitHub push 만으로 런칭
• 백그라운드 전용 프로세스 및 관리 제공: WebJobs
• 엔드포인트 모니터링 제공: Application Insights
• 스케줄 및 각종 규칙에 따른 수평/수직 확장
• 자체적으로 MySQL 인스턴스 제공
• Table, Mobile Push 등 다른 서비스 연계
• 등등등…
18. https://doc.co/c7REb6
참고
• 많은 기능은 App Service 외에 별도의 서비스로도 존재.
• 기능이 조금씩 다르므로 취향에 맞게 선택해서 사용하면 좋음.
• Alerts: 이상 상황에 대한 알림
• 대안: Application Insights / NewRelic 등
• Traffic Routing
• 대안: Azure Traffic Manager
• Continuous Deployment
• 대안: CI Builder 소프트웨어/서비스 (TeamCity, Jenkins, AppVeyor, Travis 등)
• Authentication
• 대안: Auth0.com, 설치형 Oauth 서버 등
22. https://doc.co/c7REb6프로덕션에서 테스트(Testing in Production)
slot 별 라우팅
• Slot이 여러 개일 때 일정 비율로 분산: A/B 테스트 가능
• “?x-ms-routing-name={slot}”을 url에 넣으면 해당 슬롯으로만 이동
• 참고: 슬롯 삭제는 우클릭>Delete
A0
B0
A1 A2
B1 B2
2% ↓
15% ↑User
24. https://doc.co/c7REb6
인스턴스당 매트릭(Metrics per Instance)
App Service Plan
• App Service 관리의 가장 중요한 것은? App Service Plan 쪼개기
• App Service Plan을 어떻게 나눌지를 판단하는 근거.
• 주의: 이 메뉴는 App Service Plan이 아닌 개별 App 메뉴 안에 있음.