Lobsters

Unison Cloud is now open source

Unison Cloud 오픈소스 공개

Unison Cloud가 MIT 라이선스로 공개됐습니다. Unison 언어로 노드 풀을 분산 컴퓨터처럼 프로그래밍하며, 빠른 서비스 배포와 분산 작업, 트랜잭션 저장소 등을 제공합니다.

AI 요약

Unison Cloud가 MIT 라이선스로 공개됐습니다. 노드 풀을 Unison 언어로 프로그래밍하는 분산 컴퓨터로, 서비스를 빠르게 배포하고 여러 노드에서 작업을 실행하도록 설계됐습니다.

구성 요소와 기능

Unison Cloud는 네 가지 프로젝트로 구성됩니다. 클러스터 프로그래밍 모델을 정의하는 Unison Cloud client는 로컬 개발용 인터프리터와 분산 클러스터에 연결하는 인터프리터를 포함하며, 이미 오픈소스로 공개된 상태입니다. 새로 공개한 구성 요소는 Unison으로 작성한 작업 노드 Nimbus, Haskell로 작성한 API Server, 배포 서비스와 로그를 확인하는 UI입니다. API Server는 클러스터 구성원 정보와 인증도 관리합니다.

서비스는 200KB 미만으로 가벼워 몇 초 안에 배포하며, 멀티기가바이트 컨테이너를 빌드하고 배포할 필요가 없다고 소개합니다. 서비스 간 통신에는 적응형 서비스 그래프 압축을 적용합니다. 분산 배치 작업은 고수준의 fork/join 모델로 실행합니다. 저장 기능으로는 DynamoDB 기반 트랜잭션 저장소와 S3 기반 오브젝트 저장소를 제공하며, 비밀 관리와 장시간 백그라운드 작업도 지원합니다. 작업 노드는 필요에 따라 동적으로 늘리거나 줄일 수 있습니다.

Lobsters 반응

  • @bontaq — Unison을 처음 듣는 사람을 위해 덧붙이면, 모든 함수에 해시를 붙이는 등 꽤 흥미로운 아이디어가 있습니다. 제가 이해한 바로는 포인터를 갱신하는 것처럼 즉시 배포가 가능합니다. 그런 방식의 프로그래밍이 어떻게 작동할지 실제로 많이 고민한 언어이기도 합니다. 경험이 꽤 다르고, 이제 클라우드 부분까지 공개됐으니 서버에서 작은 서비스를 많이 운영하는 흥미로운 방법으로 보입니다.
  • @zetashift — Unison을 약 2년 써 왔는데, 제가 사용해 본 언어 중 단연 가장 좋아하는 언어입니다. 해시와 대수적 효과가 있어서 낯선 점이 많지만, 함수형 프로그래밍 언어로서 사용자를 배려합니다. 컴파일이나 빌드를 기다리거나 의존성 충돌을 해결하거나 타입 퍼즐을 맞추는 데 시간을 쓰지 않습니다. 비즈니스 로직을 작성하면 코드가 실행됩니다. 유지관리자와 커뮤니티도 정말 친절합니다. 얼마 전에 KOReader 동기화 서비스를 Unison Cloud에 배포했는데, 관리가 식물을 돌보는 것처럼 편안합니다. 이제 Cloud 부분도 오픈소스가 됐으니 다른 사람에게 권하기도 쉬워졌습니다. 데이터베이스를 타입으로 작성하는 방식도 정말 좋습니다. 사용 편의성을 생각할 때 이런 방향이 목표가 되어야 한다고 봅니다. 영속 데이터 기능을 아주 조금 보여드리면 이렇습니다. type Storage = { postsById: OrderedTable UserId Post }. 초기화하고 나면 이런 타입과 자료 구조를 그대로 사용하면 데이터가 저장됩니다. 정말 멋집니다.

원문: Unison / 번역·요약: Trawling