SlideShare a Scribd company logo
1 of 177
Download to read offline
Burn Down
 The Silos
  Lindsay Holmwood
DevOps
Case study
Applying with technology
High pro!le
fundraising website
Strong siloisation
Devs + Ops in di"erent companies
100% uptime
3 Concepts
Consistency
Repeatability
Visibility
Consistency
ensuring
 identical
behaviour
within an
environment
or across multiple
  environments
con!guration
management
testing
Puppet
   language
    library
 client/server
package { "apache2":
  ensure => installed
}

service { "apache2":
  enable => true,
  ensure => running
}
class apache2 {
    package { "apache2":
      ensure => installed
    }

    service { "apache2":
      enable => true,
      ensure => running
    }
}
Puppet work#ow
 write   apply   debug
class apache2 {
    package { "apache2":
      ensure => installed
    }

    service { "apache2":
      enable => true,
      ensure => running
    }
}
class apache2 {
    package { "apache2":
      ensure => installed
    }

    service { "apache2":
      enable => true,
      ensure => running,
      require => [ Package["apache2"] ]
    }
}
Complex manifests
Proprietary software
Lots of debugging
VMware snapshots
Multiple
deploy environments
Con!guration drift
“roles”
define app_server($collectd_destination, $logging_destination) {
 server { $fqdn:
    logging_destination => $logging_destination
  }
  include apache2
  include mysql::client
  collectd::client { $fqdn:
    collection_destination => $collectd_destination
  }


    if $environment == "production" {
      include production::only::module
    }
}
node "app-01.stage.charity.com" {
  app_server { $fqdn:
    collectd_destination => "stats-01.stage.charity.com",
    logging_destination => "log-01.stage.charity.com"
  }
}

node "app-01.production.charity.com" {
  app_server { $fqdn:
    collectd_destination => "stats-01.production.charity.com",
    logging_destination => "log-01.production.charity.com"
  }
}
node /app-d+.stage.charity.com/ {
  app_server { $fqdn:
    collectd_destination => "stats-01.stage.charity.com",
    logging_destination => "log-01.stage.charity.com"
  }
}

node /app-d+.production.charity.com/ {
  app_server { $fqdn:
    collectd_destination => "stats-01.production.charity.com",
    logging_destination => "log-01.production.charity.com"
  }
}
30 minute builds
Consistency
Repeatability
Function of
consistency
automate,
 to remove
human error
increase speed
 by shortening
feedback loops
automated
deployments
con!guration
management
Capistrano
Ruby DSL around
SSH-in-a-for-loop
Simple, powerful,
can blow your legs o"
Not a substitute for
  con!guration
  management
railsless-deploy
   http://bit.ly/i56ra9
Removes Rails-ism
Great for PHP
capistrano-multistage
     (part of capistrano-ext)
          http://bit.ly/i2moIp
# config/deploy.rb

set   :user, "deploy"
set   :application, "charity.com"
set   :keep_releases, 10
set   :deploy_to, "/srv/#{application}"

set :stages, %w(uat staging production)
# config/deploy/stage.rb

role :app,    "app-01.stage.charity.com",
              "app-02.stage.charity.com"
role :static, "static-01.stage.charity.com”
# config/deploy/production.rb

role :app,    "app-01.prod.charity.com",
              "app-02.prod.charity.com",
              "app-03.prod.charity.com"
role :static, "static-01.prod.charity.com”
cap staging deploy    # deploy to staging
# test
cap production deploy # deploy to production
Capistrano
bootstrap w/ Puppet
class capistrano::user {

    group { "deploy":
      gid => 499
    }

    user { "deploy":
      uid => 499,
      gid => 499,
      home => "/home/deploy",
      shell => "/bin/bash",
      require => Group["deploy"]
    }

