Comprehensive Study Notes on Terraform, Automation, and Onboarding
Terraform and Automation
Terraform Overview
- Controls infrastructure changes and management.
- Not, in itself, an automation tool.
- Requires an automation pipeline to gather details and deploy resources.
Deployment and Automation Pipeline
- Current pipelines manage base Google Cloud Platform (GCP) projects, but more advanced automation is required for additional functionalities.
- Management of add-ons in Terraform necessitates manual intervention and is termed a 'semi-manual process'.
- Key clarification:
- "Manual creation of resources via Terraform" means using Terraform scripts while still necessitating manual input from users rather than using a GUI.
Vertex AI Deployment Issue
- The Vertex AI deployment has been executed twice without templatization or standardized deployment definitions.
- Standardized deployment templates are needed to streamline the process.
- Once a template is defined, automation can simplify changes to deployment by merely toggling options via checkboxes, ensuring modular deployment.
Identification of Automated and Non-automated Pieces
- Some components, such as buckets, are fully automated.
- Non-automated components require ticket generation for manual processes.
- Example scenario: Kimberly must open a ticket linking to a Jenkins job to execute specific actions.
- Non-automated actions necessitate manual intervention despite being created via Terraform.
Terminology Consistency
- It is crucial to maintain clear terminology to differentiate between actions done "by hand" and those executed via Terraform.
Data Collection and Onboarding Process
Initial Steps to Streamline Onboarding
- Identifying necessary data upfront will improve the efficiency of onboarding requests.
- Eliminate unnecessary questionnaires and forms to simplify the process.
- Recommended inclusion of the following key data in onboarding forms:
- Solution type (e.g., DLF, Analytics, Snowflake)
- Cloud platform preference (AWS or GCP)
- Client name, cost center, solution owner, and technical lead names.
Role-Based Access Control (RBAC) Groups
- Initial members for RBAC groups should be established during the onboarding call.
- Explore with ServiceNow admins the feasibility of increasing sync frequency of RBAC catalogs for timely updates.
Ticket System Updates
- Ticket submissions must clearly define what resources are needed and any automation required in the onboarding process.
- Collect information that will be essential to run the automation pipeline effectively, including:
- Solution types and required resource configurations.
Pixie and CMDB Revisions
Pixie Page Updates
- Update the CMDB to reflect changes in definitions and keep both the Pixie and CMDB up-to-date.
- Ensure that security approvers are included in this process.
Templates and Documentation
- Templates for GCP operations must be updated to include links to working Jenkins pipelines, which should shift to the new Jenkins system (Buildasaurus).
- Establish a checklist for migrating jobs, ensuring proper tracking of updated links and resources.
Databricks Integration Consideration
Integration Challenges
- There needs to be clarity on what specific templates should be used for onboarding resource requests involving Databricks.
- Clarification needed on whether Databricks solutions fall under a particular analytics category or requires a standalone template.
Action Items for Databricks
- Gather more information about which templates under Snowflake Analytics or others category Databricks should be associated with.
- Confirm approval processes specific to Databricks deployments before provisioning.
Jenkins and Automation Efforts
Monitoring Jenkins Pipeline Migrations
- Regularly check that Jenkins pipelines transition properly to the new system.
- Maintain rigorous monitoring to ensure that broken links and old job definitions are purged or updated accordingly.
Collaboration and Communication Efficiency
- Maintain clear communication channels among team members regarding operational status and open issues.
- Ensure consistent updates and ownership of documentation needed to facilitate onboarding and resource management.