SlideShare ist ein Scribd-Unternehmen logo
1 von 103
Downloaden Sie, um offline zu lesen
Dev Ops:
the next generation
Warning!
meme and star trek heavy
Who is this TREKKIE
Barney Hanlon
Technical Team Leader for Inviqa
@shrikeh
We’re hiring!
Dev ops
The story so far
(Yes I know that’s Star Wars)
Sysadmins

Developers

DevOps
“Get the code on the server”
FTP

CVS

Subversion

Git
What about all this
OTHER stuff?
•

Setting up Virtual hosts

•

User management

•

SSH access

•

File permissions

•

Log rotation

•

Firewall rules

•

Staging servers

•

Patching

•

Build pipelines

•

Concurrency

•

SSL certificates

•

Failover

•

Minification

•

Alerting
Developers need to know
more than how to push to
Github.
FIVE STAR DevOps
The Five Stars of DevOps
The Five Stars of DevOps
•

Monitoring
The Five Stars of DevOps
•

Monitoring

•

Security
The Five Stars of DevOps
•

Monitoring

•

Security

•

Performance
The Five Stars of DevOps
•

Monitoring

•

Security

•

Performance

•

Automation
The Five Stars of DevOps
•

Monitoring

•

Security

•

Performance

•

Automation

•

Scaleability
Am I doing something in my
application that is done better by
the infrastructure or an external
service?
Probably.
Got root?
Common reasons to 

“just log onto the server quickly”
•

server logs in /var/log require privileges to
tail

•

setting permissions on directories

•

Processes require restarting
Monitoring
Monitoring
•

Log EVERYTHING

•

Drupal default visitor logging is heavy

•

Should you be writing to the database to
log visits?
NO.
Monitoring
•

Logging is only one part of monitoring

•

Send your Web logs to a remote service

•

Set error_log to syslog in php.ini
Logging Services
•

SplunkStorm

•

Loggly

•

Logentries

•

Papertrailapp
HOSTING YOUR OWN LOGGING
•

Splunk

•

GrayLog2

•

Sensu

•

Munin

•

Raven
Other monitoring
•

Nagios

•

Pingdom

•

New Relic

•

Piwik/Google Analytics
Profiling
•

Don’t be afraid to turn XHProf on in live
occasionally

•

Regularly check your browser HAR

•

Check APC and other caches for smells
Security
Where is the risk?
•

Application security

•

Infrastructure security

•

End user security
Repelling Unwelcome Guests
Tools to help
•

JumpCloud

•

DuoSecurity

•

Ubuntu ACL
Capturing Morpheus…

Not so bad.
Hardening SSL
Don’t bother
hardening SSL
SSL is Dead, Long Live TLS
•

No one should be using SSL any more.

•

Transport Layer Security (TLS)

•

Latest version 1.2
Vulnerabilities
•

BEAST Attack

•

CRIME Attack

•

Lucky Thirteen
HTTPS without proper ciphers gives
the illusion of security while
providing none
Default SSL implementations
Nginx
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;

Open to Lucky Thirteen attack
Supporting SSLv3 is only required for IE6

Apache 2
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
“Today, only TLS 1.2 with GCM suites offer fully
robust security. All other suites suffer from one
problem or another (e.g, RC4, Lucky 13, BEAST),
but most are difficult to exploit in practice…”

–Ivan Ristic, Qualys
“…Because GCM suites are not yet widely
supported, most communication today is carried
out using one of the slightly flawed cipher
suites. It is not possible to do better if you're
running a public web site.”

–Ivan Ristic, Qualys
Diffie-Hellman Key
Exchange
•

Diffie-Hellman (DH) and Elliptic Curve
Diffie-Hellman (ECDH)

•

Allows Perfect Forward Secrecy

•

