Shared posts

26 Jul 14:41

Palestra: Resiliência com microservices: cache distribuído, feedback e tuning na Globo.com

by Gustavo Pantuza

Com microservices e sistemas distribuídos, problemas como resiliência, tolerância a falhas, concorrência e consistência costumam aumentar de patamar em complexidade. Não é diferente em vários sistemas distribuídos na Globo.com. Nesta palestra apresentamos nossa experiência ao distribuir aplicações em microservices, com enfoque especial em tolerância a falhas.

By Gustavo Pantuza
17 Jul 23:03

Por que nenhum dos youtubers de sucesso no Brasil é negro?

by Joe

HIAUEHIAEUHAEIUH AI as pessoa problematizam cada coisa…

O cidadão negro está ocupado demais lidando com estereótipos, sem falar na banda de pagode, o cara não pode simplesmente abandonar né…

Mas não se preocupem, já que não tem nenhum representante da raça nessa lista, DEIXEM COMIGO, se tiver que ser youtuber, então serei, mesmo odiando youtubers como um todo.

Sério, vou fazer uns vídeos pra vocês verem como eu me sairia como youtuber. Aguardem.

Do leitor Luan Nascimento.

17 Jul 20:09

New – Target Tracking Policies for EC2 Auto Scaling

by Jeff Barr

I recently told you about DynamoDB Auto Scaling and showed you how it uses multiple CloudWatch Alarms to automate capacity management for DynamoDB tables. Behind the scenes, this feature makes use of a more general Application Auto Scaling model that we plan to put to use across several different AWS services over time.

The new Auto Scaling model includes an important new feature that we call target tracking. When you create an Auto Scaling policy that makes use of target tracking, you choose a target value for a particular CloudWatch metric. Auto Scaling then turns the appropriate knob (so to speak) to drive the metric toward the target, while also adjusting the relevant CloudWatch Alarms. Specifying your desired target, in whatever metrics-driven units make sense for your application, is generally easier and more direct than setting up ranges and thresholds manually using the original step scaling policy type. However, you can use target tracking in conjunction with step scaling in order to implement an advanced scaling strategy. For example, you could use target tracking for scale-out operations and step scaling for scale-in.

Now for EC2
Today we are adding target tracking support to EC2 Auto Scaling. You can now create scaling policies that are driven by application load balancer request counts, CPU load, network traffic, or a custom metric (the Request Count per Target metric is new, and is also part of today’s launch):

These metrics share an important property: adding additional EC2 instances will (with no changes in overall load) drive the metric down, and vice versa.

To create an Auto Scaling Group that makes use of target tracking, you simply enter a name for the policy, choose a metric, and set the desired target value:

You have the option to disable the scale-in side of the policy. If you do this, you can scale-in manually or use a separate policy.

You can create target tracking policies using the AWS Management Console, AWS Command Line Interface (CLI), or the AWS SDKs.

Here are a couple of things to keep in mind as you look forward to using target tracking:

  • You can track more than one target in a single Auto Scaling Group as long as each one references a distinct metric. Scaling will always choose the policy that drives the highest capacity.
  • Scaling will not take place if the metric has insufficient data.
  • Auto Scaling compensates for rapid, transient fluctuations in the metrics, and strives to minimize corresponding fluctuations in capacity.
  • You can set up target tracking for a custom metric through the Auto Scaling API or the AWS Command Line Interface (CLI).
  • In most cases you should elect to scale on metrics that are published with 1-minute frequency (also known as detailed monitoring). Using 5-minute metrics as the basis for scaling will result in a slower response time.

Now Available
This new feature is available now and you can start using it today at no extra charge. To learn more, read about Target Tracking Scaling in the Auto Scaling User Guide.

Jeff;

11 Jul 23:06

O publicitário que precisa de ideias

by Joe

As vezes, onde você menos espera, a internet surpreende. O Yahoo Respostas já foi o grande fornecedor de informações de uma geração inteira. Hoje, apesar de morto, ainda consegue mitar de leve…

11 Jul 17:44

CircleCI 2.0 General Availability

CircleCI 2.0 is a completely updated CI/CD platform that starts every run with a clean image which is automatically provisioned just-in-time for Linux and Android jobs on the hosted CircleCI application.

Configuration moves into the code in 2.0, so every developer can configure jobs directly in their working branch, teams can try new things without the risk of slowing anyone else down, and business leaders have the ability to operate large global teams with minimal overhead. CircleCI 2.0 prevents you from writing clean-up scripts because every run starts in the same state, eliminating the risk of polluting a test database or leaving files in places that cause problems for the next run.

The CircleCI 2.0 platform includes significant performance, stability, and reliability improvements along with the following new features:

  • First-class Docker Support: Choose any image to run your job steps, customizable on a per-job basis on a particular Git branch. Speed up your run times with advanced layer caching. Build docker images with full docker CLI support and full support for docker compose. Support for all programming languages and custom environments that offer more predictable output. See Specifying Container Images for instructions.

  • Workflows: Orchestrate jobs and steps with great flexibility using a simple set of new keys in your configuration. Share temporary files between jobs with workspaces for fan-in, fan-out, parallel, and sequential runs. Hold a workflow for a manual approval and restart a workflow from a failed job. See Orchestrating Workflows for details.

  • Resource Allocation: Configure your CPU and RAM needs on a per-job basis at the branch level, see the resource_class documentation for instructions. Paid accounts may request this feature from their Customer Success Manager, non-paid users may request to get started by sending email to support@circleci.com.

  • Insights: Access interactive charts and analyses in seconds. Visualize trends in your build history to identify and pinpoint bottlenecks. Understand all of your builds at a glance. View the builds that fail most, so you can fix the slowest tests to improve efficiency. See the Collecting Test Metadata documentation for information.

  • Debugging with SSH and CLI: Perform local job runs, configuration validation and SSH in to builds for access to log files and debugging running processes. See Using the CLI documentation to learn about running local jobs and refer to Debugging Jobs over SSH for SSH instructions.

  • Parallelism: Automatic provisioning of containers as they are freed without waiting for other jobs to finish. See the Parallel Job Execution documentation for examples.

  • Advanced Caching: Speed up builds by caching files from run to run using keys that are easy to control with granular caching options for cache save and restore points throughout your jobs. Cache any files from run to run using keys you can control, see the Caching Dependencies documentation for strategies and steps.

  • Demonstration Applications: See the Language Guides and Demo Repos to learn CircleCI configuration by example for applications written in Go, Javascript, PHP, Python (Django and Flask), Ruby on Rails, Java, Elixir, and Clojure.

  • New Documentation: New and restructured documentation including an Overview, Hello World, Sample 2.0 config.yml File, simplified instructions for Migrating from 1.0 to 2.0, plus examples for Configuring Databases and Creating Custom Docker Images. Refer to the Migration FAQ for common questions and known limitations.

10 Jul 18:00

Bug de uma década para escalação de privilégios afeta sistemas Unix/Linux/BSD e outros

by Diego Boot

Pesquisadores de segurança descobriram mais uma vulnerabilidade com uma década de idade em vários sistemas operacionais baseados em UNIX, incluindo Linux, OpenBSD, NetBSD, FreeBSD e Solaris que podem ser explorados pelos atacante afim de escalar seus privilégios como root, potencialmente levando ao controle total do sistema.

Controlada como Stack Clash, a vulnerabilidade (CVE-2017-1000364) foi descoberta na forma como a memória estava sendo alocada no volume para binários do espaço de usuário.

Explorando o Bug Stack Clash para ganhar acesso root

A explicação é simples: cada programa usa uma região especial da memória chamada stack, que é usada para armazenar dados de curto prazo. Ele se expande e reduz automaticamente durante a execução de qualquer programa, dependendo das necessidades desse programa.

De acordo com pesquisadores da Qualys, empresa que descobriu e relatou esse bug, um programa malicioso pode tentar usar mais espaço de memória do que o padrão disponível no stack, o que pode transbordar a memória, fazendo com que ela venha a colidir ou entre em choque com regiões de memória nas proximidades sobrescrevendo seu conteúdo.

Além disso, exploit Stack Clash também pode ignorar a stack guard-page, uma proteção de gerenciamento de memória introduzida em 2010, depois que este problema foi explorado em 2005 e 2010.

“Infelizmente, uma stack guard-page de alguns kilobytes é insuficiente: se o apontamento do stack ‘saltar‘ sobre a guard-page — ou seja, caso ele se mova da stack para outra região de memória sem acessar a guard-page — em seguida, nenhuma exceção page-fault [falha de página] é sinalizada e a stack se estende para a outra região de memória”, diz o comunicado publicado pela Qualys.

A vulnerabilidade de Stack Clash requer acesso local ao sistema vulnerável para exploração, mas os pesquisadores disseram que ela poderia ser explorada remotamente, dependendo das aplicações.

Por exemplo, um cliente mal-intencionado com uma conta de privilégio baixo, em uma empresa de hospedagem Web, executando o sistema vulnerável, poderia explorar essa vulnerabilidade para obter controle sobre outros sites executados no mesmo servidor, bem como obter acesso root remotamente e executar códigos maliciosos diretamente.

Dias atrás, relatamos que como uma empresa de hospedagem Web foi vítima de um ataque semelhante usado para infectar servidores Linux com um malware ransomware, fazendo com que a empresa a pagar mais de $1 milhão em resgate para obter de volta seus arquivos.

Os atacantes também podem combinar o bug Stack Clash com outras vulnerabilidades críticas, como a vulnerabilidade Sudo recentemente corrigida e, em seguida, executar código arbitrário com os privilégios mais altos, disse os pesquisadores Qualys.

7 exemplos de prova de conceito

Os pesquisadores disseram que foram capazes de desenvolver sete façanhas e sete provas de conceito (PoCs) para a vulnerabilidade de Stack Clash, que funcionam em Linux, OpenBSD, NetBSD, FreeBSD e Solaris em processadores x86, 32-bit e 64-bit.

No entanto, as façanhas e provas de conceito ainda não foram publicadas, dando aos usuários e admins tempo suficiente para que possam corrigir a vulnerabilidade em seus sistemas antes da publicação.

O PoCs segue quatro etapas, que incluem ‘Clashing‘, a stack com outra região de memória, executando o apontamento da stack para inicialização, ‘Jumping‘, sobre a stack guard-page e ‘Smashing‘, a stack ou outras regiões de memória.

Dentre as distros e sistemas afetados pela Stack Clash estão:

  • Sudo no Debian, Ubuntu e CentOS;
  • ld.so e a maioria dos binários SUID-root no Debian, Ubuntu, Fedora e CentOS;
  • Exim no Debian;
  • rsh no Solaris 11 e superiores;
  • Red Hat Enterprise.

A empresa também acredita que outros sistemas operacionais, incluindo o Windows da Microsoft, o OS X/MacOS da Apple e o sistema Android da Google que é baseado no Linux também poderiam ser vulneráveis ao Stack Clash, embora ainda não tenha sido esteja confirmado.

Patch disponível, atualize agora

Muitos fornecedores afetados já emitiram patches de segurança para o bug, portanto, usuários e administradores são aconselhados a instalar os patches o mais breve possível.

Caso não tenha recebido automaticamente os patches de segurança, é possível aplicar limites para stack manualmente a aplicativos dos usuários locais. Simplesmente, defina a RLIMIT STACK e RLIMIT_AS de usuários locais e serviços remotos para um valor baixo.

Também é recomendável recompilar todos os códigos userland (ld.so, bibliotecas, binários) com o recurso fstack-check. Isso impediria que o apontamento da stack se mova para outra região de memória sem acessar a stack guard-page e mataria o Stack Clash.

09 Jul 15:08

Pai imita poses da filha no instagram e ganha mais seguidores que ela

by Gislaine Lima

Pai imita poses da filha e faz sucesso na internet!

O americano, Chris Martin, criou uma conta no instagram com intuito de trollar a filha adolescente que estava postando fotos sensuais na rede. A ideia surgiu em cumplicidade com a mãe, e o que era para ser uma zoeira em família, acabou viralizando.

Segundo o paizão, ele não estava gostando nenhum pouco das fotos que a filha estava publicando na internet e preferiu imitá-la, ao invés de chamar atenção.

A atitude didática do pai se espalhou pela internet e hoje ele possui o dobro de seguidores que mais seguidores do que a filha (150mil /75mil).

Confira as fotos:

Pai imita poses da filha

Pai imita poses da filha

Pai imita poses da filha

Pai imita poses da filha

Pai imita poses da filha

Pai imita poses da filha

Pai imita poses da filha

Pai imita poses da filha

Pai imita poses da filha

Pai imita poses da filha

Pai imita poses da filha

Pai imita poses da filha

Pai imita poses da filha

hahahahahahahaha

Tragam um oscar para esse homem.

Pai imita poses da filha

O post Pai imita poses da filha no instagram e ganha mais seguidores que ela apareceu primeiro em Blog Insôônia.

09 Jul 15:01

Opinião Sobre A Legalização

Opinião Sobre A Legalização

Enquanto o povo tá pensando em assuntos menores, ninguém percebeu o drama do Thiago HaUAShUSAhAUSHASUHAS

05 Jul 15:05

Palestra: Infraestrutura de dados no Nubank: Criando um ferramental para promover uma cultura data-driven

by Alessandro Andrioni, Andre Midea

Vamos entrar em detalhes em como construímos nossa plataforma com Datomic, Spark e Mesos na AWS de forma extensível, facilitando a criação de novos datasets por analistas, engenheiros e cientistas de dados

By Alessandro Andrioni
05 Jul 14:49

Criando um HTTP Proxy seguro utilizando SSH e o Firefox

by noreply@blogger.com (Matheus Fidelis)

A dica de hoje é bem interessante. Na verdade é mais um dos life hacks que podem ser executados através de uma conexão SSH. Há bastante tempo eu fiz um post exemplificando como criar um simples túnel utilizando SSH para acessar recursos bloqueados na rede local, esse post aqui, recomendo que leia ele também. Hoje vamos criar um túnel HTTP utilizando Socks, para que seja possível acessar a internet a partir do seu navegador através do seu servidor SSH. Coisas muito úteis pra quando se estuda em uma faculdade com filtro de internet.

Para executar o processo, será necessário um servidor com SSH previamente configurado. Eu tenho uma instância na AWS dedicada pra isso que eu só paro nas férias (rs), mas pode ser qualquer máquina. Devemos realizar uma conexão SSH  silenciosa nessa máquina em Backgroud apontando uma porta para escutar nossa conexão. É através dela que vamos fazer nosso tunelamento HTTP.

$ ssh matheus@123.312.12.21 -D 7777 -f -C -q -N

Onde:

-D 8080 : A porta que a conexão SSH será criada.
-f : Faz o processo rodar em Backgroud. Parâmetro opcional
-C : Habilita a compressão SSH. Legal para internet lenta, tipo faculdade.
-q : Quiet mode.
-N : Parâmetro que diz que nenhum comando será enviado nessa sessão. (O -f solicita isso)

Configuração do Firefox

No firefox, vá nas opções de REDE

Selecione:

  • Configuração manual de proxy
  • APENAS em SOCKS coloque o endereço de localhost 127.0.0.1 e a porta que definimos que iremos escutar, no caso 7777
  • Selecione a opção "SOCKS v5"
  • Selecione a opção "Proxy DNS ao usar SOCKES v5"

Feche as configurações e acesse algum site que te entregue seu IP atual de dois navegadores, o nosso Firefox de Proxy e o Chrome por exemplo. Dica

Firefox de Proxy

Navegador com IP normal


Espero ter ajudado :)


04 Jul 19:09

5 inovações médicas criadas para o espaço que são usadas na Terra

by Marina Demartini

São Paulo – Os astronautas da Estação Espacial Internacional podem ter encontrado uma maneira de acelerar o processo de criação de medicamentos. Desde os primeiros meses deste ano, eles estão cultivando cristais no espaço com o objetivo de estudar as estruturas de proteínas necessárias para o desenvolvimento de drogas específicas.

Estudos e tecnologias desenvolvidas pelos moradores da Estação não são novidade. Já no século passado, astronautas e cientistas da Nasa e de outras agências espaciais pesquisam e criam soluções que facilitam a vida no espaço e que, consequentemente, ajudam os cidadãos na Terra.

Confira algumas delas a seguir.

Termômetro corporal

Uma tecnologia criada para medir a temperatura de planetas e estrelas foi usada como base para um termômetro usado atualmente por hospitais e consultórios médicos. O aparelho, que começou a ser comercializado em 1991, surgiu a partir de uma parceria entre a empresa norte-americana Diatek e o Laboratório de Propulsão a Jato da Nasa.

Chamado de Modelo 7000, o termômetro serve para fornecer leituras de temperaturas de pessoas de maneira extremamente rápida (questão de segundos) e precisa. Porém, antes de chegar a Terra, a tecnologia usada para desenvolver o aparelho já era utilizada pela Nasa para medir as temperaturas de estrelas e planetas a partir da radiação infravermelha emitida por eles.

termômetro modelo 7000 da Nasa

Rastreadores de olhos utilizados na cirurgia ocular a laser

Quando você olha para um ponto fixo enquanto inclina a cabeça, seus olhos se mantêm firmes automaticamente – e isso é possível devido à gravidade.

Para investigar como a microgravidade do espaço afeta a visão dos astronautas, cientistas fizeram uma série de experimentos que durou cerca de dez anos. Eles mediram os movimentos oculares dos passageiros da Estação Espacial com a ajuda de um dispositivo criado especificamente para esse rastreamento.

Paralelamente ao seu uso no espaço, os pesquisadores notaram que o aparelho poderia ser utilizado na Terra. Isso porque os movimentos automáticos oculares de pacientes afetam o trabalho do médico em processos cirúrgicos a laser. Assim, os rastreadores desenvolvidos foram essenciais para o posicionamento correto do raio laser em cirurgias corretivas de visão.

Detecção de lesões e câncer usando imagens

Na década de 60, a Nasa queria chegar à Lua e, para isso, a agência espacial americana desenvolveu a tecnologia usada no processamento de imagens digitais. Com esse procedimento, os cientistas da instituição conseguiam transformar sinais analógicos em sinais digitais para a criação de imagens digitais e nítidas. Dessa forma, foi possível encontrar o melhor local para a nave Apollo pousar em solo lunar.

Foi graças à essa inovação que, hoje em dia, temos aparelhos capazes de entregar diagnósticos mais precisos. As aplicações médicas derivadas dessa tecnologia vão desde o raio-x e a tomografia computadorizada até ressonância magnética nuclear e angiografia cerebral.

Robôs que removem tumores cerebrais

Enviado em 1981, no final da Guerra Fria, a bordo do ônibus espacial Columbia, o Canadarm2 é um braço robótico que foi usado para muitas tarefas fora Estação Espacial Internacional. Desse modo, os astronautas não precisavam completar caminhadas espaciais arriscadas.

A tecnologia usada para desenvolver o braço robótico foi recentemente utilizada para a criação de outro braço – só que dessa vez, ele deu uma “mãozinha” para os moradores da Terra. Chamado de neuroArm, o aparelho fabricado pela Universidade de Calgary, no Canadá, realiza cirurgias de precisão, como a remoção de tumores cerebrais, dentro de aparelhos de ressonância magnética.

Braço robótico Canadarm2

Aparelhos odontológicos “invisíveis”

Esta inovação é para quem sofreu na adolescência com os aparelhos odontológicos. Em 1987, a empresa Unitek colocou no mercado brackets (aqueles quadradinhos dos aparelhos) praticamente transparentes. Eles são feitos de alumínio policristalino translúcido, um tipo de cerâmica altamente resistente desenvolvida em laboratórios de engenharia aeroespacial.

Esse material foi criado, primeiramente, para dispositivos de infravermelho, que necessitavam na época de uma estrutura translúcida e extremamente resistente. Atualmente, os aparelhos feitos a partir do alumínio policristalino translúcido são um dos produtos ortodônticos mais vendidos do planeta.

Veja também

Arquivado em:CIÊNCIA
28 Jun 00:55

Saiba como instalar o Microsoft SQL Server 2017 em qualquer distribuição Linux usando container Docker

by Ricardo Ferreira

Meados do ano passado, a Microsoft divulgou que, em 2017, uma versão do seu SGBD, MS SQL Server, para Linux seria lançado. Logo em seguida, anunciou uma pré-visualização pública. Pela primeira vez na história, o SQL Server estava disponível para Linux – primeiramente no Ubuntu. E depois disponibilizou uma imagem para Docker. Então, com o advento de containers Docker, saiba como instalar o Microsoft SQL Server 2017 em qualquer distribuição Linux usando Docker.

Contextualizando

Em meio a divulgação do SQL Server 2016, no ano passado, a Microsoft também divulgou que, em meados de 2017, a versão 2017 também seria lançada para Linux – com uma versão de testes restrita inicialmente. Em seu blog oficial, na época, a Microsoft publicou todas as novas funcionalidades do seu produto SGBD e aproveitou para ampliar seu leque de sistemas operacionais suportados; incluindo o pinguim nessa conversa :)

Inicialmente, liberado no Ubuntu, a Microsoft também disponibiliza pacotes RPM (Red Hat e derivados) e APT (Debian e derivados); e pacotes para o SUSE Linux Enterprise Server.

Assim, com o pontapé inicial sendo dado pela Canonical (mantenedora do Ubuntu), as principais novidades dessa nova versão do SQL Server estarão muito voltadas para as ferramentas de Cloud do Ubuntu. Por exemplo, o Juju – plataforma de nuvem do Ubuntu. Além disso, o foco será a plataforma de nuvem Azure da Microsoft, onde o Ubuntu possui um template de VM criado.

Além da combinação da Canonical e Microsoft SQL Server e suporte as plataformas de nuvem (Juju e Azure), containers Docker também podem ser explorados :)

Docker

Docker é uma plataforma para desenvolvimento, provisionamento e execução de aplicações usando tecnologia de containers. Esta plataforma oferece um conjunto de poderosas ferramentas que aprimoram a forma de criar e administrar aplicações entre ambientes diferentes. Além disso, garante isolamento de recursos para que o administrador possa disponibilizar uma aplicação segura.

docker-windows-servers

Com a “revolução” da cultura DevOps – movimento que promove um conjunto de processos e métodos para pensar sobre comunicação e colaboração entre os desenvolvedores de software e administradores de sistemas computacionais – o surgimento de ferramentas que pretendem agilizar essas operações surgem a cada dia. Entre elas, surgiu a Dockerplataforma multiplataforma de código aberto que automatiza a implantação de serviços, fornecendo uma camada de abstração a nível sistema de nível operacional e isolando-os em containers. Disponibilizada pela primeira vez em 2013, de lá pra cá o Docker vem numa crescente enorme! Principalmente, porque proporciona agilidade na entrega dos serviços.

A “fórmula” criada é simples… Evita que você tenha retrabalho na disponibilização dos serviços. Imagine, por exemplo, se você precisar configurar 2 ambientes web Apache em máquinas distintas, quais serão os passos necessários para configurá-los?! Simples… os mesmos do primeiro ambiente :) Agora, multiplica por 10 ou mais vezes. Então, por quê configurar o ambiente web Apache 10 vezes se deve sempre ser configurado, na maioria das vezes, do mesmo jeito?!

Assim, um container Docker pode executar tanto num cluster de alto processamento quanto num hardware de baixo processamento. Isto é possível, pois a plataforma Docker possibilita o empacotamento de uma aplicação inteira em imagens, tornando-as portáveis para qualquer outro computador/servidor que contenha o Docker instalado. Isso gera a agilidade e padronização na entrega dos serviços. E, principalmente, evita o retrabalho (“reinventar a roda”). Com o Docker você se preocupa apenas com as peculiaridades da sua aplicação/ambiente/ferramenta. No caso do ambiente Web Apache, somente com os arquivos do site ou aplicação que rodará nele :)

Sendo assim, saiba que se você é um profissional e/ou estudante de cursos de Tecnologia da Informação você poderá ter diversas vantagens usando a plataforma Docker. Por exemplo:

