Deployment Architecture

Deploying a single application in the cloud is a fairly straightforward task, and there is plenty of guidance, many examples and automated deployments that are widely available for Oracle’s reference architectures, see our Architecture Centre. However, what is far more difficult is designing a deployment architecture that is fit for hundreds or even thousands of applications.

Deploying and managing a large number of applications is complex in any environment, and if you have thousands of on-premises applications, then you will, of course, be already aware of the size of this challenge. However, if you are moving a significant number of applications to the cloud, then that also presents a real opportunity to refactor your deployment processes and realize significant business benefits.

In the previous Cloud Strategy section, we discussed the benefits of modernization from a high-level, application-centric viewpoint. A new cloud environment also offers deployment and operational benefits. A well-architected approach can deliver faster deployments (and so reduced time-to-live), reduced deployment cost, reduced management cost, and reduced risk of application failure and outage. These benefits can be realized through greater standardization and automation, enabled by the core capabilities of a modern infrastructure cloud such as OCI.

This challenge breaks down into the design of two high-level areas of technical architecture :

Infrastructure-as-Code

The core principle that delivers the business benefits is the adoption of an infrastructure-as-code (IaC) approach. This approach enables both broad standardization and deep automation of deployment and operational processes. In the following sections, we look at an architecture and deployment approach using IaC that can be used when migrating workloads to OCI. We also provide an example framework that provides a starting point for building a cloud deployment framework suitable for your unique business.

When looking at this challenge, we split the problem into three distinct but related parts: