Adaptive Apps: Automating NGINX Solution Deployments and API Publication - Solution Demo
Adaptive applications utilize an architectural approach that facilitates rapid and often fully-automated responses to changing conditions—for example, new cyberattacks, updates to security posture, application performance degradations, or conditions across one or more infrastructure environments.
And unlike the current state of many apps today that are labor-intensive to secure, deploy, and manage, adaptive apps are enabled by the collection and analysis of live application and security telemetry, service management policies, advanced analytic techniques such as machine learning, and automation toolchains.
A key component of our Adaptive Apps vision is to help our customers reliably accelerate deployments of new applications in automation-enabled environments.
As one example use case, our customers require the ability to simplify and automate deployment of complex F5 solutions as well as API publication.
This solution example demonstrates the ability to automate deployment of NGINX NMS and ACM using Terraform and Ansible.
This solution also demonstrates the ability to leverage APIs to quickly roll-out new application feature APIs associated with such a workload using an automation pipeline in order to reduce time-to-market considerations and maintain a competitive advantage.
In this solution example, we show how our customers can:
- Automate their deployments of F5 NGINX Management Suite (NMS) and API Connectivity Manager (ACM)
Continually and quickly add value to their NGINX-based applications via automated feature rollouts using NGINX API services
Automating NGINX Solution Deployments and API Publication
Problem Statement & Customer Outcome
Customers require the ability to
- Simplify & automate NGINX NMS / ACM deployments
- Publish APIs / new features in their apps via their CI/CD automation pipeline to minimize time-to-market
Using this solution example, customers can:
- Maximizes incremental feature delivery velocity via automation to enable customers to maintain competitive advantage, drive incremental revenues, and optimize resource utilization
- Automate creation of a central API resource to improve API discovery and reduce duplicate efforts
This solution deploys the F5 NGINX Management Suite and API Connectivity Manager using infrastructure as code tools to provide consistent, scalable, and reliable infrastructure. Ansible playbooks are used extensively to allow users at various stages of adopting infrastructure as code to take advantage of this solution. Users just getting started with automation can use the playbooks directly to provide some consistency to their environments. More advanced users can execute these playbooks from Hashicorp Terraform when deploying instances, or even use Hashicorp Packer to generate pre-built images to deploy. The Developer Portal from Management Suite provides a common location to publish APIs to, and a common location to discovery APIs from. This can help reduce the time to learn new APIs and reduce the risk of creating duplicate APIs.
Please refer to https://github.com/f5devcentral/adaptiveapps for detailed instructions and artifacts for deploying this demo including the following:
- Deploying F5 NGINX Management Suite with API Connectivity Manager to OpenStack using Terraform and Ansible
- Adding required credentials
- Updating Terraform variables for your deployment environment
- Ansible playbooks required for deploying:
- NGINX Plus
- NGINX Management Suite (NMS)
- NGINX Instance Manager (NIM)
- NGINX API Connectivity Manager (ACM)
- NGINX Agent
- NGINX Developer Portal
- Publishing developer's changes to an API specified by an OpenAPI document to F5 NGINX API Connectivity Manager (ACM). The changes are deployed using an Ansible playbook that leverages ACM's REST API. Using this solution in a CI/CD pipeline provides a way to automate API discovery, registration, and security as API changes are made.
- Automate publication of a new REST API endpoint
Deploying NGINX as Code
Please watch the demo video here: