Deploy de produtos IBM Sterling simplificado

Implantar múltiplas aplicações em Kubernetes/OpenShift pode ser um desafio. Gerenciar configurações, dependências e ambientes diversos pode transformar o processo em um labirinto de complexidades. No entanto, eu firmemente acredito que o processo de instalação deve ser rápido e simples. Com essa crença em mente, gostaria de apresentar a você o repositório https://github.com/ibm-sterling-devops/ansible-ibm-sterling, uma ferramenta que não só simplifica o deployment na plataforma Linux, mas também oferece suporte para Kubernetes e OpenShift, tornando-se uma solução abrangente para implantações modernas de aplicações.

Apresentando o repositório ansible-ibm-sterling

O ansible-ibm-sterling é um conjunto de playbooks e roles do Ansible projetados para automatizar o deployment de aplicações IBM Sterling. Com suporte para implantações em Kubernetes e OpenShift, ele oferece uma maneira simplificada e eficiente de gerenciar e implantar stacks de aplicações complexas em diversos ambientes.

Benefícios do uso do ansible-ibm-sterling

  1. Instalação Rápida e Simples: O processo de instalação é projetado para ser rápido e direto, alinhando-se com minha crença de que implantar aplicações deve ser livre de complicações.
  2. Automação: Esta ferramenta de deployment via CLI automatiza o processo de implantação, reduzindo a intervenção manual e minimizando erros humanos. Isso acelera o deployment e garante consistência entre os ambientes.
  3. Consistência: Garante deployments consistentes em vários ambientes, incluindo clusters Kubernetes e OpenShift, mantendo a integridade e o comportamento da aplicação.
  4. Escalabilidade: Facilmente escalável para implantar grandes aplicações em múltiplos servidores, ambientes de nuvem ou clusters Kubernetes/OpenShift, graças à arquitetura sem agente do Ansible e ao suporte a Kubernetes/OpenShift.
  5. Flexibilidade: Altamente customizável para adaptar o processo de implantação às suas necessidades específicas. A flexibilidade do Ansible e o suporte a Kubernetes/OpenShift permitem que você ajuste o processo de implantação de acordo com seus requisitos.

Como Começar

Se você está interessado em experimentar o ansible-ibm-sterling com suporte para Kubernetes/OpenShift, você pode encontrar o repositório no GitHub. O repositório contém documentação detalhada, exemplos e scripts para ajudá-lo a começar.

Para começar, siga as instruções em:

https://ibm-sterling-devops.github.io/ansible-ibm-sterling

Leia também:

Estude e Apareça

Desde que finalizei o curso de Ciência da Computação em 1997, comecei a estudar muito mais que no próprio curso, sendo um especialista no que faço. Em 2019, deixei todo o conhecimento que tinha e tenho me reinventado continuamente através do aprendizado.

Nos últimos anos, aprendi sobre Kubernetes/OpenShift, Python, Ansible, MinIO, Kafka, Cloud functions, Angular, IBM Sterling, IBM Maximo (Gestão de Ativos), Cloud functions, etc. Isso me permitiu realizar, dentro da IBM, o trabalho que gosto de fazer e estar envolvido em diversos projetos e oportunidades.

Anualmente, lanço na minha avaliação a quantidade de horas de capacitação, e sempre acima de 200 horas de estudo e mais de 3 badges/certificações!

Existem muitas maneiras de aprender, que eu pratico todas:

  1. E-Learning/Aulas Presenciais/Vídeos no Youtube

E-learning e treinamento em sala de aula são as formas mais óbvias quando se trata de aprendizado. Há muito material no IBM Your Learning e você pode obter muitos badges também. Mas você também pode aprender lendo e ouvindo (o que você pode registrar no Think 40 também, dependendo do conteúdo, eu diria). Existe muito material ruim no Youtube, mas existem excelentes vídeos de qualidade, procure sempre vídeos em Inglês e com mais de 30 minutos.

  1. Leitura

Livros podem abrir sua mente. Ler ficção científica abre para mim um mundo de coisas que poderiam ser. Isso amplia sua mente. Permite que você pense fora da caixa. Ler livros relacionados a habilidades pessoais, também abre a sua mente. Audio-livros também são uma boa, pois você pode praticar uma atividade esportiva (correr/caminhar/academia) e se aprimorar.

  1. Escutar

