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 :
-
a target environment for the organization into which applications (aka workloads) can be deployed. This is often called a “Landing Zone”, but a better term might be “virtual data center” - we cover this requirement in our Cloud Architecture section.
-
a deployment architecture for individual workload migrations that, through re-use and standardization, drive repeatability, efficiency, and effectiveness.
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:
-
Deployment Architecture Principles
- Shared Services Architecture (aka landing zone) This included everything that is shared across workload deployments - for example, connectivity, primary network resources, security policies
- Workload Deployment Architecture This is a re-usable IaC framework to drive reuse, automation, and standardization across workloads. that also supports flexibility for individual applications or environments.
- Infrastructure-as-Code with Terraform Guidance on how to structure and use Terraform in a complex organizational context.