New business opportunities have risen due to “pay as you go” models like cloud. Its easy to realize an idea into a working solution with little upfront cost and scale as you grow. It can serve as an elastic data center for R&D and seasonal requirements. To deliver on the cloud, new tools and design patterns need to be employed both during development and in operations.
Build and deploy large scale applications on cloud that provides a consistent way of operating on these services like configuration, scaling, failure detection, etc. A strategy that proves beneficial not only from development point of view but also from an operations perspective.
Design systems for yield and availability while degrading gracefully in the event of failures and disasters. Devise reliable failure handling strategies that increase mean time between failures (MTBF) and decrease mean time to repair (MTTR) thus resulting in highly available services.
Model the persistence for an application’s data by analyzing its use cases for data access patterns and rates. Implement the data access layer by employing the right technologies suited for the model while also considering the operational requirements for data management.
Integrate authentication and authorization mechanisms like OAuth to protect API resources in a service. Plug in role based access control (RBAC) modules that can allow or deny the use of a resource based on the roles assigned to the user along with a management suite for user and role management.
Design an interaction model for a service based on business use cases and model the entities and operations on them in a pragmatic REST style. Adapt the APIs to the unique constraints imposed by different types of clients (like sensors, mobile, browsers, servers, etc) involved in the interactions with the service.
Improve application responsiveness or protect slower components from spikes in access rates. Customized caching mechanisms using techniques like expiry, eviction and smart invalidation of entries to solve business use cases. Mechanisms that take care of “fair share” or “thundering herd” in multi-tenanted, large deployments along with APIs to configure, manage and monitor.