<3탄>스프링 부트를 사용한 마이크로 서비스 개발 (로컬 환경) | 페어 프로그래밍 데모 (테스트 작성)
이번 세션에서는 Spring Boot를 사용한 웹 애플리케이션 개발에 대해 소개합니다. 이때 제작되는 애플리케이션은 Pivotal에서 풀타임으로 사용하고 있는 페어프로그래밍을 통해 테스트부터 작성하는 핑퐁 페어등을 소개합니다. 두명이 함께 코드를 작성하는 환경을 통해 빠른 사업환경의 변화를 수용할 수 있는 개발 업무가 Pivotal에서는 어떻게 다른지 살펴봅니다.
Pivotal은 개발자 생산성을 높이고 운영비용을 줄이면서 성공적인 비지니스를 할 수 있도록 개발 환경의 혁신 문화와 플랫폼을 제공하고 있습니다.
본 세션에서는 플랫폼의 구조와 효과에 대해 소개하며 기업이 진정한 기술선도 업체로 발전해 갈 수 있도록 혁신적은 플랫폼 *PAS, *PKS를 소개합니다.
*PAS: Pivotal Application Service로 개발자에게 기능 구현 속도를 높이고, 운영 팀은 세계 최고 수준의 가용성을 제공해주는 서비스입니다.
*PKS: Pivotal Container Service로 Kubernates의 배포, 관리, 모니터링, 업데이트 등을 자동화하고 Pivotal에서 관리해주는 서비스입니다
다들 DevOps 를 적용하고는 있지만 어디까지가 DevOps 인 것인지, 어떻게 얼마나 바꾸고 적용할 것인가 결정하는 것은 쉽지 않습니다.
본 세션은 DevOps 를 왜 적용해야 하는가? 라는 질문을 시작으로 DevOps 를 Culture, Think, Code, Deliver, Run, Manger, Learn 의 7단계로 나누어 차근차근 짚어봅니다.
<3탄>스프링 부트를 사용한 마이크로 서비스 개발 (로컬 환경) | 페어 프로그래밍 데모 (테스트 작성)
이번 세션에서는 Spring Boot를 사용한 웹 애플리케이션 개발에 대해 소개합니다. 이때 제작되는 애플리케이션은 Pivotal에서 풀타임으로 사용하고 있는 페어프로그래밍을 통해 테스트부터 작성하는 핑퐁 페어등을 소개합니다. 두명이 함께 코드를 작성하는 환경을 통해 빠른 사업환경의 변화를 수용할 수 있는 개발 업무가 Pivotal에서는 어떻게 다른지 살펴봅니다.
Pivotal은 개발자 생산성을 높이고 운영비용을 줄이면서 성공적인 비지니스를 할 수 있도록 개발 환경의 혁신 문화와 플랫폼을 제공하고 있습니다.
본 세션에서는 플랫폼의 구조와 효과에 대해 소개하며 기업이 진정한 기술선도 업체로 발전해 갈 수 있도록 혁신적은 플랫폼 *PAS, *PKS를 소개합니다.
*PAS: Pivotal Application Service로 개발자에게 기능 구현 속도를 높이고, 운영 팀은 세계 최고 수준의 가용성을 제공해주는 서비스입니다.
*PKS: Pivotal Container Service로 Kubernates의 배포, 관리, 모니터링, 업데이트 등을 자동화하고 Pivotal에서 관리해주는 서비스입니다
다들 DevOps 를 적용하고는 있지만 어디까지가 DevOps 인 것인지, 어떻게 얼마나 바꾸고 적용할 것인가 결정하는 것은 쉽지 않습니다.
본 세션은 DevOps 를 왜 적용해야 하는가? 라는 질문을 시작으로 DevOps 를 Culture, Think, Code, Deliver, Run, Manger, Learn 의 7단계로 나누어 차근차근 짚어봅니다.
이번 밋업에서는 다양한 프로젝트에서 도메인에 따라 데이터를 분리한 경험이 있는 엔지니어들이 직접 마이크로서비스에 대해 이야기 합니다. 특히 피보탈의 APAC에서 Application Transformation 을 주도하는 팀의 Sumant Singh Rana와, Satya Ranjan 두 수석 엔지니어들, 그리고 이들과 현재 한국에서 함께 프로젝트를 진행하고 계신 피보탈 한국 김영태 상무님이 함께 하십니다.
마이크로서비스에서 도메인 모델에 따른 데이터의 분리와 적절한 데이터 저장소의 선택은 가장 먼저 고려되어야 할 사항입니다. 피보탈은 다양한 엔터프라이즈 고객과의 프로젝트 수행을 통해 체계화된 서비스를 보유하고 있으며, 본 밋업에서는 그 경험과 과정을 공유하는 시간이 될 것입니다.
Digital Transformation 시대의 개발 프로세스의 변화와 개선의 필요성이 대두되면서, DevOps에 대한 관심도 점차 높아지고 있는데요. DevOps 툴로서 아틀라시안(Atlassian)의 도입과 활용이 IT 업종을 비롯한 다양한 회사에서 다방면으로 이루어지고 있습니다. 특히 Atlassian Cloud 버전을 출시하고, 많은 회사들이 Cloud 버전을 사용하면서 DevOps로의 쓰임새가 더욱 확장되고 있습니다.
Source : http://www.opennaru.com/cloud/devops/
DevOps는 “비즈니스 가치를 높이는 것을 목적으로 제품 및 서비스를 신속하고 지속적으로 사용자로 전달하기 위해 IT 시스템의 개발 팀 (Dev)과 운영팀 (Ops)가 협력하는 것”을 뜻하는 말입니다.
<1탄>왜 마이크로 서비스인가 - 마이크로서비스로 구성된 애플리케이션 소개
Session abstract:
이번 세션에서는 무엇이 마이크로 서비스고, 어떤 철학과 사상을 가지고 있는지 알아봅니다. 세션이 종료되면 참석하신 분들은 마이크로 서비스의 구성에서 어떤 내용이 중요한지 알게 됩니다. 전체 시리즈로 진행되는 첫 세션 입니다.
Session agenda:
-실 서비스용 데이터베이스를 종료한다면 어떤 일이 벌어질까
-마이크로서비스와 마이크로서비스가 아닌것
-어떻게 시작해야 하나
-마이크로서비스 애플리케이션 소개
-클라우드 네이티브(클라우드 최적화란)
단일 툴로는 최고의 DevOps툴인
GitLab Starter 라이센스에 포함된 기능을 요약하여 소개 합니다.
소프트웨어 개발 라이프사이클을 GitLab으로 개선해보세요.
DevOps 에서 DevSecOps를 단일 툴로 구축 가능합니다.
인포그랩은 다음 서비스를 제공합니다.
- GitLab 라이센스 비용 절감
- ITSM 고도화, DevSecOps 구축 및 개선 (진단→개선→실행→진단)
- 맞춤 설치와 환경 설정 혹은 최신 버전으로 업그레이드
- CI/CD 파이프라인을 구축하거나, 관련 기능 커스텀 개발
- Git, GitLab에 교육 제공, 개발 팀의 협업 개선을 위한 워크숍 진행
- Jira, Jenkins, SonarQube, Artifactory 연동 및 통합 또는 마이그레이션
- SVN, Perforce, CSV, ClearCase, BitBucket, GitHub, SourceSafe를 Git&GitLab으로 전환
넷플릭스에서는 높은 속도로 데이터를 제공하기 위해서 뿐만 아니라 멀티 리전의 데이터 가용성을 바탕으로한 전체 서비스 가용성 유지를 위해 캐시를 사용하고 있습니다. 이 앞의 세션에서 보았던 마이크로서비스 구조를 염두해 둘때 한가지 가장 간단한 변화는 외부 클라이언트로 부터 유입되는 단 하나의 요청에 대한 응답을 만들기 위해 다수의 내부 서비스들로 부터 데이터를 확보해야 하며, 이는 다수 서비스들에 대한 요청과 응답으로 이루어지게 됩니다. 내부 네트워크 성능, 데이터 저장소의 응답속도등의 복합적인 영향으로 인해 마이크로 서비스는 쉽게 느려질 수 있으며, 이는 보통 '팬아웃 효과'로 알려져 있습니다. 뿐만 아니라 다수 서비스간의 데이터 정합성 유지, 필요에 따라 각 서비스간 데이터의 다운타임 없는 이동, 증가하는 데이터량에 동시에 증가하는 데이터 소스의 부하, 그리고 이런 것들을 모두 감안한 데이터 복제 등을 처리해야 할 필요가 있습니다. 본 세션에서는 넷플릭스에서는 이런 문제를 어떤 방식으로 해결하는지, 그리고 스프링 부트, 스프링 클라우드를 비롯한 피보탈의 기술을 사용해서 어떻게 빠르고 쉽게 사용할 수 있는지에 대해 알아봅니다.
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...VMware Tanzu Korea
현업의 업무요청에서부터, 개발/검증/배포에 관련한 일련의 업무 과정을 하나의 Ticket으로 관리하여, 개발 생애주기 전체를 관리하는 방법에 대해 설명합니다. Concourse CI를 기반으로, 미리 만들어진 CI/CD pipeline Template을 통해 현업의 업무 요청을 Ticket 단위로 처리하여, Ticket 별로 개발 업무 과정을 자동화 할 수 있도록 구성한 사례를 공유합니다. Pivotal PAS를 통해, 개발 산출물에 대한 Build 및 Delivery가 Dev.Test/ Staging Test/ Production Deply 순서로 진행되어, 단계별 승인권자에 의해 별도의 결재 처리 없이 배포가 진행 될 수 있도록 간편화하였습니다. 형상관리에 대한 Version 전략 및 Branch 전략을 포함하고 있어서, 개발 설계 단계에서부터 쉽게 이해하고 사용 할 수 있도록 구성하였습니다.
Domain Driven Design 기반의 마이크로서비스 디자인 방법론에 대해 설명을 하고 피보탈이 권장하는 모노리스 애플리케이션의 마이크로서비스 전환 방법론에 대해 살펴봅니다. 또한 실제 마이크로서비스 프로젝트에서 발생할 수 있는 우려사항들에 대해서도 국내 프로젝트 경험을 바탕으로 짚어봅니다.
이번 밋업에서는 다양한 프로젝트에서 도메인에 따라 데이터를 분리한 경험이 있는 엔지니어들이 직접 마이크로서비스에 대해 이야기 합니다. 특히 피보탈의 APAC에서 Application Transformation 을 주도하는 팀의 Sumant Singh Rana와, Satya Ranjan 두 수석 엔지니어들, 그리고 이들과 현재 한국에서 함께 프로젝트를 진행하고 계신 피보탈 한국 김영태 상무님이 함께 하십니다.
마이크로서비스에서 도메인 모델에 따른 데이터의 분리와 적절한 데이터 저장소의 선택은 가장 먼저 고려되어야 할 사항입니다. 피보탈은 다양한 엔터프라이즈 고객과의 프로젝트 수행을 통해 체계화된 서비스를 보유하고 있으며, 본 밋업에서는 그 경험과 과정을 공유하는 시간이 될 것입니다.
Digital Transformation 시대의 개발 프로세스의 변화와 개선의 필요성이 대두되면서, DevOps에 대한 관심도 점차 높아지고 있는데요. DevOps 툴로서 아틀라시안(Atlassian)의 도입과 활용이 IT 업종을 비롯한 다양한 회사에서 다방면으로 이루어지고 있습니다. 특히 Atlassian Cloud 버전을 출시하고, 많은 회사들이 Cloud 버전을 사용하면서 DevOps로의 쓰임새가 더욱 확장되고 있습니다.
Source : http://www.opennaru.com/cloud/devops/
DevOps는 “비즈니스 가치를 높이는 것을 목적으로 제품 및 서비스를 신속하고 지속적으로 사용자로 전달하기 위해 IT 시스템의 개발 팀 (Dev)과 운영팀 (Ops)가 협력하는 것”을 뜻하는 말입니다.
<1탄>왜 마이크로 서비스인가 - 마이크로서비스로 구성된 애플리케이션 소개
Session abstract:
이번 세션에서는 무엇이 마이크로 서비스고, 어떤 철학과 사상을 가지고 있는지 알아봅니다. 세션이 종료되면 참석하신 분들은 마이크로 서비스의 구성에서 어떤 내용이 중요한지 알게 됩니다. 전체 시리즈로 진행되는 첫 세션 입니다.
Session agenda:
-실 서비스용 데이터베이스를 종료한다면 어떤 일이 벌어질까
-마이크로서비스와 마이크로서비스가 아닌것
-어떻게 시작해야 하나
-마이크로서비스 애플리케이션 소개
-클라우드 네이티브(클라우드 최적화란)
단일 툴로는 최고의 DevOps툴인
GitLab Starter 라이센스에 포함된 기능을 요약하여 소개 합니다.
소프트웨어 개발 라이프사이클을 GitLab으로 개선해보세요.
DevOps 에서 DevSecOps를 단일 툴로 구축 가능합니다.
인포그랩은 다음 서비스를 제공합니다.
- GitLab 라이센스 비용 절감
- ITSM 고도화, DevSecOps 구축 및 개선 (진단→개선→실행→진단)
- 맞춤 설치와 환경 설정 혹은 최신 버전으로 업그레이드
- CI/CD 파이프라인을 구축하거나, 관련 기능 커스텀 개발
- Git, GitLab에 교육 제공, 개발 팀의 협업 개선을 위한 워크숍 진행
- Jira, Jenkins, SonarQube, Artifactory 연동 및 통합 또는 마이그레이션
- SVN, Perforce, CSV, ClearCase, BitBucket, GitHub, SourceSafe를 Git&GitLab으로 전환
넷플릭스에서는 높은 속도로 데이터를 제공하기 위해서 뿐만 아니라 멀티 리전의 데이터 가용성을 바탕으로한 전체 서비스 가용성 유지를 위해 캐시를 사용하고 있습니다. 이 앞의 세션에서 보았던 마이크로서비스 구조를 염두해 둘때 한가지 가장 간단한 변화는 외부 클라이언트로 부터 유입되는 단 하나의 요청에 대한 응답을 만들기 위해 다수의 내부 서비스들로 부터 데이터를 확보해야 하며, 이는 다수 서비스들에 대한 요청과 응답으로 이루어지게 됩니다. 내부 네트워크 성능, 데이터 저장소의 응답속도등의 복합적인 영향으로 인해 마이크로 서비스는 쉽게 느려질 수 있으며, 이는 보통 '팬아웃 효과'로 알려져 있습니다. 뿐만 아니라 다수 서비스간의 데이터 정합성 유지, 필요에 따라 각 서비스간 데이터의 다운타임 없는 이동, 증가하는 데이터량에 동시에 증가하는 데이터 소스의 부하, 그리고 이런 것들을 모두 감안한 데이터 복제 등을 처리해야 할 필요가 있습니다. 본 세션에서는 넷플릭스에서는 이런 문제를 어떤 방식으로 해결하는지, 그리고 스프링 부트, 스프링 클라우드를 비롯한 피보탈의 기술을 사용해서 어떻게 빠르고 쉽게 사용할 수 있는지에 대해 알아봅니다.
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...VMware Tanzu Korea
현업의 업무요청에서부터, 개발/검증/배포에 관련한 일련의 업무 과정을 하나의 Ticket으로 관리하여, 개발 생애주기 전체를 관리하는 방법에 대해 설명합니다. Concourse CI를 기반으로, 미리 만들어진 CI/CD pipeline Template을 통해 현업의 업무 요청을 Ticket 단위로 처리하여, Ticket 별로 개발 업무 과정을 자동화 할 수 있도록 구성한 사례를 공유합니다. Pivotal PAS를 통해, 개발 산출물에 대한 Build 및 Delivery가 Dev.Test/ Staging Test/ Production Deply 순서로 진행되어, 단계별 승인권자에 의해 별도의 결재 처리 없이 배포가 진행 될 수 있도록 간편화하였습니다. 형상관리에 대한 Version 전략 및 Branch 전략을 포함하고 있어서, 개발 설계 단계에서부터 쉽게 이해하고 사용 할 수 있도록 구성하였습니다.
Domain Driven Design 기반의 마이크로서비스 디자인 방법론에 대해 설명을 하고 피보탈이 권장하는 모노리스 애플리케이션의 마이크로서비스 전환 방법론에 대해 살펴봅니다. 또한 실제 마이크로서비스 프로젝트에서 발생할 수 있는 우려사항들에 대해서도 국내 프로젝트 경험을 바탕으로 짚어봅니다.
Meetup tools for-cloud_native_apps_meetup20180510-vsminseok kim
마이크로서비스로 시스템을 구성하면 서비스간에 연관관계가 줄어들면서 서비스 릴리즈 속도가 높아지고 유연하게 대처할 수 있지만, 관리포인트가 늘어나게 되어 운영상에 많은 어려움을 마주치게 됩니다. 배포 될 때마다 생성되고 소멸되는 마이크로서비스를 다른 마이크로서비스가 쉽게 참조하게 하고 마이크로서비스들의 설정 정보를 일관되게 관리하는 일은 쉬운일이 아닙니다. 이러한 문제를 해결하기 위해 Spring Cloud 프로젝트와 같은 도구를 비롯하여 Pivotal Cloud Foundry와 같은 클라우드 플랫폼등이 있습니다. 이번 밋업에서는 마이크로서비스를 운영할 때의 어려운점과 도움을 주는 다양한 도구들에 대해 알아보도록 하겠습니다.
2017년 4월 출시된 최신 RAD스튜디오 10.2 도쿄 버전의 최신 기술들을 정리한 문서입니다.
개발 성능 향상, 최신 OS지원, 새로운 개발 영역(클라우드, IoT 등)으로의 손쉬운 확장 등.
개발자들에게 복잡할 수 있는 기술들을 간편하게 적용할 수 있는 RAD스튜디오의 기술과 활용팁 입니다.
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.
goorm is the cloud-based Integrated Development Environment. It is developed in only javascript and using various open source libraries. It is also an open-source project. goorm supports currently C/C++ and Java as well as HTML, CSS, PHP and Javascript. Other languages will be supported with plugin.
2. 배경
• 외주 개발로 하이브리드 앱을 다수 개발.
• 앱을 초기 세팅 및 빌드하는 시간이 대부분 소요됨
• 앱의 기능은 공통적인 부분이 대부분.
• 하나의 앱에서 문제(버그) 발생시 다른 프로젝트의 코드까지 수정되어야하는 문제점 발생
• 앱이 개발되서 나올때 까지 웹 개발자는 대기하는 시간이 발생
• 공통적인 것을 자동화 배포로 만들자.
2017-07-24MINT-SOFT 1
3. 계획
2017-07-24MINT-SOFT 2
• 웹개발자에게 시뮬레이터앱을 제공함으로써 웹 개발이 쉽도록 함.
• 버그 발생시 자동으로 앱을 업데이트 하도록 함.
• 모든 시스템을 자동화 함으로써 비용 절감
• 앱의 기능을 사용가능하도록 SDK를 제공함
• 템플릿을 제공함으로써 사용자만의 앱 제작가능하도록 함.
• 하이브리드 앱 배포를 클라우드상에서 이뤄지도록 함.
5. HiApp 서버
• 사용자가 프로젝트를 생성해서 빌드 및 배포
• 각종 정보(아이콘이미지,모바일웹주소,템플릿등)을 입력함.
• 앱의 SDK 파일을 생성함.
• 템플릿이 수정되었을경우 앱을 자동적으로 업데이트 함.
• 사용자의 프로젝트파일을 다운받을수 있음.
2017-07-24MINT-SOFT 4
HiApp Server
6. 템플릿 저장소
• 모바일앱의 UI를 템플릿화 시켜서 사용자가 선택하도록 함.
• 템플릿을 안드로이드,IOS 별로 제작.
• 설명서까지 같이 배포해서 사용자의 선택에 도움을 줌.
2017-07-24MINT-SOFT 5
템플릿 저장소
7. 클라우드 배포 서비스
• HiApp 서버에 명령을 받아서 앱을 빌드 및 배포함.
• 배포 결과를 HiApp 서버에 전달해 개발자가 알수 있도록 함.
• 자동적으로 구글,애플의 앱스토어에 배포까지 처리함.
• 알파버젼,베타버젼,릴리즈버젼으로 구분해서 앱을
배포하기 전에 테스트가 가능하도록 함.
• 빌드 파일은 다른 클라우드 파일 서버에 저장함
2017-07-24MINT-SOFT 6
빌드 빌드빌드
클라우드 배포 서버
8. 파일 서버
• 앱을 빌드 및 배포시 발생되는 파일을 저장함.
• 퍼블릭 클라우드를 사용하지 않는 이유
• 빌드시 발생되는 코드의 외부 유출을 방지
• 사용자의 요청이 있을경우만 파일 제공
• ftp및 nas를 사용하지 않는 이유
• 배포 키,인증서와 같은 중요한 데이타는 백업이 필수
• ftp와 nas의 백업을 구축하는것 보다 클라우드서버를 구축해서 백업을 하는게 유리
2017-07-24MINT-SOFT 7
파일 서버
9. 시뮬레이터 앱
• 웹개발자가 개발할때 실제 앱과 동일한 환경에서 테스트 해볼수 있는 앱
• 각종 기능 테스트를 해볼수 있는 앱
• 푸쉬 테스트
• 위치 정보 테스트
• 연락처 테스트
• 파일 저장 테스트
2017-07-24MINT-SOFT 8
시뮬레이터
10. 자동 업데이트
• 기능추가 및 버그 수정에 따른 앱들을 자동으로 업데이트 함.
• 템플릿 저장소에 소스코드를 올리면 HiApp서버가 모든 프로젝트의 앱을 업데이트 함.
• 업데이트 선택가능하도록 함.
• 개발자가 업데이트 확인 후 업데이트
• 확인 없이 자동업데이트
2017-07-24MINT-SOFT 9
11. SDK
• 앱의 특정한 기능을 사용하고자 할때 필요한 API 함수.
• 특정기능은 웹으로 해결되지 않고 네이티브의 기능을 사용해야 될경우가 존재
• Javascript sdk(Software Development Kit)을 제공함으로써 웹개발자가 편하게 네이티브의
기능 사용하도록 제공
2017-07-24MINT-SOFT 10
12. 차후계획
• 쇼핑몰제작회사,솔루션 제작회사와 협업해 특정 회사에 맞는 템플릿 제공
• 폼이 정해진 솔루션일 경우 네이티브 자동 배포도 개발 예정
• Back-End 개발자에게 SDK 제공
• 푸쉬서비스 통계
• Google Analytics 통계 페이지
2017-07-24MINT-SOFT 11