SlideShare uma empresa Scribd logo
1 de 82
Baixar para ler offline
ServiceDiscoveryandPuppet
byMarcCluet(@lynxman)
PuppetCampLondonAutumn2015
Welcome!
https://www.flickr.com/photos/tjt195/108543101/
Engineer based in London
Co-Founder of Ukon Cherry
Contractor at TrainLine
19 years of experience as a
SysAdmin
Founding member of Juju and
MAAS while at Canonical
Built a DevOps Engineering Team
at Rackspace
Been DevOps’in for the last 6 years
WhoamI?
LondonDevOpsMeetup
https://www.flickr.com/photos/eypeeet/9059983915/
https://www.flickr.com/photos/pontla/11879018534/
Cloud is hard!
• Old style DNS
• TTL is a b*tch
• Health Checks
• Metadata Storage
TheProblem
TheSolution!
https://www.flickr.com/photos/bisgovuk/9191500878/
Automatically define your services
• Active Health Checking
• Dynamically updated service lists
• Can be DNS accessible (if needed)
• API accessible (win!)
ServiceDiscovery
ServiceDiscovery
Service
Publication
Service
Node A
Service
Node B
Service
Node C
ServiceDiscovery
Service
Publication
Service
Node A
Service
Node B
Health Check Health Check
Discovery AgentDiscovery Agent
ServiceDiscovery
Service
Publication
Service
Node A
Service
Node B
Health Check Health Check
Discovery AgentDiscovery Agent
ServiceDiscovery
Service
Publication
Service
Node A
Service
Node B
Health Check Health Check
Discovery AgentDiscovery Agent
ServiceDiscovery
Service
Publication
Service
Node A
Service
Node B
Health Check Health Check
Discovery AgentDiscovery Agent
https://www.flickr.com/photos/neilmartin/31519343/
https://www.flickr.com/photos/neilmartin/31519343/
ServiceDiscovery
Service
Node A
Service
Node C
Service
Node B
Service: web
10.10.10.1
10.10.10.2
10.10.10.3
ServiceDiscovery
Service
Node A
Service
Node C
Service
Node B
Service: web
10.10.10.1
10.10.10.2
10.10.10.3
ServiceDiscovery
Service
Node A
Service
Node C
Service
Node B
Service: web
10.10.10.1
10.10.10.2
10.10.10.3
https://www.flickr.com/photos/neilmartin/31519343/
ServiceDiscoverySolutions
ServiceDiscoverySolutions
ServiceDiscoverySolutions
ServiceDiscoverySolutions
API + DNS publication
k/v Strongly Consistent
Host + Service checks
API publication
k/v Consistent
Container checks
API publication
Container checks
Auto-Heal
Puppet module
Hiera access
Puppet module
Hiera access
Puppet module
ServiceDiscoverySolutions
It's a Service Discovery System (duh!)
• Service Publications (DNS + API)
• k/v Storage (strongly consistent)
• Health Checks
• With encryption! (whaaaaaat)
WhatisConsul?
Strongly Consistent!
WhatisConsul?
Datacenter
Node
Service
Health Check
ConsulConcepts
ConsulArchitecture
Consul Server
A
Consul Server
B
Consul Server
C
ConsulArchitecture
Consul Server
A
Consul Agent
Consul Server
B
Consul Server
C
Consul AgentConsul AgentConsul AgentConsul AgentConsul AgentConsul AgentConsul AgentConsul Agent
ConsulArchitecture
Consul Server
A
Consul Agent
Consul Server
B
Consul Server
C
Consul AgentConsul AgentConsul AgentConsul AgentConsul AgentConsul AgentConsul AgentConsul Agent
Consul Servers
Another DC
Port 8600
Use dnsmasq:
server=/consul/127.0.0.1#8600
ConsulDNSpublisher
service name: web
zone: eu-west-1
<servicename>.service.<zone>.consul
web.service.eu-west-1.consul
ConsulDNSpublisher
API http://localhost:8500
/v1/catalog/
/v1/catalog/datacenters/
/v1/catalog/nodes/
/v1/catalog/services/<servicename>
/v1/catalog/service/<name>
/v1/catalog/node/<nodename>
ConsulDNSpublisher
{
"check": {
"id": "mem-util",
"name": "Memory utilization",
"script": "/usr/local/bin/check_mem.py",
"interval": "10s"
}
}
ConsulHealthChecks
ConsulHealthChecks
Server
ConsulHealthChecks
Server
Memory
Disk
CPU
Load
Logs
ConsulHealthChecks
Server
ServiceService
/v1/kv/
/v1/agent/
/v1/catalog/
/v1/health/
/v1/session/
/v1/acl/
/v1/status/
ConsulRESTfulAPI
/v1/kv/
/v1/agent/
/v1/catalog/
/v1/health/
/v1/session/
/v1/acl/
/v1/status/
ConsulRESTfulAPI
Puppets!!!
https://www.flickr.com/photos/tjt195/108543101/
https://github.com/lynxman/consul-first-steps
Youcanfollowthis
Puppet+Consul
You can integrate at several levels
• Puppet Module
• KyleAnderson-consul
• Hiera
• lynxman-hiera_consul
Puppet+Consul
You can integrate at several levels
• k/v access
• venmo-consulr
• Templates with Consul
• ghdbaston-consul_template
PuppetModule-Install
Puppet Forge makes it very easy to install
$ puppet module install KyleAnderson-consul
PuppetModule-DNS
$ puppet module install saz-dnsmasq
include dnsmasq
dnsmasq::conf { 'consul':
ensure => present,
content => 'server=/consul/127.0.0.1#8600',
}
PuppetModule-NodeChecks
consul::check { 'disk_space':
script => '/usr/lib/nagios/plugins/check_disk
-w 5% -c 1% -x /run/lock -x /run/shm -x /run/user -x
/dev -x /run -x /sys/fs/cgroup',
interval => '30s',
}
PuppetModule-ServiceChecks
consul::service { 'nginx':
port => '80',
checks => [
{
script => "/usr/lib/nagios/plugins/check_http -H localhost
-w 20 -c 60 -t 20",
interval => '30s',
},
],
}
PuppetHiera
Puppet
yaml
Hiera
consul
PuppetModule-Install
Puppet Forge makes it very easy to install
$ puppet module install lynxman-hiera_consul
PuppetHiera-Config
:backends:
- yaml
- consul
:yaml:
:datadir: /etc/puppet/hieradata
:consul:
:host: 127.0.0.1
:port: 8500
:failure: graceful
:paths:
- /v1/catalog/service
- /v1/catalog/node
PuppetHiera-Config
:consul:
:host: 127.0.0.1
:port: 8500
:failure: graceful
:paths:
- /v1/catalog/service
- /v1/catalog/node
PuppetHiera-Arrays
notice('Generating rabbitmq cluster members
based on Consul information')
$consul_service_array = hiera('rabbitmq',[])
$mq_cluster_nodes =
consul_info($consul_service_array, 'Address')
notice("Result: ${mq_cluster_nodes}")
PuppetHiera-Arrays
notice("Generating neo4j_ha cluster members based on
Consul information")
$consul_service_array = hiera('neo4j_ha',[])
$consul_fields = [ 'Address', 'ServicePort' ]
$consul_ha_initial_hosts =
consul_info($consul_service_array, $consul_fields, ':')
$ha_initial_hosts = join($consul_ha_initial_hosts, ',')
notice("Result: ${ha_initial_hosts}")
PuppetHiera-k/vaccess
Long live to the API!
:consul:
:host: 127.0.0.1
:port: 8500
:failure: graceful
:paths:
- /v1/kv/
PuppetHiera-k/vaccess
Long live to the API!
:consul:
:host: 127.0.0.1
:port: 8500
:failure: graceful
:paths:
- /v1/kv/web/
PuppetHiera-k/vaccess
Long live to the API!
:consul:
:host: 127.0.0.1
:port: 8500
:failure: graceful
:paths:
- "/v1/kv/%{env}/"
PuppetHiera
Puppet
yaml
Hiera
consul
Security
https://www.flickr.com/photos/wiredforsound23/5436792923/
PuppetSecurity
PuppetSecurity
git commit -m "All my passwords"
git push
https://www.flickr.com/photos/mach5/183670686/
https://www.flickr.com/photos/mach5/183670686/
https://www.flickr.com/photos/lockergnome/262487854/
PuppetSecurity
hiera-eyaml
hiera-gpg
PuppetHiera
Puppet
yaml
Hiera
eyaml
consul
Hieraeyaml
gem install hiera-eyaml
Hieraeyaml
$ eyaml createkeys
keys/public_key.pkcs7.pem
keys/private_key.pkcs7.pem
Hieraeyaml
Usage: eyaml <subcommand>
Please use one of the following
subcommands or help for more help:
createkeys, decrypt, edit, encrypt,
recrypt, version
Hieraeyaml
mysecret: DEC::PKCS7[mypassword]!
Hieraeyaml
mysecret:
ENC[PKCS7,MIIBmQYJKoZIhvcNAQcDoIIBijCCAYYCAQAxggEhMII
BHQIBADAFMAACAQEwDQYJKoZIhvcNAQEBBQAEggEAAikKizydVh0w
XQrvtoMC7vM9NxfksqwOX2jtajDYMMJwXXP/5zKHjnnGmr
+LSXFVkL52FuGentCdityjF0zZEvbZ2D95TWnRTinO9htteC8Ziwq
pTeuNJkTJikOEEZvHbNlp6eX381ppKoatV1k0EmIHwsnqeRJN5T9T
VScoXOb/
1Fre4H7TxSvvaFqo02MWUBaKkWECoEu2PLiuXWEoiLrkDq8pxhjYA
DvGUJLWC8PUSWT/94075z5UKHYBQgLlFrzG+89Rhm5keTy/
cuHsOK9d0nUScjd4m6duCEsvRT5SG/n6GwTEk/
cDMqIuvAwNETv2fdepu4z5nR383zlngDBcBgkqhkiG9w0BBwEwHQY
JYIZIAWUDBAEqBBAJCDkds8PbXeBUMZhFPxWTgDDH1pvUCbCLtWDN
VFkW2yZ1NYF06RuqsSTxofHfMwajC+BSPcTu7heMKQnbKP/KE6o=]
https://www.flickr.com/photos/rolandslakis/112038134/
https://www.flickr.com/photos/theeerin/2506959766/
EXTRATIME!
https://www.flickr.com/photos/nathaninsandiego/5134124956/
Vault$ vault write secret/foo value=bar
Success! Data written to: secret/foo
$ vault read secret/foo
Key Value
lease_id secret/foo/9c5f3cf1-1239-0160-4311-d6544fd1018c
lease_duration 2592000
value bar
$ vault delete secret/foo
Success! Deleted 'secret/foo'
Vault
$ vault read postgresql/creds/production
Key Value
lease_id postgresql/creds/production/8ade2cde-5081-
e3b7-af1a-3b9fb070df66
lease_duration 3600
password 56b43bc3-b285-4803-abdf-662d6a105bd0
username vault-root-1430141210-1847
https://www.flickr.com/photos/neilmartin/31519343/
Questions?
Follow me!
@lynxman

Mais conteúdo relacionado

Mais procurados

Using React with Grails 3
Using React with Grails 3Using React with Grails 3
Using React with Grails 3
Zachary Klein
 
Service Worker Presentation
Service Worker PresentationService Worker Presentation
Service Worker Presentation
Kyle Dorman
 

Mais procurados (20)

Getting started with Apache Camel - May 2013
Getting started with Apache Camel - May 2013Getting started with Apache Camel - May 2013
Getting started with Apache Camel - May 2013
 
Spring Boot 1.3 News #渋谷Java
Spring Boot 1.3 News #渋谷JavaSpring Boot 1.3 News #渋谷Java
Spring Boot 1.3 News #渋谷Java
 
Real World Lessons in Progressive Web Application & Service Worker Caching
Real World Lessons in Progressive Web Application & Service Worker CachingReal World Lessons in Progressive Web Application & Service Worker Caching
Real World Lessons in Progressive Web Application & Service Worker Caching
 
Carrying Enterprise on a Little Camel
Carrying Enterprise on a Little CamelCarrying Enterprise on a Little Camel
Carrying Enterprise on a Little Camel
 
No callbacks, No Threads - Cooperative web servers in Ruby 1.9
No callbacks, No Threads - Cooperative web servers in Ruby 1.9No callbacks, No Threads - Cooperative web servers in Ruby 1.9
No callbacks, No Threads - Cooperative web servers in Ruby 1.9
 
Secure my ng-app
Secure my ng-appSecure my ng-app
Secure my ng-app
 
Using React with Grails 3
Using React with Grails 3Using React with Grails 3
Using React with Grails 3
 
BOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyoBOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyo
 
Developing OpenResty Framework
Developing OpenResty FrameworkDeveloping OpenResty Framework
Developing OpenResty Framework
 
Apache Sling - The whys and the hows
Apache Sling - The whys and the howsApache Sling - The whys and the hows
Apache Sling - The whys and the hows
 
PWA 與 Service Worker
PWA 與 Service WorkerPWA 與 Service Worker
PWA 與 Service Worker
 
Choosing a Javascript Framework
Choosing a Javascript FrameworkChoosing a Javascript Framework
Choosing a Javascript Framework
 
Service workers
Service workersService workers
Service workers
 
JQuery UK February 2015: Service Workers On Vacay
JQuery UK February 2015: Service Workers On VacayJQuery UK February 2015: Service Workers On Vacay
JQuery UK February 2015: Service Workers On Vacay
 
JQuery UK Service Workers Talk
JQuery UK Service Workers TalkJQuery UK Service Workers Talk
JQuery UK Service Workers Talk
 
Consuming ASP.NET Web API with WebSockets
Consuming ASP.NET Web API with WebSocketsConsuming ASP.NET Web API with WebSockets
Consuming ASP.NET Web API with WebSockets
 
Service Worker Presentation
Service Worker PresentationService Worker Presentation
Service Worker Presentation
 
The Last Mile
The Last MileThe Last Mile
The Last Mile
 
Serverless Java on Kubernetes
Serverless Java on KubernetesServerless Java on Kubernetes
Serverless Java on Kubernetes
 
PWA Roadshow Seoul - HTTPS
PWA Roadshow Seoul - HTTPSPWA Roadshow Seoul - HTTPS
PWA Roadshow Seoul - HTTPS
 

Semelhante a Puppet Camp London Fall 2015 - Service Discovery and Puppet

Semelhante a Puppet Camp London Fall 2015 - Service Discovery and Puppet (20)

Service discovery and puppet
Service discovery and puppetService discovery and puppet
Service discovery and puppet
 
PuppetConf 2016: Service Discovery and Puppet – Marc Cluet, Ukon Cherry
PuppetConf 2016: Service Discovery and Puppet – Marc Cluet, Ukon CherryPuppetConf 2016: Service Discovery and Puppet – Marc Cluet, Ukon Cherry
PuppetConf 2016: Service Discovery and Puppet – Marc Cluet, Ukon Cherry
 
Containerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconfContainerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconf
 
Consul First Steps
Consul First StepsConsul First Steps
Consul First Steps
 
New Tools and Interfaces for Managing IBM MQ
New Tools and Interfaces for Managing IBM MQNew Tools and Interfaces for Managing IBM MQ
New Tools and Interfaces for Managing IBM MQ
 
GE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoTGE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoT
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
OSGi Remote Services - Alexander Broekhuis, Bram de Kruijff
OSGi Remote Services - Alexander Broekhuis, Bram de Kruijff OSGi Remote Services - Alexander Broekhuis, Bram de Kruijff
OSGi Remote Services - Alexander Broekhuis, Bram de Kruijff
 
Easy Cloud Native Transformation using HashiCorp Nomad
Easy Cloud Native Transformation using HashiCorp NomadEasy Cloud Native Transformation using HashiCorp Nomad
Easy Cloud Native Transformation using HashiCorp Nomad
 
Advanced technic for OS upgrading in 3 minutes
Advanced technic for OS upgrading in 3 minutesAdvanced technic for OS upgrading in 3 minutes
Advanced technic for OS upgrading in 3 minutes
 
Manage your switches like servers
Manage your switches like serversManage your switches like servers
Manage your switches like servers
 
Warsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime FabricWarsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime Fabric
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 Minutes
 
How we scale DroneCi on demand
How we scale DroneCi on demandHow we scale DroneCi on demand
How we scale DroneCi on demand
 
Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news   Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news
 
Concource CI/CD
Concource CI/CDConcource CI/CD
Concource CI/CD
 
How to Train Your Docker Cloud
How to Train Your Docker CloudHow to Train Your Docker Cloud
How to Train Your Docker Cloud
 
PaaSTA: Autoscaling at Yelp
PaaSTA: Autoscaling at YelpPaaSTA: Autoscaling at Yelp
PaaSTA: Autoscaling at Yelp
 
Docker Monitoring Webinar
Docker Monitoring  WebinarDocker Monitoring  Webinar
Docker Monitoring Webinar
 
Clocker - How to Train your Docker Cloud
Clocker - How to Train your Docker CloudClocker - How to Train your Docker Cloud
Clocker - How to Train your Docker Cloud
 

Mais de Marc Cluet

How to implement microservices
How to implement microservicesHow to implement microservices
How to implement microservices
Marc Cluet
 
Rackspace Hack Night - Vagrant & Packer
Rackspace Hack Night - Vagrant & PackerRackspace Hack Night - Vagrant & Packer
Rackspace Hack Night - Vagrant & Packer
Marc Cluet
 

Mais de Marc Cluet (18)

Your Kernel and You
Your Kernel and YouYour Kernel and You
Your Kernel and You
 
Managing DevOps teams, staying alive
Managing DevOps teams, staying aliveManaging DevOps teams, staying alive
Managing DevOps teams, staying alive
 
The DevOps journey - How to get there painlessly
The DevOps journey - How to get there painlesslyThe DevOps journey - How to get there painlessly
The DevOps journey - How to get there painlessly
 
Elastic Beanstalk, usos prácticos y conceptos
Elastic Beanstalk, usos prácticos y conceptosElastic Beanstalk, usos prácticos y conceptos
Elastic Beanstalk, usos prácticos y conceptos
 
Microservices and the Cloud - DevOps Cardiff Meetup
Microservices and the Cloud - DevOps Cardiff MeetupMicroservices and the Cloud - DevOps Cardiff Meetup
Microservices and the Cloud - DevOps Cardiff Meetup
 
Microservices and the Cloud
Microservices and the CloudMicroservices and the Cloud
Microservices and the Cloud
 
How to implement microservices
How to implement microservicesHow to implement microservices
How to implement microservices
 
A Metadata Ocean in Chef and Puppet
A Metadata Ocean in Chef and PuppetA Metadata Ocean in Chef and Puppet
A Metadata Ocean in Chef and Puppet
 
Autoscaling Best Practices
Autoscaling Best PracticesAutoscaling Best Practices
Autoscaling Best Practices
 
Rackspace Hack Night - Vagrant & Packer
Rackspace Hack Night - Vagrant & PackerRackspace Hack Night - Vagrant & Packer
Rackspace Hack Night - Vagrant & Packer
 
Innovation in the Cloud - Rackspace Zurich Event
Innovation in the Cloud - Rackspace Zurich EventInnovation in the Cloud - Rackspace Zurich Event
Innovation in the Cloud - Rackspace Zurich Event
 
Introduction to DevOps - Rackspace tech night
Introduction to DevOps - Rackspace tech nightIntroduction to DevOps - Rackspace tech night
Introduction to DevOps - Rackspace tech night
 
Hadoop operations
Hadoop operationsHadoop operations
Hadoop operations
 
Introduction to hadoop
Introduction to hadoopIntroduction to hadoop
Introduction to hadoop
 
Ssh that wonderful thing
Ssh that wonderful thingSsh that wonderful thing
Ssh that wonderful thing
 
Networking & dns 101
Networking & dns 101Networking & dns 101
Networking & dns 101
 
Juju + Puppet (Puppetconf 2011)
Juju + Puppet (Puppetconf 2011)Juju + Puppet (Puppetconf 2011)
Juju + Puppet (Puppetconf 2011)
 
Scalable, good, cheap
Scalable, good, cheapScalable, good, cheap
Scalable, good, cheap
 

Último

Último (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Puppet Camp London Fall 2015 - Service Discovery and Puppet