– Desenvolve uma vez…executa em qualquer lugar;
– Sem preocupações (dependências e/ou pacotes)… foco no desenvolvimento;
– Diversos ambientes para testes;
– Evita o “localhost funciona”;
– Configura uma vez… executa em qualquer lugar;
– Elimina inconsistências na entrega das aplicações e/ou serviços;
– Ciclo de trabalho mais eficiente e ágil;
– Promove uma infraestrutura escalável;

E caso não seja nenhum profissional da área, mas é um usuário entusista do Linux, saiba que o Docker também tem algumas vantagens para você:

– Tudo que é executado por linha de comando, poderá ser executado num container Docker;
– Instala softwares em um ambiente isolado;
– Executa uma ferramenta sem precisar instalar nenhum pacote/dependência no seu sistema. Por exemplo, o FFmpeg… quando não estiver mais precisando, poderá excluí-la facilmente;
– Evita conflito de múltiplas dependências de pacotes;

Caso queira aprender mais sobre o Docker, inscreva-se no curso introdutório, criado por mim, que explica, em detalhes, toda a estrutura Docker e como administrar e criar containers – acesse AQUI – Nesse link 50% desconto :)

SQL Server 2017 no Linux

Usando Docker, vou explicar como configurar e executar o Microsoft SQL Server 2017 em qualquer distribuição Linux em container. Eu usarei a imagem disponível no Docker Hub para executar o SQL Server 2017 CTP 2.1 num container Docker.

Existem alguns requisitos mínimos para usar a imagem oficial docker microsoft/mssql-server-linux:

– Instale o Docker Engine 1.8 ou superior – use a documentação oficial como referência
– Mínimo de 4 GB de espaço em disco
– Mínimo de 4 GB de RAM

Para instalar o MS SQL Server em qualquer distribuição Linux usando Docker, é preciso executar o comando abaixo (depois do Docker instalado), que irá baixar a imagem oficial e criar um container a partir disso:

sudo docker run --name mssqlserver -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=@MyMSSQLDocker112' -p 1433:1433 -d microsoft/mssql-server-linux

Onde,

–name mssqlserver -> representa o nome do container;
-e ‘ACCEPT_EULA=Y’ -e ‘SA_PASSWORD=@MyMSSQLDocker112′ -> representa o uso de variáveis de ambiente que configuram a senha do banco e aceite dos termos de uso;
-p 1433:1433 -> representa a liberação da porta 1433 do SQL Server;
-d microsoft/mssql-server-linux -> representa o uso da imagem oficial do MS SQL Server;

Pronto!! Container criado. Execute o comando abaixo para visualizá-lo:

sudo docker ps

Agora, para acessar o SQL Server, via container Docker, você pode se conectar a ele executando no container operações de banco de dados:

sudo docker exec -it mssqlserver /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P @MyMSSQLDocker112

Onde,

docker exec -> executa outro processo num container ativo;
-it -> solicita interação (i) e uso do terminal (t);
mssqlserver -> nome do container criado;
/opt/mssql-tools/bin/sqlcmd ->
binário do client seguido de seus parâmetros -S e -U e -P;

Assim, no console do SQL Server 2017, verifique a versão do SQL Server em questão :)

1> SELECT @@VERSION
2> GO
27 Jun 20:55

WhatsApp libera função de apagar mensagens

by Rafaela Pozzebom

Uma função bastante aguardada pelos usuários do WhatsApp enfim foi liberada. O recurso “Anular” chega para que os usuários do mensageiro possam apagar as mensagens enviadas. Assim sendo, a mensagem não será apagada somente do celular de quem enviou a conversa, mas também do destinatário.

A novidade está sendo liberada aos poucos para os internautas. Vale mencionar que para o seu funcionamento há algumas regras. "O recurso Anular permite que você anule uma mensagem específica enviada para um grupo ou para uma conversa individual. Você só pode anular uma mensagem até cinco minutos após seu envio. Uma vez que os cinco minutos se passaram, não há nenhuma maneira de anular a mensagem", diz o WhatsApp.

WhatsApp libera função de apagar mensagensWhatsApp libera função de apagar mensagens

Deste modo, o usuário possui tempo máximo de cinco minutos para se arrepender e apagar a mensagem enviada. "As mensagens que você anular com êxito desaparecerão das conversas dos seus contatos. Da mesma forma, se você vir 'Esta mensagem foi anulada' em uma conversa, isso significa que o remetente anulou a mensagem dele", explica o WhatsApp.

Continue a leitura...

26 Jun 13:34

O que eu preciso saber para subir um Cluster Docker Swarm

by Gomex

Introdução

Antes de mais nada, docker swarm é um gerenciador e orquestrador de cluster Docker. É a possibilidade que você tem de ter vários Docker engines atuando juntos para servir os contêineres com alta disponibilidade e escalabilidade.

Um dos objetivos do Docker Swarm é ser simples, como o ecossistema Docker em geral!
Podemos concluir que Swarm é um conjunto de Docker Engines, usados para implantar serviços em larga escala e de forma profissional. Dessa forma é possível fazer balanceamento de carga, descoberta automática de novos serviços, escalar o ambiente em momento de alta demanda e resolver automaticamente caso de falhas em serviços em contêineres.

Quando você executa um Docker no modo “tradicional” você inicia contêineres com o comando docker container run, porém usando Swarm você passará a executar serviços, que na verdade são abstração de contêineres no ambiente de cluster.

Passamos a usar o termo diferente, pois dentro de um service podem conter mais de um contêineres espalhados (ou não) entre os nós desse cluster. A idéia aqui é abstrair a localização e quantidade de contêineres. Se você ficar preocupado demais onde eles estão e quantos são, talvez seja um indício que esteja utilizando a tecnologia de forma errada ou ela não encaixa na sua necessidade.

Como instalar o Docker Swarm?

A grande vantagem do Swarm é que, a partir da versão 1.12, ele já está contido no Docker engine, ou seja, não precisa fazer nada para instalar o Swarm, basta iniciá-lo, algo que faremos posteriormente, ainda neste capítulo.

Em caso de falha no nó, o que acontece com os contêineres?

O Docker Swarm é um cluster bem inteligente e trabalha no modelo de conciliação de estado desejado, ou seja, você precisa solicitar o serviço, informar qual a imagem docker a ser utilizada, especificar quantas réplicas ele deve ter e outras opções adicionais, tal como porta, volumes e afins.

Uma vez informado a imagem e número de réplicas, será registrado no cluster o estado desejado desse serviço, e assim todo o cluster trabalhará conjuntamente para manter o que foi solicitado.

A conciliação do estado desejado se dá iniciando novos contêineres em nós saudáveis, a fim de manter o número esperado de réplicas.

Segue abaixo um exemplo para deixar mais claro esse processo:

Vale salientar que o nó que apresentou problemas não será tratado automaticamente pelo Docker Swarm, pois isso está em outro nível da infraestrutura e o Swarm não se propõe a trabalhar nessa camada.

Como funciona a comunicação entre diferentes nós do cluster?

Você pode criar uma rede do tipo overlay que já está automaticamente disponível no cluster Swarm. Uma vez utilizada essa rede, o contêiner receberá um endereço único que será acessível de qualquer contêiner, independente de qual nó do cluster ele esteja. Explicaremos um pouco mais dessa rede em capítulos posteriores.

Como é gerenciada a consistência do estado do cluster Swarm?

O Docker Swarm utiliza o algoritmo de consenso chamado Raft, que tem como um dos objetivo ser simples, ou seja, segue uma das premissas da Docker. Ele é responsável gerência de pela tolerância e distribuição das tarefas que impacta na performance que o cluster consegue atender.

O que é algoritmo de consenso?

Consenso é um problema fundamental relacionado a tolerância a falha em ambientes distribuídos, como é o caso de um cluster de hosts Docker, por exemplo.

Envolve múltiplos servidores acordando valores. Uma vez que eles decidem os valores, isso deve ser uma decisão final. Tipicamente o algoritmo de consenso viabiliza que o cluster continue funcionando mesmo que parte de seus dispositivos não esteja operacional, e se responsabiliza por replicar os estados das máquinas, uma abordagem comum em ambientes de tolerância a falha. Cada servidor tem seu estado e log. O estado da máquina é um componente que queremos que seja tolerável a falhas, como uma tabela de hash, por exemplo.

A ideia é que, para o cliente desse cluster, pareça que ele está interagindo com apenas uma máquina, que tem um estado consistente, mesmo que nesse cluster alguns de seus nós apresentem problemas de disponibilidade.

Em nosso exemplo da tabela de hash, o log pode incluir comandos do tipo aplique x para 3, e assim o algoritmo de consenso será usado para acordar esse mesmo comando em outros servidores, ou seja, a ideia é que após o acordo entre os nós o resultado desse comando seja único para todos os nós e que o resultado para o cliente do cluster seja consistente.

Por que a Docker escolheu o RAFT?

O objetivo é que o Docker Swarm garanta que todos os nós do tipo manager estejam focados em gerenciar e agendar tarefas no cluster e sempre armazenando o mesmo estado, com consistência.

A Docker preza pela simplicidade e eficácia dos seu ecossistema e como o RAFT tem a premissa de ser também simples, esse casamento foi possível.

No contexto do cluster Docker, como funciona o RAFT?

Manter consistência entre os membros do cluster significa que em caso de falha de um dos nós do tipo manager, um outro possa assumir suas tarefas e restaurar os serviços para um estado estável. Por exemplo, se um manager líder que é responsável por agendar todas as tarefas no cluster deixa de funcionar inesperadamente, qualquer outro manager do cluster poderá assumir a tarefa de agendar e balanceará novamente as tarefas para atender um estado desejado, ou seja, como tem menos um nó no cluster é possível que alguns containeres precisem ser realocados para que a carga não fique pesada para apenas um dos membros do cluster.

Quando falamos de tolerância a falha, qual o limite?

Raft tolera até (N-1)/2 falhas e requer um quorum de (N/2)+1 membros para acordar um valor proposto no cluster. Isso quer dizer que em um cluster com 5 managers rodando Raft, se 3 desses nós ficarem indisponíveis, o sistema não irá processar mais nenhuma requisição de agendamento de tarefas. As tarefas existentes continuaram executando, mas o agendador não estará disponível para novas, nem mesmo se recuperar de falhas com balanceamento de serviços de containers por exemplo.

Criando o cluster

Desde a versão 1.12, cada instalação do docker tem em seu interior a funcionalidade de se transformar em Swarm, ou seja, se o cluster não existir, qualquer instalação convencional do docker pode iniciar um cluster com apenas um comando:

docker swarm init --advertise-addr 192.168.99.121

Obs: O valor de advertise-addr precisa ser o ip da interface usada para comunicação entre os nós do cluster.

A resposta para esse comando será bem explicativo, mas a parte mais importante é a sugestão de comando que ele exibirá para que você possa copiar e colar nos próximos nós de Swarm que você venha a adicionar nesse cluster. Nesse comando já está incluso o token de acesso para o cluster.

Esse token de acesso garante a segurança do auto-registro dos nós no cluster. Segue abaixo um exemplo de comando exibido como saída do inicio do cluster:

docker swarm join \
--token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx \
172.17.0.2:2377

Nesse caso o comando “docker swarm join” e seus parâmetros, devem ser executados em outro nó, que nesse assumiria o papel de worker. Explicaremos mais a frente a diferença entre esses dois papéis.

Se desejar adicionar um novo manager, ao invés de um worker, você deve obter o token de join correspondente utilizando esse comando abaixo em um dos managers do seu cluster:

docker swarm join-token manager

Qual a diferença entre nó worker e manager

Um nó é uma instância de um Docker engine participante de um cluster swarm. Você pode rodar mais de um nó em uma mesma máquina, com ajuda de virtualização de máquina, por exemplo.

Quando você inicia um serviço de container no cluster swarm, você submete uma definição de serviço para um nó manager, esse membro especial dispara unidades de trabalho chamada “tasks” normalmente para os nós do tipo worker. Eu falo normalmente, porque a depender da carga do cluster nós do tipo manager também podem ser responsáveis por executar “tasks” de container.

Os managers são responsáveis também pela orquestração e gerenciamento do cluster, que tem como objetivo manter o estado desejado do swarm, como já foi explicado anteriormente. Caso exista mais do que um, eles elegem o líder manager que conduzirá as orquestração das tarefas.

Quantos managers eu devo iniciar?

