Maintenance is of key importance for high-tech assets such as trains or airplanes. The high investments that are required to purchase these assets means that it is important to ensure a long life cycle of the assets and high availability throughout this life cycle. We consider a maintenance shop that is responsible for the availability of a fleet of assets, based on our experience at NedTrain, the maintenance provider of the Netherlands Railways. Unavailability of the assets may be due to active maintenance time or unavailability of spare parts. Both spare assets and spare components may be stocked in order to ensure a certain percentage of fleet readiness (e.g., 95%), i.e., having sufficient assets available for the primary process (e.g., running a train schedule). This is different from guaranteeing a certain average availability, as is typically done in the literature on spare parts inventories. We analyse the corresponding system, assuming continuous review and base stock control. We propose an algorithm, based on a marginal analysis approach, to solve the optimization problem of minimizing holding costs for spare assets and spare parts. Since the problem is not item separable, even marginal analysis is time consuming, but we show how to efficiently solve this. Using a numerical experiment, we show that our algorithm generally leads to a solution that is close to optimal, and we show that our algorithm is much faster than an existing algorithm for a closely related problem. Our results enable companies to decide jointly on the fleet size and the amount of spare parts stocks, instead of first purchasing a certain number of assets, and only later deciding on the required number of spare parts, possibly finding that too many or too few assets have been purchased.