Slide 1

Slide 1 text

#thinkob Think! out of the box http://creativecommons.org/licenses/by-sa/3.0/es/

Slide 2

Slide 2 text

P A R E N T A L OPINIONATED* *DYOR, your mileage may vary #thinkob

Slide 3

Slide 3 text

Pedro González Serrano (aka NITEMAN) Performance and process consultant Sysadmin +16 years working with Drupal @NITEMAN_es http://niteman.es #thinkob

Slide 4

Slide 4 text

Ladies and gentlemen... I guess that takes in most of you #thinkob

Slide 5

Slide 5 text

Think of Sustainability: - Maintainability - Scalability - Performance - Cost efficiency #thinkob

Slide 6

Slide 6 text

Law of the instrument If the only tool you have is a hammer, it is tempting to treat everything as if it were a nail #thinkob

Slide 7

Slide 7 text

“Batteries Included” may be sometimes suitable: - accesslog (statistics) - watchdog (dblog) - search (core) #thinkob

Slide 8

Slide 8 text

Drupal bias: There is a module for that #thinkob

Slide 9

Slide 9 text

With a little help of my friends (Varnish, Solr, Redis) #thinkob

Slide 10

Slide 10 text

Think of Sustainability: - Maintainability - Scalability - Performance - Cost efficiency #thinkob

Slide 11

Slide 11 text

Automatic thinking: PROS & CONS #thinkob

Slide 12

Slide 12 text

Reinventing wheel: PROS & CONS #thinkob

Slide 13

Slide 13 text

Would you ever: - Build a process manager in drupal? - Build a PHP Drush based Daemon? #thinkob

Slide 14

Slide 14 text

Then remember to add “Bad judgement” module as dependency #thinkob

Slide 15

Slide 15 text

#thinkob Something being feasible doesn't makes it automatically appropriate

Slide 16

Slide 16 text

Some of my mistakes: - crop - AMQP-Drush daemon - underestimate HA drawbacks #thinkob

Slide 17

Slide 17 text

Think of Sustainability: - Maintainability - Scalability - Performance - Cost efficiency #thinkob

Slide 18

Slide 18 text

Get out off the box #thinkob

Slide 19

Slide 19 text

Just In Time Engineering WARNING: A good enough temporary hack tends to become a permanent architecture solution #thinkob

Slide 20

Slide 20 text

Avoid madness: - Favour Boring Technology - There may be a SaaS for it - Keep async - Apply 12 factor - Consider domain-centric architectures #thinkob

Slide 21

Slide 21 text

We do it our way #thinkob

Slide 22

Slide 22 text

1. Due Diligence on the ground assessment #thinkob

Slide 23

Slide 23 text

Lifecycle processes: Asset building (build/deploy) #thinkob

Slide 24

Slide 24 text

settings.php / .env (ENVs) #thinkob

Slide 25

Slide 25 text

Caches #thinkob

Slide 26

Slide 26 text

External services: Timeouts Errors #thinkob

Slide 27

Slide 27 text

Process coupling / synchrony #thinkob

Slide 28

Slide 28 text

Tests + Benchmarks #thinkob

Slide 29

Slide 29 text

2. Agnostic solutions for common needs #thinkob

Slide 30

Slide 30 text

Logging + Monitoring + Analysis #thinkob

Slide 31

Slide 31 text

Mail gateways #thinkob

Slide 32

Slide 32 text

Edge computing (redirections,auth&more) #thinkob

Slide 33

Slide 33 text

3. Common patterns for new needs #thinkob

Slide 34

Slide 34 text

Proxy #thinkob

Slide 35

Slide 35 text

Sidecar #thinkob

Slide 36

Slide 36 text

Producer / Consumer #thinkob

Slide 37

Slide 37 text

Key takeaways: - Think! - Drupal does it great to some extent - Sustainability matters - Every decision brings present & future costs #thinkob

Slide 38

Slide 38 text

Questions? (Related or not) #thinkob

Slide 39

Slide 39 text

So long and thanks for all the fish! http://bit.ly/NITEMAN-thinkob #thinkob

Slide 40

Slide 40 text

Image attribution [Cathedral]: @NITEMAN_es [Groucho]: https://flic.kr/p/5Ky9Xq [Hammer]: https://flic.kr/p/HuhxaK [Nails]: https://flic.kr/p/aECgxZ [TetrixPieces]: https://flic.kr/p/9m7GRV [HamerGirl]: https://flic.kr/p/5LDK7H [Hammer-Orange]: https://flic.kr/p/5Cvgnk [Initiation-Well]: @NITEMAN_es [Broken concrete]: https://flic.kr/p/6Du7DL [Bridge]: @NITEMAN_es [Pipes]: https://flic.kr/p/om9AMU [Bricks]: https://flic.kr/p/eCRcXY [Sunset]: @NITEMAN_es [Old and cool]: https://flic.kr/p/WAPBmS #thinkob