Tudo depende do tamanho da sua infraestrutura e do grau de alta-disponibilidade você deseja atender, pois vale lembrar que a conta de tolerância a falha é simples “(N-1)/2 managers” ou seja:

Três managers toleram no máximo a perda de um dos managers e cinco managers toleram a perda de no máximo dois nós do tipo managers.

Vale salientar que a adição de mais nós do tipo manager não aumentam a escalabilidade e performance do cluster, na verdade isso pode ser oposto. Sendo assim a Docker sugere que você não ultrapasse o número de sete nós do tipo manager no mesmo cluster swarm.

Iniciar contêiner ou serviço?

Como estamos falando de um ambiente de cluster, ao efetuar um deploy de uma aplicação não necessariamente será apenas um contêiner a ser iniciado, sendo assim o swarm apresenta o seu conceito de service.

Um service é uma definição de tarefas a serem executadas pelos nós do tipo workers. Essa é forma como o swarm organiza as aplicações implantadas no seu cluster. A interação dos usuários se dá dessa forma.

Quando você cria um serviço, você deve especificar a imagem a ser usada e quais outras opções o seu service precisa para iniciar normalmente (portas expostas, redes, réplicas e afins).

Em um modelo de serviço replicado, o swarm gerencia números específicos de réplicas ao longo dos nós, baseado no número de réplicas informada no início do service.

É possível especificar que o serviço em questão é do tipo “global” e assim o swarm inicia um contêiner desse serviço em cada nós disponível no cluster. Ele é muito usado para contêineres operacionais de gerência, como monitoramento e ferramenta de logs, por exemplo.
Como funciona a comunicação em containers de nós diferentes do cluster?

Swarm nativamente suporta redes do tipo overlay, resumidamente podemos dizer que essa é a rede que possibilita a comunicação de contêineres em nós diferentes no cluster.

Você não precisará de nenhuma configuração adicional para criar redes do tipo overlay, ou seja, nada de dependência de instalar serviço de chave-valor ou afins, pois o swarm já inclui nativamente esse serviço.

As funcionalidades de uma rede overlay no swarm são:

Você pode anexar vários serviços de contêineres na mesma rede
Por padrão, o serviço de descoberta interno do swarm entrega um endereço IP (VIP) e uma entrada DNS (também por um serviço interno) para cada contêiner na mesma rede.
Você pode configurar que o serviço use DNS round-robin ao invés de VIP.
Para utilizar redes overlay no seu cluster, garanta que os nós do swarm podem se comunicar nas seguintes portas:

Port 7946 TCP/UDP para descoberta de rede de contêiner.
Port 4789 UDP para rede overlay de contêiner.

Criando uma rede overlay no Swarm:

A partir de um manager execute os seguintes comandos para criar uma rede overlay com o nome minha-rede:

docker network create \
 --driver overlay \
 --subnet 10.0.9.0/24 \
 --opt encrypted \
 minha-rede

No comando acima podemos ver que será criada uma rede, com o driver overlay, que a sub-rede a ser entregue nessa rede overlay será 10.0.9.0/24. Vale salientar que o que o docker swarm chama de rede é uma abstração da rede convencional, que opera nas camadas TCP/IP e trafega dados em meios como cabo de rede, fibra e ondas eletromagnéticas (WiFI).

Toda vez que falarmos de redes docker swarm, seja overlay ou qualquer outro tipo, ela tem o mesmo objetivo que é interligar serviços, mas nesse caso estamos em um nível superior na hierarquia de abstração.

Por padrão toda comunicação entre nós do swarm é criptografada, mas a opção “–opt” desse exemplo especifica que uma nova camada de criptografia seja aplicada nessa conexão dessa rede.

Você pode checar se a rede foi criada com sucesso com o comando abaixo:

docker network ls

Verifique no resultado se a rede solicitada foi criada no escopo “swarm”, pois ele indica que a rede está disponível para ser usada nos serviços de contêiner iniciados no cluster swarm. Depois de criar o serviço de contêiner anexado à rede, o swarm apenas adiciona a rede em questão para nós do tipo workers que tiverem serviços de contêineres relacionados a essa rede, ou seja, workers que não tenha contêineres com essa rede anexa, o comando “docker network ls” não mostrará em sua lista a rede recém criada.

Iniciando um serviço de contêiner com rede overlay

Para iniciar um serviço anexado a uma rede overlay é bastante simples, basta passar o parâmetro “network” quando criar o serviço. Por exemplo, para criar um serviço nginx anexado a rede chamada “minha-rede” execute o seguinte comando:

docker service create \
--replicas 3 \
--name minha-web \
--network minha-rede \
nginx

Obs: Lembre-se que a rede “minha-rede” precisa estar criada nesse cluster e que o comando informado acima deve ser executado a partir de um manager.

Vale lembrar que os serviços podem ser anexados em qualquer rede criada em qualquer nó do tipo manager, pois como já foi dito antes, essas redes são propagadas pelo cluster.

A partir do manager execute o comando abaixo verificar qual nó está executando o serviço em questão “minha-web”:

docker service ps minha-web

Segue abaixo um desenho de como ficaria esse ambiente funcionando com 3 réplicas do serviço de nginx:

Como eu configuro um serviço para se comunicar com outro dentro da minha aplicação?

Como falamos anteriormente, cada serviço recebe um nome próprio e cada contêiner das réplicas recebe um endereço IP específico, ou seja, no exemplo acima quando eu já estiver com um serviço chamado “minha-web” rodando no cluster e iniciar um novo chamado “minha-api” e a partir desse serviço eu precisar conectar no primeiro, basta eu usar o hostname “minha-web”, dessa forma o balanceador se encarregará de responder com o endereço IP de uma das réplicas do serviço “minha-web”.

É importante salientar que não precisa expor nenhuma porta para o serviço em específico para possibilitar a comunicação dentro da mesma rede overlay.

Para saber todos os endereços IPs do hostname do service, basta dentro do contêiner requisitar a tradução do nome “tasks.<nome do serviço>”. No exemplo da comunicação entre “minha-api” e “minha-web” o comando poderia ser:

nslookup tasks.minha-web

Fontes

https://docs.docker.com/engine/swarm/
https://raft.github.io/
https://docs.docker.com/engine/swarm/networkingy

26 Jun 12:25

Qual futuro dos sysadmins?

by Gomex

Nesse texto será apresentado uma tendência que aponta para uma possível transformação, ou até mesmo extinção, do papel de Sysadmin como ele é entendido hoje. Será apresentado alguns dados que evidenciam essa reflexão, assim como caminhos para a ressignificação do papel de operações na TI.

Nos últimos anos se tornou relevante uma mudança drástica de como criamos, mantemos, configuramos e operamos os serviços de TI, pois até então existia uma grande dependência de um trabalho, muitas vezes puramente manual, para disponibilização de ambientes para servir aplicações em geral.

A automação de infraestrutura trouxe uma nova perspectiva para esses trabalhos, pois agora é possível transcrever em código o ambiente necessário para suportar sua aplicação, e as ferramentas escolhidas para esse trabalho se encarregam de configurar toda infraestrutura necessária, sem a necessidade de qualquer intervenção humana, na maioria dos casos.

A título de padronização do texto, será usado o termo “operações” sempre que nos referirmos ao Sysadmin como uma área da TI e não apenas como um cargo.

De acordo o “Ministério do Trabalho dos EUA” a definição do sysadmin é:

  • Determinar o que é necessário para configurar sistemas computacionais e rede antes de configurá-los
  • Instalar todo equipamento de rede e software, fazendo a manutenção necessária como também mantê-los atualizados
  • Manter sistemas computacionais e rede seguros e garantir que todos sistemas estão operando corretamente
  • Coletar dados na ordem para avaliar e otimizar a performance de sistemas ou rede
  • Adicionar usuários numa rede, atribuir e atualizar permissões de segurança na rede
  • Treinar usuários para o uso adequado dos equipamentos e sistemas

Levando em consideração a velocidade com que o negócio tem demandado a equipe de desenvolvimento mudanças constantes no seu serviço, todo impacto para alterações na infraestrutura para suportá-las sempre recaiam sobre o time responsável por esse ambiente, que nesse caso eram os Sysadmins, o que os tornavam um gargalo para inovação do negócio, uma vez que raramente eles conseguiam entregar as mudanças em um tempo esperado.

Não é o ponto estigmatizar essa área que foi tão importante para TI de uma empresa, até porque estamos falando de um setor no qual a maior inovação para a manipulação desses ambientes praticamente se resumiu à máquina virtual, que na prática não proporcionou um aumento relevante para replicação em larga escala de ambientes complexos, muito menos abstraiu o trabalho ou até mesmo criou mecanismos que pessoas menos qualificadas pudessem colaborar sem necessariamente ter perfis administrativos no sistema.

No modelo de automação de infraestrutura, que daqui pra frente chamaremos de “infraestrutura como código”, é possível:

Abstrair o trabalho de criação, manutenção e destruição dos ambientes, uma vez que usando determinada sintaxe de alto nível de programação, aliada a aplicativos específicos, é possível manipular os ambiente necessários em interações realizadas por processos automáticos ou com baixa interação humana especializada. Nesse caso, a especialização é necessária apenas no momento da concepção e manutenção do código e não do ambiente em si, que pode ser manipulado sempre a partir do conjunto de necessidades passada no código fonte.

Acesso de pessoas menos qualificadas para manipulação desses ambientes, uma vez que os códigos podem ser alvo de auditoria de pessoas mais especializadas antes do mesmo ser colocado no que chamamos de “produção”, que basicamente é alterar ambientes que impactam diretamente no negócio da empresa. Vale salientar que até mesmo parte do processo de validação desse código de um iniciante pode ser automatizado.

Não bastasse o processo de automação da infraestrutura, uma nova tendência – que é a nuvem – acrescenta mais elementos para essa análise. De acordo com o wikipedia nuvem é:

“Um tipo de computação baseada na internet, que provê recursos de processamento computacional compartilhado, armazenamento para computadores e outros dispositivos por demanda.”

Com base nessa definição, podemos dizer que a nuvem é uma espécie de datacenter por demanda, e, por conta disso, talvez seja correto pensar que o modelo de empresas tradicionais no Brasil, que inicia suas atividades adquirindo servidores, pagando contrato de manutenção, depreciação e afins, agora tem a oportunidade de comprar apenas parcelas dessa infraestrutura à medida que seu negócio demanda crescimento.

De acordo com o Gartner em 2011, na média as empresas dedicavam 70% da sua TI para Operações, enquanto 25% era para modificar essa infraestrutura e apenas 5% para inovação da TI, mas que esses números tendem a mudar drasticamente com o passar do tempo e sua projeção para 2020 é que operação seja apenas 35%, quando a modificação passaria a 50% e inovação 15%.

De acordo com o Registro Anual de Informações Sociais do Ministério do Trabalho para trabalhadores de TI do Estado de São Paulo, o número de empregados na área de “Desenvolvimento de Software” em geral praticamente triplicou (213,27%) entre 2006 e 2015, quando a área de “Suporte Técnico” aumentou em uma proporção bem menor (59,70%) na mesma época.

Esses movimentos não parece estar descontextualizado, pois ao que parece as empresas estão tentando focar nas áreas que estão mais próximas do negócio e tentando automatizar ou abstrair áreas mais distantes. Nesse cenário podemos dizer que o desenvolvedor está intimamente ligado ao negócio de TI por definição, pois cabe a ele implementar as mudanças nos serviços, quando para operação cabe o papel de manter a infraestrutura mínima para o negócio se estabelecer.

Em um mundo onde essa infraestrutura pode ser comprada por demanda, criada, testada, mantida e destruída via código, que é afinal de contas o domínio dos desenvolvedores, a tarefa de operações perde um pouco a sua relevância quando falamos de presença em escala.

Levando em consideração que a infraestrutura não vai simplesmente sumir, fica evidente que será ainda necessário a existência de pessoas responsáveis por grandes salas de infraestrutura, mas o que esse texto fala é sobre oportunidades para sysadmin em escala e não pontualmente em alguns poucos datacenters espalhados pelo mundo que compõe a nuvem computacional.

Tendo em mente que os espaços onde se concentrará a infraestrutura serão cada vez em menor quantidade e mais automatizados, a demanda em larga escala para esse tipo de profissional será cada vez menor e mais especializada.

Não quero com isso afirmar que o desenvolvedor hoje é capaz de criar, testar, manter e destruir de forma eficaz e segura toda infraestrutura com base em código, mas acredito que com o passar do tempo alguns desenvolvedores (Ou quem sabe QA?) poderão ter como especialização a manipulação de código de infraestrutura e assim esses novos profissionais poderão atender a área de operações, que afinal de contas acabaria com o problema fundamental que a cultura DevOps busca resolver, comunicação entre as áreas distintas. Nesse caso seria uma grande área única com suas mais diferentes especializações no time.

É possível afirmar que hoje um desenvolvedor mais “antenado” às novidades da automação tem reais capacidades para viabilizar rapidamente ao menos seu ambiente de desenvolvimento, assim como ajudar de forma bem efetiva no estabelecimento desse ambiente em homologação e até mesmo produção. E é nesse momento que parece existir uma saída para a área de operações.

Operações pode se transformar em uma espécie de consultoria interna, que estaria focada em validar, ajudar e/ou disseminar tudo que seja relacionado a assuntos de infraestrutura, claro que esse caminho não seria o suficiente para abarcar todo contingente de sysadmins tradicionais que temos hoje, o que nos leva ao segundo caminho.

Uma outra possibilidade para área de operações é se aproximar mais do negócio, ou seja, naturalmente trabalhar com aspectos mais dinâmicos e menos operacionais, pois essa parte seria automatizada. Estar mais perto das inovações e mudanças do negócio implica estar mais perto do código, o que não necessariamente implica em virar desenvolvedor de software.

O sysadmin, no contexto de uma pessoa que domina muito a infraestrutura, aliado com conhecimento de automação de infraestrutura e um adendo do processo de desenvolvimento de software pode ser um ótimo QA, pois esse normalmente tem um papel de mantenedor da qualidade, automação, processo de deploy e afins, dessa forma podem ser considerados nesse conjunto de atividades já exercidas por esse papel.

Tanto desenvolvedor como QA são caminhos com demanda o suficiente para atender a migração dos sysadmins convencionais em relação tanto a quantidade de vagas, como salários equivalentes.

Vale salientar que em momento algum eu falo sobre os cargos que algumas pessoas denominam como “DevOps”, pois por definição esse cargo não existe, ao menos não nos termos que maioria das empresas o denomina. Normalmente DevOps é a pessoa responsável por cuidar do deploy, automação e afins. Basicamente um Sysadmim em migração para QA ou gestor de configuração.

O caminho para Sysadmin daqui para frente é relativamente tortuoso, pois demanda uma escolha e mudança relativamente drástica de como ele previamente se preparava, pois não é somente aprender as sintaxes das ferramentas de automação de infra e sim se debruçar sobre anos de estudos da engenharia de software, que passa por padrões de projeto, testes automatizados e afins.

Enfim, há possibilidades para os sysadmins se resignificar enquanto profissionais relevantes e bem pagos para o mercado que se demonstra há médio prazo. Basta acreditarem nessa análise e iniciarem os estudos o quanto antes.

Fontes:

http://www.infoworld.com/article/2999240/devops/beyond-devops-embrace-infrastructure-as-code.html
https://www.quora.com/Does-system-administration-have-any-future
https://community.spiceworks.com/topic/1265732-infrastructure-as-code-devops-the-cloud-and-you
https://www.gartner.com/doc/1855718/executive-summary-new-skills-new

25 Jun 13:43

NSA abre conta no GitHub e coloca 32 projetos para a comunidade.

by noreply@blogger.com (Cláudio Florenzano)
NSA abre conta no GitHub e coloca 32 projetos para comunidade.
NSA abre conta no GitHub e coloca 32 projetos para comunidade.
A Agência de Segurança Nacional (NSA) - a agência de inteligência dos Estados Unidos, conhecida por seu segredo e trabalhando no escuro - finalmente se juntou ao GitHub e lançou uma página oficial

A NSA emprega programadores de nível gênio e os matemáticos mais brilhantes, que trabalham continuamente para quebrar códigos, reunir inteligência em todos e desenvolver ferramentas de hacking como EternalBlue que foi vazado pelo Shadow Brokers em abril e usado pelo WannaCry ransomware no mês passado para causar estragos no mundo todo.

A agência de inteligência trabalha principalmente em segredo, mas depois de Edward Snowden vazou em 2013, a NSA começou (lentamente) a se abrir para o mundo. Juntou-se ao Twitter no mesmo ano após Snowden vazar documentos e agora abriu uma conta Github. 

O GitHub é um serviço online projetado para compartilhar código entre programadores e comunidade de código aberto, e até agora, a NSA está compartilhando 32 projetos diferentes como parte do Programa de Transferência de Tecnologia NSA ( TTP ), enquanto alguns deles estão "em breve".

"O Programa de Transferência de Tecnologia NSA (TTP) trabalha com inovadores de agências que desejam usar este modelo colaborativo para transferir sua tecnologia para o mercado comercial", escreveu a agência na página do programa . 

"OSS convida o desenvolvimento cooperativo de tecnologia, incentivando o uso amplo e a adoção. O público se beneficia ao adotar, aprimorar, adaptar ou comercializar o software. O governo beneficia dos aprimoramentos da comunidade de código aberto para a tecnologia".

Muitos dos projetos da agência listados são anos de idade disponíveis há algum tempo na Internet. Por exemplo, o SELinux (Security-Enhanced Linux) faz parte do kernel do Linux há anos.

21 Jun 21:54

Amazon planeja entrar no mercado de varejo no Brasil

by Rafaela Pozzebom

A Amazon chegou ao Brasil em 2012, o que causou bastante preocupação entre as empresas de e-commerce. A companhia de Jeff Bezos é bastante sólida no exterior, o que eu fez com que muitos varejistas ficassem realmente assustados. Agora, porém, a preocupação poderá aumentar.

Em um relatório enviado a clientes na segunda-feira (19), o BTG Pactual revelou ter conversado com seis dos maiores vendedores de marketplace do Brasil e eles disseram que a Amazon está se preparando para aumentar a sua oferta de produtos no país. Especialistas acreditam que a medida poderá gerar impacto em muitas empresas.

Amazon planeja entrar no varejo no BrasilAmazon planeja entrar no varejo no Brasil

De acordo com os analistas do banco Fabio Monteiro e Luiz Guanais, a presença da Amazon “certamente deve se tornar a principal fonte de discussões internas para os players no curto prazo, fazendo com que eles repensem suas estratégias e acelerem seus planos de transformação”.

Continue a leitura...

19 Jun 14:27

Conhecendo a Web por debaixo dos panos

by Jéssica Nathany

Hoje em dia, é muito comum utilizarmos a internet para uma infinidade de coisas, como fazer uma compra, acessar bancos, ver notícias, acessar as redes sociais, entre outros. Atualmente, é a comunicação mais rápida e mais utilizada por nós, pois está muito mais acessível do que em 1992, onde o número de computadores conectados era muito menor, sendo utilizada somente para fins acadêmicos e militares.

E durante esse desenvolvimento, surgiu a Web 2.0, que ampliou o envolvimento do usuário na web, trazendo conteúdos ricos e dinâmicos. De uma forma geral, Paul Miller descreve: “Estamos vendo o surgimento de serviços baseados na Web que extraem dados de uma ampla gama de sistemas back-end para oferecer valor aos usuários, quando, onde e na forma que eles exigem. Estamos vendo relações ad hoc sendo formadas por e para esses serviços no ponto de necessidade, em vez da criação humana e custosa de contratos ou acordos de nível de serviço. Estamos vendo desagregação de conteúdo e serviços em componentes que são muito mais significativos para o usuário (e potencialmente muito mais valioso para o provedor), juntamente com a desintermediação dos Gate Keepers a favor do acesso direto aos recursos visíveis na Web. Estamos vendo recipientes passivamente passivos de conteúdo que começam a se envolver e combinar e recombinar o que eles são dados de maneiras novas e interessantes” (artigo Ariadne.ac.uk).

Em seu artigo, ele referencia algumas palavras sobre a Web 2.0 do ponto de vista do pai da web, Tim Banners Lee: “A Web 2.0 é a rede como plataforma, abrangendo todos os dispositivos conectados; As aplicações da Web 2.0 são aquelas que aproveitam ao máximo as vantagens intrínsecas dessa plataforma: entregar o software como um serviço continuamente atualizado que melhora quanto mais às pessoas o usam, consumindo e remixando dados de várias fontes, incluindo usuários individuais, ao mesmo tempo em que fornecem os seus próprios dados e serviços em uma forma que permite a remixação por outros, criando efeitos de rede através de uma ‘arquitetura de participação’ e indo além da metáfora da página da Web 1.0 para fornecer experiências de usuário ricas”.

O crescimento da Web proporcionou uma mudança muito significativa no comportamento das pessoas, mudamos a maneira como nos comunicamos, compramos, vendemos, e tudo se tornou mais fácil e rápido quando o assunto é internet. Houve um aumento significativo no ramo corporativo, onde milhares de serviços e produtos foram sido criados. E quanto mais a web vem crescendo, muita mão de obra vem sendo necessitada, e nós, como desenvolvedores, temos a obrigação de saber como as coisas funcionam por trás de tudo isso, e como podemos achar melhores soluções para tais problemas.

Mas por debaixo de tudo isso, como a internet realmente é? Para qualquer desenvolvedor de aplicações web ou até mesmo móbile, é importante saber como tudo isso funciona por debaixo dos panos. Para começar, vamos conhecer e entender melhor os protocolos.

O que é HTTP?

Hypertext Transfer Protocol (Protocolo de Transferência de Hypertexto) é um protocolo de comunicação que permite enviar e receber informações na web. A troca de informações entre um browser (navegador) e um servidor web, é toda feita através desse protocolo, que foi criado especificamente para a World Wide Web (www).

Quando utilizamos um browser para acessar algum site, o navegador representa o (cliente) e o site que nos apresenta a informação o (servidor), trata-se de uma comunicação client-server, onde o cliente faz uma solicitação ao servidor e o servidor retorna a resposta ao cliente.

“O HTTP funciona como um protocolo de requisição-resposta no modelo computacional cliente-servidor. Um navegador web, por exemplo, pode ser o cliente e uma aplicação em um computador que hospeda um sítio da web pode ser o servidor. O cliente submete uma mensagem de requisição HTTP para o servidor. O servidor, que fornece os recursos, como arquivos HTML e outros conteúdos, ou realiza outras funções de interesse do cliente, retorna uma mensagem resposta para o cliente. A resposta contém informações de estado completas sobre a requisição e pode também conter o conteúdo solicitado no corpo de sua mensagem” (Wikipédia).

Como pode ser visto no modelo acima, o protocolo HTTP funciona como um protocolo de requisição e resposta no modelo computacional entre cliente e servidor. O cliente faz uma solicitação ao servidor e o servidor nos traz a página com a resposta.

As requisições recebem um código de status e é a partir deste código que conseguimos identificar se o status desta solicitação foi bem sucedido ou se houve algum erro ao retornar uma resposta do servidor. Exemplo: quando o servidor não localizou determinada página, ou apenas um status de informação que a solicitação foi bem realizada com sucesso.

Listas de códigos HTTP:

Comando Descrição
Get Pedido do recurso situado no URL especificado
Head Pedido do cabeçalho do recurso situado na URL especificada
Post Envio de dados ao programa situado na URL especificada
Put Envio de dados à URL especificada
Delete Remoção do recurso situado na URL especificada

Códigos de erros:

Código Mensagem Descrição
100 Continuar Isso significa que o servidor recebeu os cabeçalhos da solicitação, e que o cliente deve proceder para enviar o corpo do pedido (no caso de haver um pedido, um corpo deve ser enviado, por exemplo, um POST pedido). Para ter um cheque do servidor se o pedido pode ser aceito com base no pedido de cabeçalhos sozinho, o cliente deve enviar Esperar: 100-continue como um cabeçalho no seu pedido inicial e verifique se a 100 Continuar código de status é recebido em resposta antes de permanente (ou receber 417 Falha na expectativa e não continuar).
101 Mudando protocolos Isso significa que o servidor recebeu os cabeçalhos da solicitação, e que o cliente deve proceder para enviar o corpo do pedido (no caso de haver um pedido, um corpo deve ser enviado, por exemplo, um POST pedido). É ineficiente enviar um corpo grande para o servidor se o pedido já foi rejeitado com base na inadequação do cabeçalho. É possível fazer com que o servidor valide o pedido baseado no cabeçalho. Para isso o cliente deve enviar wait: 100- continue como cabeçalho no seu pedido inicial e verificar se o código de status 100 continue é recebido (ou se recebe falha 417).
200 OK Padrão de resposta para solicitações HTTP sucesso
201 CREATED O pedido foi cumprido e resultou em um novo recurso que está sendo criado.
202 ACCEPTED O pedido foi aceito para processamento, mas o tratamento não foi concluído. O pedido poderá, ou não, ser posto em prática, pois pode ser anulado quando o processamento ocorre realmente.
203 PARTIAL INFORMATION O servidor processou a solicitação com sucesso, mas está retornando informações que podem ser de outra fonte.
204 NO RESPONSE O servidor processou a solicitação com sucesso, mas não é necessária nenhuma resposta.
205 RESET CONTENT O servidor processou a solicitação com sucesso, mas não está retornando nenhum conteúdo. Ao contrário das 204, esta resposta exige que o solicitante redefina a exibição de documento.
206 PARTIAL CONTENT Trata-se de uma resposta a um pedido que comporta o cabeçalho range. O servidor deve indicar o cabeçalho content-range.
30x Redirecionamento Estes códigos indicam que o recurso não está mais no lugar indicado.
301 MOVED Os dados pedidos foram transferidos para um novo endereço.
302 FOUND Os dados pedidos são de uma nova URL, mas talvez tenham sido deslocados desde então.
303 METHOD Isto implica que o cliente deve tentar um novo endereço, tentando outro método além do GET.
304 NOT MODIFIED Se o cliente efetuou um comando GET condicional (perguntando se o documento foi alterado desde a última vez) e se o documento não tiver sido alterado, ele devolve este código.
40x Erro devido ao cliente Estes códigos indicam que o pedido está incorreto.
400 BAD REQUEST A sintaxe do pedido está mal formulada ou impossível de validar.
401 UNAUTHORIZED O parâmetro da mensagem dá as especificações das formas de autorização aceitáveis. O cliente deve reformular o seu pedido com os dados de autorização corretos.
402 PAYMENT REQUIRED O cliente deve reformular o seu pedido com os dados de pagamento corretos.
403 FORBIDDEN O acesso ao recurso foi recusado.
404 NOT FOUND O recurso requisitado não foi encontrado, mas pode ser disponibilizado novamente no futuro. As solicitações subsequentes pelo cliente são permitidas.
405 METHOD NOT ALLOW Foi feita uma solicitação de um recurso usando um método de pedido que não é compatível com esse recurso, por exemplo, usando GET em um formulário, que exige que os dados a serem apresentados vissem POST, PUT ou usassem um recurso somente de leitura.
50x Erro devido ao servidor Estes códigos indicam que houve um erro interno no servidor.
500 INTERNAL ERROR O servidor encontrou uma condição inesperada que o impediu de satisfazer o pedido.
501 NOT IMPLEMENTED O servidor não suporta o serviço pedido.
502 BAD GATEWAY O servidor recebeu uma resposta inválida por parte do servidor que tentava acessar agindo como uma passarela ou um Proxy.
503 SERVICE UNAVAILABLE O servidor não pode responder no momento, pois o tráfego está muito denso (todas as linhas do seu correspondente estão ocupadas, tente novamente).
504 GATEWAY TIMEOUT A resposta do servidor demorou muito em relação ao que o gateway foi preparado para recebê-la (o tempo que lhe estava destinado esgotou-se).

Segurança na Web HTTPs

A internet tornou mais prático à rotina das pessoas e com esse aumento significado da rede, nesse contexto é preciso estar atento a segurança dos sistemas web. Por que a segurança na web é tão importante? Porque muitos ataques e cybercrimes vêm ocorrendo com muita frequência. Logo, é importante estarmos atentos a todas as informações de segurança e sabermos como usar a web de forma segura.

HTTPs

HTTPS (Hyper Text Transfer Protocol Secure – protocolo de transferência de hipertexto seguro) é uma implementação do protocolo HTTP sobre uma camada adicional de segurança, que utiliza o protocolo SSL/TLS. Essa camada adicional permite que as informações sejam transmitidas através de uma conexão segura (criptografada).

Em seu artigo, Pastore expõe uma definição melhor sobre o que é o protocolo HTTPs. “HTTPs é a combinação do protocolo HTTP com o SSL (Secure Sockets Layer). É a maneira mais comum, atualmente, de trafegar documentos via HTTP de maneira segura. Provê encriptação de dados, autenticação de servidor, integridade de mensagem e autenticação de cliente. Um site seguro, que usa o HTTPs, deve possuir três componentes essenciais para a comunicação segura: o servidor, o software seguro (que faz o trabalho de criptografia) e o certificado de assinatura (assinatura digital). (Pablo Pastore)”.

  • SSL – Protocolo de Camadas de sockets segura
  • TLS – Protocolo de Segurança da camada de transporte

Certificado digital

É um arquivo de computador usado para identificar e autenticar e sites e serviços eletrônicos, que contém um conjunto de informações referentes à entidade para qual o certificado foi emitido (seja uma empresa, pessoa física ou um computador), mais a chave pública referente à chave privada que se acredita ser de posse unicamente da entidade especificada no certificado. Quando você acessa o site do seu banco ou faz alguma compra pela internet, o que torna o site seguro e confiável é o certificado digital e HTTPs no canto da página.

Em um artigo feito pela IBM em seu site, “um certificado digital assinado é um método padrão de mercado para verificação da autenticidade de uma entidade, como um servidor, um cliente ou um aplicativo. Para assegurar a segurança máxima, uma autoridade de certificação de terceiros fornece um certificado. Um certificado contém as seguintes informações para verificação da identidade de uma entidade:

  • Informações organizacionais – Esta seção do certificado contém informações que identificam, de forma exclusiva, o proprietário do certificado, como nome e endereço organizacionais. Essas informações são fornecidas ao gerar um certificado com um utilitário de gerenciamento de certificado.
  • Chave pública – O receptor do certificado usa a chave pública para decifrar o texto criptografado que é enviado pelo proprietário do certificado para verificar sua identidade. Uma chave pública possui uma chave privada correspondente que criptografa o texto.
  • Nome distinto da autoridade de certificação – O emissor do certificado se identifica com essas informações.
  • Assinatura digital – O emissor do certificado o assina com uma assinatura digital para verificar sua autenticidade. O certificado de autoridade de certificação correspondente compara a assinatura para verificar se a origem do certificado é uma autoridade de certificado confiável.” (IBM Security Identity Manager).

Segurança digital: chaves públicas e chaves privadas

Na criptografia de chave pública, duas chaves diferentes são usadas para criptografar e descriptografar informações. A chave privada é uma chave conhecida apenas por seu proprietário, enquanto a chave pública pode ser disponibilizada a outras entidades na rede.

A chave pública é usada, por exemplo, para encriptar puro texto ou para verificar uma assinatura digital, já a chave privada é utilizada para o oposto disso – nesse exemplo para descriptar um texto ou para criar uma assinatura digital. O termo assimétrico vem do uso de diferentes chaves para realizar essas funções opostas, cada uma dependente da outra.

Solicitação entre Cliente e Servidor

Quando acessamos a web para fazer alguma compra, acessar um site de banco, comprar passagens aéreas ou até simplesmente clicar em algum link de notícia, estamos fazendo uma solicitação ao servidor. Foi como dito logo acima, uma comunicação feita entre cliente e servidor (sendo cliente, o navegador e o servidor, o site). Agora que já sabemos como funciona o protocolo HTTP, vamos entender melhor o que são as requisições.

A comunicação feita em cliente e servidor é baseada em requisição ou, por assim dizer, (request) e respostas (responses). Vejamos:

Conteúdo de uma solicitação:

  • Método HTTP;
  • Página que será acessada;
  • Parâmetros do formulário.

Conteúdo da resposta:

  • Código de status (informa se a solicitação foi realizada com sucesso ou não);
  • Tipo de Conteúdo (HTML, imagem, textos etc);
  • Conteúdo (HTML, real, imagem etc).

Como vimos na (Figura 2), a requisição do cliente é composta pelos seguintes campos:

  • Uma linha inicial: (Request-Line);
  • Linhas do cabeçalho: (Request-header);
  • Uma linha em branco obrigatória e um corpo de mensagem opcional;
  • A linha inicial de uma requisição é composta por três partes separadas por espaços: método (Method), a identificação do URI (Request-URL) e a versão do HTTP (HTTP-Version).

Métodos HTTP

GET – Solicita ao servidor um recurso chamado na URI. No momento em que chamamos a primeira vez, a página ou até mesmo quando clicamos em links ou digitamos o endereço no navegador, estamos pegando informações do servidor, ou seja, o método utilizado é o GET. Vejamos alguns exemplos: listar produtos, visualizar um produto, chamar um recurso ou uma página.

POST – Este método é chamado para submeter dados, ou seja, quando preenchemos um formulário de cadastro, os dados são enviados parâmetro no corpo da solicitação onde já são codificados. Ex: adicionar um produto, adicionar informações a um recurso ou criar um novo recurso.

HEAD – Semelhante ao método GET, o servidor apenas retorna a linha de resposta e os cabeçalhos de resposta, sem ter que retornar todo o conteúdo.

PUT – Este método adiciona ou (modifica) um recurso da URI passada. Ex: para atualizar um produto, há uma diferença entre o POST e o PUT. Em POST, a URI significa o lugar em que serão tratadas às informações; já no PUT significa o lugar onde a informação será adicionada.

DELETE – Este método apaga um arquivo do servidor. Ex: remover um produto.

OPTIONS – Este método recupera os métodos HTTP que o servidor aceita.

TRACE – Este método permite depurar as requisições.

Tipos de Protocolo HTTP

  • FTP – File Transfer Protocol é utilizado para transmissão e envio de arquivos (upload e download).
  • SMTP – Simple Message Transfer Protocol permite o envio de mensagens a um servidor de e-mail.
  • POP – Post Office Protocol permite que o cliente acesse e manipule mensagens de e-mail de um servidor para outro.
  • IMAP – Internet Message Access Protocol permite que o cliente acesse e manipule mensagem de e-mail de um servidor para outro, ou mesmo processo do protocolo POP, mas com algumas configurações diferentes.

Serviços na Web com Rest

REST – (Representation State Transfer ) é um design de arquitetura construído para servir aplicações em rede. A aplicação mais comum de REST é a própria World Wide Web. Os serviços da Web compatíveis com REST permitem que os sistemas solicitantes acessem e manipulem representações textuais de recursos Web usando um conjunto uniforme e predefinido de operações em estado (stateless). A REST tem sido aplicada para descrever a arquitetura web desejada, identificar problemas existentes, comparar soluções alternativas e garantir que extensões de protocolo não violem as principais restrições que fazem da Web um sucesso. – Fonte: (Wikipédia)

O REST consiste em retornar todas as informações necessárias na resposta para o cliente, e essa forma de retorno pode ser um formato JSON ou XML.

JSON

De acordo com (Mauricio Silva p.176), “Trata-se de uma técnica Java Script que usa sintaxe leve e simples para armazenar dados. Tal como XML, JSON está estruturado de modo a ser facilmente lido, interpretado e processado por máquinas”. Para (Bem Smith p.66), “O JSON é conhecido como padrão para troca de dados, o que implica que ele pode ser usado como formato para dados sempre que houver uma troca, que pode ocorrer entre o navegador e o servidor, e até mesmo entre um servidor e outro, se for o caso. É claro que esses são os únicos meios para troca de JSON, e limitar essa troca a esses dois casos seria excessivamente restrutivo”.

Em outras palavras, JSON é um modelo para armazenamento e transmissão de informações no formato texto. Apesar de ser muito simples, tem sido bastante utilizado em aplicações web devido a sua capacidade de estruturar informações de uma forma bem mais compacta seguida de modelo XML.

Exemplo de retorno json:

{
         aluno: “Jéssica Nathany”,
         ativo: “true”,
         curso: “tecnologia”,
         sexo: “Feminino”,
         Idade: “27”
   }

XML

XML – (Extended Markup Language) é um padrão para formatação de dados, ou seja, uma maneira de organizar informações. O XML e suas tecnologias relacionadas oferecem uma arquitetura robusta para integração, manipulação, intercâmbio e apresentação de documentos. Seu propósito principal é a facilidade de compartilhamento de informações através da internet.

HTTP/2

HTTP/2 é a nova versão do HTTP 1.1, que foi criado com o objetivo de deixar sua aplicação mais rápida e corrigindo eventuais erros do protocolo HTTP1.1. O HTTP/2 foi criado baseado no SPDY, um protocolo experimental desenvolvido pelo Google e anunciado no meio de 2009, com objetivo de tentar reduzir a latência no carregamento das páginas deixando o carregamento 50% mais rápido e também tornar o desenvolvimento deste protocolo em código aberto.

“Alterações primárias de HTTP / 2 do foco HTTP / 1.1 no desempenho melhorado. Alguns recursos principais, como multiplexação, compactação de cabeçalho, priorização e negociação de protocolos, evoluíram a partir do trabalho feito em um protocolo aberto anterior, mas não padrão, chamado SPDY. O Chrome suportou o SPDY desde o Chrome 6, mas como a maioria dos benefícios está presente no HTTP / 2, é hora de dizer adeus. Planejamos remover o suporte para o SPDY no início de 2016 e também remover o suporte para a extensão TLS chamada NPN em favor do ALPN no Chrome ao mesmo tempo. Os desenvolvedores de servidores são fortemente encorajados a mudar para HTTP / 2 e ALPN.

Estamos felizes por ter contribuído para o processo de padrões abertos que levaram ao HTTP / 2, e esperamos ver ampla adoção, dado o amplo envolvimento da indústria em padronização e implementação. Também esperamos novos avanços em protocolos fundamentais da internet que levem a uma internet mais rápida e segura para todos.” (Blog Chromium).

O HTTP/1.1 por ser muito eficiente, está tendo dificuldades e lentidão ao processar as aplicações, devido a estas aplicações consumirem muitos recursos, ou seja, devido às grandes mudanças e da maneira como usamos a web hoje, o protocolo HTTP/1.1 já não atende da mesma forma e com a mesma rapidez como antes.

Foi pensando nesta questão que vem se estudando uma maneira mais rápida para atender nossas necessidades, tanto dispositivos móveis, computadores e até mesmo IOT (Internet das Coisas).

Referências

18 Jun 13:41

Conheça os 12 lugares mais sombrios do planeta Terra

by Luciana Calogeras

Alguns lugares verdadeiramente são capazes de nos tirar o sono a noite, de modo que nem nos pesadelos mais “leves” desejamos visitá-los. E certamente esses aqui são alguns deles!

O post Conheça os 12 lugares mais sombrios do planeta Terra apareceu primeiro em Mistérios do Mundo.

03 Jun 22:53

Operador desliga "sem querer" datacenter e da prejuízo de R$ 417 milhões a British Airways.

by noreply@blogger.com (Cláudio Florenzano)
Operador de datacenter desliga energia e da prejuízo de R$ 417 milhões a British Airways.
Operador de datacenter desliga energia e da prejuízo de R$ 417 milhões a British Airways.
A empresa aérea British Airways teve sua operação interrompida, atingindo 75 mil passageiros que tiveram seus voos cancelados.

Como aponta a publicação britânica The Times, os datacenters da empresa foram desativados por engano por algum operador que desativou o fornecimento de energia dos equipamentos acidentalmente, causando o cancelamento de pelo menos 700 voos nos dois principais aeroportos de Londres ao longo de três dias.

A perda de energia nos dois principais datacenters ocasionou a situação desagradável de perder todas as informações sobre voos, sobre as bagagens e sobre os passageiros, forçando a empresa a realizar os cancelamentos.

Como resultado do desastre técnico, a empresa também ficou com uma conta de 100 milhões de libras (cerca de R$ 417 milhões) para reparar o estrago e compensar os passageiros afetados pelos cancelamentos em massa.

A British Airways também foi criticada por algumas políticas internas de cortes de custos que podem ter facilitado o erro humano. Um funcionário chegou a afirmar que a companhia cortou 600 postos de trabalho no setor de TI e terceirizou a função. [ Via: Olhar Digital ]
02 Jun 13:54

Artigo: Como melhorar a performance de aplicações Node.js utilizando o módulo de cluster

by Stefano Baldo

Performance e escalabilidade são aspectos importantes e cruciais para grande parte das aplicações desenvolvidas atualmente. Aplicações Node.js podem utilizar o módulo de cluster nativo da plataforma conseguindo ganhos significativos no aproveitamento de recursos computacionais. Além de explicações sobre o funcionamento deste módulo, o artigo apresenta exemplos práticos de sua utilização.

By Stefano Baldo
02 Jun 00:18

30 Fotos que mostram que a Rússia é de fato o país mais louco do mundo

by Gislaine Lima

Só digo uma coisa:

Enquanto um cachorro não interromper o Jornal Nacional.

será impossível competir com Rússia.

O post 30 Fotos que mostram que a Rússia é de fato o país mais louco do mundo apareceu primeiro em Blog Insôônia.

01 Jun 20:40

SIMET Box – código-fonte do sistema de medição de tráfego de internet foi liberado pelo NIC.br

by Ricardo Ferreira

Desde do dia 25 (maio), provedores, programadores e usuários podem baixar e instalar o código do SIMET Box em seus roteadores. O anúncio desta liberação aconteceu durante o LACNIC 27, encontro que reúne, em Foz do Iguaçu (PR), centenas de participantes de mais de 30 países em torno de discussões sobre temas decisivos para o futuro da Internet na América Latina e Caribe. O código-fonte do SIMET Box, equipamento de medição de tráfego Internet do Núcleo de Informação e Coordenação do Ponto BR (NIC.br), está disponível no endereço: http://simet.nic.br/simetbox

SIMET Box

Um dos principais equipamentos de medição de tráfego Internet do País, o SIMET Box analisa e monitora a qualidade da Internet várias vezes ao dia, faz testes de validação de BCP-38, de gerência de porta 25, qualidade de DNS, totaliza o tráfego mensal, entre outras funcionalidades. O resultado de todas as medições, pode ser exportado para PDF e enviado para seu provedor de Internet. Assim, você pode cobrar por uma Internet de melhor qualidade.

SIMET

Além de tudo isso, os provedores de Internet podem ter acesso aos resultados das medições, para poder corrigir possíveis problemas em sua rede. O sistema SIMET é ainda o único sistema de medições brasileiro para usuário final que realiza testes usando IPv6. Outro diferencial do sistema é a independência, uma vez que os testes são realizados fora das redes das operadoras, dentro dos PIXes (pontos de acesso ao IX.br) do NIC.br.

NIC.br libera código-fonte do SIMET Box

Com a liberação do código, o NIC.br atende a uma demanda da comunidade Internet, que poderá sugerir melhorias para o sistema e novas funcionalidades.

“Os provedores poderão utilizar o SIMET Box em suas redes e analisar a qualidade da conexão que está sendo entregue aos usuários onde o equipamento foi instalado. Já os programadores e usuários com conhecimentos avançados poderão usá-lo em seus roteadores, além de validar o sistema e alimentá-lo com a curadoria do NIC.br. Todos são beneficiados”, destaca Fabricio Tamusiunas, gerente de projetos do NIC.br à frente do sistema de medição.

A iniciativa permite ainda que estudantes, profissionais da área e demais interessados em software livre aprendam com a leitura do código, tirem dúvidas e acompanhem a evolução do SIMET Box desde o início. O NIC.br manterá um fórum para discussões sobre o sistema em github.com/simetnicbr.

“Ao promover o uso do SIMET Box, teremos mais medições e, consequentemente, maior riqueza de dados sobre a qualidade da conexão à Internet nas diferentes localidades do Brasil”, comenta Tamusiunas. Os resultados dos testes são armazenados pelo NIC.br e disponibilizados on-line por meio do Mapa de Qualidade da Internet. Com a liberação do código-fonte, os usuários continuam acessando o histórico das medições e exportação dos dados, porém devem manter-se atentos a atualizações do sistema, que serão disponibilizadas no site do SIMET.

Sobre o NIC.br

O Núcleo de Informação e Coordenação do Ponto BR — NIC.br é uma entidade civil, de direito privado e sem fins de lucro, que implementa as decisões e projetos do Comitê Gestor da Internet no Brasil. São atividades permanentes do NIC.br coordenar o registro de nomes de domínio — Registro.br, estudar, responder e tratar incidentes de segurança no Brasil — CERT.br, estudar e pesquisar tecnologias de redes e operações — Ceptro.br, produzir indicadores sobre as tecnologias da informação e da comunicação — Cetic.br, implementar e operar os Pontos de Troca de Tráfego — IX.br, viabilizar a participação da comunidade brasileira no desenvolvimento global da Web e subsidiar a formulação de políticas públicas — Ceweb.br, e abrigar o escritório do W3C no Brasil.

Sobre o CGI.br

O Comitê Gestor da Internet no Brasil, responsável por estabelecer diretrizes estratégicas relacionadas ao uso e desenvolvimento da Internet no Brasil, coordena e integra todas as iniciativas de serviços Internet no País, promovendo a qualidade técnica, a inovação e a disseminação dos serviços ofertados.

Com base nos princípios do multissetorialismo e transparência, o CGI.br representa um modelo de governança da Internet democrático, elogiado internacionalmente, em que todos os setores da sociedade são partícipes de forma equânime de suas decisões. Uma de suas formulações são os 10 Princípios para a Governança e Uso da Internet.


Fonte: CGI/NIC.br (carolineΘnic·br)
31 May 20:51

O Resumo Da Internet

Quem em sua sã consciência quando pequeno, usando a internet discada pensou -"eu vou ver um video de um cara vestido de tiranossauro rex montando um boi um dia" eu te digo quem: N-I-N-G-U-E-M!

27 May 21:10

Windows 10 executa ferramentas Linux – Tudo que precisa saber sobre isso

by Ricardo Ferreira

Semana passada, na conferência Build 2017, a Microsoft divulgou que o Ubuntu estára disponível no Windows Store; e Fedora e openSUSE no “Windows Subsystem for Linux” – camada de compatibilidade para executar executáveis ​​binários do Linux (no formato ELF) nativamente no Windows. Somado ao anúncio, do ano passado no mesmo evento, de que o Ubuntu rodaria “nativamente” no Windows 10. Diante de tudo isso, destaco 7 coisas que você precisa saber sobre o fato de o Windows 10 rodar ferramentas Linux.

Contextualizando

No ano passado, a Microsoft adicionou um recurso incomum ao Windows 10: o suporte ao Linux. O “Windows Subsystem for Linux” (WSL) – às vezes chamado Bash no Windows – uma camada de compatibilidade para executar executáveis ​​binários do Linux (no formato ELF) nativamente no Windows. Ou seja, executar binários do Linux sem sair do Windows.
3-inotify

Esse recurso tem como foco atingir o público de desenvolvedores, que criam soluções feitas no Linux, a continuarem ou iniciarem suas atividades no Windows 10. Em outras palavras, é possível iniciar um projeto web no Apache, desenvolver um projeto em Go, C, entre muitas outras linguagens; sem sair do Windows.

“O Bash Linux no Windows oferece um conjunto de ferramentas para desenvolvedores, administradores de TI e outros profissionais de tecnologia que desejam ou precisam executar ferramentas de linha de comando do Linux ao lado de suas ferramentas e aplicativos Windows” – Via NetworkWorld

Desenvolvido, inicialmente, com a ajuda da Canonical (e, agora, com uma grande comunidade de usuários Linux, já que o Fedora e openSUSE também rodarão no Windows), o Bash do Linux não veio para transformar o Linux em Windows ou Windows em Linux. Para Mary Branscombe (NetworkWorld), “[…] algumas ferramentas do Linux são tão onipresentes para o desenvolvimento que são úteis poder usá-las sem precisar criar uma máquina virtual (VM), por exemplo”. Ela lembra que “essa é uma das razões pelas quais o Mac é tão popular entre os desenvolvedores: o MacOS é baseado no BSD, que é UNIX, então ele pode executar ferramentas Linux, como o Bash. E agora, o Windows 10 também pode”. Assim o investimento ao WSL está cada vez maior.

Diante disso é importante destacar 7 coisas sobre o fato de o Windows 10 executar ferramentas Linux:

Windows 10 executa ferramentas Linux

1- O WSL é uma distro Linux, não o kernel Linux

O Subsistema do Windows para Linux (WSL) foi criado pela própria equipe da Microsoft; usando bibliotecas do Kernel Windows (ou seja, sem nenhum código Linux). O WSL instala uma distro Linux no seu PC Windows (atualmente, o Ubuntu 16.04 é a distro que você recebe automaticamente e que o que é suportado, embora já tenha sido divulgado o suporte oficial do Fedora e openSUSE).

Os binários do Linux fazem suas chamadas de sistema como de costume, mas, elas consultam o kernel do Windows, em vez do Linux. Em resumo, o WSL é uma camada de compatibilidade criada para gerar binários executáveis do Linux “nativamente” no Windows 10. Fornecendo uma interface de núcleo compatível com o kernel Linux.

2 – Não é uma Máquina Virtual (VM)

Quando você executa o Linux no Windows em uma máquina virtual, você recebe um sistema operacional a parte que “separa” o kernel Linux do Windows. Por outro lado, o WSL cria uma camada de compatibilidade e usa muito menos CPU e memória do que uma VM.

Então, o uso do WSL proporciona uma “experiência” de que as ferramentas Linux fossem “nativamente” executadas no Windows. Podendo ser utilizadas numa única instalação de sistema operacional, sem recorrer ao recurso de virtualização de sistema.

3 – Não é um emulador do Linux dentro do Windows

Softwares como o Cygwin e Cash emulam o Linux dentro do Windows. Onde é possível executar: o bash, sed, grep, gcc, vi e até mesmo o X. E funcionam muito bem, por sinal.

Contudo, são, apenas, programas que configuram diversas DDL’s. O WSL permite que os binários do Linux abram dentro do ambiente padrão do Windows; e você não precisa modificá-los (compilá-los) para serem executados no Windows.

4 – Não é somente o Bash Linux

O Shell Bash é a base do WSL. Tudo é executado a partir dele. Por exemplo, você pode usar o apt no bash para instalar pacotes do Linux. Além disso, pode usar outros shells; bem como: zsh e fish. Além de pode usar ferramentas comuns do Linux como o sed, grep, awk, top, tmux e ssh; e ferramentas de desenvolvedor como vim, Emacs, git e o GNU Debugger (GDB).

Inclusive, é possível executar serviços como: o sshd, Apache, nginx, MySQL e PostgreSQL, ferramentas de linguagem como npm para Node.js, gems para Ruby, Apache Maven para Java, Pip para Python. Por fim, qualquer outra coisa que você normalmente usaria no Ubuntu, por exemplo.

5 – Somente ferramentas de linha de comando, mas…

O WSL foi projetado para executar ferramentas de linha de comando, e é por isso que ele começa com o shell bash. Mas isso não significa que as ferramentas gráficas, do Linux, não funcionem de forma alguma.

A Microsoft não está fazendo nada especificamente para suportar a execução de ferramentas gráficas do Linux, mas, igualmente, não está fazendo nada para impedi-las de executá-las no WSL :)

6 – Pensado nos desenvolvedores

Tudo foi pensado para funcionar melhor para os desenvolvedores que precisam se conectar facilmente ao “backend Linux”. É uma espécie de conjunto de ferramentas para qualquer desenvolvedor que trabalhe em soluções multiplataforma, especialmente aqueles que trabalham na construção de sites e serviços, sistemas distribuídos ou serviços de armazenamento.

Então, como foi no dito no convite oficial aos desenvolvedores, “[…] o subsistema Windows para Linux fornece aos desenvolvedores todas as ferramentas necessárias para codificar exatamente como é feito no Linux; tudo sem perder as vantagens do Windows 10″

7 – Não substitui o PowerShell

O WSL não foi projetado para gerenciar cargas de trabalho com o Windows Server, o Active Directory, o IIS, o Exchange, o SharePoint, o System Center, o SQL Server, o Hyper-V e o Azure da mesma forma que o PowerShell faz. O PowerShell é uma estrutura de automação e configuração de tarefas, e não apenas um shell. Portanto, o WSL não altera isso.


Via | NetworkWorld

27 May 21:09

Headset App - Um player de música que usa o YouTube como fonte

by Dionatan Simioni
Se você está procurando uma aplicação para ouvir músicas pelo YouTube sem precisar utilizar um navegador, o Headset App pode ser uma ótima opção. A aplicação pode ser uma alternativa para você que...

Visite o site para ver o restando do artigo...
24 May 03:44

Amazon contrata o "pai" da linguagem de programação Java.

by noreply@blogger.com (Cláudio Florenzano)
Amazon contrata o "pai" da linguagem de programação Java.
Amazon contrata o "pai" da linguagem de programação Java. 
A Amazon Web Services (AWS) tem oferecido por muito tempo um kit de desenvolvimento de software (SDK, na sigla em inglês) para tornar mais fácil o acesso a seus serviços na nuvem a partir do Java. Agora, a empresa “oferece” outra atração para programadores Java: James Gosling, nada menos que o pai da linguagem de programação.

Gosling, de 62 anos, revelou sua contratação pela AWS em sua página no Facebook com a seguinte frase: "É hora de uma mudança. Estou deixando a Boeing Defense [mais precisamente da Liquid Robotics, fornecedora de sistemas marítimos autônomos e desenvolvedora do robô de superfície Wave Glider, adquirida em 2016], com muitas boas lembranças. Hoje eu começo uma nova aventura na Amazon Web Services. "

O programador canadense assumiu o cargo de "engenheiro distinto" na AWS, segundo uma atualização de seu perfil no LinkedIn. Gosling começou a trabalhar no que mais tarde se tornaria Java no início dos anos 1990, quando trabalhava na Sun Microsystems, e continuou seu desenvolvimento até a aquisição da empresa em abril de 2009 pela Oracle, empresa que deixou um ano mais tarde, frustrado porque seu papel tinha sido reduzido ao de um evangelista do Java.

Após uma breve temporada no Google, Gosling se mudou para a Liquid Robotics, na qual, como arquiteto-chefe de software, programou Wave Glider e processou seus dados na nuvem.

A AWS tem apostado suas fichas nos desenvolvedores Java, oferecendo uma série de maneiras de executar aplicativos Java em sua nuvem, incluindo a implantação por meio de um único clique dentro do Eclipse IDE e implantação automatizada usando sua ferramenta de provisionamento Elastic Beanstalk.

A longa experiência de Gosling com Java — e mais recentemente com o processamento de dados em nuvem — fará dele um ativo na AWS. A Amazon, inclusive, tem testado a entrega de encomendas por drone nos EUA e no Reino Unido. Com a experiência de Gosling na construção de robôs autônomos, a empresa pode estar um passo mais perto de automatizar a cadeia de suprimentos global.
16 May 13:05

Analista de Segurança que parou ciberataque mundial "sem querer" vira herói nacional.

by noreply@blogger.com (Cláudio Florenzano)
ELE PREFERE MANTER O ANONIMATO E USA UMA FOTO DE UM GATINHO NO PERFIL.
Como prêmio por ter impedido estragos ainda maiores na última sexta-feira (12), quando um ataque cibernético atingiu milhares de pessoas em dezenas de países, o analista de cibersegurança conhecido pelo apelido online MalwareTech e que já passou dos 54 mil seguidores no Twitter, vai ganhar uma semana de folga pela façanha. O rapaz de 22 anos que prefere não se identificar e até usa a imagem de um "gatinho nerd" no perfil, trabalha para uma empresa britânica de segurança -- e tem sido tratado pela mídia do mundo todo como um "herói".

"O pesquisador de 22 anos ganhou mais uma semana de folga como recompensa pelo seu trabalho", diz o jornal britânico "The Independent", que publicou hoje matéria sobre o assunto.

"O analista de sistemas e segurança já estava de folga quando decidiu investigar o ataque de ransomware [tipo de software malicioso que sequestra e bloqueia arquivos do usuário atingido em troca do pagamento de um resgate], após ficar sabendo do ataque global", diz o texto.

O fato de ter declarado que impediu "por acidente" que o vírus se propagasse transformou sua ação em algo ainda mais heroico.

"O chefe me deu outra semana como compensação por esta catástrofe de férias", ele disse.

Segundo a BBC, que o entrevistou, o jovem analisava o código que fazia funcionar o vírus responsável pelo ataque quando percebeu que o programa tentava contactar um endereço de internet incomum. (iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com), que não estava registrado.

Ele, então, gastou o equivalente a R$ 35 reais para comprar o endereço. Com isso, conseguiria analisar o comportamento do vírus, mas notou que, logo na sequência à operação de registro, a propagação do programa foi interrompida, como se um "botão de segurança" tivesse sido ativado, levando à sua autodestruição.

"Foi algo acidental. Passei a noite inteira investigando", afirmou. "Quando registrei o site, isso fez com que todas as 'infecções' pelo mundo se desativassem, por acreditar que estavam em uma máquina virtual. Sem querer, impedimos a proliferação do vírus.".

Isso não significa que a ameaça foi afastada. Arquivos danificados pelo vírus ainda podem ser usados para chantagear seus donos. E analistas de segurança alertam que novas variações do programa que ignorem o "botão" vão aparecer. [ Fonte: Uol Tecnologia ].
06 May 13:53

Estagiário de TI ganha até US$ 8 mil dólares nos EUA; Veja ranking das empresas que melhor pagam.

by noreply@blogger.com (Cláudio Florenzano)
Estagiário de TI ganha até US$ 8 mil dólares nos EUA; Veja ranking das empresas que melhor pagam.
Estagiário de TI ganha até US$ 8 mil dólares nos EUA; Veja ranking das empresas que melhor pagam.
Normalmente, quando pensamos em estágio, pensamos em trabalhos exigentes e mal remunerados. No setor de tecnologia dos Estados Unidos, por outro lado, as coisas não são bem assim: alguns estagiários de empresas de tecnologia de lá já ganham bem mais do que a maior parte de nós vai ganhar no final da carreira.

O site de empregos GlassDoor elaborou uma lista com os estágios mais bem remunerados dos Estados Unidos, e boa parte deles eram em empresas de tecnologia. Normalmente, os estágios por lá duram apenas alguns meses (de três a seis meses em geral). Mas se eles durassem mais, o salário dos estagiários chegaria a ser quase o dobro do salário anual médio de um trabalhador estadunidense (US$ 51.350 segundo o site).

E na comparação com o Brasil, a disparidade é ainda maior. Considerando dados do IBGE, alguns dos estagiários das empresas citadas abaixo ganham mais, por mês, do que a média dos trabalhadores sem carteira assinada em algumas das principais capitais do Brasil. 

Com base na lista da GlassDoor, listamos abaixo os 15 estágios mais bem pagos em empresas de tecnologia dos Estados Unidos.

15, 14 - MathWorks e Adobe - US$ 5.120 (R$ 16.250) por mês

13, 12, 11 - Workday, Juniper Networks e Intuit - US$ 5.440 (R$ 17.270) por mês

10 - Nvidia - US$ 5.700 - (R$ 18.093) por mês

9 - Google - US$ 6.000 - (R$ 19.053) por mês

8, 7 - VMWare e Yahoo! - US$ 6.080 (R$ 19.303) por mês

6, 5 e 4 - Yelp, Apple e Amazon - US$ 6.400 (R$ 20.320) por mês

3 - SalesForce - US$ 6.450 (R$ 20.480) por mês

2 - Microsoft - US$ 7.100 (R$ 22.540) por mês

1 - Facebook - US$ 8.000 (R$ 25.400) por mês
02 May 16:00

Como Assim Mano?

Como Assim Mano?

Tem louco pra tudo hasuaHsuaS