SlideShare a Scribd company logo
Melissa Plunkett, Sr. Product Manager
Terraform New Worlds on MongoDB Atlas
themantissa
Melissa Plunkett, Sr. Product Manager
Terraform New Worlds on MongoDB Atlas
themantissa
Welcome!
• Sr. Product Manager in Cloud, focus
Automation
• Formally a Solution Architect
• Before that an ops gal – Started with SGI
IRIX and Red Hat pre RHEL.
• Tech Mantra: Learn it, Master it (enough).
Script it. Rest. Repeat.
• And a Trekkie so …
Welcome Cadets!
Starfleet Academy for Automation
Today’s Training Agenda
MongoDB
Atlas
MongoDB
Atlas
API
Future
Mission
Plan
Terraform Vault
Cadets, Have You Used?
• MongoDB Atlas?
• MongoDB Atlas API?
• Terraform?
• Vault?
• Bonus!!! Star Trek Fan? Star
Wars Fan? Both?
MongoDB Atlas
Starfleet is focused on building applications that allow us to explore
strange new worlds & seek out new civilizations
• MongoDB Atlas was selected earlier this year
• Focus on apps not ops
• Can quickly spin up on multiple cloud providers in multiple
planetary* regions!
• Easy to use UI
*currently limited to Earth
MongoDB Atlas UI Demo
MongoDB Atlas – Exploring the API
MongoDB Atlas API means UI isn’t required to do much of what we
need to do repeatedly to support developers
• REST
• API key w/ Digest Auth over HTTPS
• API keys has RBAC - capabilities match the permissions assigned to
the Key
• API key whitelist
https://docs.atlas.mongodb.com/api/
MongoDB Atlas – Exploring the API - Resources
Organization
Projects
{Group-ID}
Clusters
Project IP Whitelist
Database Users
Invoices
Custom MDB Roles
Global Cluster
Configuration
Alerts
Alert
Configurations
Maintenance
Window
LDAP
Configuration
Continuous Backup
Snapshots
Continuous Backup
Snapshots Schedule
Continuous Backup
Restore Job
Cloud Provider & On
Demand Snapshots
Cloud Provider Snapshot
Restore Job
Cloud Provider Snapshot
Bkup Policy
Checkpoints
VPC
Programmatic API
Keys
Monitoring and
Logs*
Performance
Advisor*
Auditing
Encryption at Rest
Root Atlas Users
Events
Teams
https://docs.atlas.mongodb.com/api/
MongoDB Atlas –API Resources Reference
Organization
Projects
{Group-ID}
Clusters
Project IP Whitelist
Database Users
Invoices
Custom MDB Roles
Global Cluster
Configuration
Alerts
Alert
Configurations
Maintenance
Window
LDAP
Configuration*
Continuous Backup
Snapshots
Continuous Backup
Snapshots Schedule
Continuous Backup
Restore Job
Cloud Provider & On
Demand Snapshots
Cloud Provider Snapshot
Restore Job
Cloud Provider Snapshot
Bkup Policy
Checkpoints
VPC
Programmatic API
Keys
Monitoring and
Logs^
Performance
Advisor^
Auditing
Encryption at
Rest*
Root Atlas Users
Events
CRU
R
✓
✓
✓
✓
✓
✓
RU
R
✓
✓
✓
RU
R
R
RUDRU CR R
RU
✓
✓
✓
CRD CRD
Teams ✓✓
https://docs.atlas.mongodb.com/api/
MongoDB Atlas – Exploring the API
Two key things to know the location of before you get started …
• Project ID
• Organization ID
MongoDB Atlas – Exploring the API
Organization ID
MongoDB Atlas – Exploring the API
Project ID (aka Group ID)
MongoDB Atlas – Exploring the API
Create a Programmatic API Key either at the Organization or Project
level:
• Org level: all the available permissions are for the org level.
• Project level: all the available permissions are for the project level
• BUT all project keys can be seen in the org level as an Org
Member.
MongoDB Atlas – Exploring the API
@ Org
level go to
Access
MongoDB Atlas – Exploring the API
@ Project
level go to
Access
Management
Create a Cluster:
--request POST
"https://cloud.mongodb.com/api/atlas/v1.0/groups/5ce4d39d79358
e873fc12c1f/clusters?pretty=true" 
--data '
{
"name" : "MDBW19-Class-Cluster2-API",
"diskSizeGB" : 100,
"autoScaling" : {
"diskGBEnabled" : false
}, "clusterType":"REPLICASET",
"providerBackupEnabled" : true,
Create a Cluster:
"providerSettings" : {
"providerName" : "AWS",
"diskIOPS": 340,
"instanceSizeName" : "M30",
"volumeType" : "PROVISIONED” },
Create a Cluster:
"replicationSpecs" : [ {
"numShards" : 1,
"regionsConfig" : {
"US_WEST_1" : {
"analyticsNodes" : 1,
"electableNodes" : 3,
"readOnlyNodes" : 0,
"priority" : 7},
Create a Cluster:
"US_EAST_1" : {
"analyticsNodes" : 0,
"readOnlyNodes" : 1,
"electableNodes" : 2,
"priority" : 6 }
}
}]
}'
Create a MongoDB Database User in the Project:
-X POST
"https://cloud.mongodb.com/api/atlas/v1.0/groups/5ce4d39d79358
e873fc12c1f/databaseUsers?pretty=true" 
--data '
{ "databaseName" : "admin",
"roles" : [ {
"databaseName" : "admin",
"roleName" : "readWriteAnyDatabase"
} ],
"username" : "spock2",
"password" : "badpass123” }'
Add an IP to the Project IP Whitelist:
--request POST
"https://cloud.mongodb.com/api/atlas/v1.0/groups/5ce4d39d79358
e873fc12c1f/whitelist?pretty=true" 
--data '
[
{
"ipAddress" : "192.0.0.15",
"comment" : "IP address added via API"
}
]'
Create a Quick Cluster via API
MongoDB Atlas – Exploring the API
API is great but…
• Requires us to really know the API: e.g. updating via PATCH, or
delete via DELETE, etc.
• Going to possibly take a lot of time and money.
• What if we could just describe what we want and change that
when we need to modify it?
Emergency Transmission
Top Secret
From: Starfleet Command
To: Starfleet Engineering
MongoDB Cluster needed STAT. Project
Genesis is at risk. Deploy at once!
Khan seen in sector. Red Alert recommended.
. . . .
Emergency Transmission . . . .
HashiCorp’s Terraform
Terraform is an open source, declarative Infrastructure as Code (IaC)
tool.
• Describe desired infrastructure in a configuration file
• Terraform takes that file and creates a plan to implement it
• One can review the plan, and if all good, apply to create
• We can create, change and destroy infrastructure easily!
HashiCorp’s Terraform
We can change and destroy infrastructure easily???
• Terraform keeps a state file of what it has done
• Change your configuration it only implements the diff
• Can import a resource and then apply changes, e.g. import in a
cluster and then set it to a bigger size.
• Terraform destroy really destroys!
HashiCorp’s Terraform
Terraform is a plugin based system:
Base diagram from hashicorp.com
*.tf
1
2
3
4
5
*.tfstate
The Provider
understands both
Terraform and the
Upstream API
Terraform Core
doesn’t “know” any
infrastructure,
that’s the Plugins
purpose.
You simply need to define what you want in the .tf file, do not need to know the API deeply
CRUD
variable "mongodb_atlas_api_pub_key"
{ default = ”PUB-API-KEY"}
variable "mongodb_atlas_api_pri_key"
{ default = ”PRI-API-KEY" }
variable "database_username" { default = "spock3" }
variable "database_user_password" { default = "blahblah1236" }
variable "mongodb_atlas_whitelistip” { default = "192.155.1.1" }
variable "mongodb_atlas_org_id" { default = "599eed269f78f769464d1bc3"}
variable "mongodb_atlas_project_id" { default = "5ce4d39d79358e873fc12c1f"
}
Main.tf - Variables
Keys and passwords !?
Not a great practice and angers Admiral Kirk as Khan could steal these L
But we’ll address this soon.
# Configure the MongoDB Atlas Provider
provider "mongodbatlas" {
username = "${var.mongodb_atlas_api_pub_key}"
api_key = "${var.mongodb_atlas_api_pri_key}"
}
Main.tf – Configure the Provider
resource "mongodbatlas_cluster" "cluster" {
name = "MDBW19-Class-Cluster3-TF"
group = "${var.mongodb_atlas_project_id}"
mongodb_major_version = "4.0"
provider_name = "AWS"
region = ""
size = "M30"
disk_size_gb = 100
backup = false
provider_backup = true
disk_gb_enabled = false
replication_factor = 0
Missing?
-Disk IOPS
-Anything related to replicationSpecs
- this uses the deprecated
replicationSpec option.
-numShards (but it has a default!)
Main.tf - Cluster
A few issues
replication_spec {
region = "US_WEST_1"
priority = 7
read_only_nodes = 0
analytics_nodes = 1
electable_nodes = 3
}
Main.tf – Cluster Continued
replication_spec {
region = "US_EAST_1"
priority = 6
read_only_nodes = 1
analytics_nodes = 0
electable_nodes = 2
}
}
# Create a Database User
resource "mongodbatlas_database_user" "test" {
username = "${var.database_username}"
password = "${var.database_user_password}"
database = "admin"
group = "${var.mongodb_atlas_project_id}"
roles {
name = "readWriteAnyDatabase"
database = "admin"
}
}
Main.tf – Database User
# Create an IP Whitelist
resource "mongodbatlas_ip_whitelist" "test" {
group = "${var.mongodb_atlas_project_id}"
ip_address = "${var.mongodb_atlas_whitelistip}”
comment = "Added with Terraform"
}
Main.tf – IP Whitelist
HashiCorp’s Terraform
Let’s configure a cluster, MongoDB user and Project IP whitelist with
Terraform
• Providers can be verified/official (both Hashicorp & Community
created) OR community created but not verified
• MongoDB Atlas Community Provider created by Akshay Karle:
https://github.com/akshaykarle/terraform-provider-
mongodbatlas/ (Thank you Akshay!)
Create a Quick Cluster via Terraform
Cadets Save Day and Defeat Khan!
Security of the Mission
We have to ensure we handle data securely. Security layers we have
utilized thus far:
• API communication over HTTPS
• RBAC to limit what the API key can do
• IP Whitelist
But the more secure layers the better so what else can we do?
HashiCorp’s Vault
• Manage secrets & protect sensitive data
• Focus here - managing secrets, especially
dynamic secrets
• Secret Engine extends Vault to systems, e.g.
physical like a HSM or a service in the Cloud
like Atlas.
Vault is another HashiCorp product designed for security in the
Cloud:
HashiCorp’s Vault
• Database Secrets Engine: generate database credentials
dynamically based on configured roles, including for MDB.
• Atlas creates database users differently (via API) so need a Secrets
Engine for that.
• Ta da! There’s a community Secrets Engine at
https://github.com/mealal/vault-atlas-plugin written by the
amazing Alexey Menshikov, a Consulting Engineers @MDB!
HashiCorp’s Vault
• Atlas community Secrets Engine examples:
$ vault write database/roles/readonly db_name=atlas
creation_statements=‘{ "db": "admin", "roles": [{ "role":
"readAnyDatabase" }] }' default_ttl="1h" max_ttl="24h"
$ vault write database/config/atlas plugin_name=atlas
allowed_roles="readonly" apiID="public API key"
apiKey="private API key" groupID=”project id"
$ vault read database/creds/readonly
HashiCorp’s Vault
• What about a Provider for Vault? Yes!
https://www.terraform.io/docs/providers/vault/index.html
• Read the cautions on using the Provider for Vault and follow the
best practices to be as secure as possible!
Cadets Save Day and Defeat Khan!
Future Mission Plan
MongoDB + Hashicorp – Better together!
Later in 2019 MongoDB will have
an official:
Ø MongoDB Atlas
Secrets Engine for
Vault
Ø MongoDB Atlas
Terraform Provider
Be the First in the Know!
• Go to https://bit.ly/2WS4WMJ
• Fill out the brief survey, 6
required q’s, 3 not! < 2m
• You will be notified on the
progress for which ever mission
you are interested in
(Vault/Terraform/both)
Questions?
Where: Atlas Booth in the
Partner Pavilion (A1)
When: 1:40 - 5:05 PM today!
or
Melissa.Plunkett@mongodb.com
anytime!
Github: themantissa
Please provide Session Feedback
1. MDB World App -> Menu -> “Rate a Session” ->
Regent
OR
1. Go to slido.com
2. Enter event code #MDBW19
3. Click on Regent
Feedback poll will remain open for 10 minutes after the talk
ends
YOU ARE IN REGENT
Thank you!
MongoDB World 2019: Terraform New Worlds on MongoDB Atlas

More Related Content

What's hot

Modern Security with OAuth 2.0 and JWT and Spring by Dmitry Buzdin
Modern Security with OAuth 2.0 and JWT and Spring by Dmitry BuzdinModern Security with OAuth 2.0 and JWT and Spring by Dmitry Buzdin
Modern Security with OAuth 2.0 and JWT and Spring by Dmitry Buzdin
Java User Group Latvia
 
Install Redis on Oracle Linux
Install Redis on Oracle LinuxInstall Redis on Oracle Linux
Install Redis on Oracle Linux
Johan Louwers
 
802.1x Implementation Plan for Seacoast
802.1x Implementation Plan for Seacoast802.1x Implementation Plan for Seacoast
802.1x Implementation Plan for Seacoast
Sithideth Banavong
 
Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우
PgDay.Seoul
 
MySQL Slow Query log Monitoring using Beats & ELK
MySQL Slow Query log Monitoring using Beats & ELKMySQL Slow Query log Monitoring using Beats & ELK
MySQL Slow Query log Monitoring using Beats & ELK
YoungHeon (Roy) Kim
 
Acing the Elastic Certified Engineer Exam
Acing the Elastic Certified Engineer ExamAcing the Elastic Certified Engineer Exam
Acing the Elastic Certified Engineer Exam
Sandeep Kanabar
 
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
MongoDB
 
Common MongoDB Use Cases
Common MongoDB Use Cases Common MongoDB Use Cases
Common MongoDB Use Cases
MongoDB
 
Indexing & Query Optimization
Indexing & Query OptimizationIndexing & Query Optimization
Indexing & Query Optimization
MongoDB
 
Json Web Token - JWT
Json Web Token - JWTJson Web Token - JWT
Json Web Token - JWT
Prashant Walke
 
Angular Web Programlama
Angular Web ProgramlamaAngular Web Programlama
Angular Web Programlama
Cihan Özhan
 
MongoDB and Ruby on Rails
MongoDB and Ruby on RailsMongoDB and Ruby on Rails
MongoDB and Ruby on Rails
rfischer20
 
Using Compass to Diagnose Performance Problems in Your Cluster
Using Compass to Diagnose Performance Problems in Your ClusterUsing Compass to Diagnose Performance Problems in Your Cluster
Using Compass to Diagnose Performance Problems in Your Cluster
MongoDB
 
Training Series: Build APIs with Neo4j GraphQL Library
Training Series: Build APIs with Neo4j GraphQL LibraryTraining Series: Build APIs with Neo4j GraphQL Library
Training Series: Build APIs with Neo4j GraphQL Library
Neo4j
 
patroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deploymentpatroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deployment
hyeongchae lee
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
MongoDB
 
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group ReplicationPercona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Kenny Gryp
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교Woo Yeong Choi
 
REST-API design patterns
REST-API design patternsREST-API design patterns
REST-API design patterns
Patrick Savalle
 
Mongo DB schema design patterns
Mongo DB schema design patternsMongo DB schema design patterns
Mongo DB schema design patterns
joergreichert
 

What's hot (20)

Modern Security with OAuth 2.0 and JWT and Spring by Dmitry Buzdin
Modern Security with OAuth 2.0 and JWT and Spring by Dmitry BuzdinModern Security with OAuth 2.0 and JWT and Spring by Dmitry Buzdin
Modern Security with OAuth 2.0 and JWT and Spring by Dmitry Buzdin
 
Install Redis on Oracle Linux
Install Redis on Oracle LinuxInstall Redis on Oracle Linux
Install Redis on Oracle Linux
 
802.1x Implementation Plan for Seacoast
802.1x Implementation Plan for Seacoast802.1x Implementation Plan for Seacoast
802.1x Implementation Plan for Seacoast
 
Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우
 
MySQL Slow Query log Monitoring using Beats & ELK
MySQL Slow Query log Monitoring using Beats & ELKMySQL Slow Query log Monitoring using Beats & ELK
MySQL Slow Query log Monitoring using Beats & ELK
 
Acing the Elastic Certified Engineer Exam
Acing the Elastic Certified Engineer ExamAcing the Elastic Certified Engineer Exam
Acing the Elastic Certified Engineer Exam
 
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
 
Common MongoDB Use Cases
Common MongoDB Use Cases Common MongoDB Use Cases
Common MongoDB Use Cases
 
Indexing & Query Optimization
Indexing & Query OptimizationIndexing & Query Optimization
Indexing & Query Optimization
 
Json Web Token - JWT
Json Web Token - JWTJson Web Token - JWT
Json Web Token - JWT
 
Angular Web Programlama
Angular Web ProgramlamaAngular Web Programlama
Angular Web Programlama
 
MongoDB and Ruby on Rails
MongoDB and Ruby on RailsMongoDB and Ruby on Rails
MongoDB and Ruby on Rails
 
Using Compass to Diagnose Performance Problems in Your Cluster
Using Compass to Diagnose Performance Problems in Your ClusterUsing Compass to Diagnose Performance Problems in Your Cluster
Using Compass to Diagnose Performance Problems in Your Cluster
 
Training Series: Build APIs with Neo4j GraphQL Library
Training Series: Build APIs with Neo4j GraphQL LibraryTraining Series: Build APIs with Neo4j GraphQL Library
Training Series: Build APIs with Neo4j GraphQL Library
 
patroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deploymentpatroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deployment
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group ReplicationPercona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교
 
REST-API design patterns
REST-API design patternsREST-API design patterns
REST-API design patterns
 
Mongo DB schema design patterns
Mongo DB schema design patternsMongo DB schema design patterns
Mongo DB schema design patterns
 

Similar to MongoDB World 2019: Terraform New Worlds on MongoDB Atlas

MongoDB to Cassandra
MongoDB to CassandraMongoDB to Cassandra
MongoDB to Cassandra
fredvdd
 
Terraform - Taming Modern Clouds
Terraform  - Taming Modern CloudsTerraform  - Taming Modern Clouds
Terraform - Taming Modern Clouds
Nic Jackson
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
Antonio Peric-Mazar
 
CloudFormation Dark Arts
CloudFormation Dark ArtsCloudFormation Dark Arts
CloudFormation Dark Arts
Chase Douglas
 
Running Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on HadoopRunning Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on Hadoop
clairvoyantllc
 
Iac d.damyanov 4.pptx
Iac d.damyanov 4.pptxIac d.damyanov 4.pptx
Iac d.damyanov 4.pptx
Dimitar Damyanov
 
High quality ap is with api platform
High quality ap is with api platformHigh quality ap is with api platform
High quality ap is with api platform
Nelson Kopliku
 
AWS DevOps - Terraform, Docker, HashiCorp Vault
AWS DevOps - Terraform, Docker, HashiCorp VaultAWS DevOps - Terraform, Docker, HashiCorp Vault
AWS DevOps - Terraform, Docker, HashiCorp Vault
Grzegorz Adamowicz
 
Django deployment with PaaS
Django deployment with PaaSDjango deployment with PaaS
Django deployment with PaaS
Appsembler
 
Achieve big data analytic platform with lambda architecture on cloud
Achieve big data analytic platform with lambda architecture on cloudAchieve big data analytic platform with lambda architecture on cloud
Achieve big data analytic platform with lambda architecture on cloud
Scott Miao
 
Tear It Down, Build It Back Up: Empowering Developers with Amazon CloudFormation
Tear It Down, Build It Back Up: Empowering Developers with Amazon CloudFormationTear It Down, Build It Back Up: Empowering Developers with Amazon CloudFormation
Tear It Down, Build It Back Up: Empowering Developers with Amazon CloudFormation
James Andrew Vaughn
 
Infrastructure as Code with Terraform
Infrastructure as Code with TerraformInfrastructure as Code with Terraform
Infrastructure as Code with Terraform
Mathieu Herbert
 
Scala at Treasure Data
Scala at Treasure DataScala at Treasure Data
Scala at Treasure Data
Taro L. Saito
 
AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013
AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013
AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013
Amazon Web Services
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nl
bartzon
 
Making your Life Easier with MongoDB and Kafka (Robert Walters, MongoDB) Kafk...
Making your Life Easier with MongoDB and Kafka (Robert Walters, MongoDB) Kafk...Making your Life Easier with MongoDB and Kafka (Robert Walters, MongoDB) Kafk...
Making your Life Easier with MongoDB and Kafka (Robert Walters, MongoDB) Kafk...
HostedbyConfluent
 
Deploying Machine Learning Models to Production
Deploying Machine Learning Models to ProductionDeploying Machine Learning Models to Production
Deploying Machine Learning Models to Production
Anass Bensrhir - Senior Data Scientist
 
Crafting Evolvable Api Responses
Crafting Evolvable Api ResponsesCrafting Evolvable Api Responses
Crafting Evolvable Api Responses
darrelmiller71
 
Can we run the Whole Web on Apache Sling?
Can we run the Whole Web on Apache Sling?Can we run the Whole Web on Apache Sling?
Can we run the Whole Web on Apache Sling?
Bertrand Delacretaz
 
MongoDB at Gilt Groupe
MongoDB at Gilt GroupeMongoDB at Gilt Groupe
MongoDB at Gilt Groupe
MongoDB
 

Similar to MongoDB World 2019: Terraform New Worlds on MongoDB Atlas (20)

MongoDB to Cassandra
MongoDB to CassandraMongoDB to Cassandra
MongoDB to Cassandra
 
Terraform - Taming Modern Clouds
Terraform  - Taming Modern CloudsTerraform  - Taming Modern Clouds
Terraform - Taming Modern Clouds
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
 
CloudFormation Dark Arts
CloudFormation Dark ArtsCloudFormation Dark Arts
CloudFormation Dark Arts
 
Running Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on HadoopRunning Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on Hadoop
 
Iac d.damyanov 4.pptx
Iac d.damyanov 4.pptxIac d.damyanov 4.pptx
Iac d.damyanov 4.pptx
 
High quality ap is with api platform
High quality ap is with api platformHigh quality ap is with api platform
High quality ap is with api platform
 
AWS DevOps - Terraform, Docker, HashiCorp Vault
AWS DevOps - Terraform, Docker, HashiCorp VaultAWS DevOps - Terraform, Docker, HashiCorp Vault
AWS DevOps - Terraform, Docker, HashiCorp Vault
 
Django deployment with PaaS
Django deployment with PaaSDjango deployment with PaaS
Django deployment with PaaS
 
Achieve big data analytic platform with lambda architecture on cloud
Achieve big data analytic platform with lambda architecture on cloudAchieve big data analytic platform with lambda architecture on cloud
Achieve big data analytic platform with lambda architecture on cloud
 
Tear It Down, Build It Back Up: Empowering Developers with Amazon CloudFormation
Tear It Down, Build It Back Up: Empowering Developers with Amazon CloudFormationTear It Down, Build It Back Up: Empowering Developers with Amazon CloudFormation
Tear It Down, Build It Back Up: Empowering Developers with Amazon CloudFormation
 
Infrastructure as Code with Terraform
Infrastructure as Code with TerraformInfrastructure as Code with Terraform
Infrastructure as Code with Terraform
 
Scala at Treasure Data
Scala at Treasure DataScala at Treasure Data
Scala at Treasure Data
 
AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013
AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013
AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nl
 
Making your Life Easier with MongoDB and Kafka (Robert Walters, MongoDB) Kafk...
Making your Life Easier with MongoDB and Kafka (Robert Walters, MongoDB) Kafk...Making your Life Easier with MongoDB and Kafka (Robert Walters, MongoDB) Kafk...
Making your Life Easier with MongoDB and Kafka (Robert Walters, MongoDB) Kafk...
 
Deploying Machine Learning Models to Production
Deploying Machine Learning Models to ProductionDeploying Machine Learning Models to Production
Deploying Machine Learning Models to Production
 
Crafting Evolvable Api Responses
Crafting Evolvable Api ResponsesCrafting Evolvable Api Responses
Crafting Evolvable Api Responses
 
Can we run the Whole Web on Apache Sling?
Can we run the Whole Web on Apache Sling?Can we run the Whole Web on Apache Sling?
Can we run the Whole Web on Apache Sling?
 
MongoDB at Gilt Groupe
MongoDB at Gilt GroupeMongoDB at Gilt Groupe
MongoDB at Gilt Groupe
 

More from MongoDB

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB
 

More from MongoDB (20)

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
 

Recently uploaded

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
Claudio Di Ciccio
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
Techgropse Pvt.Ltd.
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 

Recently uploaded (20)

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 

MongoDB World 2019: Terraform New Worlds on MongoDB Atlas

  • 1. Melissa Plunkett, Sr. Product Manager Terraform New Worlds on MongoDB Atlas themantissa Melissa Plunkett, Sr. Product Manager Terraform New Worlds on MongoDB Atlas themantissa
  • 2. Welcome! • Sr. Product Manager in Cloud, focus Automation • Formally a Solution Architect • Before that an ops gal – Started with SGI IRIX and Red Hat pre RHEL. • Tech Mantra: Learn it, Master it (enough). Script it. Rest. Repeat. • And a Trekkie so …
  • 5. Cadets, Have You Used? • MongoDB Atlas? • MongoDB Atlas API? • Terraform? • Vault? • Bonus!!! Star Trek Fan? Star Wars Fan? Both?
  • 6. MongoDB Atlas Starfleet is focused on building applications that allow us to explore strange new worlds & seek out new civilizations • MongoDB Atlas was selected earlier this year • Focus on apps not ops • Can quickly spin up on multiple cloud providers in multiple planetary* regions! • Easy to use UI *currently limited to Earth
  • 8. MongoDB Atlas – Exploring the API MongoDB Atlas API means UI isn’t required to do much of what we need to do repeatedly to support developers • REST • API key w/ Digest Auth over HTTPS • API keys has RBAC - capabilities match the permissions assigned to the Key • API key whitelist https://docs.atlas.mongodb.com/api/
  • 9. MongoDB Atlas – Exploring the API - Resources Organization Projects {Group-ID} Clusters Project IP Whitelist Database Users Invoices Custom MDB Roles Global Cluster Configuration Alerts Alert Configurations Maintenance Window LDAP Configuration Continuous Backup Snapshots Continuous Backup Snapshots Schedule Continuous Backup Restore Job Cloud Provider & On Demand Snapshots Cloud Provider Snapshot Restore Job Cloud Provider Snapshot Bkup Policy Checkpoints VPC Programmatic API Keys Monitoring and Logs* Performance Advisor* Auditing Encryption at Rest Root Atlas Users Events Teams https://docs.atlas.mongodb.com/api/
  • 10. MongoDB Atlas –API Resources Reference Organization Projects {Group-ID} Clusters Project IP Whitelist Database Users Invoices Custom MDB Roles Global Cluster Configuration Alerts Alert Configurations Maintenance Window LDAP Configuration* Continuous Backup Snapshots Continuous Backup Snapshots Schedule Continuous Backup Restore Job Cloud Provider & On Demand Snapshots Cloud Provider Snapshot Restore Job Cloud Provider Snapshot Bkup Policy Checkpoints VPC Programmatic API Keys Monitoring and Logs^ Performance Advisor^ Auditing Encryption at Rest* Root Atlas Users Events CRU R ✓ ✓ ✓ ✓ ✓ ✓ RU R ✓ ✓ ✓ RU R R RUDRU CR R RU ✓ ✓ ✓ CRD CRD Teams ✓✓ https://docs.atlas.mongodb.com/api/
  • 11. MongoDB Atlas – Exploring the API Two key things to know the location of before you get started … • Project ID • Organization ID
  • 12. MongoDB Atlas – Exploring the API Organization ID
  • 13. MongoDB Atlas – Exploring the API Project ID (aka Group ID)
  • 14. MongoDB Atlas – Exploring the API Create a Programmatic API Key either at the Organization or Project level: • Org level: all the available permissions are for the org level. • Project level: all the available permissions are for the project level • BUT all project keys can be seen in the org level as an Org Member.
  • 15. MongoDB Atlas – Exploring the API @ Org level go to Access
  • 16. MongoDB Atlas – Exploring the API @ Project level go to Access Management
  • 17. Create a Cluster: --request POST "https://cloud.mongodb.com/api/atlas/v1.0/groups/5ce4d39d79358 e873fc12c1f/clusters?pretty=true" --data ' { "name" : "MDBW19-Class-Cluster2-API", "diskSizeGB" : 100, "autoScaling" : { "diskGBEnabled" : false }, "clusterType":"REPLICASET", "providerBackupEnabled" : true,
  • 18. Create a Cluster: "providerSettings" : { "providerName" : "AWS", "diskIOPS": 340, "instanceSizeName" : "M30", "volumeType" : "PROVISIONED” },
  • 19. Create a Cluster: "replicationSpecs" : [ { "numShards" : 1, "regionsConfig" : { "US_WEST_1" : { "analyticsNodes" : 1, "electableNodes" : 3, "readOnlyNodes" : 0, "priority" : 7},
  • 20. Create a Cluster: "US_EAST_1" : { "analyticsNodes" : 0, "readOnlyNodes" : 1, "electableNodes" : 2, "priority" : 6 } } }] }'
  • 21. Create a MongoDB Database User in the Project: -X POST "https://cloud.mongodb.com/api/atlas/v1.0/groups/5ce4d39d79358 e873fc12c1f/databaseUsers?pretty=true" --data ' { "databaseName" : "admin", "roles" : [ { "databaseName" : "admin", "roleName" : "readWriteAnyDatabase" } ], "username" : "spock2", "password" : "badpass123” }'
  • 22. Add an IP to the Project IP Whitelist: --request POST "https://cloud.mongodb.com/api/atlas/v1.0/groups/5ce4d39d79358 e873fc12c1f/whitelist?pretty=true" --data ' [ { "ipAddress" : "192.0.0.15", "comment" : "IP address added via API" } ]'
  • 23. Create a Quick Cluster via API
  • 24. MongoDB Atlas – Exploring the API API is great but… • Requires us to really know the API: e.g. updating via PATCH, or delete via DELETE, etc. • Going to possibly take a lot of time and money. • What if we could just describe what we want and change that when we need to modify it?
  • 25. Emergency Transmission Top Secret From: Starfleet Command To: Starfleet Engineering MongoDB Cluster needed STAT. Project Genesis is at risk. Deploy at once! Khan seen in sector. Red Alert recommended. . . . .
  • 27. HashiCorp’s Terraform Terraform is an open source, declarative Infrastructure as Code (IaC) tool. • Describe desired infrastructure in a configuration file • Terraform takes that file and creates a plan to implement it • One can review the plan, and if all good, apply to create • We can create, change and destroy infrastructure easily!
  • 28. HashiCorp’s Terraform We can change and destroy infrastructure easily??? • Terraform keeps a state file of what it has done • Change your configuration it only implements the diff • Can import a resource and then apply changes, e.g. import in a cluster and then set it to a bigger size. • Terraform destroy really destroys!
  • 29. HashiCorp’s Terraform Terraform is a plugin based system: Base diagram from hashicorp.com *.tf 1 2 3 4 5 *.tfstate The Provider understands both Terraform and the Upstream API Terraform Core doesn’t “know” any infrastructure, that’s the Plugins purpose. You simply need to define what you want in the .tf file, do not need to know the API deeply CRUD
  • 30. variable "mongodb_atlas_api_pub_key" { default = ”PUB-API-KEY"} variable "mongodb_atlas_api_pri_key" { default = ”PRI-API-KEY" } variable "database_username" { default = "spock3" } variable "database_user_password" { default = "blahblah1236" } variable "mongodb_atlas_whitelistip” { default = "192.155.1.1" } variable "mongodb_atlas_org_id" { default = "599eed269f78f769464d1bc3"} variable "mongodb_atlas_project_id" { default = "5ce4d39d79358e873fc12c1f" } Main.tf - Variables Keys and passwords !? Not a great practice and angers Admiral Kirk as Khan could steal these L But we’ll address this soon.
  • 31. # Configure the MongoDB Atlas Provider provider "mongodbatlas" { username = "${var.mongodb_atlas_api_pub_key}" api_key = "${var.mongodb_atlas_api_pri_key}" } Main.tf – Configure the Provider
  • 32. resource "mongodbatlas_cluster" "cluster" { name = "MDBW19-Class-Cluster3-TF" group = "${var.mongodb_atlas_project_id}" mongodb_major_version = "4.0" provider_name = "AWS" region = "" size = "M30" disk_size_gb = 100 backup = false provider_backup = true disk_gb_enabled = false replication_factor = 0 Missing? -Disk IOPS -Anything related to replicationSpecs - this uses the deprecated replicationSpec option. -numShards (but it has a default!) Main.tf - Cluster A few issues
  • 33. replication_spec { region = "US_WEST_1" priority = 7 read_only_nodes = 0 analytics_nodes = 1 electable_nodes = 3 } Main.tf – Cluster Continued replication_spec { region = "US_EAST_1" priority = 6 read_only_nodes = 1 analytics_nodes = 0 electable_nodes = 2 } }
  • 34. # Create a Database User resource "mongodbatlas_database_user" "test" { username = "${var.database_username}" password = "${var.database_user_password}" database = "admin" group = "${var.mongodb_atlas_project_id}" roles { name = "readWriteAnyDatabase" database = "admin" } } Main.tf – Database User
  • 35. # Create an IP Whitelist resource "mongodbatlas_ip_whitelist" "test" { group = "${var.mongodb_atlas_project_id}" ip_address = "${var.mongodb_atlas_whitelistip}” comment = "Added with Terraform" } Main.tf – IP Whitelist
  • 36. HashiCorp’s Terraform Let’s configure a cluster, MongoDB user and Project IP whitelist with Terraform • Providers can be verified/official (both Hashicorp & Community created) OR community created but not verified • MongoDB Atlas Community Provider created by Akshay Karle: https://github.com/akshaykarle/terraform-provider- mongodbatlas/ (Thank you Akshay!)
  • 37. Create a Quick Cluster via Terraform
  • 38. Cadets Save Day and Defeat Khan!
  • 39. Security of the Mission We have to ensure we handle data securely. Security layers we have utilized thus far: • API communication over HTTPS • RBAC to limit what the API key can do • IP Whitelist But the more secure layers the better so what else can we do?
  • 40. HashiCorp’s Vault • Manage secrets & protect sensitive data • Focus here - managing secrets, especially dynamic secrets • Secret Engine extends Vault to systems, e.g. physical like a HSM or a service in the Cloud like Atlas. Vault is another HashiCorp product designed for security in the Cloud:
  • 41. HashiCorp’s Vault • Database Secrets Engine: generate database credentials dynamically based on configured roles, including for MDB. • Atlas creates database users differently (via API) so need a Secrets Engine for that. • Ta da! There’s a community Secrets Engine at https://github.com/mealal/vault-atlas-plugin written by the amazing Alexey Menshikov, a Consulting Engineers @MDB!
  • 42. HashiCorp’s Vault • Atlas community Secrets Engine examples: $ vault write database/roles/readonly db_name=atlas creation_statements=‘{ "db": "admin", "roles": [{ "role": "readAnyDatabase" }] }' default_ttl="1h" max_ttl="24h" $ vault write database/config/atlas plugin_name=atlas allowed_roles="readonly" apiID="public API key" apiKey="private API key" groupID=”project id" $ vault read database/creds/readonly
  • 43. HashiCorp’s Vault • What about a Provider for Vault? Yes! https://www.terraform.io/docs/providers/vault/index.html • Read the cautions on using the Provider for Vault and follow the best practices to be as secure as possible!
  • 44. Cadets Save Day and Defeat Khan!
  • 46. MongoDB + Hashicorp – Better together! Later in 2019 MongoDB will have an official: Ø MongoDB Atlas Secrets Engine for Vault Ø MongoDB Atlas Terraform Provider
  • 47. Be the First in the Know! • Go to https://bit.ly/2WS4WMJ • Fill out the brief survey, 6 required q’s, 3 not! < 2m • You will be notified on the progress for which ever mission you are interested in (Vault/Terraform/both)
  • 48. Questions? Where: Atlas Booth in the Partner Pavilion (A1) When: 1:40 - 5:05 PM today! or Melissa.Plunkett@mongodb.com anytime! Github: themantissa
  • 49. Please provide Session Feedback 1. MDB World App -> Menu -> “Rate a Session” -> Regent OR 1. Go to slido.com 2. Enter event code #MDBW19 3. Click on Regent Feedback poll will remain open for 10 minutes after the talk ends YOU ARE IN REGENT