(((((NodeJS + Typescript + TSLint + Restify) + MongoDB) + Docker) + VSCode ) + Yeoman) = Uma experiência de desenvolvimento incrível!

Perdão, não achei outra forma de expressar com alguma precisão o que acabei de criar! E é incrível! O título poderia se chamar “o primeiro yo a gente nunca esquece”, mas não expressaria o projeto e suas capacidades, nem as tecnologias e integrações envolvidas. O que é? Eu estou em plena restruturação de um de…

Progressive Web Apps – Coloque no seu roteiro de estudo

Você já se viu tomando decisões simples a respeito de instalar ou não (novamente ou não) um determinado app no seu celular. Os que você menos usa, são os mais eletivos a serem ignorados quando você troca de dispositivo, ou mesmo quando precisa recuperar algum espaço na memória do aparelho. Esse é um comportamento comum, e…

Docker – de A a Z – 17 – Build and running WSO2 Identity Server Docker Image

Um dos recursos mais comuns em aplicações corporativas é a gestão de identidade. Ou você implementa na aplicação, ou você utiliza um serviço externo como Auth0, Azure Active Directory ou outros. Quem está próximo das tecnologias Microsoft já ouviu falar do Identity Server (outro projeto), no entanto é importante conhecer outras soluções e a WSO2 possui uma: O WSO2 Identity Server, e é sobre esse projeto que falarei hoje.

Uma PoC de Sucesso

Esse post não tem o intuito de falar de boas práticas, de abordar padrões, técnicas mirabolantes, ou nada disso. É sobre fazer concessões para obter um resultado, levando em conta recursos disponíveis como know how, equipe e principalmente tempo. Parece familiar? Ok, mas também não é e nem passa perto de ser uma sugestão para você fazer algo que mereça ser colocado em produção. Estou aqui para falar de Provas de Conceito, PoC’s ou do inglês Proof of Concept e como consegui entregar uma porcaria extremamente funcional que encantou clientes.

Microsoft Bot Framework no .NET Core – Alpha

Ao começar esse post estava disposto apenas a apresentar novos packages do Microsoft Bot Framework no .NET Core,  que endereçam o desenvolvimento de bots com .NET Core 1.1 e .NET Standard 1.4 e 1.6, já disponíveis em versão alpha no Nuget.org, no entanto como está no meu roadmap reconstruir, já pela 4ª vez, minha infraestrutura de bots, aproveitei para então entender um pouco o que esses assemblies trazem para poder já começar minha implementação. Aproveitei intervalos nesse domingo de páscoa e obtive ótimos resultados com os novos pacotes. Bots simples já podem usar esses novos pacotes sem problema algum.

A anatomia de um chatbot

Vendo bots com uma visão mais profissional, pude estudar muito e principalmente: experimentar muito. Fiz diversos testes implementando chatbots com C# e Microsoft Bot Framework, sob o .NET Framework, mas também fiz bots em NodeJS, e alguns construídos direto em plataformas web. Testei inúmeras plataformas, implementei diversos fluxos de negócio e apresentei diversos exemplos para comitês, fiz apresentações gerenciais, auxilio o time de vendas da Ebix Latin America no diálogo sobre Chatbots com nossos clientes. Aprendi sobre o que o que os gestores esperam, entendi o que eles querem, e quais são suas principais dúvidas e expectativas. Acho que posso ajudar quem pretende entender um pouco sobre chatbots e o que há de interessante no mercado para se fazer bots.

Como a segment.com economizou US$ 1 milhão por ano em sua conta da AWS

Veja como a Segment economizou US $ 1 milhão por ano em sua conta da AWS em três meses. Seus esforços de investigação são interessantes e detalhados, há muito para aprender com eles. Provavelmente não deveria ser uma surpresa que a AWS não facilite a descoberta de onde há oportunidades de economizar.

NGINX Automation

