A transparent, repeatable model from forensic analysis, to the development of a prescriptive approach to delivery with a clear focus on capability building and handover.
Cloud Native Development
Stary your journey today
What is Cloud Native?
Cloud native development is a methodology that uses modern advances in virtualisation to deploy highly available, scalable and adaptable software. Virtual servers, application virtualisation and containers allow for the production of microservices and “serverless” computing. At the same time, new and older but proven ways of working, such as agile development, automation, infrastructure as code, and DevOps practices, enable reliable continuous integration and delivery (CI/CD) of application and software updates. The result is faster, more reliable deployments and highly resilient, scalable applications at a lower cost. It enables organisations to transform their business process by revolutionising their underlying IT platform.
Cloud Native Example
In mid-2017, Starling Bank was launched in the UK. As one of the new breed of challenger banks born out of the 2008 financial crisis. Back in 2014, Starling decided to become a cloud native company from the offset, hosting their infrastructure in AWS. The decision to use cloud native development of their services has given them the agility to quickly introduce new features, such as mobile cheque deposits and their Connected Card, to assist vulnerable customers during the COVID-19 pandemic. Amongst other aspects, this has led to Starling coming first in a recent Which survey for customer satisfaction, way ahead of the traditional high street banks.
There are four key pillars to cloud native development:
Continuous Integration / Continuous Delivery (CI/CD)
Continuous integration (CI) is a software development practice whereby developers frequently integrate small code changes into a shared repository, ready for review, testing and delivery. The increase in frequency lowers risk and enhances quality since any bugs can be quickly identified and fixed, improving the product team’s overall velocity.
Continuous delivery (CD) is the practice of quickly deploying the frequent, minor updates made through the CI process. It is often achieved through automation of the processes required for delivery, such as testing, quality assurance, security review and the deployment of necessary infrastructure.
DevOps is a culture or philosophy a business can adopt to help achieve the aims of continuous delivery. It looks to combine or synergise tasks traditionally handled by separate teams (such as developers and IT operations) through collaboration and automation. Product teams consist of multiple different job roles and are responsible for the software product. They work together to push reliable updates into the live environment and support that product through this process.
CI/CD pipelines are the primary method of automating these processes, using infrastructure as code (IaC) to deploy and maintain any underlying cloud infrastructure. Where possible, automated testing routines and security reviews will further hasten the delivery process.
Microservices / Serverless Computing
Microservices architecture separates an application from one entity into many smaller components, usually each with a single purpose. Therefore, one of the major advantages of a microservices architecture is that if there’s an issue in one part of the system, small changes can be made locally without having to change and re-deploy the whole system. In addition, monolithic applications must run on the same system, so require larger servers that run continuously, no matter the customer demand.
Microservices provide a solution to this. Each smaller service can communicate with another via an API or a message queue system and, when combined, form the application. Since each service can be updated independently of another, this allows for frequent minor updates that only affect a tiny part of the application.
The other benefit is each service can be packaged into a “container”. A container consists of the code needed for the service and any dependencies – it is only deployed when needed and then destroyed. Orchestration tools such as Kubernetes control this process, and updates are rolled out seamlessly through this “create and destroy” process. By taking advantage of “pay per use” cloud native serverless technologies, the cost of running an application is driven by its demand, potentially dramatically lowering operating costs.
Observability and Objectives & Key Results (OKRs) measurement
Finally, an application’s OKRs must be developed and observed. OKRs, by definition, are quantifiable and measurable. They should monitor the software application’s ability to deliver its intended business purpose. If these indicators fail, the reasons for this must be identified by the Business Analyst and can be fed back into the CI/CD process through bug fixes or feature updates.
Benefits of Cloud Native Development?
To conclude, the benefits of cloud native development can be seen through the success of those organisations such as Netflix that have embraced it. New practices, cultures and philosophies like agile development, CI/CD and DevOps allow product teams to deliver frequent updates. Automating manual processes cuts the cost of development and support and allows extra development time to be spent on quality and security. At the same time, microservices architecture combined with cloud native infrastructure such as containers increases reliability through zero downtime updates with lower running costs through the “pay per use” model – such as the highly scalable payment gateway deployed in AWS.
More frequent updates responding to the observed KPI business benefits, delivered at a lower price, lead to delighted customers and, therefore, more business. With the help of the esynergy Cloud Native Engineering team, your organisation can achieve higher customer satisfaction by implementing these cloud native practices.
Innovate with confidence by taking control of your data and technology.
Business & Technical Agility
Propel your organization's competitive ability to anticipate change, accelerate digital business and drive innovation in times of disruption.