NTT SVP: Optimising 'deployment architectures' for hybrid cloud & edge-apps

This is a guest post for the Computer Weekly Developer Network written in full by Rishi Kulkarni in his capacity as SVP cloud services division at NTT Data.

In the modern landscape of software development, the concept of hybrid cloud has become ingrained as the practical approach to deploying applications.

This approach combines the benefits of public and private clouds, allowing organisations to leverage the scalability and flexibility of the public cloud while maintaining control over sensitive data and critical workloads in private infrastructure. Hybrid cloud has gained widespread acceptance due to its ability to accommodate diverse business requirements, ranging from cost efficiency to regulatory compliance.

While the adoption of hybrid cloud has become mainstream, the importance of deployment architecture cannot be overstated, especially in the context of hybrid cloud and edge-based applications. These often have unique requirements and limitations that must be considered during the design phase. For example, applications deployed at the edge may need to operate in offline or intermittently connected environments, requiring specialised caching mechanisms, data synchronisation strategies and fault-tolerance mechanisms.

Neglecting these considerations during the development phase can lead to costly rework or even application failure in real-world scenarios.

Prioritising deployment architecture 

To illustrate this, let’s consider a scenario where a coding team is tasked with developing a multi-channel, multi-brand Point-of-Sale (POS) application that must seamlessly operate in offline mode.

The deployment architecture plays a crucial role in determining the application’s functionality, performance and resilience. The development team must decide which critical services will be available offline on end-user devices or at the edge when network connectivity is unavailable. This decision influences the choice of technologies and architectural patterns, such as Progressive Web Applications (PWA) or data retrieval strategies like caching versus direct database access. The deployment architecture also dictates how services such as AI reporting or payment processing will be hosted. Understanding these deployment requirements is crucial for developing appropriate data models, integration strategies and orchestration flows.

The complexity of modern applications necessitates a proactive approach to deployment architecture.

Many progressive teams leverage microservices and container-based architectures for building complex applications. This approach enables greater flexibility, scalability and maintainability compared to traditional monolithic architectures. However, it also necessitates thorough testing and debugging across multiple environments, including local development setups, cloud environments and edge devices.

To streamline this process, organisations often employ Continuous Integration/Continuous Deployment/Continuous Testing (CI/CD/CT) pipelines. These pipelines automate the build, test and deployment processes, facilitating rapid iteration and ensuring consistency across different environments. By integrating deployment considerations into the CI/CD/CT pipeline, organisations can accelerate time-to-market, improve deployment reliability and reduce operational overhead.

Product-centric development

The shift towards product-centric development approaches has blurred the lines between development, testing and operations. Traditionally, software development followed a set process, with distinct silos for development, testing and operations often ignoring key considerations on how the workloads will be deployed or managed resulting in non-optimal performance and lack of real-time scalability.

NTT’s Kulkarni: The complexity of modern applications necessitates a proactive approach to deployment architecture.

In these new product-centric environments, developers, cloud engineers and business stakeholders collaborate closely throughout the product lifecycle, from ideation to deployment and beyond.

Product owners and developers work closely with cloud engineers to design and implement scalable, resilient architectures that optimise product features based on hybrid cloud and edge capabilities. Testers contribute to the development process by providing feedback early and often, ensuring that quality and performance is built into the product from the outset.

Operations teams collaborate with developers to automate deployment, monitoring and maintenance processes, enabling rapid iteration and continuous improvement. This collaborative approach fosters a culture of end-to-end product ownership where teams are collectively responsible for delivering value to customers.

The development of modern hybrid cloud and edge-based applications requires a holistic approach that considers deployment architecture from the outset. Treating deployment as an afterthought can lead to suboptimal outcomes, including compromised functionality, performance bottlenecks and increased maintenance overhead.

By prioritising deployment considerations early in the development process and fostering collaboration between development and operations teams, organisations can ensure the successful delivery of robust, scalable and resilient applications.