2017-04-18 9 views
1

팀에서 일부 독점 데이터를 카탈로그 화하고 분석하는 데 사용할 수있는 Jupyter Notebook을 개발 중입니다. 이제는 실행 및 개발을 위해 팀과 공유 할 준비가되었습니다. 팀은 일반적으로 Windows 10 워크 스테이션을 보유하고 있으며 숙련 된 엔지니어이지만 데이터 과학자는 아닙니다. 현재 Jupyter를 사용하는 사람은 없습니다.팀 노트북 개발을 위해 Jupyter 설치를 공유하는 방법

이제 나는 이런 종류의 작업 환경을 지원하는 Jupyter의 능력을 철저히 잘못 판단했을지 모른다는 것을 알고 있습니다.

옵션 1 : 개별 설치

이것은 최악의 시나리오입니다. 노트북을 실행하거나 수정하려는 사람은 Jupyter를 설치해야합니다. 아나콘다가 아마도 가장 좋은 방법 일 것이지만 크고 못생긴 무서운 설치입니다. 더 나쁜 것은 모든 사용자가 추가 라이브러리를 설치하고 관리해야한다는 것입니다. 커널 변경이 필요한 노트북 변경 사항은 각 설치에 수동으로 적용해야합니다.

확실히 클라이언트 - 서버이므로 Jupyter의 의도는 아닙니다.

옵션 2 : 하나 개의 서버, 여러 클라이언트

확실한 대안은 네트워크에 액세스 할 컴퓨터의 Jupyter 서버를 호스팅하고 모든 사용자가 브라우저에 연결하는 것입니다. 그렇게하면 관리 할 공유 설치가 하나 뿐이며 각 사용자는 URL에 액세스하기 만하면됩니다.

그러나 서버에 노트북이 자체 파일 시스템에있을 것으로 예상됩니다. 따라서 모든 사용자는 동일한 노트 파일에 액세스합니다. 이로 인해 버전 제어가 매우 어려워졌습니다. 아무도 독자적인 편집 및 커밋 세션을 위해 자신의 노트 사본을 체크 아웃 할 수 없습니다. 대신 변경 사항이 유일한 사본을 덮어 쓰고 커밋/되돌리기/비교는 서버에서 (또는 서버의 파일 시스템을 마운트하여) 수행되어야합니다.

옵션 3 : 도커 이미지 서버는 각 사용자가 구조에 컨테이너

도커를 실행? 그렇게하면 우리는 하나의 서버 이미지 (심지어 버전 제어도 가능)를 구축/유지할 수 있고 각 사용자는 이미지를 인스턴스화하기 위해 Docker 엔진 만 설치하면됩니다 (친숙한 8GB 다운로드 !!). 그들은 자신의 컨테이너에 연결합니다. 스크립트는 약간의 스크립트를 사용하여 자신의 노트 사본을 가리 킵니다.

이 옵션은 근본적으로 짜증나는 것을 발견하기 전에 조사하는 데 20 시간 밖에 걸리지 않았습니다. 커널을 다루는 것은 많은 새로운 기술이 필요하면서 까다 롭습니다. Qt 윈도우를 보여주는 것은 아무것도 아닙니다. 우리가 할 수있는 qtconsole은 노트북에서 파일 열기 대화 상자를 보여 주며 Qt 위젯을 사용하는 것이 가장 좋은 방법입니다. X 윈도우 환경을 기대하는 Docker Container의 서버와 Windows 브라우저의 클라이언트를 사용하면 위젯을 표시 할 수 없습니다.

Qt 문제는 ​​Docker 옵션 실행을 시도하는 많은 문제 중 마지막 문제였습니다. matplotlib에서 경로 매핑에 이르기까지 모두 os 라이브러리에서 ipywidgets 라이브러리를 호출하여 조사, 조정, 인터넷 검색, 절단, 작업 변경이 필요했습니다. 나는이 드라마가 계속 진행되고 있음을 공정하게 확신합니다.

결론

는 Jupyter version control 주위 토론을 많이가 있습니다. read-only sharing에 대한 다양한 옵션이 있습니다.심지어 런타임에 Docker 컨테이너를 구축하여 노트북에 실행 가능한 액세스를 제공하기위한 project도 있습니다. 그러나 Jupyter를 팀 환경에서 사용하는 것에 대한 조언은 거의 없습니다.

서버가 클라이언트와 동일한 컴퓨터에서 기본적으로 실행되고 있지 않을 때 무한한 복잡성을 감안할 때 옵션 1이 유일한 정상적인 방법이라고 믿기 시작했습니다. 전 진절머리 뉴스로 제 동료들과 만나기 전에 다른 제안이 있습니까?

+0

상용 호스트 제품을 사용하는 것이 좋으면 datascience.ibm.com을보십시오. 우리는 Jupyter 노트북이 팀 환경에서 잘 작동하도록 많은 사용자 정의를 구현해야했습니다. 나는 당신이 자신의 솔루션을 굴릴 수있는 쉬운 방법을 찾지 못할 것이라고 생각합니다. –

+0

우리 상황에서는 우리가 그걸로 괜찮지는 않지만 잘 알고 있습니다. 그것이 내가 상자 밖에서 기대해야하는 것이 아니라는 것을 아는 것이 좋다. –

답변

0

결국 Jupyter Google Group에 대해 유익한 토론을 마친 후 바로 사용 가능한 Jupyter는 이러한 종류의 작업 환경을 지원하지 않는다는 것을 확인했습니다. 실제로 Jupyter는 서버가 단일 사용자를 가질 것으로 기대합니다.

가장 유망한 DIY 솔루션

두 가지 이유, JupyterHub를 배포하는 첫째이었다

  1. 그것은 서버 문제에 따라 모든 다중 사용자를 방지, 각 사용자에 대해 새 서버 인스턴스를 시작합니다.
  2. 사용자가 스스로 식별하여 사용자에 따라 다른 작업을 수행 할 수 있도록합니다.

두 번째로 서버를 각 사용자의 파일 시스템 (또는 이와 동등한 네트워크 아키텍처)에 마운트하면 사용자가 자신의 로컬 파일을 다시 가리킬 수 있습니다.

저는이 전략을 구현하지 않았습니다 (지금은 옵션 1을 사용하십시오!).