Description:

People's lives are consisted of repeated tasks. Every day we do our usual stuff and don't even notice how much time it steals from us. But recognizing the problem - is the first step for solving.

I use JetBrains IDEs in my every day work and it's just fine in sense of tooling, but it's totally not "Ok" for distributed working. What it means:

  1. I have to upgrade every installation (+plugins, SDKs, JDKs etc.) on every computer where I do my work.
  2. There is no support for data synchronization. I have to use some third-party tools like Nextcloud / NFS / SMB / S3 etc. and solve problems with access and convenience.
  3. I don't have copies of my workspace (except of regular backups with time lags). I can delete some data by accident or forget to push code into Git and as a consequence I may lost results of my work.

Considering all of this (+I got inspired by CERNBox some time ago) I decided to have an unified workspace:

  1. CephFS with 3x replication.
  2. Transparent snapshots during work day, instead of annoying backups.
  3. All dev tools and data is accessed through CephFS mountpoint (not FUSE, not NFS/SMB passthrough).
  4. Ceph S3 as a object storage (replicas stored on separated storages (RAID-50 and RAID-1)) instead of Openstack Swift. By the way, you can perform regular file operations (create/copy/write/delete (but not random writes)) on S3 buckets with help of NFS Ganesha. It's especially useful when you want to unload results of computations, you don't have to fulfill additional actions for S3 integration.

After one month of unified workspace usage (and all resolved problems) - I can say for sure - I should did that long ago.