11
respostas

Autenticação Zend Framework na Nuvem

Trabalho em um Sistema desenvolvido em Zend Framework 1, e iremos migrar para uma Hospedagem na Nuvem.

Minha dúvida é qual a melhor maneira de efetuar a Autenticação no Sistema para a escalabilidade, ou seja, tornar a autenticação escalável, e como fazê-lo?!

11 respostas

Oi Felipe, não sou um especialista em zend, mas como trabalho com desenvolvimento vou me arriscar a responder. A grande graça de vc ir para o cloud é acreditar que sua solução atual já vai escalar, dado que você ganhar uma super infraestrutura de presente.

Baseado nisso, não me preocuparia com este tipo de detalhe, até porque essa parte de autenticação meio que segue um padrão em tudo que é aplicação.

De todo jeito, vamos esperar alguém mais especializado nos ajudar.

Oi Alberto, obrigado por se arriscar! rs.

Acontece que na Hospedagem na Nuvem o Servidor em que o Usuário está logado, pode mudar a qualquer momento, afim de manter o Sistema estável! rs. Por isto é preciso uma mecânica de Autenticação um pouco mais específica para estes casos, afim de manter o Usuário Logado no Sistema. rs

Estou em contato com o Suporte da Hospedagem na Nuvem, onde ele pedem que o Código já esteja pronto para escalar! Compreende?! rs

Como vc disse, vamos esperar e ver se alguém mais especializado conseguirá nos ajudar! rs.

abraços.

Oi Felipe,

Para este tipo de situação, que não é comum, mesmo no cloud, você pode usar algum esquema de manter a sessão do usuário na memória e em algum outro lugar, como no banco de dados. Uma outra opção muito usada também é o memcached, um servidor de cache a parte onde vc compartilhar informações, como sessão, entre várias máquinas.

Este tipo de solução independe da linguagem, está mais ligada a arquitetura mesmo.

Oi Felipe, segue um link que pode ajudar(http://php.net/manual/pt_BR/intro.memcached.php)

Oi Alberto! Obrigado pelas dicas! vou continuar estudando! rs. Entendi sobre o Memcached, mas ainda não entendi como usá-lo! rs. e pelo o que entendi, esta é uma das melhores alternativas, certo?!

Opa Felipe, na minha opinião é a melhor alternativa sim.

Opa Felipe tudo bom? O problema que você está tentando é mais relacionado ao PHP em si do que o framework que você está usando, para resolver isso acredito que a melhor alternativa é o que o Alberto sugeriu mesmo.... Um servidor de cache para manter as sessões. Para fazer essa alteração felizmente você não vai precisar mexer no seu código. Então vamos lá!

Para trabalhar com o memcached primeiramente você vai precisar da extensão memcached.so habilitada no PHP para isso crie um arquivo com:

< ?php
    php_info();

E verifique se você encontra o memcached caso contrário você pode instalar usando a seguinte linha de comando:

apt-get install memcached

Se você está usando o PHP 5.6 pode instala a extensão com a seguinte linha:

apt-get install php5-memcache

Feito isso vá para o arquivo php.ini e vamos configurar algumas coisas. A primeira delas é habilitar a extensão do memchached adicionando a seguinte linha nas extensões:

extension=memcached.so

Além disso precisamos falar agora onde está o nosso servidor de cache e que queremos salvar a sessão nele! Para isso temos duas diretrizes no php.ini

Por padrão a diretriz abaixo deve estar com o valor 'files' altere pra memcache. Agora o php sabe que deve usar o memcache para sessões :)

session.save_handler = memcache

Por fim precisamos falar qual o endereço do servidor, basta adicionar a linha abaixo:

session.save_path = "ip_servidor:porta"

Feito isso todas as sessões serão salvas no memcache sem precisar mexer no seu código. Porém como você disse temos vários servidores.... Basta todo mundo apontar para o mesmo memcache a sessão já vai estar compartilhada =)

Espero ter ajudado.

Abraços e bons estudos.

Oi Renan! Muitíssimo obrigado pela sua ajuda! Parece até mágica, de tão simples! rs. Só uma coisa que eu não entendi, mas acho que devo tirar esta dúvida com meu Suporte de Hospedagem na Nuvem, certo?! Minha Dúvida é sobre o que vc disse:

"Porém como você disse temos vários servidores.... Basta todo mundo apontar para o mesmo memcache a sessão já vai estar compartilhada"

Vc quer dizer que eu terei que alterar o php.ini de cada Servidor da minha Aplicação?!

Me perdoem por minha falta de conhecimento! Estou aprendendo com vcs! rs.

Obrigado Alberto e Adriano, pelas participações!

tamoJunto!

Oi Felipe, sim terá que configurar o php.ini de cada servidor! Abraços.

Ok, Renan!

Verei que com o Suporte da Getup se há esta possibilidade! Assim que eu testar e me certificar que funfou, marcarei sua resposta como Solução! rs

Obrigado, mais uma vez e sempre!

JuntosSomos+Fortes!

Oi Renan, td bem?! rs

Graças a ajuda do Suporte da Getup, através do Vander Nunes, consegui habilitar e já está em uso o Memcached em minha Aplicação. Maaas... como ter certeza disto?! rs.

Há algum teste ou verificação que possamos fazer para ter certeza de que as Sessões estão sendo salvas no Memcache?!

Obrigado desde já!

#JuntosSomos+Fortes!

abraços.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software