Pm2 e Aws Auto scaling

Carlos Rodrigues

IT Solutions Architect

Who I'm?

Carlos Rodrigues

Solutions Architect / DevOps / SRE

carlos.rodrigues@fcnuvem.com.br

Agenda

  • Stateless

  • PM2

  • Autoscaling Aws

Stateless

 

Em computação, um protocolo sem estado (do inglês stateless) é um protocolo de comunicação que considera cada requisição como uma transação independente que não está relacionada a qualquer requisição anterior, de forma que a comunicação consista de pares de requisição e resposta independentes.

PM2

PM2

Restart do server em caso de erro.

PM2

Cluster mode

PM2

pm2 plus

AWS - AUTOSCALING

AWS - AUTOSCALING

Launch Configuration Script

#!/bin/bash -ex

curl "https://carlosrodriguesjunior.github.io/node-high-cpu/hello-world-server.js" > /home/ec2-user/hello-world-server.js
sudo chmod 755 /home/ec2-user/hello-world-server.js
sudo yum install -y gcc-c++ make
sudo curl -sL https://rpm.nodesource.com/setup_11.x | sudo -E bash -
sudo yum install nodejs -y
sudo npm i pm2 -g
sudo pm2 link d6uu9vvzm87u8tl 8ob9i5pqu9n2mtw node-app
sudo pm2 start /home/ec2-user/hello-world-server.js -i max --name "node-app"

AWS - AUTOSCALING

Node Script

const port = 80
require('http')
  .createServer((req, res) => {
    console.log('url:', req.url)
    console.log('now we will slow down and block and consume CPU...')
    for (var i=0; i< 9000000; i++) {}
    res.end('hello world')
  })
  .listen(port, (error)=>{
    console.log(`server is running on ${port}`)
  });

AWS - AUTOSCALING

siege -u http://3.231.161.169 -d1 -r200 -c140 -t60S

pm2 start hello-world-server.js - fork mode

AWS - AUTOSCALING

siege -u http://3.231.161.169 -d1 -r200 -c140 -t60S

pm2 start -i 2 hello-world-server.js - cluster mode

AWS - AUTOSCALING

siege -u http://3.231.161.169 -d1 -r200 -c140 -t120S

AWS - AUTOSCALING

siege -u http://3.231.161.169 -d1 -r200 -c140 -t120S

AWS - AUTOSCALING

Referências

Obrigado

Carlos Rodrigues

carlos.rodrigues@fcnuvem.com.br

Made with Slides.com