Oracle Analytics Cloud (OAC) is a highly scalable and approachable cloud-native service. OAC provides enterprises with all the features required to explore and meet the demands of the entire analytics process from data ingestion and modeling, through data preparation and enrichment, to visualization and collaboration.
A CI/CD Solution for OAC
FlexDeploy offers an innovative and comprehensive CI/CD solution for managing OAC WebCatalog objects across your various environments. Using FlexDeploy’s partial deployment model, and its support for different Catalog types, you can assemble related catalog objects into packages, build them from source control or a development environment, and deploy them into the target environments. Utilizing the FlexDeploy platform, you will enjoy the benefits of coupling your deployments with fully-featured pipelines, toolchain integration, dashboards, reporting and visibility, and much more.
Additionally, FlexDeploy has a concept called Dynamic Packages. With traditional User Managed Packages, users have the option to choose the individual objects which are to be migrated as part of a change. With Dynamic Packages, by leveraging include/exclude expressions, the packages can quickly and automatically calculate their content. As new objects are populated in the matching paths, they are automatically added to the package. This is a powerful feature where artifacts are managed as a consistent set for a module or functional area. Dynamic Packages are also available for any FlexDeploy partial deployment project, extending beyond Oracle Analytics Cloud projects.
Exploring the OAC Plugin
Here’s a brief look at the primary plugin operations for OAC. These operations are used to create very simple build and deploy workflows.
The build workflow extracts catalog objects in a package, either from source control or an OAC development environment, and assembles a versioned artifact. The deploy workflow deploys the assembled artifact into a target OAC environment. Parameters such as the package being built or the target deployment environment are provided as context during the workflow execution, making these very simple workflows reusable across projects.
These plugin operations expose environment properties that provide FlexDeploy with the parameters to connect to your OAC environments. Since the underlying communication is performed using SOAP services, the endpoint can be set to any server you choose, including the FlexDeploy server itself.
FlexDeploy’s OAC plugin operations expose a single project-scoped property to define the OAC WebCatalog object path to determine the path to the objects it will manage. The default value is “/shared/Custom”.
Once the above configuration is complete, files can then be populated from the environment mapped to the build (or from source control) in the Project Files tab. The file names of the WebCatalog objects are augmented with a file extension mapping to the underlying OAC object type, enabling easier identification and filtering (e.g. Folder, Data Model, Analysis, Report, etc.).
This tab serves as a repository of the objects in the given WebCatalog path. Files from here can now be added to User Managed or Dynamic Packages.
With User Managed packages, developers can individually assemble specific files related to a change.
With Dynamic packages, developers can configure include/exclude paths using regular expressions to the content of the package managed dynamically by FlexDeploy based on the path provided in the project catalog/repository. As new files are populated into the project catalog/repository matching the include/exclude paths, these will be added to the configured dynamic packages accordingly. Similarly, if any files are inactivated from the catalog/repository, or the dynamic include/exclude paths are modified, the content of the package will be dynamically adjusted to reflect this change.
Delivering Changes to Oracle Analytics Cloud through a Release
Once the packages are created, they can be built and deployed across the environment the same as any other FlexDeploy project. Whether that be ad hoc builds and deployments, or orchestration through a toolchain integrated pipeline, the platform is at the ready. In the example below, a package is being built and added to a release that is tied to a three-stage pipeline.
After the required files are added to the package, build execution is triggered on the package.
On the build request form, choose to build the package for the OAC Release, which is bound to a three-stage pipeline.
The build execution begins.
The build execution is complete. As a part of this, the WebCatalogs in the package are archived from the OAC development server, zipped, and stored as a versioned artifact (1.0.9 shown in the image above) in FlexDeploy’s artifact repository.
Since the build request was tied to a release, when the execution completes the version generated from the build (1.0.9) is placed into a snapshot and sent to the pipeline for execution. In this pipeline, the deployment of the packages in the snapshot have been completed in Development, and is now waiting for QA Manager approval in the QA stage. This pipeline has manual approvals and scheduled gates configured, is integrated with ServiceNow for a gated production approval tied to a change request, and is integrated with Slack to publish a message to users who subscribed to an OAC channel.
Exporting your WebCatalogs to SCM
Now that the changes have deployed to the target environment, users have the option to export WebCatalogs and the associated metadata from the OAC instance and store them in a source code repository.
The exportWebCatalog plugin operation can be used to export the WebCatalogs constituting a package from OAC in a partial deployment project. This can either be done as part of the Pre-Deploy operation in FlexDeploy to take a backup of the WebCatalogs in your target environment, or after the deploy step is completed in the Deploy operation to ensure that the latest version of the files with the changes and updated metadata is exported.
The downloadWebCatalog plugin operation can be used to export all the WebCatalogs present in a given object path. This operation is best used as part of a Utility operation that can be scheduled to run at pre-determined intervals. Further details on the configuration for these operations can be found here.
From the examples shown above, we can already start to see the value of integrating FlexDeploy into the development workflow for OAC. This is just the beginning of what can be accomplished with FlexDeploy. Check out the comprehensive list of all the plugin integrations available for FlexDeploy here.