Slow :(
server {
…

!

add_header Strict-Transport-Security “max-age=31536000; includeSubDomains";
ssl_session_cache shared:SSL:10m;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH
+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
ssl_ecdh_curve secp521r1;
}

https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
Test your strength!

https://www.ssllabs.com/ssltest/
“I don’t mind that the site is
slow, at least my data is safe.”
–No user ever
Performance
SPDY
SPDY
•

Draft HTTP 2.0

•

Allows multiplexing a single connection

•

Requires HTTPS

•

Do you need HTTP at all?
PageSpeed
•

Library for Apache and Nginx

•

Automatic minification of JavaScript, CSS
and HTML

•

On-the-fly optimisations based on chosen
filters
The “SPDY Sandwich”

Nginx

Varnish

Nginx

PHP-FPM
The “SPDY Sandwich”

Nginx

Varnish

Responsible for:
• SPDY / SSL Termination
• Serving static assets
• Gzipping
• Pagespeed is user agent-aware

Nginx

PHP-FPM
The “SPDY Sandwich”
Responsible for:
• Caching dynamic pages
• Cookie normalisation
Nginx

Varnish

Nginx

PHP-FPM
The “SPDY Sandwich”

Nginx

Varnish

Nginx

PHP-FPM

Responsible for:
• Serving dynamic pages
• Generic Pagespeed optimisations
The “SPDY Sandwich”
Responsible for:
• PHP interpreter
Nginx

Varnish

Nginx

PHP-FPM
Cookies
Cross Site Request Forgery
(CSRF)
•

OWASP recommendation

•

Requires a token in the form and a session
token

•

Breaks most reverse proxies without
configuration
Am I doing something in my
application that is done better by
the infrastructure or an external
service?
OpenResty
•

Nginx bundle

•

Has modules for connecting to Redis,
Drizzle, memcached and many more

•

Has Lua to allow pre and post processing
on requests and responses
Time for a
Simplified Example
<?php
!

namespace InviqaDrupalCampAccess;
!

class OpenRestyTokenGenerator implements
CsrfTokenGeneratorInterface
{
private $token;
!

public function __construct($csrfToken)
{
$this->token = $csrfToken;
}
!

public function get($value = '') {
return $this->token;
}
}
<?php
namespace InviqaDrupalCampForm;
!

use DrupalCoreFormFormBuilder as CoreFormBuilder;
!

class FormBuilder extends CoreFormBuilder
{
public function __construct(
ModuleHandlerInterface $module_handler,
KeyValueExpirableFactoryInterface
$key_value_expirable_factory,
EventDispatcherInterface $event_dispatcher,
UrlGeneratorInterface $url_generator,
TranslationInterface $translation_manager,
CsrfTokenGeneratorInterface $csrf_token = NULL,
HttpKernel $http_kernel = NULL
) {
…
FIXING CSRF WITH LUA
X-CSRF-Tokenize: “[[CSRF Here]]”

OpenResty

Redis

Varnish

Nginx

PHP-FPM
FIXING CSRF WITH LUA
Header cached in Varnish

OpenResty

Redis

Varnish

Nginx

PHP-FPM
FIXING CSRF WITH LUA
•
•
•

OpenResty

Redis

Parses response (regex)!
Finds token placeholder!
Replaces with real token

Varnish

Nginx

PHP-FPM
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!

!
!
!
!
!
!
!
!
!

header_filter_by_lua!
'!
if ngx.var.upstream_http_x_csrf_tokenize then!
! -- the backend requested a CSRF token be set!
! local csrf_cookie_token = nil!
! if ngx.var.cookie_csrf then!
! ! -- they have a cookie, just re-use it!
! ! local csrf_cookie_token = ngx.var.cookie_csrf!
! end!

! ! local resty_random = require "resty.random"!
! ! local str = require "resty.string"!
!
!
!
!

!
!
!
!

if not csrf_cookie_token then!
! -- no valid csrf cookie found, let us make one!
! !
! local cookie_random = resty_random.bytes(16,true)!

! ! !
! ! !
!
!
!
!
! ! !

while cookie_random == nil do!
! -- attempt to generate 16 bytes of!
! -- cryptographically strong (enough) random data!
! cookie_random = resty_random.bytes(16,true)!
end!
FIXING CSRF WITH LUA

OpenResty

Varnish

•
Redis

•

Nginx

PHP-FPM

Stores HMAC as value in Redis with

random key “csrf_”
Generates cookie with Redis key as

value
!
! ! -- we are about to mess around with the content of the page!
! ! -- so we need to clear this as it will be wrong!
! ! ngx.header.Content_Length = ""! ! ! !
! ! -- set the Cookie for the CSRF token!
! ! ngx.header.Set_Cookie = "csrf=" .. ngx.var.csrf_cookie_token!
! ! ngx.header.tokenize = ngx.var.upstream_http_x_csrf_tokenize!
!
! ! -- now generate one for the form token!
! ! while form_random == nil do!
!
! form_random = resty_random.bytes(16,true)!
!
! ! end!
!
! ! ngx.var.csrf_form_token = str.to_hex(form_random)!
!
! ! local redis = require "redis"!
! ! local client = redis.connect("127.0.0.1", 6379)! !
! ! client:set("csrf_" .. ngx.var.csrf_cookie_token,
ngx.var.csrf_form_token)!
! ! end!
FIXING CSRF WITH LUA
Check token on way back in

OpenResty

Redis

Varnish

Nginx

PHP-FPM
location @backend {!
! ! # You can't set variables in nginx dynamically, !
# so set this up as empty first!
! ! set $csrf_validate "";!
! ! access_by_lua !
! ! '!
if ngx.req.get_method() == "POST" then!
! -- set up forbidden as default!
! ngx.var.csrf_validate = ngx.HTTP_FORBIDDEN!
! if ngx.var.cookie_csrf then!
! ! ! ! local res = ngx.location.capture("/validate-csrf")!
! ! ! ! if ngx.HTTP_OK == res.status then!
!
! ! ! ngx.req.read_body()!
!
! ! local args = ngx.req.get_post_args()!
!
!
! ! local posted_token = tostring(args["csrf"])!
!
!
! ! if posted_token == res.body then!
!
!
! ! ! ngx.var.csrf_validate = ngx.HTTP_OK!
!
!
! ! end!
!
!
! end!
!
!
!
end!
!
end!
!
';
Full gist:
https://gist.github.com/shrikeh/4722427
Automation
Tooling
•

Bash scripts (!)

•

Chef/Puppet (retro)

•

Ansible!
Ansible
•

Requires no agent!

•

Pure SSH

•

Modules

•

YAML-based configuration

•

Playbooks (and playbooks of playbooks)
Ansible PLAYBOOK
!
- name: ensure SSH key exists
digital_ocean: >
state=present
command=ssh
name=case
- name: ensure droplet exists
digital_ocean: >
state=present
ssh_key_ids=57705
name={{ inventory_hostname }}
size_id=66
region_id=4
image_id=1505699
wait_timeout=500
private_networking=yes
virtio=yes
wait=yes
unique_name=yes
wait_timeout=500
register: launched
- debug: msg="IP is {{ launched.droplet.id }}"
- debug: msg="IP is {{ launched.droplet.ip_address }}"
Ansible

ansible-playbook base.yml -vvv -i "hosts/production"
Configuring Your Application
<?php
# /sites/default/settings.php
...
$databases['default']['default'] = array(
'driver'
=> 'mysql',
'database' => 'drupal',
'username' => 'testuser',
'password' => '123secure',
'host'
=> 'localhost',
'prefix'
=> '',
);
“A litmus test for whether an app has all
config correctly factored out of the code is
whether the codebase could be made open
source at any moment, without
compromising any credentials”
–The Twelve Factor App
“The twelve-factor app stores config in
environment variables (often shortened to
env vars or env). Env vars are easy to
change between deploys without changing
any code”
–The Twelve Factor App
Put your variables in PHP-FPM
/etc/php/fpm/pools/live.conf

env[db_name]
env[db_host]
env[db_user]
env[db_pass]
env[db_prefix]

=
=
=
=
=

drupal_live
192.168.0.2
liveuser
verysecurepass
drupalcamp_
<?php
# /sites/default/settings.php
...
$databases['default']['default'] = array(
'driver'
=> 'mysql',
'database' => getenv('db_name'),
'username' => getenv('db_user'),
'password' => getenv('db_pass'),
'host'
=> getenv('db_host'),
'prefix'
=> getenv('db_prefix'),
);
Provisioning
•

Idempotent deployments

•

Provision every environment the same way

•

Resist the urge to do something manually

•

Get into a workflow of automation
Docker
Docker - AN OVERVIEW
•

Lightweight Linux
Container

•

Portable environment

•

Install all your PECL
dependencies into a
container

•

Ship it
Problems
Problems
!

•

Still heavily in development, no “right way”
yet

•

Hard to set up syslog inside a container

•

Runs as root on the box
That’s being fixed though
We’re Done!
With thanks to
Paramount Pictures
and
startrek.wikia.com
for not suing me
Questions
Thank You!
My first official talk!
•

Special thanks to Lorna Mitchell, Ian
Barber and Rowan Merewood for all the
coaching

•

All feedback welcome!

Weitere ähnliche Inhalte

Was ist angesagt?

Redis : Database, cache, pub/sub and more at Jelly button games
Redis : Database, cache, pub/sub and more at Jelly button gamesRedis : Database, cache, pub/sub and more at Jelly button games
Redis : Database, cache, pub/sub and more at Jelly button gamesRedis Labs
 
ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7Phil Pursglove
 
OpenCms Days 2014 - OpenCms cloud setup with the FI-TS
OpenCms Days 2014 - OpenCms cloud setup with the FI-TSOpenCms Days 2014 - OpenCms cloud setup with the FI-TS
OpenCms Days 2014 - OpenCms cloud setup with the FI-TSAlkacon Software GmbH & Co. KG
 
Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012Amazee Labs
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadKrivoy Rog IT Community
 
Roshan Bhattarai: Scaling WordPress for high traffic sites
Roshan Bhattarai: Scaling WordPress for high traffic sitesRoshan Bhattarai: Scaling WordPress for high traffic sites
Roshan Bhattarai: Scaling WordPress for high traffic siteswpnepal
 
Scaling wordpress for high traffic
Scaling wordpress for high trafficScaling wordpress for high traffic
Scaling wordpress for high trafficRoshan Bhattarai
 
NGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX, Inc.
 
MySQL topology healing at OLA.
MySQL topology healing at OLA.MySQL topology healing at OLA.
MySQL topology healing at OLA.Mydbops
 
ASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen OxfordASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen OxfordPhil Pursglove
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud EraMydbops
 
Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0MongoDB
 
Linux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performanceLinux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performancePostgreSQL-Consulting
 
From One to a Cluster
From One to a ClusterFrom One to a Cluster
From One to a Clusterguestd34230
 

Was ist angesagt? (17)

Redis : Database, cache, pub/sub and more at Jelly button games
Redis : Database, cache, pub/sub and more at Jelly button gamesRedis : Database, cache, pub/sub and more at Jelly button games
Redis : Database, cache, pub/sub and more at Jelly button games
 
WordCamp RVA
WordCamp RVAWordCamp RVA
WordCamp RVA
 
Memcache d
Memcache dMemcache d
Memcache d
 
ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7
 
Php & web server performace
Php & web server performacePhp & web server performace
Php & web server performace
 
OpenCms Days 2014 - OpenCms cloud setup with the FI-TS
OpenCms Days 2014 - OpenCms cloud setup with the FI-TSOpenCms Days 2014 - OpenCms cloud setup with the FI-TS
OpenCms Days 2014 - OpenCms cloud setup with the FI-TS
 
Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High load
 
Roshan Bhattarai: Scaling WordPress for high traffic sites
Roshan Bhattarai: Scaling WordPress for high traffic sitesRoshan Bhattarai: Scaling WordPress for high traffic sites
Roshan Bhattarai: Scaling WordPress for high traffic sites
 
Scaling wordpress for high traffic
Scaling wordpress for high trafficScaling wordpress for high traffic
Scaling wordpress for high traffic
 
NGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX for Application Delivery & Acceleration
NGINX for Application Delivery & Acceleration
 
MySQL topology healing at OLA.
MySQL topology healing at OLA.MySQL topology healing at OLA.
MySQL topology healing at OLA.
 
ASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen OxfordASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen Oxford
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud Era
 
Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0
 
Linux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performanceLinux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performance
 
From One to a Cluster
From One to a ClusterFrom One to a Cluster
From One to a Cluster
 

Ähnlich wie Next Generation DevOps in Drupal: DrupalCamp London 2014

introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.jsorkaplan
 
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Docker, Inc.
 
Real World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsReal World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsBen Hall
 
DevOps in PHP environment
DevOps in PHP environment DevOps in PHP environment
DevOps in PHP environment Evaldo Felipe
 
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...Hackito Ergo Sum
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeSarah Z
 
Lateral Movement: How attackers quietly traverse your Network
Lateral Movement: How attackers quietly traverse your NetworkLateral Movement: How attackers quietly traverse your Network
Lateral Movement: How attackers quietly traverse your NetworkEC-Council
 
Lateral Movement - Hacker Halted 2016
Lateral Movement - Hacker Halted 2016Lateral Movement - Hacker Halted 2016
Lateral Movement - Hacker Halted 2016Xavier Ashe
 
Ingesting hdfs intosolrusingsparktrimmed
Ingesting hdfs intosolrusingsparktrimmedIngesting hdfs intosolrusingsparktrimmed
Ingesting hdfs intosolrusingsparktrimmedwhoschek
 
Chickens & Eggs: Managing secrets in AWS with Hashicorp Vault
Chickens & Eggs: Managing secrets in AWS with Hashicorp VaultChickens & Eggs: Managing secrets in AWS with Hashicorp Vault
Chickens & Eggs: Managing secrets in AWS with Hashicorp VaultJeff Horwitz
 
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...Felipe Prado
 
PHP from soup to nuts Course Deck
PHP from soup to nuts Course DeckPHP from soup to nuts Course Deck
PHP from soup to nuts Course DeckrICh morrow
 
JavaScript Event Loop
JavaScript Event LoopJavaScript Event Loop
JavaScript Event LoopThomas Hunter II
 
Security in PHP - 那些在滲透測試的小技巧
Security in PHP - 那些在滲透測試的小技巧Security in PHP - 那些在滲透測試的小技巧
Security in PHP - 那些在滲透測試的小技巧Orange Tsai
 
Orange@php conf
Orange@php confOrange@php conf
Orange@php confHash Lin
 
About Clack
About ClackAbout Clack
About Clackfukamachi
 
Nginx - The webserver you might actually like
Nginx - The webserver you might actually likeNginx - The webserver you might actually like
Nginx - The webserver you might actually likeEdorian
 
AstriCon 2017 - Docker Swarm & Asterisk
AstriCon 2017  - Docker Swarm & AsteriskAstriCon 2017  - Docker Swarm & Asterisk
AstriCon 2017 - Docker Swarm & AsteriskEvan McGee
 
FITC - Node.js 101
FITC - Node.js 101FITC - Node.js 101
FITC - Node.js 101Rami Sayar
 
RedisConf17 - Operationalizing Redis at Scale
RedisConf17 - Operationalizing Redis at ScaleRedisConf17 - Operationalizing Redis at Scale
RedisConf17 - Operationalizing Redis at ScaleRedis Labs
 

Ähnlich wie Next Generation DevOps in Drupal: DrupalCamp London 2014 (20)

introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.js
 
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
 
Real World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsReal World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js Applications
 
DevOps in PHP environment
DevOps in PHP environment DevOps in PHP environment
DevOps in PHP environment
 
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less Coffee
 
Lateral Movement: How attackers quietly traverse your Network
Lateral Movement: How attackers quietly traverse your NetworkLateral Movement: How attackers quietly traverse your Network
Lateral Movement: How attackers quietly traverse your Network
 
Lateral Movement - Hacker Halted 2016
Lateral Movement - Hacker Halted 2016Lateral Movement - Hacker Halted 2016
Lateral Movement - Hacker Halted 2016
 
Ingesting hdfs intosolrusingsparktrimmed
Ingesting hdfs intosolrusingsparktrimmedIngesting hdfs intosolrusingsparktrimmed
Ingesting hdfs intosolrusingsparktrimmed
 
Chickens & Eggs: Managing secrets in AWS with Hashicorp Vault
Chickens & Eggs: Managing secrets in AWS with Hashicorp VaultChickens & Eggs: Managing secrets in AWS with Hashicorp Vault
Chickens & Eggs: Managing secrets in AWS with Hashicorp Vault
 
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
 
PHP from soup to nuts Course Deck
PHP from soup to nuts Course DeckPHP from soup to nuts Course Deck
PHP from soup to nuts Course Deck
 
JavaScript Event Loop
JavaScript Event LoopJavaScript Event Loop
JavaScript Event Loop
 
Security in PHP - 那些在滲透測試的小技巧
Security in PHP - 那些在滲透測試的小技巧Security in PHP - 那些在滲透測試的小技巧
Security in PHP - 那些在滲透測試的小技巧
 
Orange@php conf
Orange@php confOrange@php conf
Orange@php conf
 
About Clack
About ClackAbout Clack
About Clack
 
Nginx - The webserver you might actually like
Nginx - The webserver you might actually likeNginx - The webserver you might actually like
Nginx - The webserver you might actually like
 
AstriCon 2017 - Docker Swarm & Asterisk
AstriCon 2017  - Docker Swarm & AsteriskAstriCon 2017  - Docker Swarm & Asterisk
AstriCon 2017 - Docker Swarm & Asterisk
 
FITC - Node.js 101
FITC - Node.js 101FITC - Node.js 101
FITC - Node.js 101
 
RedisConf17 - Operationalizing Redis at Scale
RedisConf17 - Operationalizing Redis at ScaleRedisConf17 - Operationalizing Redis at Scale
RedisConf17 - Operationalizing Redis at Scale
 

KĂźrzlich hochgeladen

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
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 WorkerThousandEyes
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 

KĂźrzlich hochgeladen (20)

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
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
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 

Next Generation DevOps in Drupal: DrupalCamp London 2014