    file { "/home/deploy/.ssh/authorized_keys":
      source => "puppet:///modules/capistrano/authorized_keys",
      mode   => 644,
      owner => "deploy",
      group => "deploy",
      require => [ User["deploy"] ]
    }

}
define capistrano::site {

  include capistrano::user

  file { "/srv/$name":
    ensure => directory,
    owner   => deploy,
    group   => deploy,
    require => [ User["deploy"] ]
  }

  file { "/srv/$name/releases":
    ensure => directory,
    owner   => deploy,
    group   => deploy,
    require => [ File["/srv/$name"] ]
  }

...
...

    file { "/srv/$name/shared/log":
      ensure => directory,
      owner => www-data,
      group => www-data,
    }

    file { "/etc/$name":
      source => "puppet:///modules/capistrano/etc/$name",
      recurse => true,
      mode    => "644",
      owner   => root,
      group   => root
    }

}
define app_server($collectd_destination, $logging_destination) {

    include apache2
    include mysql::client
    capistrano::site { “charity.com”: }

}
Deploying to a new
app server is as easy as:
# config/deploy/production.rb

role :app,    "app-01.prod.charity.com",
              "app-02.prod.charity.com",
              "app-03.prod.charity.com"
role :static, "static-01.prod.charity.com”
# config/deploy/production.rb

role :app,    "app-01.prod.charity.com",
              "app-02.prod.charity.com",
              "app-03.prod.charity.com",
              "app-04.prod.charity.com"
role :static, "static-01.prod.charity.com”
or...
# deploy/production.rb

role :app,    "app-01.prod.charity.com",
              "app-02.prod.charity.com",
              "app-03.prod.charity.com",
              "app-04.prod.charity.com"
role :static, "static-01.prod.charity.com”
# deploy/production.rb

role :app, *(1..4).map do |n|
  "app-%.2d.prod.charity.com" % n
end

role :static, "static-01.prod.charity.com”
git-svn mirror
182MB * 20 == PAIN
remote_cache
bad with svn tags
git-svn + cron
fast clones
 commit access
21st century tech
Repeatability
Visibility
one eye on the
     past
one eye on the
    future
metric collection
code changes
monitoring
reports
metric collection
collectd
lightweight
  statistics
 collection
  daemon
platform for
   collecting
time series data
plugin based
network aware
well de!ned APIs
curl_json
<Plugin curl_json>
 <URL "http://localhost:5984/_stats">
   Instance "httpd"
   <Key "httpd/requests/count">
     Type "http_requests"
   </Key>

    <Key "httpd_status_codes/*/count">
      Type "http_response_codes"
    </Key>
  </URL>
</Plugin>
/metrics
code changes
application
       &

con!g management
Your new best friend
monitoring
sudo mmm_control show                   # blocks under high IO
echo -en “shownquitn” | nc 127.1 9988 # instant
sudo mmm_control show                   # blocks under high IO
echo -en “shownquitn” | nc 127.1 9988 # instant



socket = ::TCPSocket.new("127.0.0.1", 9988)
socket.print("shownquitn")
output = socket.read.split("n")
hosts = output.map do |line|
  parts = line.scan(/nasty regex/).flatten

  { "hostname"            =>   parts[0],
    "address"             =>   parts[1],
    "mode"                =>   parts[2],
    "state"               =>   parts[3],
    "role"                =>   parts[5],
    "role_address"        =>   parts[6] }
end
reports
mk-query-digest
      &

   logrotate
# prerotate

SLOWLOG_FILENAME="/var/log/mysql/mysql-slow.log"
OPTIONS="--report --group-by distill --order-by Query_time:max
--timeline --report-format query_report,profile"
DATE="$(date +%Y-%m-%dT%H:%M:%S%z)"
REPORT_FILENAME="/tmp/$(hostname)-mysql-slow-query-report-$DATE"
mk-query-digest $SLOWLOG_FILENAME $OPTIONS > $REPORT_FILENAME

SUBJECT="MySQL Slow Queries Report for $(hostname) as of $DATE"
RECIPIENTS="developers@charity.com,ops@bulletproof.net"
cat $REPORT_FILENAME | nail -n -E -s "$SUBJECT" "$RECIPIENTS"
Retrospectives
Slave explosion
Background:
Background:
MySQL replication
Background:
MySQL replication
MMM
Background:
MySQL replication
MMM
2 masters + 4 slaves
REPLICATION_FAIL
     on one slave
Down to 3 nodes
Increased cluster load
REPLICATION_DELAY
     on another slave
Down to 2 nodes
Inspection
of REPLICATION_DELAY slave
Swapping like mad
Half the memory allocated
Shutdown,
 upgrade,
   boot
