Infrastructure deployment
Infrastructure deployment includes all the prerequisites for the network function to be successfully deployed and configured.
Some of the components created as part of this phase are:
-
Networking — VPC, public and private subnets, routes, load balancers
-
Compute — Kubernetes ( Vmware Tanzu
, Amazon EKS, or AWS Outposts), Amazon EC2 instances primary and worker nodes, auto scaling group -
Storage — Amazon EFS, Amazon EBS, Amazon S3 bucket
-
Security — Security groups
-
Pipeline — CodePipeline, CodeBuild
-
Observability — CloudWatch, Prometheus, FluentD
Here is the infrastructure sequence orchestrated by Terraform and explained in the following figure:
-
A developer populates a JSON file that is stored in a central repository with the IaC code. The file contains information about the desired infrastructure configuration such as instances size, Kubernetes version, network information, and application repository details.
-
Retrieves secrets from HashiCorp Vault or AWS Secrets Manager
at runtime. -
Deploys and configures the infrastructure components (networking, compute, storage, and security).
-
An Amazon EKS cluster with worker nodes that hosts the network function pods is deployed. Amazon EKS can also be deployed on AWS Outposts
to support workloads that require proximity to a datacenter. An application pipeline is created and configured to listen for changes in the network function repository. Every time code is pushed to the configured repository branch, the pipeline automatically triggers build, test, and deployment of the network function.
Observability tools that collect and centralize logs and metrics are deployed as services in all the nodes, and provide almost real-time data that can be visualized in Grafana
or OpenSearch Dashboards

Network function deployment and configuration