Event storming based msa training with a commerce example. Contains analysis, implementation and operation by event storming and microservices frameworks and devops tools
Event storming based msa training commerce example v2uEngine Solutions
Event storming based msa training with a commerce example. Contains analysis, implementation and operation by event storming and microservices frameworks and devops tools
designing, implementing and delivering microservices with event storming, spr...uEngine Solutions
Implementing Microservices is something like an adventure. Analyzing and decomposing microservices with applying DDD and make them into code, all is not easy. With new simple approach - Event storming, designing and implementing an event-driven MSA became easier ever seen before.
By event storming, we can derive so many meaningful objects such as Entity, Domain Events, and Services that can be mapped with implementation objects in Spring cloud.
Suggested platform provides a contactless microservices / cloud native application design learning and development using online tools including Cloud-ide and Event-storming tool, kafka, Spring-boot and kubernetes without any installation
Event storming based msa training with a commerce example. Contains analysis, implementation and operation by event storming and microservices frameworks and devops tools
Event storming based msa training commerce example v2uEngine Solutions
Event storming based msa training with a commerce example. Contains analysis, implementation and operation by event storming and microservices frameworks and devops tools
designing, implementing and delivering microservices with event storming, spr...uEngine Solutions
Implementing Microservices is something like an adventure. Analyzing and decomposing microservices with applying DDD and make them into code, all is not easy. With new simple approach - Event storming, designing and implementing an event-driven MSA became easier ever seen before.
By event storming, we can derive so many meaningful objects such as Entity, Domain Events, and Services that can be mapped with implementation objects in Spring cloud.
Suggested platform provides a contactless microservices / cloud native application design learning and development using online tools including Cloud-ide and Event-storming tool, kafka, Spring-boot and kubernetes without any installation
[Key Note] 올바른 DevOps 수행을 위한 Infra Structure 전략 최지웅 CTO
오픈소스컨설팅이 개최한 Atlassian meets DevOps and ITSM 세미나 발표자료를 공유합니다. 오픈소스컨설팅의 노하우가 담긴 DevOps Infrastructure 전략을 확인해보실 수 있습니다.
Domain Driven Design 기반의 마이크로서비스 디자인 방법론에 대해 설명을 하고 피보탈이 권장하는 모노리스 애플리케이션의 마이크로서비스 전환 방법론에 대해 살펴봅니다. 또한 실제 마이크로서비스 프로젝트에서 발생할 수 있는 우려사항들에 대해서도 국내 프로젝트 경험을 바탕으로 짚어봅니다.
모든 것을 연결하여 최적의 인프라 기저를 형성하고 그 위에 빅데이터 저장 및 분석의 기반을 만들어 인공지능을 얹은 글로벌 시장의 리더와 붙을 수 있는 플랫폼을 소개합니다.
멀티벤더 지향의 기본 개념위에 메이저 금융S사의 지원으로 이미 많은 시스템 및 메이저 기업의 IoT데이터를 수집하여 빅데이터 분석을 진행중이며, S사의 로봇 기술 지원 및 향후 Drone의 제어, 데이터의 머신러닝등을 통하여 이미 글로벌 시장을 향하여 나아가고 있습니다.
많은 분들의 관심과 협력 부탁 드립니다.
문의 및 파트너쉽 : contact@littleworld.net
[Key Note] 올바른 DevOps 수행을 위한 Infra Structure 전략 최지웅 CTO
오픈소스컨설팅이 개최한 Atlassian meets DevOps and ITSM 세미나 발표자료를 공유합니다. 오픈소스컨설팅의 노하우가 담긴 DevOps Infrastructure 전략을 확인해보실 수 있습니다.
Domain Driven Design 기반의 마이크로서비스 디자인 방법론에 대해 설명을 하고 피보탈이 권장하는 모노리스 애플리케이션의 마이크로서비스 전환 방법론에 대해 살펴봅니다. 또한 실제 마이크로서비스 프로젝트에서 발생할 수 있는 우려사항들에 대해서도 국내 프로젝트 경험을 바탕으로 짚어봅니다.
모든 것을 연결하여 최적의 인프라 기저를 형성하고 그 위에 빅데이터 저장 및 분석의 기반을 만들어 인공지능을 얹은 글로벌 시장의 리더와 붙을 수 있는 플랫폼을 소개합니다.
멀티벤더 지향의 기본 개념위에 메이저 금융S사의 지원으로 이미 많은 시스템 및 메이저 기업의 IoT데이터를 수집하여 빅데이터 분석을 진행중이며, S사의 로봇 기술 지원 및 향후 Drone의 제어, 데이터의 머신러닝등을 통하여 이미 글로벌 시장을 향하여 나아가고 있습니다.
많은 분들의 관심과 협력 부탁 드립니다.
문의 및 파트너쉽 : contact@littleworld.net
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템강 민우
본 세션에서는 Protocol:hyperspace Diver의 개발 과정 전반에 대한 포스트 모템을 수행하며 기획적인 부분을 바탕으로 제기된 요구사항에 대응하기 위한 기술적인 이슈에 어떻게 대응하였는지를 살펴볼 예정입니다. 게임을 기획하며 게임에 어떤 기능들이 요구되었으며, 엔진 레벨에서부터 모바일 게임을 개발하는 과정에서 이런 요구사항들에 어떻게 대응하였는지를 살펴봅니다. 게임을 위한 전체적인 설계 및 문제 해결 전략과 각각의 문제 해결 과정에서 세부 내용에 대한 기술적 노하우를 공유합니다.
<3탄>스프링 부트를 사용한 마이크로 서비스 개발 (로컬 환경) | 페어 프로그래밍 데모 (테스트 작성)
이번 세션에서는 Spring Boot를 사용한 웹 애플리케이션 개발에 대해 소개합니다. 이때 제작되는 애플리케이션은 Pivotal에서 풀타임으로 사용하고 있는 페어프로그래밍을 통해 테스트부터 작성하는 핑퐁 페어등을 소개합니다. 두명이 함께 코드를 작성하는 환경을 통해 빠른 사업환경의 변화를 수용할 수 있는 개발 업무가 Pivotal에서는 어떻게 다른지 살펴봅니다.
Metaworks 4 is a progressive enterprise web framework that promotes POJO-based domain driven development, micro-services architecture-ready, and material design and responsive web. Metaworks 4 utilizes VueJS, Spring Data, and Spring Hateoas. Plus, Metaworks4 can be composed with OCE's components like IAM, API-GW, Billing to enable MSA architecture.
6. 유엔진솔루션즈
• 2013년 부터 기업용 패키지 솔루션 개발
• BPM, SNS, ALM 등 BPM을 기반한 다양한 파생상품 개발
• (국내) 고객입장의 밸류: 커스터마이징이 잘되는 제품
• 수익모델: 온-프레미스 기반 프로덕트 제공
7. 소프트웨어의 구조
Metaworks Framework
(나이: 15년)
BPM Process
Modeler
BPM Process Engine
(나이: 12년)
BPM Process Portal
(나이: 10년)
ALM Pipeline
Modeler
Business Rule
Modeler
Business Rule
Engine
Enterprise Social
Network Portal
고객사1 고객사2 고객사3 고객사4 고객사5
Key Strategies:
- DRY (Don’t Repeat Yourself) Rule : 가능한 공통구현 코드는 중복이 없어야
- White-box Inheritance : 한번 구현된 것은 추상화하여 상위 클래스에 정의
• 메타데이터 기반 UI생성
• DB접근
• 컨트롤 역전처리
• 프로세스 모델링
• 프로세스 실행
• 프로세스 분석/통계
• 특화된 제
품의 요구
사항 반영
• 특화된 고
객의 요구
사항 반영
상속
상속 상속 상속
상속 상속 상속
8. 10년의 경과보고
• 개발자 수급:
• 자체 프레임워크와 개발표준에 익숙해지는데 최소 3년 소요
• 객체 지향과 AOP 개념, 빌드 등 기반 기술 이해에 그중 1.5 년 이상 소요
• 빌드/통합:
• 1회 Integration, End-to-End Test 를 위한 Maven Dependency 버전 일치에 적어도 4시간(반
나절) 이상 소요
• Maven Dependency Hell
• 기술적용:
• 많은 오픈소스들의 기능들을 통합함에 있어 상이한 라이브러리 디펜던시 충돌로 인한 통합의
어려움
• OSGi 시도
• OSGi 의 복잡한 버전관리, 기반 기술 러닝커브로 포기
11. MSA architecture 의 두가지 관점
Outer:
개발자가 공히 겪게 되는 복
잡성들
(e.g. 멀티스레딩, 탄력성, 장
애내성, 공통처리) 을 네트워
크단에서 처리해주고
Inner:
코드내부는 가능한 무식, 간결,
명확하게 단순화
12. MSA Design Principles
• SoC—Separation of concerns.
: 고생해서 분리를 왜 했느냐? 관심사를 분리해서 개발할 수 있어야 한다
• DDD—Domain Driven Design.
: 도메인을 알면, 관심사를 어떻게 분리할지 작전이 나온다.
• KISS — Keep it simple, stupid.
: 작은 사이즈의 매력이 뭐냐? 무식하게 두라. 때론 하드코드도 괜찮아. 스프링부트를 보
라, Bean 설정을 메서드로-하드코드로 한다
• YAGNI—You aren’t gonna need it.
: 머리를 어지럽히는 복잡한 기술? 지금 당장 필요한 것만 써라. 너무 미래를 보지마라. 보
통 복잡한 설계와 기술은 하나의 언어와 표준을 준수하기 위해 등장한다. 당장 돌아가는
코드와 언어가 있다면 그걸 사용하자 Polyglot 이 좋은게 그거다. 필요할때 복잡해져라.
애자일이 그거다.
13. Write Simple
• 단위 마이크로 서비스는 의도적으로 크기를 작게 한다
• 이미 모듈화 되었으므로, 내부는 읽기 좋게 (단순하게) 작성한다
• 작은 크기내에 복잡한 추상화, 일반화, 모듈화는 사족이다
• 데이터베이스 또한 단순화한다 (Denormalization, Materialized)
• 적당한 하드코드는 읽기가 생각보다 좋다 (property 화의 최소
화) – 위험한가?
• 설정을 통한 분기 보다 하드코드로 된 펑션이 읽기가 좋다
14. 받아들이기 힘들었던 이야기들
• 공통화 하지 말라?
• DRY X KISS O
• Shared Kernel X Polyglot
• 네이밍(패키지명) 멋지게 짓지말라?
• Ubiquitous Language
• Bounded Context
• 하드코딩 하라?
• Inline Bean Definition
• 백엔드가 꼭 필요한가?
• MVC X Front + Gateway + DB
?
15. 그렇다면 객체지향이 죽은것인가? 아니
면 어디로 갔는가?
네트워크단으로 갔다.
Proxy Pattern API Gateway
Polymorphism Traffic Routing
Multi-threading Container Orchestrator
Aspect Cross-cutting PubSub, Event-driven
Spring Istio
Multi-threading Kubernetes
Aspect Cross-cutting Kafka
누가 해주느냐?
16. 받아들이니 깨닫게 된 것들
• 내 소프트웨어는 어려운 것이 아니었다
• 그냥 복잡하게 엉켜있는 것이었다.
• 너무 깊은 추상화, 공통화는 오히려 내 발목을 잡았던 것이다.
• 하지만, Inner Architecture 내에서도
• 여전히 주석, 완전한 코드, 테스팅은 ”어느정도” 중요하다.
• 그 정도는 “필요한 만큼” 이라고 정의하고 싶다.
18. 결론
• 서비스 사업 뿐만 아니라, 솔루션 개발 및 Product-Line
Management 에서도 MSA 를 적용했을때 효율이 발생
• 단위개발 (Inner Architecture) 의 단순성 추구
• 결론적으로 작전의 변경:
형상에 대한 과도한 표준화, 공통화, 기술 검증의 노력과 에너지
비즈니스 기회의 빠른 시장 검증의 노력과 에너지