Visibility
metric collection
Consistency
Database connectivity
Soft launch
PHP connection errors
Con!g parses + loads
Add con!g dump url
Visibility
curl_json
Redeploy
...
Typo
2 reviewers
of con!g management
both in ops team
Visibility
code changes
Your new best friend
reviewer diversity
devs should have visibility of ops changes
Data consistency
New release
Database migrations
Release promotion
uat

  stage

production
uat !

  stage

production
uat !

  stage !

production
uat !

  stage !

production "
uat !

  stage !

production "
CREATE TABLE foo
           should have been


CREATE TABLE IF NOT EXIST foo
Consistency
uat

  stage

production
uat

  stage

production
uat

  stage

production
Repeatability
Consistency
ensuring
 identical
behaviour
within an
environment
or across multiple
  environments
Repeatability
Function of
consistency
automate,
 to remove
human error
increase speed
 by shortening
feedback loops
Visibility
one eye on the
     past
one eye on the
    future
Communicate!
Thank you!
Credits:
http://www.#ickr.com/photos/48722974@N07/4682302824/     http://www.#ickr.com/photos/lyza/4144764381/
http://www.#ickr.com/photos/acediscovery/3030548744/     http://www.#ickr.com/photos/matchew/424026531/
http://www.#ickr.com/photos/andrew_wertheimer/5268407700/ http://www.#ickr.com/photos/mrwoodnz/4289893182/
http://www.#ickr.com/photos/azrasta/4528604334/          http://www.#ickr.com/photos/myprofe/4396178084/
http://www.#ickr.com/photos/boliston/2351083198/         http://www.#ickr.com/photos/nnova/4834954885/
http://www.#ickr.com/photos/brianwestcott/1497708345/    http://www.#ickr.com/photos/pjern/2150874047/
http://www.#ickr.com/photos/brunogirin/73014722/         http://www.#ickr.com/photos/rubodewig/5161937181/
http://www.#ickr.com/photos/eole/4500783172/             http://www.#ickr.com/photos/rutty/460520720/
http://www.#ickr.com/photos/jacockshaw/1811056252/       http://www.#ickr.com/photos/sarah_lincoln/4740037328/
http://www.#ickr.com/photos/jenny-pics/2719309611/       http://www.#ickr.com/photos/shindotv/3835365695/
http://www.#ickr.com/photos/ldsykora/2414497811/         http://www.#ickr.com/photos/thalamus/306881919/
http://www.#ickr.com/photos/listed_crime/1342164481/     http://www.#ickr.com/photos/traviscrawford/323366600/
http://www.#ickr.com/photos/localsurfer/369116556/       http://www.#ickr.com/photos/webtreatsetc/5303216304/

More Related Content

What's hot

Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Acquia
 
Node js introduction
Node js introductionNode js introduction
Node js introduction
Alex Su
 

What's hot (20)

Play!ng with scala
Play!ng with scalaPlay!ng with scala
Play!ng with scala
 
Redis for your boss 2.0
Redis for your boss 2.0Redis for your boss 2.0
Redis for your boss 2.0
 
Automated Java Deployments With Rpm
Automated Java Deployments With RpmAutomated Java Deployments With Rpm
Automated Java Deployments With Rpm
 
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
 
Deep Dive: AWS Command Line Interface
Deep Dive: AWS Command Line InterfaceDeep Dive: AWS Command Line Interface
Deep Dive: AWS Command Line Interface
 
Redis for your boss
Redis for your bossRedis for your boss
Redis for your boss
 
Masterclass Advanced Usage of the AWS CLI
Masterclass Advanced Usage of the AWS CLIMasterclass Advanced Usage of the AWS CLI
Masterclass Advanced Usage of the AWS CLI
 
CodeIgniter 3.0
CodeIgniter 3.0CodeIgniter 3.0
CodeIgniter 3.0
 
Terraform 0.9 + good practices
Terraform 0.9 + good practicesTerraform 0.9 + good practices
Terraform 0.9 + good practices
 
Chef 0.8, Knife and Amazon EC2
Chef 0.8, Knife and Amazon EC2Chef 0.8, Knife and Amazon EC2
Chef 0.8, Knife and Amazon EC2
 
A Little Backbone For Your App
A Little Backbone For Your AppA Little Backbone For Your App
A Little Backbone For Your App
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and Python
 
