I would advise you to take a look at this section in the documentation and this learning path on the Academy site. It requires advanced knowledge.