On Service Fabric you have placement constraints where you define conditions for your services to be validated before deploying the service to a particular node, for example, one of the constraints you can create is (NodeType==MediumPerformer). This will make SF place your service on any node of Type MediumPerformer. The only caveat is that it use the same rule for all replicas and partitions, if you want different behavior, you would have to create new service named instances with different rules. For more information, check here
Service Partitions are immutable, so you won't be able to change the number of partitions after the service is deployed. You can bypass this limitation by creating multiple named services instead. For more information, check here