Slide 1

Slide 1 text

오픈소스, 빅데이터 그리고 모든 것 Open Source, Big Data, and Everything (extended ver.) 이동진 | dongjin@apache.org

Slide 2

Slide 2 text

오늘 이야기할 내용은... ● 오픈소스 ○ 오픈소스란 무엇인가? ○ 오픈소스 모델은 어떻게 돌아가는가? ● 빅데이터 ○ 왜 오픈소스가 빅데이터 처리 기술을 이끌고 있는가? ○ 혹은, 왜 빅데이터 처리 기술은 거의 다 오픈소스인가?

Slide 3

Slide 3 text

오픈소스란 무엇인가? ● 명시적으로 쓰는 사람은 없지만, 모두가 쓰고 있음. ○ 예: 웹 서비스 ○ “여러분의 일상 뒤에 오픈소스 기술이 있습니다.” Request Response (web page) ● Linux ● Android ● Chrome ● ... ● Linux (운영 체제) ● Nginx (웹 서버) ● Mysql (데이터베이스) ● Django (웹 서비스 프레임워크) ● React.js (유저 인터페이스 라이브러리) ● Bootstrap (웹페이지 스타일 프레임워크) ● ...

Slide 4

Slide 4 text

도대체 저게 어떻게 돌아가나? ● 상용 소프트웨어 ○ 큰 투자비를 들여서 개발해서 돈 받고 팜. ○ 개발자가 인건비 받고 작업함. ○ 소스코드를 꼭꼭 숨김. ● 오픈소스 소프트웨어 ○ 돈 안 들여서 개발해서 돈 안 내고 그냥 씀. ○ 돈도 안 주는데 개발자들이 알아서 작업함. ○ 산출물을 기밀로 하지도 않음. ● 그런데 지속 가능할 뿐만 아니라 품질도 좋고 소프트웨어 기술을 선도함. ○ 화수분...? (실제로 나온 말)

Slide 5

Slide 5 text

오픈소스란 무엇인가? (3) ● ‘공개 개발’ (public development) ○ ‘오픈소스 소프트웨어’ = “공개적으로 개발이 이루어지는 소프트웨어” ● 특징 ○ 소스코드 공개 ■ cf. freeware, free web service, … ○ 재창작, 재배포 허용 ■ ex. Android → MIUI, FlyMe, Omni, ... ○ 커뮤니티에 의한 개발 및 배포 (암묵적인 특징)

Slide 6

Slide 6 text

오픈 소스에 대한 미신들 ● “무료인데 품질이 괜찮을 리가 없지.” ● “취미로 개발하는 거라고? 그런 걸 어떻게 믿어?” ● “책임지는 사람이 있나? 지적재산권은?” ● “개발자들은 도대체 뭐 먹고 살어?” ● “돈도 안 받으면서 그런 걸 왜 해?” ● [팩트] 전부 실화 ○ 왜 자꾸 나한테 그래...;; 사용자 개발자 Project

Slide 7

Slide 7 text

사용자의 입장 ● 무료!! ○ 모험적인 신개념 기술 도입 ■ 유료: “어떻게 써야 할지도 모르는 기술을 돈 내고 쓰라면 누가 써?” (X) ■ 무료: “대안도 없는데 차라리 이거라도...?” (O) ■ ex) Hadoop, Kafka, ... ● 기술 지원 ○ 개발 커뮤니티의 지원 ○ 전문 기업의 지원 ■ 수요가 있으니까 공급도 있다!

Slide 8

Slide 8 text

개발자의 입장 ● 사용자가 있으니까: 경력 계발 ○ “우리 회사는 kafka를 쓰니까 kafka 쪽에 경험이 있는 사람이 한 명 정도 있으면 좋지.” ○ “우리는 가전기기 회사니까 linux 개발하는 사람을 데리고 있어야 해.” ○ “... 내가 저걸 하면 경력에 도움이 되겠네?” ● 고수들이 있으니까: 능력 계발 ○ 언어를 어떤 식으로 쓰는 게 좋은지 ○ 기술적인 trend가 어떠한지 ○ software 개발 및 테스트를 어떻게 하는지

Slide 9

Slide 9 text

기업의 입장 (1) ● 접근 1: 아예 오픈소스 기업을 만들자! ○ 프로젝트의 주인 (X) 특별한 관계 (O) ○ Redhat Linux - Redhat ○ Ubuntu Linux - Canonical ○ Hadoop - Cloudera, Hortonworks ○ 기타 등등... ● 그 자체로 거대한 비즈니스 ○ 연매출 619억 달러 (2015) ○ 연평균 성장률 19%

Slide 10

Slide 10 text

기업의 입장 (2) ● 접근 2: 우리 프로젝트를 오픈소스화 하면 (어떻게든) 이익이 되겠는데? ○ 커뮤니티에 의한 발전 ■ ex) Google LevelDB → Facebook RocksDB ○ 인력 모집 ○ 유지 보수 비용 감소 ● 오픈소스 프로젝트와 기술력이 함께 가는 경향 ○ Linkedin - Kafka, ... ○ Facebook - OpenCompute, Cassandra, Presto, RocksDB, Zstandard, Prophet ... ○ Uber - Michelangelo, M3, ... ○ IBM - System ML, Hyperledger, ...

Slide 11

Slide 11 text

정리: 도대체 저게 어떻게 돌아가나? ● 강고한 생태계 + 커뮤니티가 이것을 가능하게 한다! ○ 사용자: 신개념 기술을 싼 가격에, 안정적으로 쓸 수 있다. ○ 개발자: 경력 계발이든 실력 향상이든 참여하는 것이 도움이 된다. ○ 기업: 직간접적으로 후원하는 것이 전략적으로 도움이 된다.

Slide 12

Slide 12 text

정리: 왜 기업들이 오픈소스에 뛰어들까? ● 그게 가장 합리적인 전략이니까. ○ Google ○ Facebook ○ Uber ○ Linkedin ○ etc ...

Slide 13

Slide 13 text

오픈소스와 빅데이터 (1) ● 오픈소스의 장점 ○ 모험적인 신기술의 도입 ○ 커뮤니티의 확장으로 인한 발전 ○ 기존 기술을 기반으로 한 추가적인 확장 ● '공통의 플랫폼과 생태계 구축' 에 적합 ○ R ecosystem ○ Hadoop ecosystem

Slide 14

Slide 14 text

오픈소스와 빅데이터 (2) ● "빅데이터 혁명" = "데이터가 곧 자원" ○ 전제: 거대한 데이터를 싸고 빠르게 처리할 수 있는 기술의 존재. ● 시발점: Hadoop (2006) ○ Commodity hardware 상에서 돌아가는 분산 연산 프레임워크 ○ "안 쓰는 PC 잔뜩 끌어모아다 설치만 하면 슈퍼컴퓨터 수준의 연산을 돌릴 수 있다!" ○ Google 논문을 오픈소스로 구현한 것 (Yahoo) ■ Google File System (2003), MapReduce (2004)

Slide 15

Slide 15 text

오픈소스와 빅데이터 (3) ● 예상을 뛰어넘는 대성공 ○ "모험적인 신기술의 도입" ■ Facebook, Linkedin, Twitter, ... ■ 거의 모든 인터넷 기업에 도입 ○ "커뮤니티의 공개 개발로 인한 발전" ■ 기존 대기업에도 차례로 도입 ■ 거대한 커뮤니티가 형성되면서 빠르게 발전 ● "기존 기술을 기반으로 한 추가적인 확장" ○ 관련 기술들이 쏟아져나오기 시작

Slide 16

Slide 16 text

오픈소스와 빅데이터 (4) ● 예: 실시간으로 주어지는 데이터를 수집해서 정제한 뒤 저장하기

Slide 17

Slide 17 text

정리 ● 오픈소스 = 공개 개발 ● 명시적으로 돈을 내는 사람은 없지만, 매우 잘 돌아간다! ○ 오픈소스를 둘러싼 생태계가 이것을 가능하게 함. ● 빅데이터 생태계는 오픈소스의 대표적인 성공 사례 ○ 모험적인 신기술의 도입 ○ 커뮤니티의 공개 개발로 인한 발전 ○ 기존 기술을 기반으로 한 추가적인 확장

Slide 18

Slide 18 text

사족: 오픈소스, git, github (1) ● MS, github 인수 (2018.06) ○ 도대체 뭐 하는 서비스이길래 MS가 8조원이나 줘 가면서 사는가? ○ 오픈소스 쪽에서 유명한 서비스라던데?

Slide 19

Slide 19 text

사족: 오픈소스, git, github (2) ● git ○ 소스코드 버전 관리 소프트웨어 ○ 리누스 토발즈에 의해 개발 (2005) ○ 소프트웨어를 공동으로 개발하는 데 필수적인 툴 개발자: 소스코드 변경. git: 변경 내역을 추적, 관리.

Slide 20

Slide 20 text

사족: 오픈소스, git, github (3) ● github ○ git을 hosting 해 주는 서비스 (2008) ■ tattertools : tistory.com = wordpress : wordpress.com = git : github.com ○ 소프트웨어를 공동으로 개발하는 데 필수적인 플랫폼 ■ 기업용 제품: github enterprise ■ 각종 확장 기능: github marketplace ■ 2700만 사용자, 4900만 프로젝트 (2018년 8월) ○ “De facto automated supply chain for software” (by ZDNet) ■ github : Cloud Service (Amazon Web Service, MS Azure, ...) = 공단 : 항만 ■ “공장주들이 MS의 항만을 쓰도록 하기 위해 공단을 통채로 사버린다.”

Slide 21

Slide 21 text

사족: 오픈소스, git, github (4) ● github in MS? ○ github + Visual Studio + Azure Cloud ○ 참고 1: GitHub Pull Requests in Visual Studio Code ○ 참고 2: Azure Pipelines now available in GitHub Marketplace 통합 개발 환경 (IDE) Code Repository (=github) Azure Cloud 개발자