FreeBSD: Dev to Prod
FreeBSD: Dev to ProdFreeBSD: Dev to Prod
FreeBSD: Dev to Prod
 
Getting Started with Ansible
Getting Started with AnsibleGetting Started with Ansible
Getting Started with Ansible
 
Node js introduction
Node js introductionNode js introduction
Node js introduction
 
Observability with Consul Connect
Observability with Consul ConnectObservability with Consul Connect
Observability with Consul Connect
 
Ansible inside
Ansible insideAnsible inside
Ansible inside
 
Advanced symfony Techniques
Advanced symfony TechniquesAdvanced symfony Techniques
Advanced symfony Techniques
 
Forget the Web
Forget the WebForget the Web
Forget the Web
 
Terraform Introduction
Terraform IntroductionTerraform Introduction
Terraform Introduction
 

Viewers also liked

Cultureel Project Cultuurrestaurant
Cultureel Project CultuurrestaurantCultureel Project Cultuurrestaurant
Cultureel Project Cultuurrestaurant
culturelestudies
 
2013 05-17-cagliari-rt4 come-usare_social_cigagna
2013 05-17-cagliari-rt4 come-usare_social_cigagna2013 05-17-cagliari-rt4 come-usare_social_cigagna
2013 05-17-cagliari-rt4 come-usare_social_cigagna
Jservice
 

Viewers also liked (13)

Git for Subversion Users (phpDay 2011)
Git for Subversion Users (phpDay 2011)Git for Subversion Users (phpDay 2011)
Git for Subversion Users (phpDay 2011)
 
Controle de Versão GIT
Controle de Versão GITControle de Versão GIT
Controle de Versão GIT
 
Ppt presentatie 20_mei
Ppt presentatie 20_meiPpt presentatie 20_mei
Ppt presentatie 20_mei
 
Safe Ways to Teach about Transgression
Safe Ways to Teach about TransgressionSafe Ways to Teach about Transgression
Safe Ways to Teach about Transgression
 
Leadership 2.0 FAPAC May 12, 2009
Leadership 2.0 FAPAC May 12, 2009Leadership 2.0 FAPAC May 12, 2009
Leadership 2.0 FAPAC May 12, 2009
 
Cultureel Project Cultuurrestaurant
Cultureel Project CultuurrestaurantCultureel Project Cultuurrestaurant
Cultureel Project Cultuurrestaurant
 
TEDxBerlin: Net-work: Why the Future of Passionate Work Needs Your Relations...
TEDxBerlin: Net-work:  Why the Future of Passionate Work Needs Your Relations...TEDxBerlin: Net-work:  Why the Future of Passionate Work Needs Your Relations...
TEDxBerlin: Net-work: Why the Future of Passionate Work Needs Your Relations...
 
RememberTheName WebMonday Zürich
RememberTheName WebMonday ZürichRememberTheName WebMonday Zürich
RememberTheName WebMonday Zürich
 
2013 05-17-cagliari-rt4 come-usare_social_cigagna
2013 05-17-cagliari-rt4 come-usare_social_cigagna2013 05-17-cagliari-rt4 come-usare_social_cigagna
2013 05-17-cagliari-rt4 come-usare_social_cigagna
 
Data Governance - An Implementation Reality Check
Data Governance - An Implementation Reality CheckData Governance - An Implementation Reality Check
Data Governance - An Implementation Reality Check
 
Getting started with git svn
Getting started with git svnGetting started with git svn
Getting started with git svn
 
Effective Git
Effective GitEffective Git
Effective Git
 
Using Subversion and Git Together
Using Subversion and Git TogetherUsing Subversion and Git Together
Using Subversion and Git Together
 

Similar to Burn down the silos! Helping dev and ops gel on high availability websites

Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshare
tomcopeland
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Carlos Sanchez
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012
Carlos Sanchez
 
Web applications with Catalyst
Web applications with CatalystWeb applications with Catalyst
Web applications with Catalyst
svilen.ivanov
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applications
Tom Croucher
 
Curscatalyst
CurscatalystCurscatalyst
Curscatalyst
Kar Juan
 
Perl web frameworks
Perl web frameworksPerl web frameworks
Perl web frameworks
diego_k
 

Similar to Burn down the silos! Helping dev and ops gel on high availability websites (20)

Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
 
