On-premise applications... You don't usually deal with connectivity issues
It's relatively easy to create an application that can run on-premise where network connections never drops and resources are just a hop away.
Creating an application is not easy but when you control all the elements on the network... It is, let say it straight, easier. You don't have to deal much with multiple network hops, latency and resources availability. This is not Azure specific, you'll deal with these problems on any public networks... Azure, AWS or any other cloud platform.
Microsoft Pattern & Practices team released a guide containing 24 patterns about problems you can and will probably encounter when building a solution executing on a public network :
- Data Management
- Design and Implementation
- Management and Monitoring
- Performance and Scalability
Containing twenty-four design patterns and ten related guidance topics, this guide articulates the benefit of applying patterns by showing how each piece can fit into the big picture of cloud application architectures. It also discusses the benefits and considerations for each pattern. Most of the patterns have code samples or snippets that show how to implement the patterns using the features of Microsoft Azure. However the majority of topics described in this guide are equally relevant to all kinds of distributed systems, whether hosted on Azure or on other cloud platforms.
I am one of the guy believing that doing robust software can be achieved with good methodology, patterns and dedication...