Categorias
📈 Mercado de TI

Soluções de Armazenamento de Dados Bancos transacionais

Primeiramente, devemos entender a diferença de dados e informações. Dados são gerados a todo momento por sistemas, aplicativos e dispositivos em diversos lugares com formatos diversos, como dados cadastrais, logs de sistemas, áudios, vídeos, imagens, etc. Quando há o processamento desses dados gerando insights para o apoio de decisão temos o que chamamos de Insight.


Um exemplo clássico, em um sistema de estoque de mercado temos dados de produtos, clientes e vendas. A partir desses dados, vemos que fraldas e cervejas são vendidos juntos quando o cliente é um homem. É retirado o insight que quando o pai vem ao mercado comprar fraldas ele busca comprar cerveja e a decisão do mercado de colocar esses itens perto um do outro com o objetivo de aumentar as vendas. Como profissionais de TI devemos entender como armazenar, explorar e retirar informações desses dados. 

Os tipos de dados


Podemos classificar os dados em três tipos: estruturado, semi estruturado e não estruturado.

Os dados estruturados são dados gravados de maneira tabular (como uma planilha de excel), sendo representados por linhas e colunas. Os dados semi estruturados, como diz o nome, possui alguma estrutura sendo menos rígida, como por exemplo um arquivo JSON. Já os dados que não tem uma estrutura definida, são os dados não estruturados como imagens, vídeos, áudios e arquivos binários.

Após identificar os tipos de dados que temos disponíveis, devemos escolher a solução de banco de dados que melhor nos irá atender.

Banco de dados transacional


Os bancos de dados transacionais são os que armazenam todos os dados necessários para uma transação, como por exemplo, um controle de estoque de supermercado, um sistema financeiro e etc. Temos diversos tipos de bancos de dados separados em dois grupos, os bancos de dados SQL e NoSQL (Not Only SQL).


Os bancos de dados SQL, chamados também de bancos relacionais, armazenam dados estruturados e utilizam de SQL (Structured Query Language, em português Linguagem de Consulta Estruturada) para manipular os dados.

Já os bancos NoSQL foram criados para suprir algumas necessidades dos bancos SQL com um objetivo de ter uma performance de acesso, controle e escalabilidade melhores, por exemplo. Alguns tipos de bancos NoSQL estão listados abaixo.

Tipo Documento

Os dados são armazenados em formatos de documentos do tipo JSON, por exemplo. Um modelo de dados em que os desenvolvedores estão acostumados a trabalhar em suas aplicações, facilitando o acesso e manipulação dos dados já que estão no mesmo formato dos dados da aplicação.

Exemplos de aplicações em que tipo de banco se encaixa melhor estão catálogos, perfis de usuários e sistemas de gerenciamento de conteúdo.

Tipo Chave-valor


Esse tipo de banco armazena dados em conjuntos de pares de chave-valor, o valor é um identificador único para o valor. Ou seja, o acesso nesse tipo de dado é muito mais rápido, sendo necessário somente saber qual a chave para o valor desejado.

O tipo de valor armazenado pode ser objetos simples ou complexos dependendo somente da aplicação. Carrinho de compra, armazenamento de sessões, IoT são exemplos que se esse tipo de banco pode ser aplicado.

Tipo Grafo

Um grafo é composto por nós e arestas, um nó é ligado a outro(s) nó(s) por uma aresta. Um banco de dados do tipo grafo utiliza o nó para gravar informações sobre as entidades e as arestas para armazenar as informações das relações entre as entidades.

Uma aresta tem um nó inicial, final e direcionamento e dessa forma é possível identificar todas relação de uma entidade. Um exemplo mais claro de aplicação desse tipo de banco é uma rede social.

Banco de dados na nuvem


Cada provedor de nuvem tem ofertas de todos os tipos de bancos de dados diferentes citados no artigo, onde todo o gerenciamento é feito pelo provedor e o desenvolvedor se preocupa somente em extrair o melhor de cada ferramenta. Algumas dessas ofertas são bancos de dados nativos da nuvem projetados com recursos de escalabilidade e gerenciamento. Outras ofertas são bancos de dados tradicionais para uma empresas executar o “lift and shift”, em outras palavras, a migração de um ambiente on premise para a nuvem.


