다들 DevOps 를 적용하고는 있지만 어디까지가 DevOps 인 것인지, 어떻게 얼마나 바꾸고 적용할 것인가 결정하는 것은 쉽지 않습니다.
본 세션은 DevOps 를 왜 적용해야 하는가? 라는 질문을 시작으로 DevOps 를 Culture, Think, Code, Deliver, Run, Manger, Learn 의 7단계로 나누어 차근차근 짚어봅니다.
<3탄>스프링 부트를 사용한 마이크로 서비스 개발 (로컬 환경) | 페어 프로그래밍 데모 (테스트 작성)
이번 세션에서는 Spring Boot를 사용한 웹 애플리케이션 개발에 대해 소개합니다. 이때 제작되는 애플리케이션은 Pivotal에서 풀타임으로 사용하고 있는 페어프로그래밍을 통해 테스트부터 작성하는 핑퐁 페어등을 소개합니다. 두명이 함께 코드를 작성하는 환경을 통해 빠른 사업환경의 변화를 수용할 수 있는 개발 업무가 Pivotal에서는 어떻게 다른지 살펴봅니다.
다들 DevOps 를 적용하고는 있지만 어디까지가 DevOps 인 것인지, 어떻게 얼마나 바꾸고 적용할 것인가 결정하는 것은 쉽지 않습니다.
본 세션은 DevOps 를 왜 적용해야 하는가? 라는 질문을 시작으로 DevOps 를 Culture, Think, Code, Deliver, Run, Manger, Learn 의 7단계로 나누어 차근차근 짚어봅니다.
<3탄>스프링 부트를 사용한 마이크로 서비스 개발 (로컬 환경) | 페어 프로그래밍 데모 (테스트 작성)
이번 세션에서는 Spring Boot를 사용한 웹 애플리케이션 개발에 대해 소개합니다. 이때 제작되는 애플리케이션은 Pivotal에서 풀타임으로 사용하고 있는 페어프로그래밍을 통해 테스트부터 작성하는 핑퐁 페어등을 소개합니다. 두명이 함께 코드를 작성하는 환경을 통해 빠른 사업환경의 변화를 수용할 수 있는 개발 업무가 Pivotal에서는 어떻게 다른지 살펴봅니다.
Github repository: https://github.com/ihoneymon/rocking-the-gradle
Youtube 영상: https://www.youtube.com/watch?v=5IAahr4TU5Y
rocking-the-gradle 이라는 디렉토리를 만들고
setupBuil 자바 프로젝트로 초기화 하고
task 를 작성-실행하고
test 를 작성-실행하고
멀티프로젝트(rocking-core + rocking-web)로 나누고
의존관계를 선언하고 필요한 의존성 라이브러리를 추가하는 과정을 설명한다.
스프링 기본설정을 추가하고
젠킨스에 job을 등록해서 배포하는 과정을 추가하면
그럭저럭 쓸만한 gradle tutorial이 될 수 있지 않을까?
넷플릭스에서는 높은 속도로 데이터를 제공하기 위해서 뿐만 아니라 멀티 리전의 데이터 가용성을 바탕으로한 전체 서비스 가용성 유지를 위해 캐시를 사용하고 있습니다. 이 앞의 세션에서 보았던 마이크로서비스 구조를 염두해 둘때 한가지 가장 간단한 변화는 외부 클라이언트로 부터 유입되는 단 하나의 요청에 대한 응답을 만들기 위해 다수의 내부 서비스들로 부터 데이터를 확보해야 하며, 이는 다수 서비스들에 대한 요청과 응답으로 이루어지게 됩니다. 내부 네트워크 성능, 데이터 저장소의 응답속도등의 복합적인 영향으로 인해 마이크로 서비스는 쉽게 느려질 수 있으며, 이는 보통 '팬아웃 효과'로 알려져 있습니다. 뿐만 아니라 다수 서비스간의 데이터 정합성 유지, 필요에 따라 각 서비스간 데이터의 다운타임 없는 이동, 증가하는 데이터량에 동시에 증가하는 데이터 소스의 부하, 그리고 이런 것들을 모두 감안한 데이터 복제 등을 처리해야 할 필요가 있습니다. 본 세션에서는 넷플릭스에서는 이런 문제를 어떤 방식으로 해결하는지, 그리고 스프링 부트, 스프링 클라우드를 비롯한 피보탈의 기술을 사용해서 어떻게 빠르고 쉽게 사용할 수 있는지에 대해 알아봅니다.
단일 툴로는 최고의 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 전략을 포함하고 있어서, 개발 설계 단계에서부터 쉽게 이해하고 사용 할 수 있도록 구성하였습니다.
Pivotal은 개발자 생산성을 높이고 운영비용을 줄이면서 성공적인 비지니스를 할 수 있도록 개발 환경의 혁신 문화와 플랫폼을 제공하고 있습니다.
본 세션에서는 플랫폼의 구조와 효과에 대해 소개하며 기업이 진정한 기술선도 업체로 발전해 갈 수 있도록 혁신적은 플랫폼 *PAS, *PKS를 소개합니다.
*PAS: Pivotal Application Service로 개발자에게 기능 구현 속도를 높이고, 운영 팀은 세계 최고 수준의 가용성을 제공해주는 서비스입니다.
*PKS: Pivotal Container Service로 Kubernates의 배포, 관리, 모니터링, 업데이트 등을 자동화하고 Pivotal에서 관리해주는 서비스입니다
Digital Transformation 시대의 개발 프로세스의 변화와 개선의 필요성이 대두되면서, DevOps에 대한 관심도 점차 높아지고 있는데요. DevOps 툴로서 아틀라시안(Atlassian)의 도입과 활용이 IT 업종을 비롯한 다양한 회사에서 다방면으로 이루어지고 있습니다. 특히 Atlassian Cloud 버전을 출시하고, 많은 회사들이 Cloud 버전을 사용하면서 DevOps로의 쓰임새가 더욱 확장되고 있습니다.
Github repository: https://github.com/ihoneymon/rocking-the-gradle
Youtube 영상: https://www.youtube.com/watch?v=5IAahr4TU5Y
rocking-the-gradle 이라는 디렉토리를 만들고
setupBuil 자바 프로젝트로 초기화 하고
task 를 작성-실행하고
test 를 작성-실행하고
멀티프로젝트(rocking-core + rocking-web)로 나누고
의존관계를 선언하고 필요한 의존성 라이브러리를 추가하는 과정을 설명한다.
스프링 기본설정을 추가하고
젠킨스에 job을 등록해서 배포하는 과정을 추가하면
그럭저럭 쓸만한 gradle tutorial이 될 수 있지 않을까?
넷플릭스에서는 높은 속도로 데이터를 제공하기 위해서 뿐만 아니라 멀티 리전의 데이터 가용성을 바탕으로한 전체 서비스 가용성 유지를 위해 캐시를 사용하고 있습니다. 이 앞의 세션에서 보았던 마이크로서비스 구조를 염두해 둘때 한가지 가장 간단한 변화는 외부 클라이언트로 부터 유입되는 단 하나의 요청에 대한 응답을 만들기 위해 다수의 내부 서비스들로 부터 데이터를 확보해야 하며, 이는 다수 서비스들에 대한 요청과 응답으로 이루어지게 됩니다. 내부 네트워크 성능, 데이터 저장소의 응답속도등의 복합적인 영향으로 인해 마이크로 서비스는 쉽게 느려질 수 있으며, 이는 보통 '팬아웃 효과'로 알려져 있습니다. 뿐만 아니라 다수 서비스간의 데이터 정합성 유지, 필요에 따라 각 서비스간 데이터의 다운타임 없는 이동, 증가하는 데이터량에 동시에 증가하는 데이터 소스의 부하, 그리고 이런 것들을 모두 감안한 데이터 복제 등을 처리해야 할 필요가 있습니다. 본 세션에서는 넷플릭스에서는 이런 문제를 어떤 방식으로 해결하는지, 그리고 스프링 부트, 스프링 클라우드를 비롯한 피보탈의 기술을 사용해서 어떻게 빠르고 쉽게 사용할 수 있는지에 대해 알아봅니다.
단일 툴로는 최고의 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 전략을 포함하고 있어서, 개발 설계 단계에서부터 쉽게 이해하고 사용 할 수 있도록 구성하였습니다.
Pivotal은 개발자 생산성을 높이고 운영비용을 줄이면서 성공적인 비지니스를 할 수 있도록 개발 환경의 혁신 문화와 플랫폼을 제공하고 있습니다.
본 세션에서는 플랫폼의 구조와 효과에 대해 소개하며 기업이 진정한 기술선도 업체로 발전해 갈 수 있도록 혁신적은 플랫폼 *PAS, *PKS를 소개합니다.
*PAS: Pivotal Application Service로 개발자에게 기능 구현 속도를 높이고, 운영 팀은 세계 최고 수준의 가용성을 제공해주는 서비스입니다.
*PKS: Pivotal Container Service로 Kubernates의 배포, 관리, 모니터링, 업데이트 등을 자동화하고 Pivotal에서 관리해주는 서비스입니다
Digital Transformation 시대의 개발 프로세스의 변화와 개선의 필요성이 대두되면서, DevOps에 대한 관심도 점차 높아지고 있는데요. DevOps 툴로서 아틀라시안(Atlassian)의 도입과 활용이 IT 업종을 비롯한 다양한 회사에서 다방면으로 이루어지고 있습니다. 특히 Atlassian Cloud 버전을 출시하고, 많은 회사들이 Cloud 버전을 사용하면서 DevOps로의 쓰임새가 더욱 확장되고 있습니다.
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요Ian Choi
* 본 세션은 2022년 11월 15일, Microsoft Ignite Spotlight on Korea 오프라인 행사에서 진행된 세션의 녹화본 발표 자료입니다.
- 제목: "디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요"
- 스피커: 최영락 (한국마이크로소프트, Territory Channel Mgr.) & 변정훈 (GitHub Star(aka., Outsider)
- 설명: AI가 많은 부분을 바꾸고 있는 세상에서 GitHub은 2021년 AI 페어 프로그래머인 GitHub Copilot을 발표하고 올해 유료 모델로 공개했습니다. GitHub Copilot과 함께 코딩할 때 어떤 부분을 도와주고 얼마나 유용한 지 설명합니다.
- 영상 보기: https://info.microsoft.com/KO-DevOps-VDEO-FY23-01Jan-10-From-design-to-coding-AI-drives-program-development-GitHub-Copilot-how-far-have-you-found-out-SRGCM8854_LP01-Registration---Form-in-Body.html
- 참고: 지난 Ignite 2022에서서 등장하신 사티야 및 OpenAI CEO 두 분께서 대화한 ChatGPT 및 Codex에 대한 자세한 내용은 https://youtu.be/EDsGm-3OEOY 를 통해서도 보실 수 있습니다.
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
2018년 서울시 앱 공모전 (URL: https://mplatform.seoul.go.kr )에서 GitHub 설명을 위한 자료입니다. 이전 https://www.slideshare.net/ianychoi/git-github-46020592 자료에 모바일 앱 개발 환경 및 GitHub Desktop 프로그램에 대한 부분을 추가하였습니다.
블록체인 제품 생태계를 구성해보자
Ground X가 블록체인을 통해 세상에 기여하고 싶은 메세지가 있습니다. 그것을 이뤄내기 위해 어떤 제품들을 기획했고, 1년반동안 제품을 만들면서 PM/Designer/Data scientist/Engineer 들과 어떻게 협업을 하였는지 공유하고자 합니다. 그리고 메인넷을 출시한 다음에 어떤 제품로드맵과 방향을 가지고 있는지 공유할 예정입니다.
이 발표는 [야생의 땅: 듀랑고]의 지형 배포 시스템과 생태계 시뮬레이션 자동화 시스템에 대한 이야기를 다룹니다. 듀랑고의 각 섬은 크기와 지형, 기후 조건이 다양하고 섬의 개수가 많아서 수동으로 관리하는 것은 사실상 불가능합니다. 몇번의 사내 테스트와 베타 테스트를 거치면서 이러한 문제를 해결해주는 자동화된 도구의 필요성이 절실해졌고, 작년에 NDC에서 발표했던 생태계 시뮬레이터와 Docker, 그리고 아마존 웹서비스(AWS)를 이용하여 수많은 섬들을 자동으로 생성하고 관리하는 자동화 시스템을 구축하게 되었습니다. 그 과정에서 했던 고민들, 기존의 애플리케이션을 "Dockerizing" 했던 경험, AWS의 각 서비스들을 적절히 활용했던 이야기, AWS의 각 지역별 요금이 상이하다는 점을 이용해서 비용을 절감한 사례, 그리고 자동화 시스템의 문제점과 앞으로의 방향에 대해서 이야기 할 계획입니다.
3. Backend.AI
Backend.AI 는
딥러닝 및 고성능 컴퓨팅에 특화된
오픈소스 클라우드 리소스 관리
플랫폼입니다.
GPU 분할 가상화를 제공하여,
과학자, 데브옵스, 기업 및 AI 애호가들이
효율적으로 규모를 확장
할 수 있게 돕습니다.
https://github.com/lablup/backend.ai (메타 저장소) 및 19개 저장소로 구성되어
있습니다.
프로젝트 분야: 머신 러닝, 딥러닝, 클라우드, Docker, 컨테이너 가상화, GPU
4. Backend.AI + 컨트리뷰톤
다양한 분야에 기여할 수
있습니다.
소스코드 리뷰 및 피드백이 비교적
빠릅니다.
최신 기술 스택을 익히고 쓸 수
있습니다.
다양한 환경에서 머신러닝 모델을
쉽게 구축할 수 있습니다.
1.
2.
3.
4.
“ Backend.AI라는 하나의 프로젝트 안에서
BackEnd, FrontEnd, Documentation, ML Model
구축과 같은 분야가 각각 어떻게 발전해 나가고,
문제가 발생했을 때 어떻게 해결하는지 파악할 수
있다.” - 강지현님
Python 비동기 라이브러리 asyncio,
Docker container 개발 및 테스트
Web components, websocket proxy, nodejs 기반
개발 환경
TensorFlow, Tensorboard, PyTorch
Backend
Frontend
ML model
PR 이후 최소 0일
PR 이후 최대 7일
안에
답변
컨트리뷰톤기간동안 제공 리소스
CPU 4코어
RAM 32기가
4 GPUs
5 세션
5. Backend.AI: 팀
멘토 3명 / 멘티 17명 → 15명
● 2명 회사일개인 사정으로 (ㅠ_ㅠ)
시간과 공간의 벽을 넘어서
● 중학교 2학년도 있고
● 뉴요커도 있었습니다.
(현지시간) 새벽 여섯시 반부터 온라인으로 참석 중인 멘티의 자기 소개를 경청하는
모습입니다.
6. Backend.AI: 기여 요약
기여 분야
● 백엔드
● 프론트엔드
● 문서화 및 예제
주요 기여
● 개발자를 위한 개발 환경 설치
스크립트 업데이트
● GUI 콘솔의 다양한 이슈 해결
● 공식 문서의 한국어화 진행
15개의 이슈 생성
10개의 코드 PR
20개의 문서화 및 번역
PR
3000+ 이상의 코드 줄
수정
7. Backend.AI: 기여 요약
기여 분야
● 백엔드
● 프론트엔드
● 문서화 및 예제
주요 기여
● 개발자를 위한 개발 환경 설치 스크립트 업데이트
● GUI 콘솔의 다양한 이슈 해결
● 공식 문서의 한국어화 진행
11. Backend.AI: 활동 요약
3명의 멘토
175명의 멘티
2번의 오프라인 미팅
슬랙과 카카오톡
5번의 온라인 미팅
8월 7일
8월 14일
8월 20일
8월 28일
Office Hour
12. 나의 기여 경험 소개
Backend.AI 의 GUI 개선에 기여
● 공식 문서 일부 번역
● 새로 세션을 만들 때 드롭다운 메뉴가 겹쳐 보이던 버그 수정
○ 단순히 css에서 z-index 한 줄을 삭제하여 해결
● 연구/개발환경 다운로드 항목에서 필터링 후 선택한 도커 환경 이미지와 다른 도커 이미지가
다운로드되는 버그 수정
○ 필터링은 프론트에서 하는데, 다운로드의 파라미터로 인덱스를 쓰기 때문에 발생
○ 해시로 사용할 수 있는 값을 찾아 파라미터로 수정하여 해결
● 창의 가로크기가 700px 보다 작을 때 드롭다운 메뉴의 위치가 정상적이지 않은 경우를
발견하여 이슈 발행
○ 해당 컴포넌트의 배치를 변경하여 문제를 해결하는 PR 작성
13. 나의 기여 경험 고생담
당연히 순탄치 않았습니다!
Backend.AI GUI를 보기위해 필요한 것:
● 웹서버
● 자동으로 빌드해주는 watcher,
● 웹소켓 프록시
삽질 끝에 드디어 화면을 보는가 싶었지만 로그인이 안 되는 오류가
발생함
● 저를 포함 다른 멘티분들도 동일한 증상이 있었고, 이후
issue가 올라옴
● 멘토님께서 온라인 미팅을 통해 Backend.AI를 로컬에서
실행하는 법을 알려주셨고,
● endpoint를 로컬로 하여 IAM 방식으로 로그인하여 앞의
멘토: 사실 이건 버그가 아니라 Chrome 80
부터 로컬 쿠키 발행에 대한 동작이
바뀌어서 발생한 문제였습니다;
https://www.chromium.org/administrators/policy-list-3/cookie-lega
cy-samesite-policies
14. 나의 기여 경험에서 배운 것들
새로운 기술 및 도구들
● 알고만 있던 Docker를 손에 익힐 수 있었고
● WebComponents 및 TypeScript를 새로 알게 되었으며
● 환경설정하는 부분에서 pyenv를 필요한 만큼 자유롭게 사용할 수 있게 되었습니다.
Backend.AI에서 배운 점들
● 이렇게 크고 구조적인 프로젝트는 처음
● 1~2주차까지는 거의 폴더 여기저기를 돌아다니며 구경하기 바빴음;
● 특히 모듈화가 잘 되어있어 오류가 난 부분의 코드를 빠르게 찾을 수 있었습니다.
15. 앞으로의 계획
첫 PR -> Merge
● 한 줄의 수정에도 PR을 두 번이나 닫았다가 열었을 정도로 고민했다.
● Merge가 되었을 땐 만사 제쳐두고 다음 이슈 찾으러..
좀 더 비중있는 기여를 위해
● 새로운 feature 제안이나 추가 등
● 코드에 대한 확신이 들 때까지 공부하자!
16. 참가자들의 소감
커뮤니티에 도움을 요청하고 도움을 받으면서 문제를 해결하는 과정을 통해 오픈소스에 대한
막연한 두려움을 이겨낼 수 있었습니다. 앞으로도 다른 여러 오픈소스 프로젝트에 두려움 없이
참여할 수 있는 용기를 얻은 소중한 경험이었습니다. / 구근모
소스코드에 직접 기여하는 것과 함께 문제가 발생했을때 어떻게 공개적으로 설명해야 하고,
해결해 나가야 하는지를 배울 수 있어 매우 뜻깊은 경험이었습니다. / 강지현
오픈소스에 기여하는 방법을 알 수 있었고 오픈소스 환경을 이해할수있었습니다. 이후
기여활동에 큰 도움이 될것같습니다. / 박규리
이번 오픈소스 컨트리뷰톤을 통해서 제대로 된 오픈소스 기여를 처음 해봤습니다. 다른
사람들이 쉽게 접할 수 있는 코드 관리를 시작할 수 있는 좋은 기회였습니다. / 김성철