This is very broad question. CI and CD are also two very different things. The practice of CI relies on certain prerequisites being in place. You need git, you need automated build and everyone in the team must be on board. When this is in place, you need to check in regularly, you need to keep the build and test process relatively short and you need a tool that simplifies these steps for the team.
As for the CD, you need even more maturity. You want to use configuration management across all of your environments and have proper deployment pipeline in place. It also depends on very effective collaboraton between everyone invo9lved in the delivery. All of these roles must be mature enough for you to be successful at CD:
2. Build management and already mature CI
3. Configuration management
4. Environments and deployment
5. Release management (and usually also compliance)
7. Data management