As vantagens de se usar soluções na nuvem são várias, desde o gerenciamento até o custo. Soluções on premise tem custo alto para a capitalização e manutenção diária do ambiente, além do custo elevado de gerenciamento administrativo como backups diários, atualização de softwares, segurança e alta disponibilidade.
Todos esses custos são drasticamente reduzidos em soluções PaaS (Plataform as a Service), por exemplo. O ambiente físico  se torna responsabilidade do provedor, e os problemas de gerenciamento administrativos se tornam menos complicados uma vez que as soluções em nuvem são projetadas para ter toda a escalabilidade, segurança e continuidade de negócio facilmente configurável.

Conclusão

Os dados são extraídos de vários lugares e sistemas, tem diversos formatos e para armazená-los da melhor forma temos diversos tipos de banco de dados. Não existe um tipo melhor ou pior de banco de dados, cabe ao profissional entender o caso de uso de cada tipo de banco de dados e escolher o que irá melhor atender a sua necessidade.

Existe também o banco de dados analítico, uma base de dados alimentada por diversas fontes diferentes, onde esses dados são organizados e disponibilizados para os usuários para transformar esses dados em informações para tomada de decisões. Vamos deixar mais detalhes para a parte 2 deste artigo. 

()
Categorias
🖥 Desenvolvimento

Packages excelentes do Laravel para desenvolvimento Back-End

O Laravel é um framework PHP, excelente para criar aplicações tanto simples quanto robustas, voltado para o Back-End. Porém o Front-End pode ser implementado tanto separadamente com APIs, quanto dentro do projeto, usando diversos tipos de frameworks (vue, react, bootstrap, …).

Com o Laravel é possível criar desde projetos básicos e simples, até robustos e complexos, contando com uma vasta comunidade de desenvolvedores e uma imensa rede de packages disponíveis. Os packages PHP disponíveis, ficam localizados no Packagist, que atualmente é o principal repositório do Composer. Ele agrega pacotes PHP públicos instaláveis ​​com o Composer.

Abaixo será listado algumas das bibliotecas mais relevantes para usar dentro de um projeto Laravel:

Laravel Breeze

O Laravel Breeze é uma implementação simples de todos os recursos de autenticação do Laravel, incluindo login, cadastro, redefinição de senha, verificação de e-mail e confirmação de senha. Além disso, inclui uma página simples de Profile onde o usuário pode atualizar seu nome, endereço de e-mail e senha.

A camada de visualização padrão do Laravel Breeze é composta de modelos Blade, simples e estilizados com Tailwind CSS, mas também podendo ser estruturado usando Vue ou React e Inertia. O Breeze fornece um excelente ponto de partida para iniciar um novo projeto Laravel.

Laravel Sail

O Laravel Sail é uma interface de linha de comando leve para interagir com o ambiente de desenvolvimento Docker padrão do Laravel. O Sail fornece um excelente ponto de partida para criar um aplicativo Laravel usando PHP, MySQL e Redis sem exigir experiência anterior com o Docker.

Permitindo uma visualização inicial do seu projeto muito mais rápido e fácil sem a necessidade de instalar diversos programas, um para cada tipo de tecnologia que irá utilizar dentro do projeto, aglomerando tudo dentro de containers Docker.

Laravel Telescope

O Laravel Telescope é uma ferramenta maravilhosa para o seu ambiente de desenvolvimento local. O Telescope fornece informações sobre as requisições que chegam ao seu projeto, exceções, entradas de log, consultas de banco de dados, jobs em fila, e-mails, notificações, operações de cache, tarefas agendadas ​​e muito mais.

Permitindo um gerenciamento muito maior de todos os erros e ações ocorridos dentro da sua aplicação local em laravel e tudo isso dentro de uma interface muito direta.

Laravel Horizon

O Laravel Horizon fornece um belo painel e configuração orientada por código para suas filas Redis alimentadas pelo Laravel. O Horizon permite que você monitore facilmente as principais métricas de seu sistema de filas, como taxa de transferência de trabalho, tempo de execução e falhas que ocorreram em filas.

Laravel Dusk

O Laravel Dusk fornece uma API para automação de testes fácil de utilizar. Por padrão, o Dusk não exige que você instale o JDK ou o Selenium em seu computador local. Em vez disso, o Dusk usa uma instalação autônoma do ChromeDriver. No entanto, você é livre para utilizar qualquer outro driver compatível com o Selenium que desejar, caso já esteja mais familiarizado.

Conclusão

Lembre-se que existem inúmeros packages para se utilizar dentro do Laravel, mas aqui foram listados apenas alguns deles, caso tenha algum outro que seja incrível e muito útil para o dia-a-dia dos Devs, comente aqui.

()
Categorias
📈 Mercado de TI

Cultura DevOps otimizando o desenvolvimento nas empresas

Vivemos em um mundo competitivo e veloz, onde a entrega rápida de software é essencial. No entanto, a qualidade não pode ser comprometida nesse processo. Surge então o DevOps, um conjunto de práticas e filosofias que acelera a entrega e mantém a qualidade do produto final.

Neste artigo, exploraremos a importância do DevOps e como as organizações podem adotar essa cultura.

Perspectivas dos times de desenvolvimento

As equipes de operações lidam com a administração de vários servidores em ambientes de produção. Porém, as ferramentas e softwares legados nem sempre são eficientes para gerenciar múltiplos servidores simultaneamente. Modificações no código são necessárias para garantir o funcionamento em diferentes ambientes e as implantações devem ser realizadas dentro dos prazos estabelecidos.

O DevOps desempenha um papel fundamental nesse contexto. Integrando as equipes de desenvolvimento e operações, essa metodologia busca a integração, desenvolvimento e implantação contínuos de software. Dessa forma, supre a necessidade de lançamentos mais rápidos, mantendo a qualidade do software entregue.

Automação

A automação desempenha um papel crucial no processo DevOps. Ao automatizar processos, é possível corrigir problemas instantaneamente e garantir a execução sem erros. Além disso, recursos valiosos podem ser direcionados para contribuições mais significativas, evitando desperdício de tempo, esforço, dinheiro e recursos.

Conclusão

O DevOps é uma abordagem valiosa para acelerar o desenvolvimento e entrega de software, mantendo a qualidade. Ao unir equipes, adotar práticas de automação e promover uma cultura de colaboração, as organizações podem otimizar seus processos de desenvolvimento, obter lançamentos mais rápidos e melhorar a experiência do usuário final.

()
Categorias
📈 Mercado de TI

Por que devs ganham tanto, mesmo com cursos gratuitos na área?

 

A programação é uma habilidade altamente valorizada no mercado de trabalho atual e a demanda por profissionais qualificados só tem aumentado com a evolução da tecnologia. Embora exista uma grande quantidade de recursos de aprendizado de programação disponíveis gratuitamente na internet, isso não significa que todas as pessoas sejam pagas igualmente.

A verdade é que a habilidade de programar não é o único fator que determina o salário dos devs, vem conferir os principais pontos abaixo:

  • Experiência
  • Habilidades técnicas avançadas
  • Habilidades de comunicação e liderança
  • Demanda do mercado

Experiência

A experiência é um dos fatores mais importantes que afetam o salário de um programador. Quanto mais devs passam no mercado, mais  aprendem sobre a indústria, as tecnologias e as melhores práticas. Além disso, tendem a ter mais eficiência na entrega de projetos de alta qualidade, o que aumenta sua credibilidade e valor para empregadores.

 

Habilidades técnicas avançadas

As habilidades técnicas também são cruciais para determinar o salário de devs. 

Quem possui habilidades avançadas em linguagens de programação, plataformas e tecnologias específicas tende a ser mais valorizado no mercado.

Habilidades de comunicação e liderança

Outro ponto relevante é a capacidade de se comunicar e ser líder. Devs que tem uma  boa comunicação e skills de liderança são valorizados bastante por empregadores, pois são capazes de trabalhar em equipe e gerenciar projetos.

Demanda de mercado

Por fim, a demanda do mercado também afeta o salário de quem trabalha com programação. Em setores em crescimento, como a tecnologia da informação e a inteligência artificial, a demanda por devs com ótima qualificação é alta, o que significa que os salários tendem a ser mais elevados.

Conclusão

Apesar do acesso gratuito a recursos de aprendizado de programação, o salário de um programador é determinado por uma combinação de fatores, incluindo experiência, habilidades técnicas, habilidades de comunicação e liderança, e demanda do mercado. Portanto, é importante lembrar que aprender a programar é apenas o primeiro passo em uma carreira bem sucedida como dev. ()