Se você usa o NGINX em produção, como Reverse Proxy, já se perguntou se seria possível criar algum tipo de automação. Essa é uma demanda pq quanto mais apps passando por ele, mais endereços, mais configurações. Se você usa todo o potencial do NGINX, aí com toda certeza você ficará interessado na automação. Exemplo de configuração…

WSO2 – Open Source SOA Suite

E você vai passando pelas empresas, vai ganhando experiência, acaba vendo problemas recorrentes e em algum momento pode passar o seguinte pensamento: Putz, esse problema aqui se resolveria de forma super simples com um API Manager, ou um ESB, e quem sabe essa infinidade de API’s de consulta poderiam ser criadas com uma ferramenta. Hoje vou falar um pouco de alguns produtos da WSO2.

Bom esses e muitos outros problemas endereçados no SOA são geralmente atendidos com soluções caras como Data Power, Integration Bus (ambos da IBM) e diversas outras soluções extremamente difundidas, mas caras! Seja IBM, Oracle, Microsoft, CA, inevitavelmente você irá esbarrar em custo, principalmente se você não tiver um bom orçamento para se jogar fora.

Docker – de A a Z – 15 – RabbitMQ, LogStash, ElasticSearch e Kibana com Docker Compose

Pessoal, hoje vou falar um pouco de um stack de log muito interessante, esse papo acontece aqui no Docker de A a Z pois toda a infra de log é feita usando Docker. Nesse stack de log utilizo RabbitMQ,  LogStash, ElasticSeach e Kibana com Docker Compose. São muitos elementos, mas esse desenho garante o máximo de performance…

Docker Images – Nginx & Google PageSpeed

A internet como vemos hoje exige cada vez mais performance e cada vez melhor usabilidade. Nunca tivemos tanto apreço à experiência do usuário, assim produtos, ferramentas, serviços e frameworks são bem vindos para ajudar a entregar performance. Com o aumento nos recursos de interface, e a facilidade com que conseguimos hardware, chegamos em um momento em que a renderização passa a ser um ponto chave na obtenção de performance, já que do aspecto de processamento do server, nunca vimos tanto hardware (barato), nunca vimos tantos patterns, tantas soluções para facilitar nossa vida.

Mas e quando você não tem controle sobre todo o que foi desenvolvido? Seja ao fazer deploy de um WordPress, Magento, ou soluções maiores, como SiteCore, Evoq, o que fazer quando você precisa melhorar a experiência do seu usuário? Esse problema é comum quando usamos soluções prontas, em que sua customização não necessariamente abrange detalhes tão técnicos. É sobre esse tipo de problema que quero falar e vou aproveitar para apresentar o Google PageSpeed Module for Nginx, falar um pouco sobre Nginx e como ambos podem te ajudar no seu próximo projeto.

Todo WebDev deveria saber: Infraestrutura

Nós trabalhamos com projetos web, serviços, apis, conversamos e definimos soluções, desenhamos projetos pequenos, médios, mas e quando o bicho pega e você precisa de algo maior? Estar pronto para administrar e resolver problemas do dia-a-dia no desenvolvimento web, consiste em conhecer também infraestrutura. Você precisa conhecer com certo nível de profundidade tudo o que você usa, direta ou indiretamente para que possa tomar suas decisões. Pensando nisso, organizei nesse post alguns pontos referentes à infraestrutura que você não pode deixar de saber.

Docker Images – Dicas e Truques

Você já criou suas primeiras imagens, mas algo não ficou bom e teve muito trabalho? Periódicas atualizações fizeram com que gastasse um tempo não previsto para atualizar imagens?! Deseja criar imagens mas não sabe como criar imagens de forma eficiente e de acordo com as melhores práticas. Esse post é para você.

Você pode encontrar imagens para os mais variados tipos de serviços e produtos, desde load balancers até blogs, bancos de dados SQL e NoSQL até Log. A maioria delas preza por alguns aspectos que são considerados boas práticas na criação de imagens, entenda como nesse post.

Novas tecnologias – Alguns motivos para você pensar nelas!

Ao longo dos últimos anos, venho trabalhando escalabilidade e performance de uma forma bem intensa. Já fiz algumas implantações de Jenkins para CI, uma de MongoDB que ficou muito interessante, algumas outras de RabbitMQ, ElasticSearch + LogStash + Kibana e Redis.

TypeScript + Classic ASP … Why not?

As vezes algumas limitações impostas por clientes, times de arquitetura e empresas atrapalham nossas vidas. Não é fácil, nos dias de hoje, se sentir confortável em desenvolver algo com ASP Clássico. ASP pode ser facilmente considerado o cobol da Web. Com TypeScript você pode usar os recursos de uma linguagem tipada e todos os recursos de uma linguagem extremamente poderosa, no velho ASP Clássico

Nesses muitos anos que passaram e diversos projetos, presenciei todo tipo de limitação: Frameworks antigos, Arquiteturas ultrapassadas, ferramentas ou softwares de apoio defasados, ou insuficientes, ojeriza a open source, enfim, todo o tipo de limitação que você possa imaginar, mas em 2015 ainda se começar projetos em ASP Clássico é demais?! Como a gente come código com farinha, lá em casa, seguimos em frente, dá para fazer coisas boas em qualquer plataforma.

WebAPI não é bala de prata

O tema

Pessoal, faz alguns dias que assisti um debate interessante e muito produtivo com o tema “Serviços na plataforma .NET: WCF ou WebAPI?”. Quem conduziu o debate foi a galera do AspNetCast‬, com a presença do Evilásaro Alves. Bom, não vou debater a respeito do cast que está aqui, minha intenção é debater sobre o assunto.

Deja-Vú

O ponto mais engraçado é que para uma grande parte da galera nova, e já trabalhei com um pessoal que pensa isso, WCF é algo totalmente desnecessário e irrelevante, em contrapartida WebAPI é a solução mais eficiente e eficaz para integrações e exposição de serviços.  Na cabeça deles, WCF é quase um elefante branco, desnecessário, over design, simplesmente too much. Eles traziam consigo o hype de que o WCF era tão grotesco e pré-histórico quando cobol.

Logs Estruturados

Então, meses sem escrever nada mas hoje estou aproveitando o domingo para escrever algumas coisas sobre o que tenho vivido no último ano. Olhando projeções para o próximo ano, vejo alguns pontos relevantes relacionados ao que posso contribuir com o dia-a-dia de vocês.

Você sabe o que são logs estruturados?

Logs estruturados, diferente dos logs de aplicação, comuns, contém uma série informações e metadados adicionais, usados para agrupamento e consulta. Logs estruturados devem conter informações relevantes ao negócio e ao desenvolvedor.

Um log comum de exceções, por exemplo, envia dados da exceção, como mensagem, stack trace, inner exceptions. Um log estruturado de exceções, poderia conter informações que diagnosticam o servidor no qual o log foi gerado, qual a operação estava sendo processada, qual o ID ou dados mais completos dos seus objetos de negócio durante a operação, além da comum severidade. E não para por aí, ainda seria possível informar qual o cliente da requisição, no caso de WebApps, qual o usuário logado, entre outras diversas informações de aplicação que poderiam ser passadas para o log, ajudando no troubleshooting e análise de problemas ou mesmo de fluxos de negócio.

O que eu uso?

Olá, como vai você?

As polêmicas

Do lado de cá, continuo me metendo em polêmicas e mais polêmicas nos grupos de discussões nacionais, e nesse final de semana decidi sair desses grupos. A discussão por aqui não é muito produtiva, leva-se tempo para que as pessoas foquem no foco de uma discussão enquanto, outros fazem agressões descabidas, ou mesmo falem muita besteira. Chato isso, mas de fato, há muita gente achando que sabe, o que não sabe!