Designing in chaos

Editorial Type: Feature Date: 2020-03-01 Views: 1,494 Tags: Networking, Backup, Data Centres, Cloud, SLAs, NS1
Applications that deliver high availability and consistent performance don't happen by chance. Mark Fieldhouse, General Manager EMEA at NS1 explains why best practice is the main driver

Backup data centres were, for a long time, the mainstay for enterprises looking to ensure their operational resiliency, but this responsibility has shifted and instead cloud providers are now being used to guarantee organisational uptime. Resiliency, however, is not just about outages and service disruptions. It needs to embrace performance and application delivery which are both equally important. In today's digital business environment, its users demand an instant response to applications and services regardless of the industry, and the most successful enterprises are those that understand the direct connection between an optimal user experience, revenue, referrals and customer loyalty.

To build and maintain resilient applications, organisations should consider implementing a number of important considerations.

Diversify cloud infrastructure: Instead of multiple data centres, organisations can now deploy a multi-cloud approach. This allows workloads to be moved from one cloud provider to another in the event of an outage or any other performance-impacting event. IT teams should aim to diversify the cloud footprint for business - critical systems and services.

Build redundancy into your code base: Resiliency from a software development standpoint can be addressed by building redundancy into code. A global streaming provider uses this approach so that if one of its cloud providers fail, its home-built system will be activated to keep it online. Financial services and eCommerce providers employ a similar strategy. In fact, many eCommerce companies now have code written in such a way that applications are run in data centres as part of the backup strategy. The checkout application may run more slowly in this environment, but a slow checkout is better than no checkout at all.

Consider implementing microservices: Newer technology such as microservices and containers ensure that resiliency is at the core for application developers. As enterprises move away from monolithic applications run in physical data centres to microservices and individual applications that are widely distributed, they are forced to address early-on how these systems interact with one another. Redundancy can be built-in during the design phase of microservices, which is why enterprises undergoing digital transformation or upgrading their systems should consider using a microservices approach.

Introduce chaos engineering as a practice: Introducing problems to identify points of failure in systems is an important component in delivering high-performing, resilient enterprise applications. Injecting chaos into controlled production environments can reveal system weaknesses and enable engineering teams to better predict and proactively mitigate problems before they present a significant impact on the business. Conducting planned chaos engineering experiments can provide the intelligence that enterprises require in order to make strategic investments in system resiliency.

Define SLAs and Monitor System Performance Continuously: Monitoring applications and systems to get ahead of outages or other issues is important, and monitoring the health and response times of every individual part of an application is essential to system resilience. Measuring how long an application's API call takes, for example, can provide early indications of what's to come, allowing IT teams to pre-empt obstacles. This approach also includes creating SLAs for different sub-applications and systems and monitoring to ensure they remain online.

These best practices require investments in additional services and architecture, as well as time from IT teams. Every company must calculate for itself the cost-benefit analysis of business continuity versus revenue loss. There is no magical formula to tell an organisation what cost is worth the investment, only those internally can determine what additional spend can be justified for revenue protection. Enterprises that do ensure their applications maintain high availability and offer a consistent performance will be better able to scale as they expand, and they will rapidly become the trusted technology partners of the future. NC