성공적인 디지털 트랜스포메이션을 위해서는 클라우드 전환이 필수적인데요, 많은 기업에서 막상 클라우드를 도입할 때 여러가지 장벽에 맞닥뜨리게 됩니다.
클라우드 마이그레이션에 관한 여러분의 고민을 시원하게 해결해주기 위해 Global Public Cloud의 독보적인 선두 AWS(Amazone Web Services)와 클라우드 마이그레이션 전문기업 오픈소스컨설팅이 만났습니다!
많은 기업들이 마이그레이션 수행할 때 가장 많이 하는 질문 Top 10에 대한 기술 전문가의 노하우가 담긴 답변을 공유합니다.
source : http://www.opennaru.com/cloud/msa/
마이크로서비스는 애플리케이션 구축을 위한 아키텍처 기반의 접근 방식입니다. 마이크로서비스를 전통적인 모놀리식(monolithic) 접근 방식과 구별 짓는 기준은 애플리케이션을 핵심 기능으로 세분화하는 방식입니다. 각 기능을 서비스라고 부르며, 독립적으로 구축하고 배포할 수 있습니다. 이는 개별 서비스가 다른 서비스에 부정적 영향을 주지 않으면서 작동(또는 장애가 발생)할 수 있음을 의미합니다.
대규모 클러스터링 환경에서 사용자에게 투명하게 하나의 시스템으로 보일 수 있도록 세션 클러스터링 기능을 제공하는 WAS 고가용 솔루션입니다. 지금까지 WAS 에 저장되던 세션 영역을 제거하고 이를 데이터그리드 영역에서 저장/관리하여 웹 시스템의 가용성과 확장성을 높여 줍니다. 이러한 아키텍처를 이용하여 여러 종류 제품의 WAS 인스턴스 간의 세션공유나 서로 다른 웹 애플리케이션의 간의 세션 공유를 지원합니다. 또한 Clustering 기능이 미비한 Tomcat 인스턴스 간의 세션 클러스터링도 지원합니다.
주요 기능
- Servlet 2.5 이상을 지원한 WAS 서버에 대한 세션 클러스터링 지원
- Data Grid Library 를 사용하여 WAS 내의 메모리를 사용하여 클러스터링 지원
- 별도로 Data Grid 서버를 구성하여 세션 데이터그리드 형태 지원
- 서로 다른 웹 애플리케이션 간의 세션 공유 기능
- 웹 애플리케이션에서 중복 로그인 방지 기능
- 세션 정보에 대한 모니터링 기능
(Active 세션 개수, 세션 생성/소멸 개수, 중복 로그인 횟수, 초당 세션 생성/소멸/중복로그인 횟수에 대한 MBean 모니터링)
- 세션에서 사용하는 메모리 사용량 모니터링
- 주요 Static Contents에 대해 세션을 생성하지 않도록 필터링
성공적인 디지털 트랜스포메이션을 위해서는 클라우드 전환이 필수적인데요, 많은 기업에서 막상 클라우드를 도입할 때 여러가지 장벽에 맞닥뜨리게 됩니다.
클라우드 마이그레이션에 관한 여러분의 고민을 시원하게 해결해주기 위해 Global Public Cloud의 독보적인 선두 AWS(Amazone Web Services)와 클라우드 마이그레이션 전문기업 오픈소스컨설팅이 만났습니다!
많은 기업들이 마이그레이션 수행할 때 가장 많이 하는 질문 Top 10에 대한 기술 전문가의 노하우가 담긴 답변을 공유합니다.
source : http://www.opennaru.com/cloud/msa/
마이크로서비스는 애플리케이션 구축을 위한 아키텍처 기반의 접근 방식입니다. 마이크로서비스를 전통적인 모놀리식(monolithic) 접근 방식과 구별 짓는 기준은 애플리케이션을 핵심 기능으로 세분화하는 방식입니다. 각 기능을 서비스라고 부르며, 독립적으로 구축하고 배포할 수 있습니다. 이는 개별 서비스가 다른 서비스에 부정적 영향을 주지 않으면서 작동(또는 장애가 발생)할 수 있음을 의미합니다.
대규모 클러스터링 환경에서 사용자에게 투명하게 하나의 시스템으로 보일 수 있도록 세션 클러스터링 기능을 제공하는 WAS 고가용 솔루션입니다. 지금까지 WAS 에 저장되던 세션 영역을 제거하고 이를 데이터그리드 영역에서 저장/관리하여 웹 시스템의 가용성과 확장성을 높여 줍니다. 이러한 아키텍처를 이용하여 여러 종류 제품의 WAS 인스턴스 간의 세션공유나 서로 다른 웹 애플리케이션의 간의 세션 공유를 지원합니다. 또한 Clustering 기능이 미비한 Tomcat 인스턴스 간의 세션 클러스터링도 지원합니다.
주요 기능
- Servlet 2.5 이상을 지원한 WAS 서버에 대한 세션 클러스터링 지원
- Data Grid Library 를 사용하여 WAS 내의 메모리를 사용하여 클러스터링 지원
- 별도로 Data Grid 서버를 구성하여 세션 데이터그리드 형태 지원
- 서로 다른 웹 애플리케이션 간의 세션 공유 기능
- 웹 애플리케이션에서 중복 로그인 방지 기능
- 세션 정보에 대한 모니터링 기능
(Active 세션 개수, 세션 생성/소멸 개수, 중복 로그인 횟수, 초당 세션 생성/소멸/중복로그인 횟수에 대한 MBean 모니터링)
- 세션에서 사용하는 메모리 사용량 모니터링
- 주요 Static Contents에 대해 세션을 생성하지 않도록 필터링
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트Dae Kim
CloudBread
클라우드 기반 무료 오픈소스 프로젝트로, 모바일 게임과 모바일 앱에 최적화된 게임 서버 엔진입니다. 모든 서비스는 마이크로소프트의 클라우드 서비스인 Azure에 최적화되어 동작하며, 안정성과 확장성을 목표로 개발 중입니다.
기능
•PaaS / DaaS 서버 엔진•PaaS, DaaS 로 손쉬운 개발 및 서비스 즉시 배포
•Real Auto Scale - PaaS
•개발/테스트/배포 = 통합 환경
•서비스 규모에 따른 앱 변경 없음
글로벌 론칭 아키텍처
•글로벌 론칭+데이터 동기화
•설계 부터 클라우드에 최적화된 아키텍처 및 프레임워크로 개발
•오픈소스 프레임워크 활용 개발
보안, 관리, 기술교육
•저장/통신에 표준 암호화 기술 적용
•기본 관리자 서비스 및 커스터마이징
•분석/관리 배치 작업 추가 제작 가능
개발자 그룹
•페이스북 사용자 그룹 : https://www.facebook.com/groups/cloudBreadProject/
지원되는 모바일 & 클라이언트환경
•iOS, Android, Windows Phone, Windows 스토어앱, Xamarin, PhoneGap, Sencha 등
•Microsoft Azure Mobile Service가 지원하는 모바일 및 다양한 클라이언트 플랫폼 지원 : http://azure.microsoft.com/ko-kr/documentation/services/mobile-services/
설치
•Wiki의 튜토리얼 설치 참조
프로젝트 설명
•모바일게임과 모바일 앱에서 사용되는 사용자의 패턴과 액션을 기록해 기능들을 제공
•클라이언트 모바일 디바이스는 게임서버로 JSON 방식의 데이터를 요청하고 서버가 해당 데이터를 처리 후 응답
•약 100여개의 비즈니스 로직이 기본제공(Wiki 참조)
•클라이언트는 마이크로소프트가 오픈소스로 직접 만들어 제공하는 라이브러리를 통해 서버로 API를 호출
실행 예제와 API 리스트는 Wiki 참조
Contribute/질문/토론
•페이스북 사용자 그룹 : https://www.facebook.com/groups/cloudBreadProject/
Lablupconf session8 "Paving the road to AI-powered world"Lablup Inc.
Lablup Conf 1st (Session4/Core)
"Paving the road to AI-powered world" - 김준기
- 발표내용
* Recap of Backend.AI history
* Future roadmap of Backend.AI for next 2 years
- 영상보러가기 : https://youtu.be/kAGSl99U0Bo
클라이드 네이티브 기반 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개의 다양한 강연 세션을 더 보실 수 있습니다.
2. -1-
A. 프로젝트 목표
기존 학사관리시스템보다 웹 접근성을 높인 스프링 프레임워크를 활용한 자바 어플리케이션
오픈소스를 적극 활용 생산성과 SW품질을 보증한다
Git을 통해 효율적으로 프로젝트 일정과 소스코드를 관리한다
B. 프로젝트 구성요소와 도구
1. 사용된 프로그램
서버 Tomcat 7(Servlet Container)
DBMS(In Guest Machine) Oracle 11gR2 Enterprise
IDE STS
DB tool SQL Developer, SQL Data Modeler
Guest Machine VMware Player Oracle Linux 6.5 x64
Java Compiler Oracle JDK 1.7 SE
SCM(소스 코드 관리) Git(Bitbuck)
Front-end Design tool Chrome 개발자 도구
Buildtool Gradle(의존성관리 및 유닛 테스트)
2. 테스트환경
서버 Tomcat 7 In STS(Embeded) x64
DBMS(In Guest Machine) Oracle 11gR2 Enterprise x64
Host OS Window 8.1 Pro K x64
Guest Machine VMware Player Oracle Linux 6.5 x64
JRE Oracle 1.7 SE x64
3. 배포환경
Host OS Windows Server 2008 R2 x86
서버 Tomcat 7 x86
DBMS(In Guest Machine) Oracle 11gR2 Enterprise x64
Guest Machine VMware Player Oracle Linux 6.5 x64
JRE Oracle 1.6 SE x86
3. -2-
4. Front-end Library
Bootstrap 3.1 CSS3 미디어쿼리 활용한 반응형 웹 및 콤포넌트
Jquery 1.11.1 자바스크립트 로우 레벨 필수 라이브러리
jquery-timepicker 시간 입력 콤포넌트
Kalendae 달력UI를 통해 날짜 선택 콤포넌트
bootstrap-calendar 스케줄링 서비스를 위한 달력 콤포넌트
Font Awesome 아이콘 CDN 서비스
Summernote 반응형 웹 에디터
5. Back-end Library
Spring Context IoC, DI 스프링 핵심 코어
Spring Web MVC Web MVC 패턴 구현을 위한 라이브러리
Mybatis 기존 JDBC보다 편하고 진보된 라이브러리
Spring Security 권한, 세션 등의 강력한 보안기능
JSOUP JAVA용 HTML DOM파싱 라이브러리(XSS 방어용)
Jackson JAVA용 JSON 라이브러리
Log4j & Slf4j 로깅프레임워크
Ojdbc6 11g Oracle 용 JDBC
commons-fileupload Apache 공통 파일업로드 라이브러리
mybatis-spring Spring과 Mybatis간 연동
C. UI(Front-end)
HTML5 + CSS3를 활용 웹 접근성을 향상 디바이스별 서비스 제약이 없다.
다양한 컴포넌트를 활용 생산성향상
가로 772px 이하면 모바일 UI로 바뀐다
6. -5-
D. Server(Back-end)
부하를 줄이려면 JVM GC(쓰레기 객체)를 줄여야한다. 때문에 new 키워드를 통해 매번 인스턴스를 생성
하지않고 DB에 넣기전 임시로 쓰는 Collection 같은경우 스프링 빈에 등록하여 사용한다.
같은 계정이 로그인하면 기존 세션은 파괴된다.
http세션은 부하가 심하기 때문에 아이디, 권한, 닉네임만 저장한다.
로그인에러, 권한에러 같은 특수한 페이지를 제외하고 모든 URL과 웹페이지는 권한별로 접근 제한된다.
부하 감소를 위해 문자열, 날짜, 시간 간의 파싱 작업은 모두 DBMS에 일임한다.
7. -6-
E. DB Schema
인덱스를 활용 조회속도를 높인다 또한 인덱스만 저장하는 테이블 스페이스를 할당한다
어플리케이션용 계정을 만들고 테이블스페이스를 개별할당한다
DB부하를 대비 제약조건은 최대한 자제하고 http세션을 활용 어플리케이션 계층에서 자바코드로 해
결한다
1. ERD