SlideShare a Scribd company logo
1 of 40
Download to read offline
© Pythian Services Inc 2023 | Confidential
Oracle database
automation guide
Nelson Calero
Principal Consultant
Pythian
Oracle Community Tour LATAM 2023
July 27th - August 16th
Pythian Services Inc | 2
Nelson Calero
Pythian Principal Consultant
● 20+ years Database experience
● Community Volunteer
LinkedIn: http://www.linkedin.com/in/ncalero
Twitter: @ncalerouy
Pythian Services Inc | 3
Solutions designed to power the value of your data.
Solution that maximize
the entire data state
Data & Analytics CloudOps Applications
Data & Analytics Consulting
Database Services
Cloud Data Platform Services
Data Insights & Advanced Analytics
Cloud Migrations
Cloud Management InfraOps / FinOps
Google Cloud
DevOps CI/CD
Oracle EBS
SAP
Collaboration & Workspace
Application Development, Migration
& Refactoring
Wherever your data and
applications reside
No matter what platform
you choose
Public Cloud
Hybrid Cloud
On Premises
Pythian Services Inc | 4
25
Years in Business
420+
Experts across every Data Domain & Technology
400+
Global Customers
3 membership tiers
Connect
:
@oracleace
Facebook.com/OracleACEs
aceprogram_ww@oracle.com
500+ technical experts
helping peers globally
The Oracle ACE Program recognizes and
rewards community members for their technical and
community contributions to the Oracle community
Nominate
yourself or someone you
know:
ace.oracle.com/nominate
For more details on Oracle ACE Program:
ace.oracle.com
Pythian Services Inc | 6
Motivation
- Mandatory now, it was desirable in the past
- Variety of tools and complexities
- Maintenance effort is usually underestimated
- Part of my daily work in the last years
Today’s examples using Ansible (avoiding another
Ansible intro session)
Pythian Services Inc | 7
A possible approach to the topic
● The Role of Automation in Database Administration
● Automation Tools and Technologies
● Automating Database Provisioning and Configuration
● Automation in Backup and Recovery
● Automating Performance Monitoring and Tuning
● Automation in Patching and Upgrades
● Automating Security and Compliance
● Implementing Continuous Integration and Delivery
● Tips for Successful Automation
● Case Study: Real-World Automation Success Story
● Future Trends in Oracle Database Automation
Pythian Services Inc | 8
What I will focus today
● The Role of Automation in Database Administration
● Automation Tools and Technologies
● Automating Database Provisioning and Configuration
● Automation in Backup and Recovery
● Automating Performance Monitoring and Tuning
● Automation in Patching and Upgrades
● Automating Security and Compliance
● Implementing Continuous Integration and Delivery
● Tips for Successful Automation
● Case Study: Real-World Automation Success Story
● Future Trends in Oracle Database Automation
1. Quick introduction
a. Typical database admin tasks
b. Tools
c. Platforms & services
2. Automation examples from experience
a. Database provisioning
b. Database Patching
3. Other examples
4. Challenges and future
Pythian Services Inc | 9
Introduction
Oracle database tools
+ features
+ DBA tasks
+ automation tools
+ platforms
+ approaches
Pythian Services Inc | 10
Pythian Services Inc | 11
Oracle database tools and features
Oracle database has many:
● Oracle provided tools automating complex tasks
○ RMAN, FPP, Autoupgrade, AHF (CHM, Orachk, etc.), OEM, …
● APIs to automate the use of features
○ Rest API, Tools CLIs, Services APIs
● Features performing complex tasks with several internal steps
○ You name it. Some examples: Query optimizer, DBMS_* packages
Most tools and features have enough complexity to spend this session in only one, exploring how it
works, edge cases, exceptions and ways to avoid them (workarounds).
I have already covered many over the last 10 years - https://www.slideshare.net/ncalero
- RAC - Exadata - OCI CLI
- RMAN - ExaCS - Virtualization
- DBMS_Redefinition - OMC - Terraform
- SPM - FGA - Kubernetes
- FPP - SSL
Pythian Services Inc | 12
Automation tools
Many tools to automate tasks. Examples:
● Ansible
● Terraform
● Terragrunt
● Jenkins
● Liquibase
● Git
Many related tools, as:
● Git (version control)
● VirtualBox (virtualization)
● Docker (containers)
● Kubernetes (containers)
● Monitoring and Alerting tools (third party,
cloud native)
● Scripting (eg: Bash)
● Programming languages (Python, Go, ..)
Pythian Services Inc | 13
Operational (repetitive tasks)
- Keeping the lights on (infrastructure)
- Backups, monitoring, alerting,
retention policies, security policies, …
- Application requests
- Schema and data management
- Patching and upgrades (security)
- RUs, DB versions, Infra upgrades,
- …
Consulting (one time task)
- Data modelling (ex: for new apps)
- Design for HA, DR, scale, regulations, etc.
- Integrations (APIs, etc.)
Oracle DBA typical tasks
Words from the Oracle Database Administrator’s Guide 19c index
Pythian Services Inc | 14
Database platforms
● Cloud services include their own automations
○ Managed (DBaaS) means our work focus on usage (new tools, service logs, tool logs)
○ DevOps tools and plug-ins with OCI:
https://docs.oracle.com/en-us/iaas/Content/API/Concepts/devopstools_topic-DevOps_Tools_and_Plugins.htm
● Specialized hardware also have their own features and tools
○ Exadata, ODA, ZDLRA
Pythian Services Inc | 15
Initial steps
1 - Master the process to be automated
- Follow Oracle recommendations
- Execute it manually many times
- Learn how to deal with failures
- Explore unexpected results
- Define the scope (versions, options, etc.)
2 - Code the execution
- Execute without manual intervention
- Include parameters to make it Reusable
- Choose the right tool/language
4 - Introduce Changes
- New versions of software to use
- Changes/New parameters
3 - Test
- Cover all variables possible values
- Include failures and how to resume
Manual
executions
Script
executions Test
automation
New
versions
Pythian Services Inc | 16
Keys in this process
● Follow Oracle recommendations
● Get familiar with the process in hand
● Pick the right tool
● Test the automation. A lot
Pythian Services Inc | 17
Keys in this process
● Follow Oracle recommendations
● Get familiar with the process in hand
○ You need to know if there are problems with the automation or with the task executed
○ Generate failures, explore unexpected results, learn how to fix them
● Pick the right tool
○ Combination of CLIs for Oracle provided tools, scripts, Ansible (or similar) to have a
playbook with steps, Terraform (or similar) to create the required infrastructure
○ Choose tools based on team experience - pushing a shift in direction is another discussion.
■ Example: why Ansible if everything is being done with Chef?
● Test the automation. A lot
○ More than with manual executions - need to cover all the code paths and decisions
○ Generate errors, learn how to deal with them, improve the code
○ Implement validations to avoid known issues, adding clear messages
Pythian Services Inc | 18
Examples from experience
● Database provisioning
○ Ansible, OCI, Terraform
● Database Patching
○ Ansible, OCI
Pythian Services Inc | 19
Example: Database provisioning
Ansible in one slide:
● Install binaries in a control machine (Windows not supported)
● No agent – uses ssh to connect to remote machines
● Inventory to define machines to use - /etc/ansible/hosts
● Playbook: used for configuration, deployment, and orchestration
○ YAML format
○ tags and actions to execute
○ conditional control: when, loop, until
○ this is the main code to keep under source control
● Modules describing resources and desired state
○ Created by us or built-in modules: http://docs.ansible.com/modules_by_category.html
○ Can be executed directly or inside playbooks
Pythian Services Inc | 20
Example: Database provisioning
Define clearly what do you want to do
● Where?
○ On-prem, OCI, Exadata?
● Which version?
○ Availability of features, deployment options, tools and parameters differ with versions
● Which components?
○ Single instance, RAC, RAC one-node, ASM, Data guard, etc.
● Create a database or just install software?
○ CDB or PDB?
○ Using dbca templates, RMAN or scripts?
○ Register the database with OEM or other monitoring tool?
○ Configure backup scripts?
● To be used with empty servers, or looking to apply it to servers already running Oracle?
○ Create a new database if the home exists?
○ Always create a new Oracle home?
Pythian Services Inc | 21
Example: Database provisioning - OCI
● OCI DBaaS is easy - single command, multiple tools and code examples
○ Terraform OCI provider:
https://github.com/oracle/terraform-provider-oci/tree/master/examples/database
○ Ansible Collection (replaces old Ansible modules from Oracle):
https://github.com/oracle/oci-ansible-collection/tree/master/samples/database
○ OCI CLI:
https://github.com/oracle/oci-cli/blob/master/services/database/examples_and_test_scripts/database_launch_dbsystem_exa
mple.sh
● Common parameters and errors (OCI CLI, Terraform):
○ https://www.slideshare.net/ncalero/automate-your-oracle-cloud-infrastructure-operations-v20-oow19
$ oci db system launch --from-json file://db-ioug-ad1-2n.json
Pythian Services Inc | 22
Example: Database provisioning - on-prem
Need to start from scratch or already have a solution?
● Oracle Fleet Provisioning and Patching - https://oracle.com/goto/fpp.
○ Complete solution from Oracle, proprietary
○ Oracle LiveLab - https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/view-workshop?wid=599
○ My slides from few years ago:
https://www.slideshare.net/ncalero/automate-oracle-database-patches-and-upgrades-using-fleet-provisioning-and-patching
● Several community Ansible modules
○ https://github.com/oravirt/ansible-oracle-modules - Oldest active and complete repo
○ https://github.com/iarsov/ansible-orapatch - 12c old repo
○ https://github.com/google/bms-toolkit - Oracle SI and 2 node RAC deployments and patching
Pythian Services Inc | 23
Example: Database provisioning - on-prem
DEMO: using our in-house Ansible playbook
$ tree
.
├── LICENSE
├── PYTHIAN-LICENSE
├── README.md
├── ansible.cfg
├── apply-patch.sh
...
├── roles
│ ├── base-provision
│ │ ├── defaults
...
│ ├── common
│ │ └── defaults
│ │ └── main.yml
94 directories, 135 files
Pythian Services Inc | 24
Example: Database provisioning - on-prem
Code snippets from the Demo
● Conditionals to decide execution, debug and tags - used everywhere:
roles/rdbms-setup/tasks/main.yml
...
- debug: var=existing_dbhome
- debug: var=osw
- debug: var=oracle_db_ver
- include_tasks: rdbms-install.yml
with_items:
- "{{ rdbms_software }}"
loop_control:
loop_var: osw
when: existing_dbhome.stdout == "0" and osw.version == oracle_db_ver and oracle_edition in
osw.edition
tags: rdbms-setup
...
Pythian Services Inc | 25
Example: Database provisioning - on-prem
Code snippets from the Demo
● Tags, variables and conditionals in the roles to glue all together
– common/defaults/main.yml
...
gi_patches:
# 11.2.0.4 PSU
- { category: "PSU", base: "11.2.0.4.0", release: "11.2.0.4.190416", patchnum: "29255947", patchfile:
"p29255947_112040_Linux-x86-64.zip", patch_subdir: "", prereq_check: FALSE, method: "opatch auto", ocm: TRUE,
upgrade: FALSE, md5sum: "T81Qs+cdCMK8UkfbERzQWw==" }
...
rdbms_patches:
# 11.2.0.4 OJVM packages from Combo
- { category: "PSU_Combo", base: "11.2.0.4.0", release: "11.2.0.4.190115", patchnum: "28729262", patchfile:
"p28729262_112040_Linux-x86-64.zip", patch_subdir: "", prereq_check: FALSE, method: "opatch apply", ocm: TRUE,
upgrade: FALSE, md5sum: "bkZLVmTae5QSNouUzSc3BA==", opatch_ver: "" }
...
Pythian Services Inc | 26
Example: Database provisioning - on-prem
Code snippets from the Demo
● Deploy a RAC database w/ASM, non-CDB, using a template for the database
./install-oracle.sh 
--ora-swlib-bucket /u03/swlib 
--ora-swlib-path /u03/stage 
--ora-swlib-type fs 
--cluster-type RAC 
--ora-asm-disks conf/asm_disk_config-rac.json 
--cluster-config conf/cluster_config-rac.json 
--ora-data-mounts conf/data_mounts_config-rac.json 
--backup-dest /u03/backup 
--ora-disk-mgmt udev 
--ora-role-separation false 
--grid-home-dir /u01/app/19.3.0/grid 
--db-home-dir /u01/app/oracle/product/19.3.0/db 
--compatible-rdbms 19.3.0 
--ora-db-version 19.3.0.0.0 
--ora-listener-port 1526 
--ignoreprereq-gi N 
--ignoreprereq-db N 
--skip-sql-patch 
--ora-db-name orcl1 
--ora-data-diskgroup DATA01 
--ora-reco-diskgroup FRA01 
--ora-db-charset AL32UTF8 
--ora-db-ncharset AL16UTF16 
--ora-db-container false 
--ora-db-type OLTP 
--ora-redo-log-size 100MB 
--ora-swlib-template-bucket /u03/dbTemplates 
--ora-swlib-template-path /u03/templates 
--ora-db-template non_unicode.rsp.dbc
Pythian Services Inc | 27
Database provisioning
Dealing with errors, logging, debugging
● This is key to maintain the code - changes are always required
● Tools logs, database logs, orchestration logs
From our previous example:
- Ansible logs - summary of steps executed (less than stdout)
- Ansible debug - detailed ansible actions and outputs
- Tools log - each step calling a command (ex: dbca) generates their own logs
ANSIBLE_LOG_PATH=${LOG_FILE}
ANSIBLE_STDOUT_CALLBACK=debug
Pythian Services Inc | 28
Examples from experience
● Database provisioning
○ Ansible, OCI, Terraform
● Database Patching
○ Ansible, OCI
Pythian Services Inc | 29
Example: Database patching
● Similar considerations as for provisioning
○ OCI DBaaS - managed
■ apply using console or API (SDK, CLI, REST)
■ Some flexibility to execute steps -
https://docs.oracle.com/en/cloud/paas/bm-and-vm-dbs-cloud/dbpatching/
○ on-prem : manual procedure, needs definitions before implementing
■ Out of place?
■ FPP or other golden image scheme in use?
■ GI or DB only?
■ Standby?
■ Same Ansible repos used for provisioning also cover patching
Pythian Services Inc | 30
Example: Database patching - on-prem
DEMO: using another in-house Ansible playbook
$ tree
.
├── README.md
├── ansible.cfg
├── db-patch.sh
├── dbpatch-dry.yml
├── dbpatch.yml
├── ebs_patch.sh
├── group_vars
│ └── all.yml
...
│ ├── download_files
│ │ └── files
│ │ └── getMOSPatch.jar
...
15 directories, 41 files
Pythian Services Inc | 31
Example: Database patching - on-prem
Code snippets from the Demo
● Parameters to handle GI and DBhome independently, PDB, validations, patch repository
● Example: Patch GI only
./db-patch.sh 
--ora-staging /u03/APR_2023 
--inventory-file inventory_files/inventory 
--ora-role-separation true 
--ora-db-name SAMPLEDB 
--ora-db-version 19.0.0.0.0 
--db-home-dir /u01/app/oracle/product/19.3.0/dbhome_1 
--patch-cycle APR_2023 
--target-name orcl 
--gi-only
Pythian Services Inc | 32
Other relevant examples
● DB code change management
○ Liquibase / SQLcl
● Database API
○ ORDs
● Database Upgrade
○ Autoupgrade, OCI CLI, Terraform
Pythian Services Inc | 33
Example: Database code change management
● Source code versioning
● Automated apply and test (CI/CD)
○ Tools to implement the CI pipeline (build)
○ Tools to test
○ Tools to easily rollback changes (containers, snapshots, backups, etc.)
● Examples:
○ utPLSQL - https://github.com/utPLSQL/utPLSQL-demo-project
○ SQLcl - improved version of Liquibase (https://www.liquibase.com/) from Oracle
https://www.thatjeffsmith.com/archive/2019/09/liquibase-and-sqlcl/
○ Detailed example from Tim Hall:
https://oracle-base.com/articles/misc/sqlcl-automating-your-database-deployments-using-sqlcl-and-liquibase
○ Code and slides from Oracle: https://github.com/oracle/oracle-db-tools/tree/master/devops
Pythian Services Inc | 34
Other relevant examples
● DB code change management
○ Liquibase / SQLcl
● Database API
○ ORDs
● Database Upgrade
○ Autoupgrade, OCI CLI, Terraform
Pythian Services Inc | 35
Database API
● OCI - we already know: managed, lot of extras included:
○ Backups, scaling CPU and Storage, Cloud Guard, WAF, etc.
● On-prem?
○ Database Management REST API with ORDS - https://www.oracle.com/ords
Pythian Services Inc | 36
Database API - on-prem w/ORDS
● +600 REST endpoints:
https://docs.oracle.com/en/database/oracle/oracle-database/19/dbrst/rest-endpoints.html
○ GET/POST/PUT/DELETE operations
○ PATCH using FPP
○ Uses SSL certificates and authentication with username/password
○ Monitoring / Performance / Dictionary / Environment / General / PDB operations
● Lot of examples in Jeff Smith blog: https://www.thatjeffsmith.com/
● LiveLabs:
https://oracle.github.io/learning-library/developer-library/converged-db/converged-db-on-premises/workshops
/freetier/?lab=ords
Pythian Services Inc | 37
● DB code change management
○ Liquibase / SQLcl
● Database API
○ ORDs
● Database Upgrade
○ Autoupgrade, OCI CLI, Terraform
Other relevant examples
Pythian Services Inc | 38
Example: Database upgrade
● Autoupgrade is the tool since years ago
○ DBUA is deprecated in 23c
○ Test it for your environment, several configurations supported, don’t assume
○ Example: standby, PDBs, wallets
○ Mike’s blog is the go-to resource: https://mikedietrichde.com/
● OCI database upgrades - single command
○ CLI
○ Terraform: https://github.com/oracle/terraform-provider-oci/blob/master/examples/database/db_upgrade/resources.tf
...
resource "oci_database_database_upgrade" "test_upgrade" {
action = "UPGRADE"
database_id = data.oci_database_databases.databases.databases.0.id
database_upgrade_source_details {
db_version = "19.8.0.0"
source = "DB_VERSION"
options = "-upgradeTimezone false -keepEvents"
}
}
$ oci db database upgrade-with-db-version --action UPGRADE --database-id $DBID --db-version “19.8.0.0”
Pythian Services Inc | 39
Takeaways
● OCI / DBaaS simplifies many tasks vs on-prem, but still requires some care
● Validations in the automation is equally important as executing tasks
● A good initial definition will save a lot of implementation time
● Several tools/repos available, pick the one you/your team are familiar with
● Test is the key (to everything, not only automation)
● Changes will be required, avoid trying to save time today at expense of tomorrow
● Automation effort varies. Start with a small POC to have a better understanding
What’s next?
● Learn tools and practice, there is no single solution and there are a lot of free resources
● Keep up with updates in all components (tools, database, OS)
○ Security is the main reason
○ changes/deprecation of parameters/features in use
© Pythian Services Inc 2023
Thank You / Questions?
calero@pythian.com
@ncalerouy
http://www.linkedin.com/in/ncalero

More Related Content

Similar to Database automation guide - Oracle Community Tour LATAM 2023

Thinking DevOps in the era of the Cloud - Demi Ben-Ari
Thinking DevOps in the era of the Cloud - Demi Ben-AriThinking DevOps in the era of the Cloud - Demi Ben-Ari
Thinking DevOps in the era of the Cloud - Demi Ben-AriDemi Ben-Ari
 
Data Engineer's Lunch #81: Reverse ETL Tools for Modern Data Platforms
Data Engineer's Lunch #81: Reverse ETL Tools for Modern Data PlatformsData Engineer's Lunch #81: Reverse ETL Tools for Modern Data Platforms
Data Engineer's Lunch #81: Reverse ETL Tools for Modern Data PlatformsAnant Corporation
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftYaniv cohen
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionSteve Hogg
 
ML Platform Q1 Meetup: Airbnb's End-to-End Machine Learning Infrastructure
ML Platform Q1 Meetup: Airbnb's End-to-End Machine Learning InfrastructureML Platform Q1 Meetup: Airbnb's End-to-End Machine Learning Infrastructure
ML Platform Q1 Meetup: Airbnb's End-to-End Machine Learning InfrastructureFei Chen
 
PAD-3126 - Evolving the DevOps Organization around IBM PureApplication System...
PAD-3126 - Evolving the DevOps Organization around IBM PureApplication System...PAD-3126 - Evolving the DevOps Organization around IBM PureApplication System...
PAD-3126 - Evolving the DevOps Organization around IBM PureApplication System...Hendrik van Run
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...Srijan Technologies
 
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...Codemotion
 
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...Demi Ben-Ari
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017Demi Ben-Ari
 
Platform as a Service (PaaS) - A cloud service for Developers
Platform as a Service (PaaS) - A cloud service for Developers Platform as a Service (PaaS) - A cloud service for Developers
Platform as a Service (PaaS) - A cloud service for Developers Ravindra Dastikop
 
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps WayDevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Waysmalltown
 
The Lyft data platform: Now and in the future
The Lyft data platform: Now and in the futureThe Lyft data platform: Now and in the future
The Lyft data platform: Now and in the futuremarkgrover
 
Lyft data Platform - 2019 slides
Lyft data Platform - 2019 slidesLyft data Platform - 2019 slides
Lyft data Platform - 2019 slidesKarthik Murugesan
 
OpsStack--Integrated Operation Platform
OpsStack--Integrated Operation PlatformOpsStack--Integrated Operation Platform
OpsStack--Integrated Operation PlatformChinaNetCloud
 
Capacity Planning Infrastructure for Web Applications (Drupal)
Capacity Planning Infrastructure for Web Applications (Drupal)Capacity Planning Infrastructure for Web Applications (Drupal)
Capacity Planning Infrastructure for Web Applications (Drupal)Ricardo Amaro
 
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedInGrokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedInGrokking VN
 
Kettle: Pentaho Data Integration tool
Kettle: Pentaho Data Integration toolKettle: Pentaho Data Integration tool
Kettle: Pentaho Data Integration toolAlex Rayón Jerez
 

Similar to Database automation guide - Oracle Community Tour LATAM 2023 (20)

Thinking DevOps in the era of the Cloud - Demi Ben-Ari
Thinking DevOps in the era of the Cloud - Demi Ben-AriThinking DevOps in the era of the Cloud - Demi Ben-Ari
Thinking DevOps in the era of the Cloud - Demi Ben-Ari
 
Data Engineer's Lunch #81: Reverse ETL Tools for Modern Data Platforms
Data Engineer's Lunch #81: Reverse ETL Tools for Modern Data PlatformsData Engineer's Lunch #81: Reverse ETL Tools for Modern Data Platforms
Data Engineer's Lunch #81: Reverse ETL Tools for Modern Data Platforms
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From Production
 
ML Platform Q1 Meetup: Airbnb's End-to-End Machine Learning Infrastructure
ML Platform Q1 Meetup: Airbnb's End-to-End Machine Learning InfrastructureML Platform Q1 Meetup: Airbnb's End-to-End Machine Learning Infrastructure
ML Platform Q1 Meetup: Airbnb's End-to-End Machine Learning Infrastructure
 
PAD-3126 - Evolving the DevOps Organization around IBM PureApplication System...
PAD-3126 - Evolving the DevOps Organization around IBM PureApplication System...PAD-3126 - Evolving the DevOps Organization around IBM PureApplication System...
PAD-3126 - Evolving the DevOps Organization around IBM PureApplication System...
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
 
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
 
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
 
DevOps Days Rockies MLOps
DevOps Days Rockies MLOpsDevOps Days Rockies MLOps
DevOps Days Rockies MLOps
 
Platform as a Service (PaaS) - A cloud service for Developers
Platform as a Service (PaaS) - A cloud service for Developers Platform as a Service (PaaS) - A cloud service for Developers
Platform as a Service (PaaS) - A cloud service for Developers
 
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps WayDevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
 
The Lyft data platform: Now and in the future
The Lyft data platform: Now and in the futureThe Lyft data platform: Now and in the future
The Lyft data platform: Now and in the future
 
Lyft data Platform - 2019 slides
Lyft data Platform - 2019 slidesLyft data Platform - 2019 slides
Lyft data Platform - 2019 slides
 
OpsStack--Integrated Operation Platform
OpsStack--Integrated Operation PlatformOpsStack--Integrated Operation Platform
OpsStack--Integrated Operation Platform
 
Capacity Planning Infrastructure for Web Applications (Drupal)
Capacity Planning Infrastructure for Web Applications (Drupal)Capacity Planning Infrastructure for Web Applications (Drupal)
Capacity Planning Infrastructure for Web Applications (Drupal)
 
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedInGrokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
 
Promise of DevOps
Promise of DevOpsPromise of DevOps
Promise of DevOps
 
Kettle: Pentaho Data Integration tool
Kettle: Pentaho Data Integration toolKettle: Pentaho Data Integration tool
Kettle: Pentaho Data Integration tool
 

More from Nelson Calero

Terraform Tips and Tricks - LAOUC 2022
Terraform Tips and Tricks - LAOUC 2022Terraform Tips and Tricks - LAOUC 2022
Terraform Tips and Tricks - LAOUC 2022Nelson Calero
 
Oracle on kubernetes 101 - Dec/2021
Oracle on kubernetes 101 - Dec/2021Oracle on kubernetes 101 - Dec/2021
Oracle on kubernetes 101 - Dec/2021Nelson Calero
 
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...Nelson Calero
 
Oracle Exadata Cloud Services guide from practical experience - OOW19
Oracle Exadata Cloud Services guide from practical experience - OOW19Oracle Exadata Cloud Services guide from practical experience - OOW19
Oracle Exadata Cloud Services guide from practical experience - OOW19Nelson Calero
 
Automate your oracle cloud infrastructure operations v2.0 - OOW19
Automate your oracle cloud infrastructure operations v2.0 - OOW19Automate your oracle cloud infrastructure operations v2.0 - OOW19
Automate your oracle cloud infrastructure operations v2.0 - OOW19Nelson Calero
 
Automate the operation of your Oracle Cloud infrastructure v2.0
Automate the operation of your Oracle Cloud infrastructure v2.0Automate the operation of your Oracle Cloud infrastructure v2.0
Automate the operation of your Oracle Cloud infrastructure v2.0Nelson Calero
 
SSL certificates in the Oracle Database without surprises
SSL certificates in the Oracle Database without surprisesSSL certificates in the Oracle Database without surprises
SSL certificates in the Oracle Database without surprisesNelson Calero
 
Practical guide to Oracle Virtual environments
Practical guide to Oracle Virtual environmentsPractical guide to Oracle Virtual environments
Practical guide to Oracle Virtual environmentsNelson Calero
 
Automate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operationAutomate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operationNelson Calero
 
Welcome to databases in the Cloud
Welcome to databases in the CloudWelcome to databases in the Cloud
Welcome to databases in the CloudNelson Calero
 
Redefining tables online without surprises
Redefining tables online without surprisesRedefining tables online without surprises
Redefining tables online without surprisesNelson Calero
 
Protect Sensitive Data: Implementing Fine-Grained Access Control in Oracle
Protect Sensitive Data: Implementing Fine-Grained Access Control in OracleProtect Sensitive Data: Implementing Fine-Grained Access Control in Oracle
Protect Sensitive Data: Implementing Fine-Grained Access Control in OracleNelson Calero
 
Evolution of Performance Management: Oracle 12c adaptive optimizations - ukou...
Evolution of Performance Management: Oracle 12c adaptive optimizations - ukou...Evolution of Performance Management: Oracle 12c adaptive optimizations - ukou...
Evolution of Performance Management: Oracle 12c adaptive optimizations - ukou...Nelson Calero
 
Oracle Exadata Maintenance tasks 101 - OTN Tour 2015
Oracle Exadata Maintenance tasks 101 - OTN Tour 2015Oracle Exadata Maintenance tasks 101 - OTN Tour 2015
Oracle Exadata Maintenance tasks 101 - OTN Tour 2015Nelson Calero
 
My Experience Using Oracle SQL Plan Baselines 11g/12c
My Experience Using Oracle SQL Plan Baselines 11g/12cMy Experience Using Oracle SQL Plan Baselines 11g/12c
My Experience Using Oracle SQL Plan Baselines 11g/12cNelson Calero
 
Oracle RAC sin sorpresas - v2014
Oracle RAC sin sorpresas - v2014Oracle RAC sin sorpresas - v2014
Oracle RAC sin sorpresas - v2014Nelson Calero
 
Alta disponibilidad con Pacemaker
Alta disponibilidad con PacemakerAlta disponibilidad con Pacemaker
Alta disponibilidad con PacemakerNelson Calero
 
AROUG BIDAY 2013 - Automatizar procesos de ETL con PL/SQL
AROUG BIDAY 2013 - Automatizar procesos de ETL con PL/SQLAROUG BIDAY 2013 - Automatizar procesos de ETL con PL/SQL
AROUG BIDAY 2013 - Automatizar procesos de ETL con PL/SQLNelson Calero
 
MariaDB y FOSS en infraestructura de salud y estándares
MariaDB y FOSS en infraestructura de salud y estándaresMariaDB y FOSS en infraestructura de salud y estándares
MariaDB y FOSS en infraestructura de salud y estándaresNelson Calero
 
UYOUG 2012 - Oracle RAC 11gR2 - New features
UYOUG 2012 - Oracle RAC 11gR2 - New featuresUYOUG 2012 - Oracle RAC 11gR2 - New features
UYOUG 2012 - Oracle RAC 11gR2 - New featuresNelson Calero
 

More from Nelson Calero (20)

Terraform Tips and Tricks - LAOUC 2022
Terraform Tips and Tricks - LAOUC 2022Terraform Tips and Tricks - LAOUC 2022
Terraform Tips and Tricks - LAOUC 2022
 
Oracle on kubernetes 101 - Dec/2021
Oracle on kubernetes 101 - Dec/2021Oracle on kubernetes 101 - Dec/2021
Oracle on kubernetes 101 - Dec/2021
 
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
 
Oracle Exadata Cloud Services guide from practical experience - OOW19
Oracle Exadata Cloud Services guide from practical experience - OOW19Oracle Exadata Cloud Services guide from practical experience - OOW19
Oracle Exadata Cloud Services guide from practical experience - OOW19
 
Automate your oracle cloud infrastructure operations v2.0 - OOW19
Automate your oracle cloud infrastructure operations v2.0 - OOW19Automate your oracle cloud infrastructure operations v2.0 - OOW19
Automate your oracle cloud infrastructure operations v2.0 - OOW19
 
Automate the operation of your Oracle Cloud infrastructure v2.0
Automate the operation of your Oracle Cloud infrastructure v2.0Automate the operation of your Oracle Cloud infrastructure v2.0
Automate the operation of your Oracle Cloud infrastructure v2.0
 
SSL certificates in the Oracle Database without surprises
SSL certificates in the Oracle Database without surprisesSSL certificates in the Oracle Database without surprises
SSL certificates in the Oracle Database without surprises
 
Practical guide to Oracle Virtual environments
Practical guide to Oracle Virtual environmentsPractical guide to Oracle Virtual environments
Practical guide to Oracle Virtual environments
 
Automate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operationAutomate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operation
 
Welcome to databases in the Cloud
Welcome to databases in the CloudWelcome to databases in the Cloud
Welcome to databases in the Cloud
 
Redefining tables online without surprises
Redefining tables online without surprisesRedefining tables online without surprises
Redefining tables online without surprises
 
Protect Sensitive Data: Implementing Fine-Grained Access Control in Oracle
Protect Sensitive Data: Implementing Fine-Grained Access Control in OracleProtect Sensitive Data: Implementing Fine-Grained Access Control in Oracle
Protect Sensitive Data: Implementing Fine-Grained Access Control in Oracle
 
Evolution of Performance Management: Oracle 12c adaptive optimizations - ukou...
Evolution of Performance Management: Oracle 12c adaptive optimizations - ukou...Evolution of Performance Management: Oracle 12c adaptive optimizations - ukou...
Evolution of Performance Management: Oracle 12c adaptive optimizations - ukou...
 
Oracle Exadata Maintenance tasks 101 - OTN Tour 2015
Oracle Exadata Maintenance tasks 101 - OTN Tour 2015Oracle Exadata Maintenance tasks 101 - OTN Tour 2015
Oracle Exadata Maintenance tasks 101 - OTN Tour 2015
 
My Experience Using Oracle SQL Plan Baselines 11g/12c
My Experience Using Oracle SQL Plan Baselines 11g/12cMy Experience Using Oracle SQL Plan Baselines 11g/12c
My Experience Using Oracle SQL Plan Baselines 11g/12c
 
Oracle RAC sin sorpresas - v2014
Oracle RAC sin sorpresas - v2014Oracle RAC sin sorpresas - v2014
Oracle RAC sin sorpresas - v2014
 
Alta disponibilidad con Pacemaker
Alta disponibilidad con PacemakerAlta disponibilidad con Pacemaker
Alta disponibilidad con Pacemaker
 
AROUG BIDAY 2013 - Automatizar procesos de ETL con PL/SQL
AROUG BIDAY 2013 - Automatizar procesos de ETL con PL/SQLAROUG BIDAY 2013 - Automatizar procesos de ETL con PL/SQL
AROUG BIDAY 2013 - Automatizar procesos de ETL con PL/SQL
 
MariaDB y FOSS en infraestructura de salud y estándares
MariaDB y FOSS en infraestructura de salud y estándaresMariaDB y FOSS en infraestructura de salud y estándares
MariaDB y FOSS en infraestructura de salud y estándares
 
UYOUG 2012 - Oracle RAC 11gR2 - New features
UYOUG 2012 - Oracle RAC 11gR2 - New featuresUYOUG 2012 - Oracle RAC 11gR2 - New features
UYOUG 2012 - Oracle RAC 11gR2 - New features
 

Recently uploaded

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Recently uploaded (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

Database automation guide - Oracle Community Tour LATAM 2023

  • 1. © Pythian Services Inc 2023 | Confidential Oracle database automation guide Nelson Calero Principal Consultant Pythian Oracle Community Tour LATAM 2023 July 27th - August 16th
  • 2. Pythian Services Inc | 2 Nelson Calero Pythian Principal Consultant ● 20+ years Database experience ● Community Volunteer LinkedIn: http://www.linkedin.com/in/ncalero Twitter: @ncalerouy
  • 3. Pythian Services Inc | 3 Solutions designed to power the value of your data. Solution that maximize the entire data state Data & Analytics CloudOps Applications Data & Analytics Consulting Database Services Cloud Data Platform Services Data Insights & Advanced Analytics Cloud Migrations Cloud Management InfraOps / FinOps Google Cloud DevOps CI/CD Oracle EBS SAP Collaboration & Workspace Application Development, Migration & Refactoring Wherever your data and applications reside No matter what platform you choose Public Cloud Hybrid Cloud On Premises
  • 4. Pythian Services Inc | 4 25 Years in Business 420+ Experts across every Data Domain & Technology 400+ Global Customers
  • 5. 3 membership tiers Connect : @oracleace Facebook.com/OracleACEs aceprogram_ww@oracle.com 500+ technical experts helping peers globally The Oracle ACE Program recognizes and rewards community members for their technical and community contributions to the Oracle community Nominate yourself or someone you know: ace.oracle.com/nominate For more details on Oracle ACE Program: ace.oracle.com
  • 6. Pythian Services Inc | 6 Motivation - Mandatory now, it was desirable in the past - Variety of tools and complexities - Maintenance effort is usually underestimated - Part of my daily work in the last years Today’s examples using Ansible (avoiding another Ansible intro session)
  • 7. Pythian Services Inc | 7 A possible approach to the topic ● The Role of Automation in Database Administration ● Automation Tools and Technologies ● Automating Database Provisioning and Configuration ● Automation in Backup and Recovery ● Automating Performance Monitoring and Tuning ● Automation in Patching and Upgrades ● Automating Security and Compliance ● Implementing Continuous Integration and Delivery ● Tips for Successful Automation ● Case Study: Real-World Automation Success Story ● Future Trends in Oracle Database Automation
  • 8. Pythian Services Inc | 8 What I will focus today ● The Role of Automation in Database Administration ● Automation Tools and Technologies ● Automating Database Provisioning and Configuration ● Automation in Backup and Recovery ● Automating Performance Monitoring and Tuning ● Automation in Patching and Upgrades ● Automating Security and Compliance ● Implementing Continuous Integration and Delivery ● Tips for Successful Automation ● Case Study: Real-World Automation Success Story ● Future Trends in Oracle Database Automation 1. Quick introduction a. Typical database admin tasks b. Tools c. Platforms & services 2. Automation examples from experience a. Database provisioning b. Database Patching 3. Other examples 4. Challenges and future
  • 9. Pythian Services Inc | 9 Introduction Oracle database tools + features + DBA tasks + automation tools + platforms + approaches
  • 11. Pythian Services Inc | 11 Oracle database tools and features Oracle database has many: ● Oracle provided tools automating complex tasks ○ RMAN, FPP, Autoupgrade, AHF (CHM, Orachk, etc.), OEM, … ● APIs to automate the use of features ○ Rest API, Tools CLIs, Services APIs ● Features performing complex tasks with several internal steps ○ You name it. Some examples: Query optimizer, DBMS_* packages Most tools and features have enough complexity to spend this session in only one, exploring how it works, edge cases, exceptions and ways to avoid them (workarounds). I have already covered many over the last 10 years - https://www.slideshare.net/ncalero - RAC - Exadata - OCI CLI - RMAN - ExaCS - Virtualization - DBMS_Redefinition - OMC - Terraform - SPM - FGA - Kubernetes - FPP - SSL
  • 12. Pythian Services Inc | 12 Automation tools Many tools to automate tasks. Examples: ● Ansible ● Terraform ● Terragrunt ● Jenkins ● Liquibase ● Git Many related tools, as: ● Git (version control) ● VirtualBox (virtualization) ● Docker (containers) ● Kubernetes (containers) ● Monitoring and Alerting tools (third party, cloud native) ● Scripting (eg: Bash) ● Programming languages (Python, Go, ..)
  • 13. Pythian Services Inc | 13 Operational (repetitive tasks) - Keeping the lights on (infrastructure) - Backups, monitoring, alerting, retention policies, security policies, … - Application requests - Schema and data management - Patching and upgrades (security) - RUs, DB versions, Infra upgrades, - … Consulting (one time task) - Data modelling (ex: for new apps) - Design for HA, DR, scale, regulations, etc. - Integrations (APIs, etc.) Oracle DBA typical tasks Words from the Oracle Database Administrator’s Guide 19c index
  • 14. Pythian Services Inc | 14 Database platforms ● Cloud services include their own automations ○ Managed (DBaaS) means our work focus on usage (new tools, service logs, tool logs) ○ DevOps tools and plug-ins with OCI: https://docs.oracle.com/en-us/iaas/Content/API/Concepts/devopstools_topic-DevOps_Tools_and_Plugins.htm ● Specialized hardware also have their own features and tools ○ Exadata, ODA, ZDLRA
  • 15. Pythian Services Inc | 15 Initial steps 1 - Master the process to be automated - Follow Oracle recommendations - Execute it manually many times - Learn how to deal with failures - Explore unexpected results - Define the scope (versions, options, etc.) 2 - Code the execution - Execute without manual intervention - Include parameters to make it Reusable - Choose the right tool/language 4 - Introduce Changes - New versions of software to use - Changes/New parameters 3 - Test - Cover all variables possible values - Include failures and how to resume Manual executions Script executions Test automation New versions
  • 16. Pythian Services Inc | 16 Keys in this process ● Follow Oracle recommendations ● Get familiar with the process in hand ● Pick the right tool ● Test the automation. A lot
  • 17. Pythian Services Inc | 17 Keys in this process ● Follow Oracle recommendations ● Get familiar with the process in hand ○ You need to know if there are problems with the automation or with the task executed ○ Generate failures, explore unexpected results, learn how to fix them ● Pick the right tool ○ Combination of CLIs for Oracle provided tools, scripts, Ansible (or similar) to have a playbook with steps, Terraform (or similar) to create the required infrastructure ○ Choose tools based on team experience - pushing a shift in direction is another discussion. ■ Example: why Ansible if everything is being done with Chef? ● Test the automation. A lot ○ More than with manual executions - need to cover all the code paths and decisions ○ Generate errors, learn how to deal with them, improve the code ○ Implement validations to avoid known issues, adding clear messages
  • 18. Pythian Services Inc | 18 Examples from experience ● Database provisioning ○ Ansible, OCI, Terraform ● Database Patching ○ Ansible, OCI
  • 19. Pythian Services Inc | 19 Example: Database provisioning Ansible in one slide: ● Install binaries in a control machine (Windows not supported) ● No agent – uses ssh to connect to remote machines ● Inventory to define machines to use - /etc/ansible/hosts ● Playbook: used for configuration, deployment, and orchestration ○ YAML format ○ tags and actions to execute ○ conditional control: when, loop, until ○ this is the main code to keep under source control ● Modules describing resources and desired state ○ Created by us or built-in modules: http://docs.ansible.com/modules_by_category.html ○ Can be executed directly or inside playbooks
  • 20. Pythian Services Inc | 20 Example: Database provisioning Define clearly what do you want to do ● Where? ○ On-prem, OCI, Exadata? ● Which version? ○ Availability of features, deployment options, tools and parameters differ with versions ● Which components? ○ Single instance, RAC, RAC one-node, ASM, Data guard, etc. ● Create a database or just install software? ○ CDB or PDB? ○ Using dbca templates, RMAN or scripts? ○ Register the database with OEM or other monitoring tool? ○ Configure backup scripts? ● To be used with empty servers, or looking to apply it to servers already running Oracle? ○ Create a new database if the home exists? ○ Always create a new Oracle home?
  • 21. Pythian Services Inc | 21 Example: Database provisioning - OCI ● OCI DBaaS is easy - single command, multiple tools and code examples ○ Terraform OCI provider: https://github.com/oracle/terraform-provider-oci/tree/master/examples/database ○ Ansible Collection (replaces old Ansible modules from Oracle): https://github.com/oracle/oci-ansible-collection/tree/master/samples/database ○ OCI CLI: https://github.com/oracle/oci-cli/blob/master/services/database/examples_and_test_scripts/database_launch_dbsystem_exa mple.sh ● Common parameters and errors (OCI CLI, Terraform): ○ https://www.slideshare.net/ncalero/automate-your-oracle-cloud-infrastructure-operations-v20-oow19 $ oci db system launch --from-json file://db-ioug-ad1-2n.json
  • 22. Pythian Services Inc | 22 Example: Database provisioning - on-prem Need to start from scratch or already have a solution? ● Oracle Fleet Provisioning and Patching - https://oracle.com/goto/fpp. ○ Complete solution from Oracle, proprietary ○ Oracle LiveLab - https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/view-workshop?wid=599 ○ My slides from few years ago: https://www.slideshare.net/ncalero/automate-oracle-database-patches-and-upgrades-using-fleet-provisioning-and-patching ● Several community Ansible modules ○ https://github.com/oravirt/ansible-oracle-modules - Oldest active and complete repo ○ https://github.com/iarsov/ansible-orapatch - 12c old repo ○ https://github.com/google/bms-toolkit - Oracle SI and 2 node RAC deployments and patching
  • 23. Pythian Services Inc | 23 Example: Database provisioning - on-prem DEMO: using our in-house Ansible playbook $ tree . ├── LICENSE ├── PYTHIAN-LICENSE ├── README.md ├── ansible.cfg ├── apply-patch.sh ... ├── roles │ ├── base-provision │ │ ├── defaults ... │ ├── common │ │ └── defaults │ │ └── main.yml 94 directories, 135 files
  • 24. Pythian Services Inc | 24 Example: Database provisioning - on-prem Code snippets from the Demo ● Conditionals to decide execution, debug and tags - used everywhere: roles/rdbms-setup/tasks/main.yml ... - debug: var=existing_dbhome - debug: var=osw - debug: var=oracle_db_ver - include_tasks: rdbms-install.yml with_items: - "{{ rdbms_software }}" loop_control: loop_var: osw when: existing_dbhome.stdout == "0" and osw.version == oracle_db_ver and oracle_edition in osw.edition tags: rdbms-setup ...
  • 25. Pythian Services Inc | 25 Example: Database provisioning - on-prem Code snippets from the Demo ● Tags, variables and conditionals in the roles to glue all together – common/defaults/main.yml ... gi_patches: # 11.2.0.4 PSU - { category: "PSU", base: "11.2.0.4.0", release: "11.2.0.4.190416", patchnum: "29255947", patchfile: "p29255947_112040_Linux-x86-64.zip", patch_subdir: "", prereq_check: FALSE, method: "opatch auto", ocm: TRUE, upgrade: FALSE, md5sum: "T81Qs+cdCMK8UkfbERzQWw==" } ... rdbms_patches: # 11.2.0.4 OJVM packages from Combo - { category: "PSU_Combo", base: "11.2.0.4.0", release: "11.2.0.4.190115", patchnum: "28729262", patchfile: "p28729262_112040_Linux-x86-64.zip", patch_subdir: "", prereq_check: FALSE, method: "opatch apply", ocm: TRUE, upgrade: FALSE, md5sum: "bkZLVmTae5QSNouUzSc3BA==", opatch_ver: "" } ...
  • 26. Pythian Services Inc | 26 Example: Database provisioning - on-prem Code snippets from the Demo ● Deploy a RAC database w/ASM, non-CDB, using a template for the database ./install-oracle.sh --ora-swlib-bucket /u03/swlib --ora-swlib-path /u03/stage --ora-swlib-type fs --cluster-type RAC --ora-asm-disks conf/asm_disk_config-rac.json --cluster-config conf/cluster_config-rac.json --ora-data-mounts conf/data_mounts_config-rac.json --backup-dest /u03/backup --ora-disk-mgmt udev --ora-role-separation false --grid-home-dir /u01/app/19.3.0/grid --db-home-dir /u01/app/oracle/product/19.3.0/db --compatible-rdbms 19.3.0 --ora-db-version 19.3.0.0.0 --ora-listener-port 1526 --ignoreprereq-gi N --ignoreprereq-db N --skip-sql-patch --ora-db-name orcl1 --ora-data-diskgroup DATA01 --ora-reco-diskgroup FRA01 --ora-db-charset AL32UTF8 --ora-db-ncharset AL16UTF16 --ora-db-container false --ora-db-type OLTP --ora-redo-log-size 100MB --ora-swlib-template-bucket /u03/dbTemplates --ora-swlib-template-path /u03/templates --ora-db-template non_unicode.rsp.dbc
  • 27. Pythian Services Inc | 27 Database provisioning Dealing with errors, logging, debugging ● This is key to maintain the code - changes are always required ● Tools logs, database logs, orchestration logs From our previous example: - Ansible logs - summary of steps executed (less than stdout) - Ansible debug - detailed ansible actions and outputs - Tools log - each step calling a command (ex: dbca) generates their own logs ANSIBLE_LOG_PATH=${LOG_FILE} ANSIBLE_STDOUT_CALLBACK=debug
  • 28. Pythian Services Inc | 28 Examples from experience ● Database provisioning ○ Ansible, OCI, Terraform ● Database Patching ○ Ansible, OCI
  • 29. Pythian Services Inc | 29 Example: Database patching ● Similar considerations as for provisioning ○ OCI DBaaS - managed ■ apply using console or API (SDK, CLI, REST) ■ Some flexibility to execute steps - https://docs.oracle.com/en/cloud/paas/bm-and-vm-dbs-cloud/dbpatching/ ○ on-prem : manual procedure, needs definitions before implementing ■ Out of place? ■ FPP or other golden image scheme in use? ■ GI or DB only? ■ Standby? ■ Same Ansible repos used for provisioning also cover patching
  • 30. Pythian Services Inc | 30 Example: Database patching - on-prem DEMO: using another in-house Ansible playbook $ tree . ├── README.md ├── ansible.cfg ├── db-patch.sh ├── dbpatch-dry.yml ├── dbpatch.yml ├── ebs_patch.sh ├── group_vars │ └── all.yml ... │ ├── download_files │ │ └── files │ │ └── getMOSPatch.jar ... 15 directories, 41 files
  • 31. Pythian Services Inc | 31 Example: Database patching - on-prem Code snippets from the Demo ● Parameters to handle GI and DBhome independently, PDB, validations, patch repository ● Example: Patch GI only ./db-patch.sh --ora-staging /u03/APR_2023 --inventory-file inventory_files/inventory --ora-role-separation true --ora-db-name SAMPLEDB --ora-db-version 19.0.0.0.0 --db-home-dir /u01/app/oracle/product/19.3.0/dbhome_1 --patch-cycle APR_2023 --target-name orcl --gi-only
  • 32. Pythian Services Inc | 32 Other relevant examples ● DB code change management ○ Liquibase / SQLcl ● Database API ○ ORDs ● Database Upgrade ○ Autoupgrade, OCI CLI, Terraform
  • 33. Pythian Services Inc | 33 Example: Database code change management ● Source code versioning ● Automated apply and test (CI/CD) ○ Tools to implement the CI pipeline (build) ○ Tools to test ○ Tools to easily rollback changes (containers, snapshots, backups, etc.) ● Examples: ○ utPLSQL - https://github.com/utPLSQL/utPLSQL-demo-project ○ SQLcl - improved version of Liquibase (https://www.liquibase.com/) from Oracle https://www.thatjeffsmith.com/archive/2019/09/liquibase-and-sqlcl/ ○ Detailed example from Tim Hall: https://oracle-base.com/articles/misc/sqlcl-automating-your-database-deployments-using-sqlcl-and-liquibase ○ Code and slides from Oracle: https://github.com/oracle/oracle-db-tools/tree/master/devops
  • 34. Pythian Services Inc | 34 Other relevant examples ● DB code change management ○ Liquibase / SQLcl ● Database API ○ ORDs ● Database Upgrade ○ Autoupgrade, OCI CLI, Terraform
  • 35. Pythian Services Inc | 35 Database API ● OCI - we already know: managed, lot of extras included: ○ Backups, scaling CPU and Storage, Cloud Guard, WAF, etc. ● On-prem? ○ Database Management REST API with ORDS - https://www.oracle.com/ords
  • 36. Pythian Services Inc | 36 Database API - on-prem w/ORDS ● +600 REST endpoints: https://docs.oracle.com/en/database/oracle/oracle-database/19/dbrst/rest-endpoints.html ○ GET/POST/PUT/DELETE operations ○ PATCH using FPP ○ Uses SSL certificates and authentication with username/password ○ Monitoring / Performance / Dictionary / Environment / General / PDB operations ● Lot of examples in Jeff Smith blog: https://www.thatjeffsmith.com/ ● LiveLabs: https://oracle.github.io/learning-library/developer-library/converged-db/converged-db-on-premises/workshops /freetier/?lab=ords
  • 37. Pythian Services Inc | 37 ● DB code change management ○ Liquibase / SQLcl ● Database API ○ ORDs ● Database Upgrade ○ Autoupgrade, OCI CLI, Terraform Other relevant examples
  • 38. Pythian Services Inc | 38 Example: Database upgrade ● Autoupgrade is the tool since years ago ○ DBUA is deprecated in 23c ○ Test it for your environment, several configurations supported, don’t assume ○ Example: standby, PDBs, wallets ○ Mike’s blog is the go-to resource: https://mikedietrichde.com/ ● OCI database upgrades - single command ○ CLI ○ Terraform: https://github.com/oracle/terraform-provider-oci/blob/master/examples/database/db_upgrade/resources.tf ... resource "oci_database_database_upgrade" "test_upgrade" { action = "UPGRADE" database_id = data.oci_database_databases.databases.databases.0.id database_upgrade_source_details { db_version = "19.8.0.0" source = "DB_VERSION" options = "-upgradeTimezone false -keepEvents" } } $ oci db database upgrade-with-db-version --action UPGRADE --database-id $DBID --db-version “19.8.0.0”
  • 39. Pythian Services Inc | 39 Takeaways ● OCI / DBaaS simplifies many tasks vs on-prem, but still requires some care ● Validations in the automation is equally important as executing tasks ● A good initial definition will save a lot of implementation time ● Several tools/repos available, pick the one you/your team are familiar with ● Test is the key (to everything, not only automation) ● Changes will be required, avoid trying to save time today at expense of tomorrow ● Automation effort varies. Start with a small POC to have a better understanding What’s next? ● Learn tools and practice, there is no single solution and there are a lot of free resources ● Keep up with updates in all components (tools, database, OS) ○ Security is the main reason ○ changes/deprecation of parameters/features in use
  • 40. © Pythian Services Inc 2023 Thank You / Questions? calero@pythian.com @ncalerouy http://www.linkedin.com/in/ncalero