Implementing high availability in the application

In this section, we will discuss a few design principles to use in your application from a high availability perspective. We briefly discuss using highly available AWS services to implement common features in mobile and Internet of Things (IoT) applications. Finally, we also cover running packaged applications on AWS cloud.

Designing your application services to be stateless and implementing a microservices-oriented architecture can help the overall availability of your application. In such architectures, if a service fails, then that failure is contained or isolated to that particular service while the rest of your application services continue to serve your customers. This approach can lead to an acceptable degraded experience rather than outright failures or worse. You should also store user or session information in a central location such as the AWS ElastiCache and spread the information across multiple AZs for high availability. Another design principle is to rigorously implement exception handling in your application code, and each of your services, to ensure graceful exit in case of failures.

Most mobile applications share common features including user authentication and authorization, data synchronization across devices, user behavior analytics, retention tracking, storing, sharing, and delivering media globally, sending push notifications, storing shared data, streaming real-time data, and so on. There are a host of highly available AWS services that can be used to implement such mobile application functionality. For example, you can use Amazon Cognito to authenticate users, Amazon Mobile Analytics to analyze user behavior and track retention, Amazon SNS for push notifications, and Amazon Kinesis for streaming real-time data. In addition, other AWS services such as S3, DynamoDB, and IAM can also be effectively used to complete most mobile application scenarios.

Similar to mobile applications, for IoT applications, you can use the same highly available AWS services to implement common functionality, such as device analytics and device messaging / notifications. You can also leverage Amazon Kinesis to ingest data from hundreds of thousands sensors that are continuously generating massive quantities of data.

Aside from your own custom applications, you can also run packaged applications such as SAP on AWS.  In such cases, you can leverage some of the same AWS features and approaches discussed in this chapter for high availability. These would typically include replicated standby systems, multi-AZ and multi-region deployments, hybrid architectures spanning your own data center and AWS cloud (connected via VPN or AWS Direct Connect service), and so on. For more details, refer to the specific package guides to achieve high availability on AWS cloud.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.219.156.22