티스토리 뷰

반응형

 

 

2019년 10월 20일 일요일 GDG DevFest Seoul 2019에 참가하여 세종대학교에 다녀왔다.

혼자가서 지루하지는 않을까 생각도 들었고, 일요일이라서 막상 가기 귀찮다는 생각이 들었지만 

결과적으로 보면 너무 재밌었고 다녀오길 잘했다는 생각이 든다. bb

 

https://festa.io/events/559

 

GDG DevFest Seoul 2019 | Festa!

Festa에서 당신이 찾는 이벤트를 만나보세요.

festa.io

 

 

 

후원사 부스 행사에 참여하여 여러가지 후원사 굿즈도 받고, 행사 참여 빙고를 2개 완성하여 목도리도 받게 되었다.

 

 

행사 참여가 처음이라, 배고플까봐 마카롱도 사서 가지고 왔는데.. 괜히 샀다. ㅠㅠ 당 떨어지는 사람들을 위해 간식도 나눠주시고..후

이번 행사 중, 제일 사람들이 많이 몰리고 인기 있는 시간은 카카오 페이 경품 추첨 시간이 아니였을까 싶다.

약 500명이 넘는 사람들 중 선택받은 15명만이 받는 카카오 프렌즈 인형.. 경품 추첨 시간은 정말 카카오페이 부스 앞에 사람이

가득찼다. 내심 기대했지만, 역시 ㅎㅎ

 

 

원래 계획은 프로그래밍의 미래 함수형 프로그래밍 > WebGPU is coming  > Toy Project가 쏘아올린 작은 공 > 웹서비스에서 MSA 톺아보기 순서로  듣고 올 생각이었지만, 지각으로 인해서 WebGPU is comming 부터 듣게 되었다.

 

사실 WebGPU is comming 세션은 나와는 조금 다른 분야여서 주의 깊게 듣지를 못했다. 그냥 아~ WebGPU라는게 있구나 하고

이해하기 쉽게 준비해주신 영상을 보고 우와~ 만 연신 외쳤던 것 같다.

 

★ Toy Project가 쏘아올린 작은 공 - TmaxSoft 이동민님

세션을 발표해주신 이동민님께서 오늘 세션 주제는 클라우드 기술 이야기 보다는 그냥 자신의 자랑이라고 솔직하고 재치있게 말씀해 주셔서 시작부터 재밌었다. 

먼저 결론부터 이야기 하자면 아래 적힌 내용이다.

꾸준한 학습, 자기 브랜딩 + 내 프로젝트 오픈 소스, 커뮤니티 공유 = 좋은 기회

 

pingcloud-cli라는 본인의 토이 프로젝트와 이를 통해 자기 PR을 어떻게 하고 결과적으로 얻은 것들에 대해서 이야기를 해주셨다.

이동민님께서는 토이 프로젝트를 오픈소스로 공개하며 여러 커뮤니티 사이트에 올리고 그로인해 다양한 피드백을 받고 코드를 발전 시킬 수 있다고 이야기 해주셨다. 또한, 이를 계기로 생각보다 많은 기회들이 찾아왔고 AWS support 팀에서 internal tool로 사용하고 싶다는 제의와 다른 여러 이직 제의를 받게 되었다고 한다.

pingcloud-cli는 GCP, AWS, Azure 클라우드 3대장 각 region별 latency 테스트 CLI 프로그램이다.

https://github.com/reoim/pingcloud-cli

 

reoim/pingcloud-cli

CLI application to check http request latency of AWS, Google Cloud Platform and Azure - reoim/pingcloud-cli

github.com

토이 프로젝트를 만들고, 이런 좋은 결과를 얻은 방법들을 정리하여 공유해 주셨다. 

 

1. 적절한 커뮤니티에 공유해라 

- 혼자 만들어봐야 아무도 알아주지 않는다. 공유하자

클라우드 > 국내외 GCP, AWS, Azure 커뮤니티

Go로 개발 > Golang Korea

 

2. README.md 정리

-  README가 곧 프로그램의 첫 인상

README 시작은 visual 하게 , 프로그램 실행화면 스크린샷 추가

글만 장황한 README는 읽고 싶지가 않다.

 

- 무엇에 쓰는 프로그램인지?

프로그램 설치 과정은 최대한 자세히

처음에 간단히 썼다가 쪽지와 메일을 엄청 받음

 

-사용법은 스크린샷과 함께

실행 명령어와 결과 화면을 정리

 

 

토이 프로젝트 한방으로 이 모든 행운이 찾아오는 것은 아니기 떄문에,

행운이 찾아오도록 잦은 내자랑과 기회를 잡을 수 있는 준비가 중요하다고 강조해 주셨다.

실력은 기본, 브랜딩은 +@ 근데 조금 큰 @

 - 기술 블로그

- 학습 과정을 블로그에 기록하여 스토리 텔링

- 커뮤니티 활동

- 밋업, 컨퍼런스 발표