Você também pode aprender ouvindo podcasts. Há muitos podcasts sobre negócios, habilidades pessoais e liderança por aí. A partir desses podcasts, também aprendi sobre livros que essas pessoas leem ou documentários que são interessantes, hábitos diários que eles têm e que os ajudam.

  1. Voluntariado (aprender fazendo)

Fiz trabalho voluntário compartilhando código e compartilhando no GitHub, trabalhando em demonstrações/provas de conceito no meu próprio tempo. Gostei de fazer isso, pois me deu a oportunidade de trabalhar com as tecnologias mais recentes e, assim, aprender fazendo. Novamente, isso me permite aprender apenas fazendo as coisas. Não sou desenvolvedor, mas gosto de desenvolver. Agora estou trabalhando com integração com ferramentas que, até algumas semanas atrás, eram apenas nomes para mim. Agora sei como usá-los. Na verdade, acho que esse tipo de trabalho voluntário traz o maior benefício. Como voluntário, você faz o que gosta de fazer (não necessariamente o trabalho para o qual foi treinado), aprende e também pratica a retribuição.

Espero que você aproveite essas práticas também!

Leia também:

  • Sem textos relacionados

Prós e Contras de ter um ou vários Clusters de Kubernetes

Montei uma lista de prós e contras que podem ajudar você e a sua empresa a decidir, sobre a necessidade de ter apenas um ou vários clusters de Kubernetes.

Razões para ter um único cluster:

  1. Reduzir a sobrecarga de configuração, manutenção e administração
  2. Melhor utilização de recursos
  3. Reduzir a latência entre aplicativos em vários clusters
  4. Redução de custos

Neste caso você utiliza Namespaces para poder separar os ambientes, como por exemplo Desenvolvimento, Homologação e Produção.

Razões para ter vários clusters:

  1. Limites de escalabilidade, por exemplo, um cluster Kubernetes tem um limite de nodes, pods, services.
  2. Separação de Desenvolvimento, Homologação e Produção.
  3. Separação para testar uma nova versão do Kubernetes.
  4. Segurança e Conformidade: de acordo com alguns regulamentos, alguns aplicativos devem ser executados em clusters/VPNs separados e diferentes políticas de segurança.
  5. Multi-fornecedor: para se proteger de práticas de Lock-in. Usando de clusters de vários fornecedores.
  6. Nuvem Pública/On Premise: para dividir a carga e o custo.
  7. Regionalidade para latência: executar clusters em diferentes regiões geográficas para reduzir a latência nessas regiões.
  8. Regionalidade para disponibilidade: executar em clusters em diferentes regiões/zonas de disponibilidade para reduzir os danos de um datacenter/região com falha.
  9. Facilitar a cobrança: Isolamento de cluster para facilitar a cobrança.

Leia também:

Novo local para o IBM Collaboration Solutions Catalog

O catálogo de produtos da IBM Collaboration Solutions que antes ficava no Greenhouse, migrou para uma nova url –> https://xspy.mybluemix.net/

Nele estão disponíveis:

  • IBM Connections Desktop Plug-ins for Microsoft Windows
  • IBM Connections Plug-ins for IBM Notes
  • Web Application Integrator for IBM WebSphere Portal
  • ….

Leia também:

Projetos em Node.js com boas práticas

Como o Node.js é uma plataforma e não um framework, as boas práticas ficam dependentes do projeto e dos desenvolvedores envolvidos.

Os padrões de design e as melhores práticas existem para evitar armadilhas comuns e construir aplicativos mais estáveis, mas esses princípios orientadores na maioria das vezes não são bem documentados.

Mas existem bons guias e filosofias disponíveis, recomendo visitar o The Node Way. Lá descrevem práticas recomendadas e princípios orientadores para a escrita de módulos de manutenção, aplicações escaláveis e códigos que são realmente agradáveis de ler.

 

Uma sugestão que ajuda bastante é utilizar um linter desde o início.

In computer programming, lint is a Unix utility that flags some suspicious and non-portable constructs in C language source code. Wikipedia

No caso de Javascript, o mais bem availado é o ESLint, veja a comparação com outros neste link.

Como dica de uma boa leitura utilize JavaScript Standard Style, que exemplifica e evita de você criar as suas próprias regras.

Leia também:

Minha Jornada em ser proficiente em JavaScript e Python.

Sempre trabalhei mais com produtos de mercado do que com desenvolvimento, mas sempre procurei conhecer as linguagens utilizadas neste produtos, com o objetivo de solucionar problemas, melhorar integrações e automatizar tarefas.

