Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Open Source, Big Data, and Everything (extended)

Lee Dongjin
October 06, 2018

Open Source, Big Data, and Everything (extended)

오픈소스, 빅데이터, 그리고 모든 것 (확장판). 오픈소스란 무엇이고, 어떻게 동작하며, 왜 소프트웨어 기술(특히 빅데이터)을 선도하고 있는가?
2018년 10월, 비공개 그룹 발표.

What is open source? Why does it work? Why is it driving the software innovation, especially data science field?
Presented in a non-public group in October 2018.

Slides: Korean. Presentation: Korean.

Lee Dongjin

October 06, 2018
Tweet

More Decks by Lee Dongjin

Other Decks in Technology

Transcript

  1. 오늘 이야기할 내용은... • 오픈소스 ◦ 오픈소스란 무엇인가? ◦ 오픈소스

    모델은 어떻게 돌아가는가? • 빅데이터 ◦ 왜 오픈소스가 빅데이터 처리 기술을 이끌고 있는가? ◦ 혹은, 왜 빅데이터 처리 기술은 거의 다 오픈소스인가?
  2. 오픈소스란 무엇인가? • 명시적으로 쓰는 사람은 없지만, 모두가 쓰고 있음.

    ◦ 예: 웹 서비스 ◦ “여러분의 일상 뒤에 오픈소스 기술이 있습니다.” Request Response (web page) • Linux • Android • Chrome • ... • Linux (운영 체제) • Nginx (웹 서버) • Mysql (데이터베이스) • Django (웹 서비스 프레임워크) • React.js (유저 인터페이스 라이브러리) • Bootstrap (웹페이지 스타일 프레임워크) • ...
  3. 도대체 저게 어떻게 돌아가나? • 상용 소프트웨어 ◦ 큰 투자비를

    들여서 개발해서 돈 받고 팜. ◦ 개발자가 인건비 받고 작업함. ◦ 소스코드를 꼭꼭 숨김. • 오픈소스 소프트웨어 ◦ 돈 안 들여서 개발해서 돈 안 내고 그냥 씀. ◦ 돈도 안 주는데 개발자들이 알아서 작업함. ◦ 산출물을 기밀로 하지도 않음. • 그런데 지속 가능할 뿐만 아니라 품질도 좋고 소프트웨어 기술을 선도함. ◦ 화수분...? (실제로 나온 말)
  4. 오픈소스란 무엇인가? (3) • ‘공개 개발’ (public development) ◦ ‘오픈소스

    소프트웨어’ = “공개적으로 개발이 이루어지는 소프트웨어” • 특징 ◦ 소스코드 공개 ▪ cf. freeware, free web service, … ◦ 재창작, 재배포 허용 ▪ ex. Android → MIUI, FlyMe, Omni, ... ◦ 커뮤니티에 의한 개발 및 배포 (암묵적인 특징)
  5. 오픈 소스에 대한 미신들 • “무료인데 품질이 괜찮을 리가 없지.”

    • “취미로 개발하는 거라고? 그런 걸 어떻게 믿어?” • “책임지는 사람이 있나? 지적재산권은?” • “개발자들은 도대체 뭐 먹고 살어?” • “돈도 안 받으면서 그런 걸 왜 해?” • [팩트] 전부 실화 ◦ 왜 자꾸 나한테 그래...;; 사용자 개발자 Project
  6. 사용자의 입장 • 무료!! ◦ 모험적인 신개념 기술 도입 ▪

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

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

    ◦ 프로젝트의 주인 (X) 특별한 관계 (O) ◦ Redhat Linux - Redhat ◦ Ubuntu Linux - Canonical ◦ Hadoop - Cloudera, Hortonworks ◦ 기타 등등... • 그 자체로 거대한 비즈니스 ◦ 연매출 619억 달러 (2015) ◦ 연평균 성장률 19%
  9. 기업의 입장 (2) • 접근 2: 우리 프로젝트를 오픈소스화 하면

    (어떻게든) 이익이 되겠는데? ◦ 커뮤니티에 의한 발전 ▪ ex) Google LevelDB → Facebook RocksDB ◦ 인력 모집 ◦ 유지 보수 비용 감소 • 오픈소스 프로젝트와 기술력이 함께 가는 경향 ◦ Linkedin - Kafka, ... ◦ Facebook - OpenCompute, Cassandra, Presto, RocksDB, Zstandard, Prophet ... ◦ Uber - Michelangelo, M3, ... ◦ IBM - System ML, Hyperledger, ...
  10. 정리: 도대체 저게 어떻게 돌아가나? • 강고한 생태계 + 커뮤니티가

    이것을 가능하게 한다! ◦ 사용자: 신개념 기술을 싼 가격에, 안정적으로 쓸 수 있다. ◦ 개발자: 경력 계발이든 실력 향상이든 참여하는 것이 도움이 된다. ◦ 기업: 직간접적으로 후원하는 것이 전략적으로 도움이 된다.
  11. 오픈소스와 빅데이터 (1) • 오픈소스의 장점 ◦ 모험적인 신기술의 도입

    ◦ 커뮤니티의 확장으로 인한 발전 ◦ 기존 기술을 기반으로 한 추가적인 확장 • '공통의 플랫폼과 생태계 구축' 에 적합 ◦ R ecosystem ◦ Hadoop ecosystem
  12. 오픈소스와 빅데이터 (2) • "빅데이터 혁명" = "데이터가 곧 자원"

    ◦ 전제: 거대한 데이터를 싸고 빠르게 처리할 수 있는 기술의 존재. • 시발점: Hadoop (2006) ◦ Commodity hardware 상에서 돌아가는 분산 연산 프레임워크 ◦ "안 쓰는 PC 잔뜩 끌어모아다 설치만 하면 슈퍼컴퓨터 수준의 연산을 돌릴 수 있다!" ◦ Google 논문을 오픈소스로 구현한 것 (Yahoo) ▪ Google File System (2003), MapReduce (2004)
  13. 오픈소스와 빅데이터 (3) • 예상을 뛰어넘는 대성공 ◦ "모험적인 신기술의

    도입" ▪ Facebook, Linkedin, Twitter, ... ▪ 거의 모든 인터넷 기업에 도입 ◦ "커뮤니티의 공개 개발로 인한 발전" ▪ 기존 대기업에도 차례로 도입 ▪ 거대한 커뮤니티가 형성되면서 빠르게 발전 • "기존 기술을 기반으로 한 추가적인 확장" ◦ 관련 기술들이 쏟아져나오기 시작
  14. 정리 • 오픈소스 = 공개 개발 • 명시적으로 돈을 내는

    사람은 없지만, 매우 잘 돌아간다! ◦ 오픈소스를 둘러싼 생태계가 이것을 가능하게 함. • 빅데이터 생태계는 오픈소스의 대표적인 성공 사례 ◦ 모험적인 신기술의 도입 ◦ 커뮤니티의 공개 개발로 인한 발전 ◦ 기존 기술을 기반으로 한 추가적인 확장
  15. 사족: 오픈소스, git, github (1) • MS, github 인수 (2018.06)

    ◦ 도대체 뭐 하는 서비스이길래 MS가 8조원이나 줘 가면서 사는가? ◦ 오픈소스 쪽에서 유명한 서비스라던데?
  16. 사족: 오픈소스, git, github (2) • git ◦ 소스코드 버전

    관리 소프트웨어 ◦ 리누스 토발즈에 의해 개발 (2005) ◦ 소프트웨어를 공동으로 개발하는 데 필수적인 툴 개발자: 소스코드 변경. git: 변경 내역을 추적, 관리.
  17. 사족: 오픈소스, 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의 항만을 쓰도록 하기 위해 공단을 통채로 사버린다.”
  18. 사족: 오픈소스, 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 개발자