- LinkedIn 업데이트(내가 관심 갖은 것들 나에게 도움 될만한 것들로 키워드 설정)

- 쿨내나는 토이 프로젝트

- 계속해서 나를 알리려는 노오력

 

이직 후, 요즘 뭔가 나태해지면서 공부를 게을리하고 있는 것 같다. ELK STACK, Docker, Toy project, Spring security 등 공부 한 내용을 정리하지도 않고 공부 보다는 놀기 더 바쁜 나날을 보내고 있는 것 같다. 이런 자신을 반성하고 다시 금 마음을 다잡을 수 있는 계기가 되서 좋았던 세션이었다.

특히 README에 대한 부분은 정말 많은 공감이 된다. 이전에 모 회사의 코딩 테스트를 과제 제출로 본 적이 있었는데, 코드에 너무 집중하다 보니 마감시간이 어느 덧 5분 남았었다. DB 설계서와 클래스 명세서 등 여러 가지 내용 등도 함께 제출하는데 코드에 너무 집중하느라 시간에 쫒겨 너무 부족한 설명으로 제출했었다. 결과는 탈락이었지만, 제출하고 생각해보니 많은 지원자들의 코드를 하나하나 보는게 아니라 README와 같이 프로그램 설계서나 소개서를 먼저 볼 것 같다는 생각이 들었었다. 이미 지난 일이지만, 다음에는 더욱 신경을 쓸 수 있을 것 같다.

 

 

★ 웹서비스에서 MSA 톺아보기 - SKT 김한성님

 

이번 GDG DevFest Seoul 2019에서 제일 기대했던 세션이다. MSA(Micro Service Architecutr)는 이직 전부터 관심을 갖고 있는 분야이고, 현재 회사에서도 내부 프로젝트들을 MSA로 바꾸기 위해 공부 중이어서 너무 필요하고 간절했던 세션이었다.

세션 제목을 보고 톺아보기가 오타인줄 알았다. 그러나 아래와 같이 국어사전에 등재되어 있다.

샅샅이 톺아 나가면서 살피다.

출처 : https://ko.dict.naver.com/#/entry/koko/7f3f3584722a41a4b7cd38a41c65dd7c

 

네이버 국어사전

3개의 한국어 대사전 (표준국어대사전, 고려대한국어대사전, 우리말샘), 상세검색, 맞춤법, 보조사전

ko.dict.naver.com

 

Monolithic Architecture와 Micro Service Architecture에 대해 설명하자면 아래와 같다. 아래 용어 설명은 이전에 

자바 기반의 마이크로 서비스 이해와 아키텍처 구축하기 책을 읽고 간략한 후기를 작성한 내용에서 옮겨왔다.

https://055055.tistory.com/16

 

[책]자바 기반의 마이크로서비스 이해와 아키텍처 구축하기

'자바 기반의 마이크로서비스 이해와 아키텍처 구축하기'는 약 4달간 함께 했던 회사 선배가 추천해준 책이다. 항상 읽어야지 하며 미루다가, 주말을 활용하여 읽어 봤다. 기존 모놀리스 서비스를 구축하는 방법..

055055.tistory.com

- Monolithic Architecture : 모든 업무 로직이 하나의 애플리케이션 형태로 패키지 되어 서비스 되고, 데이터 또한 한 곳에 모인 데이터를 참조 하여 서비스하는 방식

모놀리스 아키텍처

그림 출처 : 김한성님 발표 자료

 

 

- MSA(Micro Service Architecture) : 아주 작은 단위로 동작하는 서비스가 구동되도록 시스템 및 소프트웨어의 구성과 구성 요소 간의 관계를 정의하고 설계 하는 방식

 

마이크로 서비스 아키텍처

그림 출처 : 김한성님 발표 자료

 

MSA의 구성은 대체로 아래와 같은 형태로 구성되어 진다고 하나 아직 표준은 없다고 한다.

- API Gateway : API의 End-point를 통합

- Orchestration : 여러개의 서비스를 묶어서 하나의 서비스로 만듦(서비스 배포 관리)

- Service Mesh : 서비스간의 통신 (네트워크 관리)

그림 출처 : 김한성님 발표 자료

 

MSA의 장점 

1. 확장의 유연함 ( 새로운 서비스 추가)

2. 확장의 유연함(Scaling: 서버 확장 및 축소 )

3.. Fault Isolation(장애분리?)

 

MSA의 단점

1. 장애 추적(여러 서비스 로그 및 담당자 커뮤니케이션 비용)

 

MSA를 운영할 때 On-Premise 환경 에서 할 것인지 Cloud 환경에서 할것인지?

On-premise 

- 물리 서버 관리하는 것부터 일  > 네트워크 , 스토리지 등

- 다양한 프레임 워크를 쓰다보면 매번 새로운 장애 발생 > 라이브러리, 모듈 등

- 관리용 애플리케이션의 필요 > Cron, Monitoring, Batch 등