A algum tempo, tenho investido bastante do meu tempo em JavaScript e Python. Alguns  motivos para isso são:

  • Os principais fornecedores de Cloud (Amazon AWS, Microsoft Azzure, Google Cloud, IBM Bluemix, …) tem serviços baseados nestas linguagens;
  • Produtos como IBM Connections, estão deixando a plataforma Java/IHS/WAS/DB2 e migrando para Javascript/Nginx/Node.JS/MongoDB.
  • Soluções em Analytics e Big Data de mãos dadas com Python.
Três Homens em Conflito ou O Bom, O Mau e o Feio!!!
O Bom O Mau O Feio
JavaScript
  • JavaScript me faz lembrar da aulas de Programação Funcional!!! Idêntico as recursões da linguagem Scheme.
  • JavaScript é uma escolha natural para quem usa APIs baseadas em Json.
  • JavaScript/Node.JS/MongoDB é uma combinação muito poderosa, onde tratamos objetos de apenas uma maneira, isto é, no formato Json.
  • Assincrônia. Saiba o que são funções “blockantes”, para evitar sustos nos resultados do seu código.
  • Fuja dos Callbacks Hells!
Python
  • Python me faz lembrar das aulas de Pascal da faculdade! Uma linguagem simples e sem burocracia. Programar procedural ou orientado à objeto, fica a escolha do programador.
  • Python é um “trator” no que se fala em tratamento de dados.
  • Python 2.7 e Python 3.x gera confusão de qual devo usar.
  • Uso de Json através de bibliotecas.
  • Alguns artigos que li sobre o Python 3, questionam sobre os problemas de performance devido ao novo I/O stack e o suporte a Unicode.

Em ambos as linguagens, tenha noção de:

  • “Para prego use Martelo, para parafuso use Chave de Fenda”, saiba quando utilizar uma linguagem ou outra.
  • Escolha um bom editor, como sugestão Atom, Sublime e Visual Studio Code.
  • Bibliotecas são instaladas com facilidade usando npm/JavaScript ou pip/Python.
  • Aprenda a fazer chamadas via Rest para APIs estamos na era da Economia das APIs.
  • Você precisa utilizar dados JDBC, SAP, Aplicações Legadas, etc. Crie APIs em Java Servlets, e utilize dentro do Javascript e Python usando Rest/HTTP, com isso você reduz a necessidade de instalação de novas bibliotecas.

Nunca deixe de aprender coisas novas e pratique, pratique, pratique.

Leia também:

Um mundo cheio de Bots!

Hoje vou falar como os bots estão invadindo o nosso mundo.

Meu primeiro contato com bots foi em 2007, quando construí um bot  (veja aqui) para o IBM Sametime, que traduzia textos usando o Google Translator!!! Elas andaram meio sumidos, mas estão de volta com força total.

Mas o que são bots?

O termo bots vem de acrônimo para (ro)Bots, e de maneira simplificada são usuários digitais dentro de aplicações de chat como o Facebook Messenger, WhatsApp, Slack, … Estes “usuários” trazem notícias, produtos e/ou serviços dentro destas aplicações como se fossem uma conversa.

Como alguns exemplos de bots temos:

– Alexa: bot de voz da Amazon
– Amy: bot via email da x.ai
– Lyft: bot que informa o tempo de chegada estimado a algum lugar.
– Hipmunk: bot que faz reserva de viagens

Num mundo cheio de páginas Web e Mobile Apps, por que expor serviços via conversa?

1) Acessamos a Internet mais via celular do que via navegadores. O que fez com que o mercado ficasse saturado de aplicações móveis. Você, como usuário, não vai instalar todas as aplicações que encontra, correndo o risco de deixar o seu celular lento. E caso for utilizar um serviço, não vai instalar, usar uma vez e desinstalar.
Se você verificar teu celular, verá que terá pelo menos 3 aplicações de mensagens, no meu caso: SMS, email, Facebook Messenger, WhatsApp,…

2) Usuários passam a maior parte do tempo de uso de um celular, utilizando aplicações de chat.

3) Plataformas de chat já expõe esses serviços, Slack em 2015, Facebook, Apple e Skype em 2016.

4) As tecnologias de reconhecimento de linguagem natural expostos via APIs.

A adoção de Bots está apenas começando, e vale a pena acompanhar a sua
evolução.

Leia também: