Como utilizar o Docker para fazer deploy de sua aplicação

A utilização do docker é uma das formas mais simples de você realizar o deploy de sua aplicação num servidor. Neste artigo iremos entendeComo utilizar o Docker para fazer deploy de sua aplicação, criando o seu docker file.

Sempre que há migração de aplicação entre servidores ou a criação de um novo ambiente operacional, é preciso refazer toda a configuração em uma nova máquina virtual, exigindo uma quantidade de tempo e trabalho considerável. Devido a essas situações que por repetidas vezes ocorriam, uma das tecnologias que se tornaram muito populares nos últimos anos foi a de containers. Veremos algumas vantagens de adotar essa abordagem, que a princípio parece ser mais trabalhosa, entretanto, reduz o trabalho de reimplantação a próximo de zero. Veremos como construir uma aplicação web, utilizando PHP FastCGI e Nginx, além de instalar automaticamente o composer e seus pacotes.

Todos os arquivos utilizados neste post podem ser encontrados em: https://github.com/goodeath/absamPosts/tree/master/docker-app

Docker

É importante deixar claro que a tecnologia de containers e Docker são duas coisas distintas. Os containers se tratam de um tipo de virtualização. Já o Docker é uma implementação concreta dessa tecnologia. Esta opção foi escolhida por ser bastante popular, robusta e open source. Toda vez que utilizarmos o termo Docker trataremos do software .

Docker Compose

É uma ferramenta do docker, utilizada para construir e configurar múltiplos containers Docker simultaneamente. É possível iniciar todos os seus serviços através de um arquivo de configuração (docker-compose.yml) com apenas um comando. Pode ser utilizado em todos os ambientes: produção, testes, desenvolvimento, etc.

Dockerfile

Se trata de um arquivo de configuração, assim como o docker-compose.yml, utilizado para dar instruções durante a criação dos containers. Podemos utilizá-lo para baixar arquivos, instalar pacotes, executar comandos shell, etc.

Iniciando

Devemos instalar os pacotes do Docker. Basta executar o comando:

$ apt install docker.io docker-compose -y

uma vez instalado, podemos verificar a instalação do docker executando:

$ docker -v

A saída deve ser algo como: Docker version 18.09.7, build 2d0083d. Para verificar a instalação do Docker Compose, podemos executar:
$ docker-compose -v

A saída deve ser algo como: docker-compose version 1.17.1, build unknown. Caso haja problemas com a instalação dos pacotes, visite https://docs.docker.com/install/ para checar a instruções detalhadas para o seu sistema operacional.

Iremos aproveitar as imagens já construídas, disponíveis no Docker Hub (https://hub.docker.com). Vamos utilizar a imagem do PHP 7.2-fpm e a nginx:latest. Felizmente podemos utilizar o próprio docker compose para recuperar essas imagens, sem precisar necessariamente acessar o site.

Crie uma nova pasta para o seu projeto, e crie um arquivo chamado docker-compose.yml. O arquivo final vai ser parecido com este:

Vamos analisar cada um dos campos:

version – Indica qual a versão do compose que sendo utilizada. Neste caso a versão 3.
services – Define os serviços que serão iniciados pelo compose.
php | web – O identificador do serviço. Pode ser qualquer nome alfanumérico.
ports – Expõe portas do container. A sintaxe é feita de “{porta_de_origem}:{porta_de_destino}”
build – Campo que indica diretório onde está as configurações que serão aplicadas em tempo de build. Como utilizaremos os arquivos na mesma pasta, utilizamos o . (ponto) para indicar o diretório atual. Tal parâmetro é utilizado apenas no serviço do PHP, pois, o servidor nginx não exige configurações adicionais.
image – Indica o nome da imagem que será utilizada pelo serviço. Pode ser encontrado no Docker Hub.
container_name – Nome do container. É usado apenas como um identificador na hora de executar comandos no container.
volumes – Aqui podemos realizar um link de nossas pastas para dentro do container. Na forma de {origem}:{destino}. É importante notar que, os volumes (pastas, subpastas e arquivos) caso sejam alterados no host , vão refletir dentro do container e vice-versa. Caso deseje que sejam independentes, procurar pelo comando COPY no Dockerfile
depends_on – Lista os serviços pelos seus indicadores, pelo qual o serviço atual precisa esperar para começar a se iniciar.
links – Indica ao serviço, aos quais outros ele deve estabelecer uma conexão de rede. Neste caso o Nginx está linkado com o php pois precisa repassar as solicitações de arquivos php para o FastCGI. Perceba que o nginx solicita ao PHP e pega o retorno, mas, o php nunca faz uma solicitação direta ao nginx, sendo desnecessário estabelecer a conexão nas duas direções.
networks – Podemos estabelecer ou não uma rede e utilizá-las em um serviço. É ideal para manter os endereços constantes e não variar cada vez que um container novo é criado.

No Nginx utilizamos um arquivo site.conf, para realizar as devidas configurações de integração com o FastCGI. É importante não esquecer da indentação e dos hífens (-) para que não ocorra erro na hora do build.

site.conf

Vamos agora a criação do Dockerfile.

Vamos destacar apenas os pontos essenciais:

FROM php:7.2-fpm – Indica que todos os comandos abaixo dessa linha serão executados no container que possui a imagem php:7.2-fpm.

O que fazemos aqui é copiar nosso código fonte para a pasta /home, baixar e instalar o composer (poderíamos também utilizar a imagem pronta), instalar os pacotes do composer e setar a pasta padrão como /code. No final colocamos um script personalizado de execução, que fará a cópia da pasta /home/vendor para a /code/vendor.

Um dos motivos de utilizar um script personalizado, é que como estamos realizando um link da pasta com o host, se realizarmos a instalação de maneira direta, o link é feito depois da execução do Dockerfile, logo, todos os arquivos do vendor serão apagados. É possível superar essa dificuldade usando fases intermediárias de build no Docker, mas, não será nosso caso no momento.

Podemos colocar na raiz do nosso projeto um arquivo index.php:

<?php phpinfo(); ?>

Com toda a configuração realizada, basta executar dentro da pasta:

$ docker-compose up

E devemos ver a seguinte tela:

É possível que seja necessário executar os comandos com o docker em modo de administrador ou caso deseje executar no modo normal, veja este guia: https://github.com/sindresorhus/guides/blob/master/docker-without-sudo.md

Conclusão

Em resumo, a tecnologia Docker é uma abordagem mais granular, controlável e baseada em microsserviços que valoriza a eficiência. Uma vez que todo o processo (Dockerfile, docker-compose, scripts auxiliares) tenham sido completados, basta copiar os arquivos para o servidor, instalar o docker e executar o docker compose. Dessa forma, teremos todo o ambiente devidamente configurado e pronto para uso.

Links

PHP-FPM – https://hub.docker.com/_/php?tab=tags
Nginx – https://hub.docker.com/_/nginx
Dockerfile – https://docs.docker.com/engine/reference/builder/
Docker Compose – https://docs.docker.com/compose/
Página Oficial do Docker – https://www.docker.com/
Docker Compose Versão 3 – Referência – https://docs.docker.com/compose/compose-file/#build

Como gerenciar seu DNS pela CloudFlare

É comum que plataformas hospedadas na internet, tenham vários subdomínios. Vamos usar o exemplo de um comércio eletrônico situada no endereço: https://www.minhaloja.com.br, é possível que haja um outro endereço como: https://painel.minhaloja.com.br entre outros. Há casos em que existem dezenas ou até mesmo centenas de subdomínios e domínios associados, de forma que as vezes existe um sistema automatizado que gerenciar todos esses registros.
A maioria dos servidores e hospedagens oferecem algum tipo de gerenciador de DNS, entretanto, um dos maiores problemas é que, quando é necessário realizar uma migração, é preciso refazer todas as configurações. Além disso, como o gerenciador é diferente do antigo, é preciso esperar o tempo de propagação. Vamos ver como o CloudFlare nos ajuda com essas e outras questões.

Glossário de Termos

DNS – Domain Name System. É como todos os endereços da internet são gerenciados. É um nome que tem associado um endereço de IP.

API – Interface de programação de aplicações. Permite o acesso a funções de maneira programática

DDOS – Ataque distribuído de negação de serviço. Um ataque que é realizado por milhares de computadores, de maneira que torne um serviço indisponível.

Nameserver – Um NameServer (Servidor de Nomes) devolve-lhe a informação acerca do servidor onde esse endereço está localizado/alojado, para que o browser possa mostrar-lhe o conteúdo do site.

VPS – Servidor Privado Virtual. Qualquer computador que esteja na cloud (Absam) 

Proxy –  É um servidor que age como um intermediário para requisições de clientes solicitando recursos de outros servidores.

Worker – Programa que roda continuamente, aguardando requisições ou realizando atividades periodicamente.

Middleware – Qualquer programa, serviço ou servidor que recebe uma requisição e a altera, antes de repassar para o destino final.

CORS – Cross-origin resource sharing é uma especificação de uma tecnologia de navegadores que define meios para um servidor permitir que seus recursos sejam acessados por uma página web de um domínio diferente.

CloudFlare

A cloudflare é um serviço de DNS gratuito, que fornece uma plataforma de forma que os usuários possam realizar diversas configurações de uma maneira que o controle seja centralizado. Ele possui outras funcionalidades como workers, proteção contra ataques DDOS, firewall, cache, etc. Discutiremos apenas funções que nos são pertinentes.

Uma vez feito o cadastro na sua conta, você precisará adicionar um novo domínio:

Após clicar em + Add Site aparecerá a tela para digitar o seu domínio:

Após clicar em Add Site você será perguntado sobre qual plano deseja assinar. Por hora, iremos selecionar o plano gratuito (free) e clicar em Confirm plan.

Na próxima tela, caso o domínio já esteja ativo, automaticamente será recuperado as informações e já adicionadas no servidor da cloudflare, basta clicar em continuar. Em seguida ele irá solicitar que se altere os nameservers no seu servidor.  Você pode fazer isso no seu servidor de nuvem ou de hospedagem, mas é preferível que a alteração seja feita na organização responsável sobre seu domínio. Caso seu dominio seja brasileiro (.com.br), basta entrar no registro.br. Em caso do domínio ser internacional, é preciso encontrar quem é a organização que tem autoridade sobre o seu domínio. No site da InterNic (https://www.internic.net/) é possível obter essas informações.

Após realizar a troca do nameserver, levará até 24 horas para que as mudanças sejam devidamente propagadas. E só então, peça ao cloudflare para checar se os nameservers estão devidamente configurados para que seja validada a configuração. Tome cuidado com servidores em produção! Pode ser que os mesmos fiquem indisponíveis por um certo período.

Vamos avaliar as funções de DNS, que são encontradas no menu superior:


Ao abrir a página, veremos uma lista de registros ( caso tenha sido recuperado de um domínio ativo ) e um botão para adicionar novas entradas:

Não iremos nos aprofundar sobre os tipos de registros (A, CNAME, SRV, TXT, etc.). O que nos interessa é que toda vez que alguém acessar nosso endereço (meusite.com.br) ele irá vir na cloudflare e procurar os registros associados. Neste caso, ele irá usar o endereço de ip ─ no exemplo acima é 191.252.4.25 ─ que está configurado. Esse endereço de ip, pode ser o ip da sua VPS. 

Também é possível ver o ícone de uma nuvem, em que o primeiro registro está ativo e outros não. Caso esteja ativo, a solicitação será redirecionada por dentro da cloudflare, de maneira que será encapsulada, fornecendo assim uma proteção maior e uma camuflagem no endereço de ip real. Caso esteja inativa, será enviada a solicitação diretamente para o servidor, sem nenhum middleware. A diferença entre um modo e outro, é que somente no modo ativo, as capacidades anteriormente citadas, como proteção de DDOS, funcionarão.

Uma outra função interessante, são as opções de cache:

Essa opção permite que os arquivos estáticos da sua página ( .HTML, .CSS, .JS ), a medida que forem solicitados, sejam fornecidos pela cloudflare e não pelo seu servidor. Desta maneira, há uma redução na quantidade de processamento pelo seu serviço HTTP. A cache, tem um tempo de expiração configurável, logo, após o tempo determinado, ele irá solicitar ao servidor os dados novamente para que sejam atualizados.

É importante notar que é possível que haja alguns problemas de CORS, pois os arquivos serão fornecidos pela cloudflare e não pelo seu servidor. Caso isso ocorra, é preciso marcar a opção: Respect existing headers.

Outra funcionalidade interessante é a opção de instalar o certificado SSL/TLS oferecido:

Você pode criar um novo certificado e instalar na sua VPS realizando as devidas configurações. É preciso também habilitar o proxy, para que as solicitações passem através da cloudflare, caso contrário, haverá falha na identificação de identidade.


Vantagens:

  • Proteção contra ataques DoS e DDoS; 
  • CDN (rede de distribuição de conteúdo); 
  • Criptografia de dados e emissão de certificados SSL (HTTPS); 
  • Firewall para aplicações web; 
  • Otimização de imagens; 
  • Balanceamento de carga; 
  • HTTP/2 e SPDY; 
  • Regras customizadas de cache e redirecionamento; 
  • E muitos outros! 

Desvantagens:

  • Complexidade na Configuração


Conclusão

A CloudFlare disponibiliza a sua plataforma para realização do gerenciamento de DNS. Além disso, é possível utilizar a API (https://api.cloudflare.com/) para integrar com outros serviços, ferramentas de DevOPS, etc. Por exemplo, se torna muito prático criar máquinas virtuais e configurar suas respectivas entradas de DNS. 

Também, sempre que houver novas entradas no DNS ou o endereço de ip da VPS for alterado, as mudanças são quase instantâneas. Lembra do período de 2 horas para propagação? Não é necessário, pois uma vez que o nameserver esteja apontando para CloudFlare, ele não precisará mais ser alterado. E quaisquer mudanças que acontecem dentro da cloudflare, são colocadas em operação imediatamente, diminuindo assim também, o tempo de inatividade em manutenções e migrações.

 

Monitoramento de Acesso: Veja quem e quando acessaram seu servidor remotamente.

Nos dias atuais, há um aumento crescente na preocupação sobre a segurança relacionada à infraestrutura mantida na nuvem pelas organizações. Desta forma, procuram-se maneiras de manter um nível de confiabilidade e controle que permita a disponibilidade necessária aos serviços oferecidos. Hoje, iremos aprender como obter informações sobre acessos realizados ao servidor. Estaremos usando a distribuição linux ubuntu 18.04 LTS, podendo assim, algumas funcionalidades estarem indisponíveis ou ter seu acesso de maneira diferente.

Glossário de Termos.

Host ─ Qualquer computador, servidor cloud, máquina virtual em que se esteja trabalhando.

Terminal ─ Uma interface de linha de comando instalada nas distribuições unix.

$ Símbolo para indicar um terminal shell/bash. Não deve ser copiado junto aos comandos.

[identificador] ─ Valor opcional e que deve ser substituído pela sua própria informação

O comando last

Com o comando last, é possível obter ainda mais informações sobre os usuários ─ terminais usados, quando autenticaram, quando saíram, etc. ─ É utilizado o arquivo /var/log/wtmp, o qual é lido para exibir uma lista de todos os usuários que se autenticaram, desde que ele foi criado.

Para executar, basta que abra o terminal do seu host e digite: 

$ last [nome_de_usuario]

Caso se queira filtrar os registros por um usuário específico, é possível especifica-lo (sendo opcional) diminuindo assim o número de registros. Caso ainda haja dificuldade na leitura, devido a uma grande quantidade de acessos, é possível ainda paginar a consulta. Basta executar: 

$ last [nome_do_usuario] | less

A saída do comando deve ser similar a exibida a seguir:

Iremos nos preocupar apenas com algumas colunas. Na primeira coluna, podemos observar o nome de usuário que realizou o acesso, neste caso foi o usuário root.  Na quarta coluna a data de entrada e saída do sistema e por fim na quinta coluna, indicando a situação em que o terminal utilizado por aquele usuário se encontra.

 

Observando a quinta coluna, algumas situações possíveis considerando sua formatação são: Data – still logged in. Indica que o usuário acessou o host em determinada data/horário e o mesmo ainda se encontra ativo. Data – down (time). Indica que o usuário acessou o host em determinada data, e algum tempo depois, o host foi desligado ou reiniciado com o usuário ainda logado.  Data – crash (time). Indica que o usuário acessou o host em determinada data, e algum tempo depois, houve uma falha crítica, fazendo o host ser encerrado. Mostra que não foi desligado de maneira apropriada. Data – Data. Indica o horário de entrada e saída do usuário, indicando que não houve uma mudança de estado no servidor.

 

Utilizando da ferramenta grep é possível realizar alguns filtros que agilizem a busca por informações mais específicas. Por exemplo, caso queiram procurar quais foram os acessos do usuário root, no dia 19 de outubro, basta executarmos:

 

$ last root | grep -i “Oct 19”

Como pode-se observar, apenas os acessos feitos nessa data serão exibidos. O mesmo pode ser feito para algum dia da semana, como segunda ou sábado. É importante notar que, a forma em que a data está sendo exibida, vai depender do idioma do sistema operacional que está sendo executado. O padrão utilizado aqui é o americano, mas, você deve se atentar para, caso necessário realizar as devidas modificações na hora de executar os comandos.

 

O servidor também registra as ações de reinício de sistema, podendo recuperaadas utilizando o comando:

$ last -x reboot

Para casos em que o sistema foi desligado, usa-se:

$ last -x shutdown

Um último comando que é bastante útil é o lastlog. Ele mostra a última vez em que cada usuários auutenticou no sistema. assim como no last podemos fazer uma busca por um usuário em específico utilizando:

$ lastlog -u root

Entretanto, o lastlog possui uma funcionalidade que apenas o last não é capaz de fornecer com a mesma facilidade, que é obter lista de usuários que se autenticaram nos últimos x dias. Basta que executemos:

$ lastlog -t 10

E teremos a lista de usuários que entraram no sistema nos últimos 10 dias. Também é possível pedir a lista de pessoas que acessaram a mais de x dias. Basta trocar o parâmetro -t por -b:

$ lastlog -b 10

É importante preservar todos os registros de acesso, pois os mesmos dão indícios sobre possíveis culpados ou a inocência de alguém diante à algum incidente. Pois, se o mesmo não realizou nenhum acesso durante o período do problema, é improvável que o mesmo tenha alguma relação. Ainda assim, talvez queiramos limpar o histórico de registro ou em outro caso, realizar um backup. Basta que seja apagado ou copiado o arquivo  /var/log/wtmp e o procedimento estará feito. Em relação ao lastlog o procedimento é análogo, exceto pelo arquivo que se encontra na pasta /var/log/lastlog 

É digno de nota que, o arquivo que tem essas informações armazenadas, é um arquivo binário, logo, ele não é legível para humanos e não pode ser alterado diretamente, o que poderia ocasionar o corrompimento do mesmo.

Conclusão

Com ferramentas presentes na maioria dos servidores em nuvem, pudemos facilmente obter informações valiosas sobre o histórico de acesso de usuários que, em geral podem ser colaboradores de uma organização, ou prestadores de serviços externos.

 

Utilizando Nginx como proxy reverso para otimizar sua aplicação

Em sistemas escaláveis, é importante manter uma infraestrutura adequada, de maneira que a aplicação possa suportar grandes quantidades de acesso. O aumento da capacidade do hardware pode se tornar inevitável, entretanto, é interessante avaliar se não há outras alternativas, como por exemplo, a modificação da arquitetura existente. Neste post, veremos como a utilização de um proxy reverso, nos ajuda a gerenciar os recursos de um servidor, para que possam ser aproveitados de melhor maneira, aumentando assim sua performance e segurança.

Proxy Reverso

Em primeiro lugar, precisamos entender do que se trata um proxy reverso. Um proxy reverso é um servidor de rede geralmente instalado para ficar na frente de um servidor Web. Todas as conexões originadas externamente são endereçadas para um dos servidores Web através de um roteamento feito pelo servidor proxy, que pode tratar ele mesmo a requisição ou encaminhar a requisição toda ou parcialmente a um servidor Web, que tratará dela.

Um proxy reverso repassa o tráfego de rede recebido para um ou mais servidores, tornando-o a única interface para as requisições externas. Por exemplo, um proxy reverso pode ser usado para balancear a carga de um cluster de servidores Web. O que é exatamente o oposto de um proxy convencional, que age como um despachante para o tráfego de saída de uma rede, representando as requisições dos clientes internos para os servidores externos à rede a qual o servidor proxy atende.

Configurando

É importante conhecer bem a sua atual infraestrutura de servidores, pois a configuração irá variar de ambiente para ambiente. No caso aqui apresentado, será utilizado o Nginx como proxy reverso para um servidor web, apache.

Para começar, será necessário realizar a instalação o Nginx. No sistema operacional ubuntu 18.04, é possível o fazer executando os seguintes comandos:

sudo apt-get update

sudo apt-get install nginx

 

Caso você seja usuário do docker, dentro do  meu repositório, eu disponibilizei um arquivo para configuração inicial dos serviços. Ele se encontra aqui:

https://github.com/goodeath/absamPosts/tree/master/proxy-reverso.

Basta alterá-lo de maneira que se adeque ao seu ambiente, quer seja de desenvolvimento ou em produção.

Uma vez que o nginx esteja instalado, você pode checar o status do serviço utilizando o seguinte comando:

 service nginx status

O mesmo deve retornar uma mensagem:

 

Ao acessar o navegador e digitar o endereço(domínio ou ip) em que o servidor foi instalado, a tela inicial do nginx deverá estar visível:

Como o Nginx vai ser a porta de entrada para os nossos serviços, é necessário que o mesmo fique alocado na porta 80 (por padrão ele é configurado nessa porta durante a instalação) do seu servidor, que é a mesma porta padrão de acesso às páginas web. Consequentemente seu servidor web, caso esteja no mesmo endereço de ip, entrará em conflito e então precisará ter sua porta de acesso alterada. Basta escolher qualquer porta que não seja destinada a nenhum outro serviço. Você pode conferir o conjunto de portas reservadas neste link:

https://pt.wikipedia.org/wiki/Lista_de_portas_dos_protocolos_TCP_e_UDP.

É aconselhável que, mesmo que os servidores estejam em endereços de ip diferentes, seja alterada a porta, pois torna o seu servidor menos visível para acessos externos.

Vamos fazer com que nosso nginx, faça o redirecionamento para o nosso servidor apache. Abra o arquivo /etc/nginx/conf.d/default.conf e altere o location para que ele se pareça mais com este:

Onde temos http://173.20.0.2 alterar para o endereço de ip do seu servidor. e execute o comando:

service nginx reload

Caso não haja nenhum erro após executar o comando, ao acessar o mesmo endereço, verá que não aparece mais a tela inicial do Nginx mas sim a do seu servidor. Além disso,  é possível modificar as configurações de forma que o Nginx possa servir diretamente os arquivos estáticos como html, css e javascript tornando a resposta mais rápida. Todas as requisições dinâmicas tais como as realizadas para servidores php, python, nodejs, outras apis, podem ser encaminhadas para os seus respectivos servidores, devidamente processadas e retornadas.

Vantagens

  • Como existe uma camada a mais entre o cliente e a sua aplicação, ela adquire uma “camuflagem”, não sendo diretamente visível por quem acessa externamente.
  • É simples de implementar e proporcionar ao usuário segurança de ponta contra ataques a servidores web como DDoS e DoS
  • O Proxy Reverso Nginx ajuda a criar uma carga equilibrada entre vários servidores back-end e proporciona cache para um servidor back-end mais lento
  • O Nginx não exige a configuração de um novo processo para cada nova solicitação da web vinda do cliente. Ao invés disso, a configuração padrão é para incluir apenas um processo de trabalho por CPU
  • Pode agir como um servidor Proxy Reverso para vários protocolos como HTTP, HTTPS, TCP, UDP, SMTP, IMAP e POP3
  • Ele pode operar mais de 10000 conexões com uma pequena pegada de memória. O Nginx pode operar múltiplos servidores da internet através de um único endereço de IP e entregar cada solicitação para o servidor dentro de uma LAN
  • O Nginx é um dos melhores servidores da web para melhorar o desempenho de conteúdo estático. Adicionalmente, pode ser útil servir conteúdo em cache e executar criptografia SSL para diminuir a carga do servidor
  • Pode ser útil na hora de otimizar conteúdos ao comprimi-los para melhorar o tempo de carregamento
  • O Nginx pode executar experimentos aleatórios ou testes A/B sem posicionar códigos JavaScript nas páginas.

Conclusão

Como toda e qualquer outra técnica ela precisa ser aplicada de maneira correta. Dentro de uma aplicação com 100 requisições por minuto e outra com 10 mil, a visibilidade do ganho de performance, é bem diferente, apesar de continuar existindo. Ao querer expor novos serviços, ganhamos uma simplicidade no processo, pois, basta que os mesmos sejam configurados e posteriormente alterar as configurações no proxy reverso de forma que os tornem visíveis, oferecendo assim um controle centralizado e performático.

O que é API? Entenda de maneira fácil

Com os avanços tecnológicos e a velocidade com que as informações circulam atualmente, o ambiente, a sociedade e os negócios mudam constantemente, acompanhando as demandas e variações. Para manter-se, então, competitivo nesse ambiente, para garantir a produtividade das empresas é preciso, cada vez mais, produzir de forma eficiente, com o menor custo possível e de forma integrada.

Porém, em um ambiente tão veloz, a integração das informações e das atividades, consequentemente, pode ser um verdadeiro desafio para alguns negócios. Principalmente, para quem está começando o próprio negócio, é fundamental contar com uma parcela desses investimentos em tecnologia da informação, aplicativos e softwares que tenham a capacidade de garantir a integração entre os indicadores de performance afim de agregar valor as estratégias e ao produto / serviço em si.

Nesse cenário, o uso dos APIs se torna essencial para as empresas. Pensado nisso, nesse artigo, buscamos responder à principais dúvidas em torno do assunto.

O que são APIs?

A sigla API vem do termo em inglês Application Programing Interface, que em tradução livre, significa interface de programação de aplicativos. Ou seja, uma aplicação que permite que um determinado software se comunique ou interaja com algum outro, promovendo uma integração das informações e do ambiente de trabalho, consequentemente, o que pode reduzir o índice de retrabalho ou duplicidade de atividades, por exemplo.

Logo, o objetivo principal para o uso e aplicação de APIs em uma empresa é exatamente aumentar a sua produtividade, a segurança das informações e, dessa forma, aumentar os resultados dos negócios.

Porém, para garantir que todos esses desejos sejam alcançados é preciso ter clareza do real objetivo que se pretende  traçar uma estratégia clara e robusta, que envolva a maior quantidade de variáveis do negócio assim como também tenha acesso a informações e dados de qualidade.

 
Integrando com APIs

A integração dos negócios através das APIs funciona de forma similar a um processo de compra online. Você, enquanto cliente, acessa um determinado site e faz um pedido de compra.

A administração do site ou fornecedor, interpreta o seu pedido e articula os meios de entregá-lo a você.

Esse é o papel das APIs: receber o pedido de um ponto de partida, nesse caso de um cliente, processá-lo de forma adequada, e depois levar o produto até o cliente, como resposta do seu pedido.

As APIs, então, tem a função de receber uma informação ou questionamento e transformá-la em uma resposta. Sua aplicação elimina, por exemplo, a atividade de receber uma determinada informação em uma planilha e ter que transportá-la para outro programa afim de obter a resposta desejada.

Como aumentar a produtividade de empresas com o uso de APIs

Com a descrição do funcionamento dada anteriormente, fica claro como o uso e aplicação de APIs aos negócios é capaz de aumentar a produtividade e alavancar os resultados de uma empresa.

Quando analisamos, porém, uma única atividade (uma única compra online) isso pode não ser muito claro. Contudo, imagine a situação que você more em um condomínio, onde residem outras 150 pessoas. Todos vocês desejam comprar um livro em um mesmo site de compras online. Imagine, agora, que a administração desse site, precise atender todos os esses pedidos de forma simultânea e entregá-los na mesma data. Se o administrador decidir por processar e entregar um pedido de cada vez na ordem com que chegam à sua “mesa” certamente o dono do ultimo pedido terá que esperar bastante.

Porém, se esse administrador utilizado uma API, ele conseguirá ler e programar os 150 pedidos de forma simultânea e, principalmente, instantânea, garantindo a entrega no menor espaço de tempo possível e aumentando, consideravelmente, sua produtividade nas compras online.

Se você não estava cogitando utilizar uma API nos seus negócios para aumentar a produtividade da sua empresa, é melhor pensar com mais carinho a respeito.

Gerenciamento em nuvem: Veja porque o gerenciamento pode poupar muito trabalho!

Podemos imaginar os servidores como um restaurante, podemos escolher um que trabalhe com autoatendimento e que sai bem mais em conta, ou optamos por aqueles com atendimento em mesa, onde recebemos toda ajuda que precisamos para entender os pratos da casa.

Por acaso você já teve a experiência um tanto quanto frustrante, de entrar em um restaurante self service, montar o seu prato com as opções que estavam disponíveis e só depois descobrir que eles estão servindo algo que você realmente queria comer e acaba não tendo nada haver com o prato que você montou? Pois é disso que se trata, nos restaurantes self service os preços saem bem mais em conta, mas em um restaurante que possui atendimento dos garçons você não passaria por este tipo de situação.

Mas afinal de contas, o que tudo isso têm a ver com com os servidores dedicados? Vamos entender melhor a seguir.

O que é um servidor dedicado em nuvem?

Um servidor é basicamente um computador com processadores, bancos de memórias, portas para comunicação e sistema para armazenagem de dados. Eles fornecem serviços à várias outras máquinas através da execução de programas e protocolos. A principal diferença de um servidor para um computador normal, é que os servidores possuem componentes fabricados especificamente para trabalhar de forma ininterrupta ou seja eles ficam 24 horas online.

Os servidores na nuvem podem ser compartilhados entre muitos clientes de modo que seus vários recursos sejam distribuídos, porem a tecnologia em nuvem mesmo sendo compartilhada entre vários clientes ela não interfere em nada na qualidade do servidor, ou seja apesar de rodar em um ambiente virtual  ela conta com a mesma tecnologia de um servidor o 100% dedicado.

Mesmo rodando em ambiente compartilhado ele é 100% dedicado ao cliente e neste caso, os recursos do servidor serão utilizados exclusivamente por ele não existindo restrição de recursos , isso significa que a RAM, CPU, HD e largura de banda serão usados de acordo com a vontade do cliente.

você têm pleno acesso ao sistema e pode personalizar o servidor como desejar, inclusive o software.

Qual a vantagem de contratar a nuvem?

Para explicar melhor a finalidade dos servidores dedicados, usaremos um exemplo muito simples, vamos dizer que você fará uma viagem com um amigo e vocês decidem ir de ônibus, não existe a mínima necessidade de alugar um ônibus apenas para vocês dois, seria um desperdício de dinheiro, uma vez que existe uma opção muito mais barata. Mas e se, ao invés do seu amigo, você estiver fazendo uma viagem em família. Com tantas pessoas é muito mais benéfico alugar um ônibus particular, não é verdade?

O mesmo princípio se aplica aos servidores, se você possui uma empresa ou site pequeno, que ainda está começando e não têm muitos acessos, uma hospedagem de site é uma opção muito mais barata e vai dar conta do recado. Mas se você possui uma grande empresa ou e-commerce de sucesso, um servidor em nuvem vai evitar problemas de performance e erros, além de aumentar a segurança.

Servidor dedicado com gerenciamento básico

Então, com esse tipo de gerenciamento, você fica responsável pelo gerenciamento do servidor e precisa cuidar das atualizações, correções, configurações e segurança. Possui apenas suporte apenas em emergências, como defeitos no hardware e falhas no sistema operacional. Esta opção de gerenciamento é mais barata, entretanto, ela exige um alto nível de conhecimento técnico e preparação da equipe.

Servidor dedicado com gerenciamento avançado: Motorista particular

Com esse gerenciamento, quem ficará responsável por toda a manutenção e correções do servidor é a empresa contratada. Apesar de ser um serviço adicional, o gerenciamento avançado vai te economizar tempo e trabalho, e pode até mesmo economizar recursos caso você não disponha de uma equipe especializada a sua disposição ou não tenha muito experiência com servidores.

Qual delas é a melhor opção?

Isso é algo que realmente não podemos dizer, uma vez que as duas opções possuem vantagens e podem auxiliar diversos modelos de negócios. Para decidir qual escolher, você deve avaliar qual é a necessidade do seu negócio.

Você poderá determinar se um servidor dedicado é necessário para o seu negócio, ao estudar o crescimento da audiência e utilização dos recursos.

Para mais dúvidas acesse: http://www.absam.io

Saiba como os modelos de startups tem mudado o mercado!

Nos últimos anos, o mercado, de uma forma geral, sofreu grandes e significativas mudanças, principalmente pelos avanços tecnológicos e as diversas formas de comunicação e interação que foram surgindo. Com todas essas mudanças e modernizações, os modelos de startups ganharam espaço e conquistaram boa parte do mercado e dos investimentos.

Para se manter competitivo, portanto, é preciso entender o que são, como funcionam e quais são os diferenciais dos modelos de startups que estão conquistando e mudando o mercado cada vez mais.

Estar antenado, atualizado e em sintonia com essas empresas se tornou vital no mercado atual, tanto para o empreendedor quanto para o funcionário das empresas tradicionais.

O que é startup?

Em tradução livre, a palavra em inglês expressa ordem e que dizer “comece”. E, sua utilização faz todo o sentido em algumas empresas e modelos de negócios, desde que seja corretamente empregada.

De forma resumida, um startup é uma empresa, normalmente de base tecnológica, que tenha um modelo de negócio que seja escalável, trabalhando com um produto ou serviço ainda incerto no mercado.

Bons exemplos de startups de sucesso são Google, Facebook, Instagram e Uber. Empresas com base tecnológica que, quando entraram no mercado, não tinham uma previsão de como seria a aderência, permanência e sustentabilidade de seus produtos, uma vez que não havia dados históricos ou outras empresas que pudessem comparar ao modelo projeto.

No entanto, vale ressaltar que startup não se aplica somente à modelos de negócios que ofereçam produtos e serviços ainda não inventados ou apresentados. Uma inovação ou melhoria pode tornar um negócio já conhecido em um modelo de startup escalável. Como aconteceu, por exemplo, com a Amazon, que teve como objetivo otimizar os processos de compra online, reinventando o mercado.

Os modelos de startups, de forma geral, são empresas que estão começando e trabalham, principalmente, com suposições e hipóteses, pois não possuem dados de comparação ou previsão.

Startups de sucesso

Ao contrário do que muitos acreditam, modelos de startups não são eternos, mas são apenas um modelo inicial de um projeto, produto ou serviço. As startups, como as já citadas anteriormente, buscam, principalmente, a presença e consolidação de mercado, tornando-se empresas de crescimento exponencial.

Além das empresas já citadas, existem muitos modelos de startups que se tornaram verdadeiros sucessos mundiais. Veja três delas a seguir:

⦁ 99 taxi
A empresa carioca demorou um pouco para ganhar visibilidade no mercado e de cara já tinha como concorrente a própria Uber. Contudo, atualmente seu constante crescimento à coloca entre os modelos de startups mais bem-sucedidas do país.

⦁ Xiaomi
Uma inovação dentro de um mercado cada vez mais competitivo, o principal produto oferecido pela empresa é o smartphone. Com custo consideravelmente mais baixos que os líderes de mercado, os produtos garantem a qualidade, design e alta tecnologia.

Airbnb
Mudou bastante o mercado e o modelo de hotelaria conhecido até então, além de tornar possível a geração de renda, independente da estrutura oferecida. Ou seja, não precisa ser um hotel para ganhar dinheiro hospedando pessoas e viajantes.

Como trabalhar em startups

Se você é profissional da área de tecnologia, já tem metade do caminho percorrido. De uma forma geral, a maioria das pessoas que trabalham com startups tem alto conhecimento das novas tecnologias e conseguem trabalhar sobre pressão e em um ambiente de alto risco.

Contudo, a grande vantagem é que a maioria das startups conseguem ser administradas, promovendo os resultados esperados fora do modelo de trabalho tradicional. Afinal, o foco desse modelo de negócio é o resultado e o crescimento acelerado da empresa

Por isso, para trabalhar com modelos de startups é preciso seguir as principais características do negócio em si: flexibilidade, criatividade, adaptabilidade, comunicação e, principalmente, foco em resultados.

O Fim das Curtidas do Instagram! Será Positivo ou Negativo?

As redes sociais, de uma forma geral, ganharam um papel muito importante na vida das pessoas, principalmente nas gerações mais jovens. Porém, até onde essa relação está sendo saudável é o que mais incomoda especialistas e, principalmente, profissionais da saúde. A quantidade de curtidas do Instagram, por exemplo, virou sinônimo de sucesso, beleza e status social.

A busca pela imagem perfeita somada à curiosidade de acompanhar e saber o resultado de outras pessoas tem feito com que milhares de pessoas arrisquem suas carreiras, atividades e saúde nas redes sociais. As imagens publicadas, muitas vezes editadas, para garantir as curtidas do Instagram tornaram-se um troféu.

Por muito tempo, os administradores dessas plataformas demonstraram pouca preocupação com essas reações e relações com seus produtos. Porém, recentemente as empresas notaram que a busca incessante por curtidas no Instagram e a ressignificação de sentimentos relacionados a isso tem prejudicado o convívio social e gerado diversos problemas e casos graves de bullying, ansiedade, depressão, distúrbios alimentares, distúrbios do sono e uma série de outros problemas sociais.

Em nota, um representante do Instagram afirmou que a empresa não compactua com a ideia de ter criado uma competição, a nível mundial, entre as pessoas. A ideia inicial da plataforma era apenas de promover uma melhor interação entre as pessoas. Logo, eles acreditam que, ao declarar o fim das curtidas do Instagram estão reduzindo esse sentimento competitivo e promovendo o que realmente importa nesse ambiente: interesse pelo conteúdo.

As curtidas do Instagram vão sumir?

Ao contrário do que algumas pessoas acreditaram, as curtidas não irão sumir das fotos, porém não serão mais exibidas para os usuários. A única pessoa autorizada a verificar a quantidade de curtidas em uma determinada postagem é o usuário que a postou. O mesmo vale para as visualizações dos vídeos e as postagens no Ig TV.

A falta de divulgação do alcance das postagens obriga aos usuários a postar conteúdos, de fato, relevantes ao público, para que continuem no radar e nas buscas das pessoas. Porém, isso não garante a redução dos outros problemas sociais relacionados a essa relação entre as pessoas e as redes sociais.

Quem se beneficia com isso?

Ainda existe bastante especulação em torno dessas alterações das configurações das curtidas do Instagram. Muitos acreditam que na verdade se trata de uma estratégia com o objetivo de gerar cobranças aos usuários influenciadores e marcas futuramente.

Outros acreditam que a atualização da plataforma foi feita exatamente para impulsionar a busca por qualidade e relevância dos conteúdos postados, uma vez que, nos últimos anos, algumas pessoas se beneficiaram utilizando de recursos pouco legítimos e nada orgânicos para ganhar visibilidade nas redes.

Há ainda quem acredite que se trata de uma estratégia de bloquear as ações de hackers e o comércio clandestino de curtidas do Instagram, amigos e seguidores que alguns usuários pagavam para obter mais lucros e respostas dos negócios através da plataforma.

A verdade é que o resultado pode e tende a gerar ganhos em todos esses setores, porém assim como as pessoas descobriram formas de driblar os sistemas de segurança anteriores, podemos acreditar que em breve surgirão novas formas de driblar essa modificação também.

Outro ponto importante a ser considerado é que, de fato, as curtidas e visualizações nos conteúdos mostravam um interesse crescente por uma criação da realidade que, muitas vezes, podem ser mentirosas e enganosas, causando muitos problemas para alguns usuários.

Como você está vendo essa mudança? Curtiu ou não curtiu?

Entenda o que é Big Data e como ela pode ajudar sua empresa!

O mundo já passou por três grandes revoluções indústrias e, atualmente vivemos a quarta revolução industrial, totalmente conectada, veloz e com uma verdadeira avalanche de informações, úteis e inúteis, durante todo o dia. Todas as revoluções foram necessária para acompanharam as mudanças comportamentais da sociedade atendendo às exigências e promovendo uma melhoria na forma de vivermos e de vermos o mundo.

Para se manter no mercado, as empresas fora do setor de tecnologia precisam acompanhar as mudanças, revoluções e estilo de vida da sociedade. Hoje, entender e utilizar bem os recursos tecnológicos, como Big data, é essencial para toda e qualquer empresa atuante no mercado, independente do setor em que está inserida.

Mas, afinal, o que é Big data?

A expressão em inglês significa, em tradução livre, dado grande. O que faz bastante sentido no mundo atual quando percebemos e destacamos a quantidade de dados e informações que recebemos, transmitimos e compartilhamos diariamente.

Pode-se entender, então, que nesse caso, a palavra big, que traduzida literalmente significa grande, pode ser entendida no sentido de quantidade e volume de dados e informações.

Porém, receber ou ter disponível uma determinada informação não é suficiente, é preciso entender para que serve e trabalhar de forma organizada e eficiente para transformar um simples dado em uma informação valiosa. Quando bem trabalhado e aplicado, um dado pode se tornar um importante ativo de uma empresa e gerar, ou ajudar a gerar, resultados melhores.

Logo, podemos dizer que Big Data são informações que atendem ao que os profissionais da área de tecnologia entendem como 5 Vs:

  •  Volume: uma grande quantidade de dados e informações que devem e precisam ser trabalhadas para gerar resultado;
  •  Variedade: esses dados e informações podem ter origem distintas, principalmente, devido a grande quantidade de fontes de informação;
  •  Velocidade: dados rápidos e tempestivos que promovendo agilidade de decisões;
  • Veracidade: muitos dados são gerados a todo momento, várias são certos e outros tantos são errados. Saber diferenciar um do outro é fundamental;
  •  Valor: o dado ou informação deve gerar algum valor relevante ao negócio, caso contrário torna-se apenas um número ou título.

Onde está o Big data nas empresas?

Big data pode entrar e contribuir para os resultados das empresas de formas diferentes, de acordo com os objetivos, missão, visão, valores e planejamento estratégico da organização.

Das suas mais variadas aplicações possíveis de serem realizadas, destacam as seguintes:

1. Mercado.
O planejamento estratégico das empresas devem estar alinhados com o mercado correspondente. Para isso, as empresas, normalmente, conduzem pesquisas de mercado para verificar os resultados, entender as expectativas e gerenciar a estratégia escolhida.

2. Tomada de decisão.
Com resultados internos e externos e uma grande variedade de dados e informações é possível tomar decisões mais assertivas, reduzindo o risco de insucesso das ações escolhidas.

3. Pesquisa e desenvolvimento.
As pesquisas de qualidade, retorno financeiro, previsão de demanda podem ser facilmente conduzidas, gerando informações confiáveis e planos de ação bem estruturados para os próximos períodos. Além disso, acessar e entender dados com velocidade promove maiores desenvolvimentos e avanços para as organizações que os utilizam de forma correta.

Logo, para se manter no mercado de forma competitiva e relevante, é muito importante conhecer como funciona e a aplicabilidade do Big data dentro da sua organização.

Industria 4.0 x Internet das Coisas

Os avanços tecnológicos dos últimos anos mudaram completamente a nossa percepção sobre diversos assuntos e, principalmente, sobre o nosso trabalho e nosso jeito de trabalhar e produzir. O conceito de indústria 4.0 chegou, então, como mais uma inovação e melhoria para aperfeiçoar e desenvolver nosso ambiente de trabalho e, também, os nossos resultados.

Se você ainda não ouviu falar ou se já ouviu, mas ainda não domina ou sequer entende do que se trata a indústria 4.0 é bom começar a se atualizar urgentemente para não ficar para trás no mercado de trabalho.

O que é a indústria 4.0?

De forma bastante resumida, a indústria 4.0 corresponde a mais recente revolução industrial, ou seja, a quarta revolução industrial. Assim como os conceitos de indústria 1.0, 2.0 e 3.0 correspondem, respectivamente, à primeira, segunda e terceira revolução industrial.

Assim como as revoluções industriais anteriores, a indústria 4.0 também prevê uma mudança tecnológica mundial. Enquanto a indústria 1.0, mudou o processo de fabricação com a entrada de máquinas e alterações nos modelos de fabricação, a indústria 2.0 tem como característica marcante a entrada dos meios de comunicação, exploração petróleo e o desenvolvimento de metodologias de gestão que visavam aumento de produtividade e redução de custos. Já a indústria 3.0 pode ser destaca pela automatização de alguns processos industriais e o desenvolvimento de tecnologias que substituíram a mão de obra por equipamentos inteligentes, como computadores e comandos.

A indústria 4.0, por sua vez, engloba o que há de mais moderno em tecnologia, otimizando ainda mais os processos de produção, aumentando a conectividade dos equipamentos e reduzindo, principalmente, o tempo e o custo dos processos.

Principais características e vantagens da indústria 4.0

Conforme dito anteriormente, o conceito de indústria 4.0 visa, principalmente, o aumento da conectividade e da tecnologia dos equipamentos. Um dos principais atrativos dessa revolução é a utilização de máquinas cada vez mais inteligentes e capazes de substituir a mão de obra humana dentro das fábricas.

Conceitos como “internet das coisas”, conectividade, interação e velocidade são comuns quando falamos sobre a indústria 4.0. Isso porque, a revolução prevê um ambiente de produção operado por máquinas e robores, capazes de tomar decisões conforme o cenário e o comando a que está submetido.

Algumas pessoas, contudo, ainda se assustam com essa tecnologia, porém vale ressaltar que tais modificações promovem:

  • Redução no risco e na ocorrência de acidentes
  • Maior previsão de falhas
  • Mais planejamento e controle de produção,
  • Redução dos custos operacionais no médio e longo prazo.

Como se preparar para a indústria 4.0?

Não se desespere, você não precisa ser um mestre da tecnologia e computação para conseguir se preparar e se manter no mercado com as inovações da indústria 4.0. Porém, é fundamental que você invista no seu desenvolvimento pessoal e profissional e se mantenha atualizado quanto às mudanças tecnológicas.

Se você já está no mercado de trabalho, pesquise sobre as últimas tecnologias desenvolvidas para o seu setor. Em alguns casos, é possível encontrar cursos gratuitos pela internet, de forma fácil e rápida.

Mas, se você se encontra fora do mercado de trabalho, fique calmo. Aproveite o tempo que tiver para estudar as tecnologias de uma forma mais genérica e abrangente e escolha aquela com a qual mais se identificar ou mais perceber demanda do mercado. Além de se manter atualizado, você aumentará a sua empregabilidade.

A verdade é que a indústria 4.0 está mudando completamente o mercado de trabalho e quem não acompanhar essas mudanças dificilmente conseguirá se manter nele por muito tempo.

Sair da versão mobile