I know lots of people do it, but as a career building contractor I would never advise putting anything on your roof that doesn't absolutely have to be there. It takes a lot of fasteners to anchor a solar array to your roof and each one of those fasteners is a penetration through the membrane which increases your potential for leaks considerably. Shingle roofs are also only good for 15-20 years, so at some point all of that stuff has to come off so you can re-roof, then reinstall which will increase the price of re-roofing considerably. Mount them on racks on the ground.