Cloud Architecture Series #5 - Application Architecture Best Practices

In the previous post Cloud Architecture Series #4 - Application Architecture Challenges, we briefly looked at some of the challenges while choosing an application architecture on cloud. Today let's have a look at some of the best practices that help you build a reliable, scalable and secure application in the cloud.

Best practices server as set of guidelines and tips for designing & implementing well known, thought about mechanisms & approaches for making the system more efficient and robust. The best practices are generally technology or platform agnostic. Following are some of the well known best practices in cloud application development,

  • API based design, that is based on platform independence. It is designed and implemented based on standard protocols and well known data formats. This helps design to be technology agnostic and APIs serve as the contract that each service in the application adhere to.
  • Using content delivery network (CDNs) to efficiently deliver static web content to users is one of the commonly implemented best practices. With cloud service providers having dedicated managed services to support this features can be well utilized to overcome the challenges in deployment, versioning, security and resilience.
  • Caching, to improve performance of applications that heavily rely on stored data is another best practice to help the performance of the cloud applications.
  • Handling faults caused due to unavailability of underlying network or support services, creates a need for developers to have appropriate retry strategies. The important part is to avoid any anti-patterns that can be developed in the process. The usage of appropriate cloud SDKs can help in a systematic and robust approach for managing such issues with connections, operations and unavailability of dependent resources.
  • Use of messaging services for inter-service communication or exchange of information in an asynchronous method is an important design consideration and best practice. This involves choosing the right payload structure, encoding formats and serialization. It also works inline with the retry mechanism importance discussed in the previous point.
  • Autoscaling application to support allocation and deallocation of resources is an important performance requirement and is one of the key driver in running applications on the cloud. This not only helps performance but also reducing the cost of operating the cloud resources. The application development team needs to consider this during design & implementation phase to take advantage of autoscaling capabilities and create notification/alerts that help trigger it.
  • Monitoring & observability of system for its health, usage and performance is a critical requirement for application deployed on cloud. Detecting, alerting, correcting & reporting the potential problems in the application deployment helps smooth operation and fulfilling some of the performance and auditing requirements. Also, it helps in the cost management of cloud resources which is a critical component in the deployment.


The overall success of application deployment on cloud and its operation depends on the team capabilities and understanding of some of the best practices. Adhering to them depends on their current objectives and maturity level.


More updates to subscribe to the?Cloud Native Hero! Newsletter

LinkedIn?|?Twitter?|?GitHub?|?Blog?|?Medium

要查看或添加评论,请登录

社区洞察

其他会员也浏览了