While there is no single correct answer to "how do I store images in Azure," there are a few things to consider:
- Any of the Azure 1st-party database services (SQL Database, Redis, DocumentDB, etc) can store binary content, accessible via appropriate queries. None of them will give your client apps direct URL-based access; they will all require you to store/retrieve data via your app. Your web tier would need to provide the appropriate URL routing.
- Blob storage may be used for binary content, along with direct URL access to individual blobs. Your choice whether end-users (e.g. browsers/mobile apps/etc) would have direct access to these blobs (blobs may be marked as public or private; you may grant direct access to a private blob with a Shared Access Signature). You may also access blobs via your web/app tier and stream content directly to clients (which will now be impacted by the number of VMs handling user load, and their respective bandwidth capacity). This will scale, capacity-wise, to 500TB per storage account. You will be limited to 20,000 transactions/second (REST API transactions) across the entire storage account, so you may need to scale across multiple storage accounts to achieve your scalability goals (which impacts the DNS naming scheme you'll use)
- Your app may take advantage of an SMB-based file share to store your binary content. A given file share stores up to 5TB and 60MB/s, so you might need to utilize multiple files shares. Further, all content will need to route through your app/web tier, as you cannot provide external access to the file share (without giving access to the entire file share via your own credentials).
As far as storing the product catalog: That is a very broad and opinion-soliciting question, which is off-topic.