- Scaling(Up/Down/In/Out) 등에 제약이 있음 > 서버 구매부터 설치까지

On-premise 환경에서는 차라리 모놀리스가 편한..??

** On-premise는 Cloud와 같이 원격  환경이 아닌 자체적으로 직접 보유한 서버 등에 직접 설치해 운영하는 방식이다.

 

Cloud & Serverless

- Cloud : 가상화된 컴퓨터의 시스템 리소스를 제공

- Serverless : 동적으로 머신 자원의 할당을 관리



대표적인 Serverless

- AWS Lambda

- 서버에 대한 걱정? 없이 코드 실행

- 서버를 프로비저닝하거나 관리를 할 필요 없다.

- 다른 AWS 서비스에서 코드를 자동으로 트리거하도록 설정




문제는?

개발 환경도 Cloud에 구축

- 개발 기간 == 금전적 비용

- 잘못된 테스트 == 금전적 비용

- 트래픽 부하 테스트 == 금전적 비용

- Web Console에서 로그를 봐야 하는 불편함

- 로그(스토리지) 또한 돈



문제 2

On-premise > Cloud migration

- Cloud에 맞게 Custom이 필요함

- 잘못 설계시 RollBack의 위험성

- Learning Curve

- 결국 MSA는 커녕 일만 2배로....


클라우드 네트워크 장애로 인해 국내 고객사 서비스 먹통 사례




 

그리하여 Hybrid Cloud까지 소개되기도 했다.

Hybrid Cloud = Private Cloud + Public Cloud

= On-primise + Pubic Cloud

 

그리고 Software적으로 도움이 되는  Docker, Kubernetes, Istio에 대한 소개가 이어졌다.

 

Docker : Application들을 Container안에 배치시키는 일을 자동화하는 오픈 소스 시스템

Kubernetes : Continerized 된 Application을 자동으로 배포, 스케일링 및 관리해주는 오픈 소스 시스템

Istio : 분산형 MSA 실행을 지원하는 독립형 오픈소스 Service Mesh(인증, 승인, 암호화를 확장 가능한 방식으로 제공 및 관리)

Docker + Kubernetes + Istio = MSA in On-premise

On-premise에서 가능하다는 것?

=Cloud에서 가능하다.

=Multi Cloud에서 가능하다

=Hybrid Cloud에서 가능하다

=Hybrid Multi Cloud가 가능하다.



문제

- 네트워크 : Cloud끼리 유기적인 통신이 가능해야함

- 비용 : Cloud간의 통신 비용

- 권한 : Cloud 계정의 권한 + k8s 유저 권한 + 개발 System 권한

- 운영 : 장애 발생 == 모험, 운영요소 통합(Monitoring, Alarm 등), 계정 관리

- 표준 : 통신 프로토콜 표준(Restful HTTP, gRPC, TCP..)

 

최적의 조화는 적절한 Cloud Service + k8s Cluster의 사용

- k8s Cluster = Application

- Cloud Service = Data store

- Cloud = Region

 

결론은 MSA엔 정답이 없다(= 명확히 정의된 바가 없다.) 그때 마다 환경에 맞춰서 구성하면 된다.

 

처음에는 조금 아는 내용들이 나와서 집중해서 봤었는데, 후반부에 들어가서는 조금 집중력이 떨어져서 머리에 남는게 많이 없는 것 같다. ㅠ

몰랐던 내용들이 조금 있었던 것 같아서 반성하게 되었고, 이를 계기로 회사에 도입하게 된다면 이전에 내가 생각했던 것 보다는 조금 더 발전 된 내용으로 도입을 할 수 있을 것 같아서 좋은 시간이 아니었나 싶다. 

 

 


GDG DevFest SEOUL 2019 소개에 나와있는 것과 같이 개발관 연관된 직군 모두가 참여하여 즐기는 축제가 아니었나 싶다.

정말 재밌었고 다음에도 다시 참여할 의향이 있다. :)

부족하게나마 내용을 이해해서 정리한다고 적었는데, 발표자 분들이 의도하신 내용과 다르게 이해하여 적은게 아닐까 걱정이 된다.


요즘 나태해진 나를 반성하며 돌아볼 수 있는 시간이었고, 몰랐던 내용도 알아가는 좋은 행사였다. 


++) 행사 종료 후, 참여한 모두에게 세션 발표자 분들의 발표 자료를 GDG에서 공유해 주셔서 더욱 좋았다.

 

 

 

 

세션 발표자 분들의 블로그 주소  

 

이동민님 블로그 

https://reoim.tistory.com/category/Cloud/Google%20Cloud%20Platform

 

'Cloud/Google Cloud Platform' 카테고리의 글 목록

기억력 나쁜 개발자의 기술 저장소 입니다.

reoim.tistory.com

김한성님 블로그

https://gnidoc.tistory.com/category

 

'분류 전체보기' 카테고리의 글 목록

IT기술블로그

gnidoc.tistory.com

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함