GitLab has an excellent, candid discussion of how they're doing 'open core' development, and resolving the tensions that occur: https://about.gitlab.com/stewardship/