Infrastructure-as-code: bridging the gap between Devs and Ops
Infrastructure-as-code: bridging the gap between Devs and OpsInfrastructure-as-code: bridging the gap between Devs and Ops
Infrastructure-as-code: bridging the gap between Devs and Ops
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshare
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
 
Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013
Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013
Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012
 
Web applications with Catalyst
Web applications with CatalystWeb applications with Catalyst
Web applications with Catalyst
 
Play vs Rails
Play vs RailsPlay vs Rails
Play vs Rails
 
Practical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails AppPractical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails App
 
Write php deploy everywhere tek11
Write php deploy everywhere   tek11Write php deploy everywhere   tek11
Write php deploy everywhere tek11
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next Frontier
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php Presentation
 
Cooking with Chef
Cooking with ChefCooking with Chef
Cooking with Chef
 
ELK: a log management framework
ELK: a log management frameworkELK: a log management framework
ELK: a log management framework
 
infra-as-code
infra-as-codeinfra-as-code
infra-as-code
 
Write php deploy everywhere
Write php deploy everywhereWrite php deploy everywhere
Write php deploy everywhere
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applications
 
Curscatalyst
CurscatalystCurscatalyst
Curscatalyst
 
Perl web frameworks
Perl web frameworksPerl web frameworks
Perl web frameworks
 
Terraform at Scale
Terraform at ScaleTerraform at Scale
Terraform at Scale
 

More from Lindsay Holmwood

Behaviour driven infrastructure
Behaviour driven infrastructureBehaviour driven infrastructure
Behaviour driven infrastructure
Lindsay Holmwood
 
Your own (little) gem: building an online business with Ruby
Your own (little) gem: building an online business with RubyYour own (little) gem: building an online business with Ruby
Your own (little) gem: building an online business with Ruby
Lindsay Holmwood
 

More from Lindsay Holmwood (12)

Escalating complexity: DevOps learnings from Air France 447
Escalating complexity: DevOps learnings from Air France 447Escalating complexity: DevOps learnings from Air France 447
Escalating complexity: DevOps learnings from Air France 447
 
AA261: DevOps lessons in collaborative maintenance
AA261: DevOps lessons in collaborative maintenanceAA261: DevOps lessons in collaborative maintenance
AA261: DevOps lessons in collaborative maintenance
 
Islands: Puppet at Bulletproof Networks
Islands: Puppet at Bulletproof NetworksIslands: Puppet at Bulletproof Networks
Islands: Puppet at Bulletproof Networks
 
Load testing with Blitz
Load testing with BlitzLoad testing with Blitz
Load testing with Blitz
 
Latency: The Silent Monitoring System Killer
Latency: The Silent Monitoring System KillerLatency: The Silent Monitoring System Killer
Latency: The Silent Monitoring System Killer
 
Rump - making Puppetmaster-less Puppet meaty
Rump - making Puppetmaster-less Puppet meatyRump - making Puppetmaster-less Puppet meaty
Rump - making Puppetmaster-less Puppet meaty
 
Behaviour driven infrastructure
Behaviour driven infrastructureBehaviour driven infrastructure
Behaviour driven infrastructure
 
Behaviour Driven Monitoring with cucumber-nagios
Behaviour Driven Monitoring with cucumber-nagiosBehaviour Driven Monitoring with cucumber-nagios
Behaviour Driven Monitoring with cucumber-nagios
 
Flapjack: rethinking monitoring for the cloud
Flapjack: rethinking monitoring for the cloudFlapjack: rethinking monitoring for the cloud
Flapjack: rethinking monitoring for the cloud
 
Monitoring web application behaviour with cucumber-nagios
Monitoring web application behaviour with cucumber-nagiosMonitoring web application behaviour with cucumber-nagios
Monitoring web application behaviour with cucumber-nagios
 
Your own (little) gem: building an online business with Ruby
Your own (little) gem: building an online business with RubyYour own (little) gem: building an online business with Ruby
Your own (little) gem: building an online business with Ruby
 
Deploying Merb
Deploying MerbDeploying Merb
Deploying Merb
 

Recently uploaded

Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
Muhammad Subhan
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 

Recently uploaded (20)

Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 

Burn down the silos! Helping dev and ops gel on high availability websites