quarta-feira, 13 de junho de 2018

DevOps



A tecnologia e uma fonte inesgotável de palavras técnicas (buzzwords) para referenciar ferramentas e metodologias. Uma muito comentada no momentos e DevOps.

Mas o que é DevOps ?

Como é um termo novo, não existe um definição consensual do que é, mesmo assim já podemos ter uma grande percepção do que significa a partir de diversos insights obtidos de cases que fizeram ou estão fazendo sua implementação.

Derivada da junção entre Desenvolvedor e Operações, DevOps antes de tudo não é uma ferramenta, ou conjunto delas, nem tampouco é um departamento especifico da organização, subordinado ou não a equipe de tecnologia da informação (TI). DevOps é uma grande mudança cultural na organização. Basicamente uma transformação comportamental que envolve maneiras de integrar equipes, agilizar, otimizar e automatizar parte dos processos das empresas. Apear do termo ter sido criado na área de tecnologia a intenção de integração e otimização do fluxo de trabalho se estende aos demais departamentos da empresa.

Antes a metodologia utilizada para tratar situações problemas era focada na divisão da tarefa em três grandes ciclos: governança, desenvolvimento e operações (Application Lifecycle Management - ALM). O movimento DevOps tem como objetivo acabar com o distanciamento entres os times, incentivando a colaboração entre eles. A intenção não é eliminar as diferenças dos setores e sim criar "pontes" para um melhor funcionamento entre a eles. 

Na cultura DevOps o compartilhamento de responsabilidades é um fundamento básico no relacionamento das equipes. Tanto a equipe de desenvolvimento quanto a de operações tem consciência do seu papel e do impacto que pode causar no outro. Todas as fases do projeto: os levantamentos, desenvolvimentos, testes e entrada em produção (deploy) são acompanhadas por todos. Existe a preocupação com a qualidade da entrega final. Esse processo tente a trazer melhorias em todos os processos a médio, longo prazo. Perceber a "dor" do outro, seja seu colega de equipe ou principalmente o cliente final, faz com que aumente o esmero na execução de atividades. 

Por vezes, para facilitar esse processo as equipes trabalham no mesmo espaço físico, no entanto é um erro chamar uma equipe de DevOps. Cada equipe tem seu papel e DevOps é uma cultura de trabalho,

Confunde-se DevOps com a simples criação de scripts e automatização de processos e entregas. Apesar de criar scripts ser uma ferramenta de DevOps é somente um pequeno pedaço da cultura a ser modificada. A preocupação com a qualidade e rapidez das entregas é maior que a simples criação de automações. Não podemos resumir DevOps a simples ferramentas, na verdade refletir é na troca da maneira de pensar (mindset) os processos da empresa.

Principais Benefícios

DevOps traz benefícios de otimização de tempo e esforços propondo ciclos menores de desenvolvimento, trabalho colaborativo e quebra de paradigmas entre as áreas envolvidas.
  • Integração e diminuição de tempo nos projetos - Trabalhar com DevOps também traz vantagens como integração a tendências como Cloud (inclusive as nuvens híbridas), PaaS, SaaS e IaaS, que, em conjunto, diminuem consideravelmente os custos operacionais e facilitam bastante à rotina da empresa;
  • Otimização de processos e recursos - Remodelar a forma de trabalho dos setores envolvidos traz ainda benefícios no que se refere a reuso de software, redução nos esforços de entrega e flexibilidade para ter respostas mais rápidas;
  • Monitoramento - Com a ajuda de ferramentas de automação e dashboards descomplicados, ela também acompanha mais facilmente as métricas e resultados desta implantação, executa deploys automáticos ou mais fáceis, desafoga equipes e as auxiliam a “errar menos” e a ter uma comunicação mais fluída;
  • Maior capacitação - Com a realização de treinamentos por consultorias especializadas, a empresa consegue ainda qualificar e preparar melhor seus times. Ela consegue elevar a qualidade dos trabalhos em colaboração e auxilia as equipes a serem mais receptivas à mudança cultural e a enxergar valor nesta medida;
  • Facilidade em intervenção proativa - Com a cultura DevOps, há integração dos grupos e facilidade em adaptar algum problema encontrado durante o projeto à melhor solução. Uma vez que pelos testes e entregas intermediárias já se consegue detectar possíveis falhas ou necessidades de adequação;
  • Lançamento regular e frequente de novas funcionalidades - Através da integração de todas as tecnologias e linguagens da equipe de TI, e a integração da TI com os outros setores da empresa, a DevOps torna mais inteligente o desenvolvimento de software. As práticas que são implantadas possibilitam um aumento na frequência de deployment, reduzem o tempo gasto nas mudanças, o volume de falhas durante estas mudanças e o tempo de reparo quando uma falha ocorre;
  • Automatização de atividades - as tarefas repetitivas e manuais são todas automatizadas e os processos se tornam mais claros, aumentando a entrega de novas aplicações, testes de qualidade, novas funcionalidades e a manutenção do sistema;
  • Capacidade aprimorada de pesquisa e inovação - Ao promover uma cultura de alta confiança entre os membros da equipe e o compartilhamento de riscos, os colaboradores são continuamente encorajados a buscarem soluções para aprimorar os produtos e/ou serviços oferecidos pela empresa, de modo a atender às necessidades dos clientes.

Ferramentas

O DevOps prioriza a colaboração e a integração continua, além da busca por ferramentas que promovam uma certa vantagem para a automação da configuração da infraestrutura para o desenvolvimento, em uma perspectiva de ciclo de vida do produto. Controle de versão e a automação do código para deployments são duas das ferramentas mais impactantes e comuns para o DevOps.

Contudo, há diversas outras ferramentas que podem e devem ser utilizadas, como a configuration management, ticketing systems, monitoramento e provisionamento. Independente de preferencias segue abaixo algumas indicações:
  • Git, Subversion e Mercurial - Em termos de desenvolvimento, o Git é a alternativa mais usada pela facilidade em controlar as versões das aplicações. O Subversion e o Mercurial são as opções mais conhecidas e melhor avaliadas pelos profissionais de TI. Para complementar o conjunto de ferramentas, um bom sistema de tickets para documentar os pedidos internos de correção e otimização, por exemplo, deve garantir excelentes resultados;
  • Scrum e Kanban são as metodologias mais indicadas para a implementação da cultura DevOps, pois apresenta boa aderência aos diferentes formatos de processos existentes nas organizações;
  • Container Cloud OpenShift - Se adapta a uma grande variedade de linguagens de programação e tipos de bancos de dados (veja mais);
  • Data Center Virtual OpenStack - Permite o gerenciamento de todo um Data Center por meio de uma API (Application Programming Interface). Isso facilita muito o trabalho dos envolvidos no processo (veja mais).

Marcelo Miranda
Dir. Comercial e Projetos

segunda-feira, 23 de abril de 2018

ERP SUMMIT 2018



A UNIGEX esteve presente no ERP SUMMIT 2018 maior evento do Brasil para acompanhar as tendências de mercado para soluções de gestão.

Logo na abertura tivemos uma palestra do economista Carlos Alberto Sardenberg recheada de gráficos apontando indicadores econômicos comparativos entre setores e países. A conclusão dele é que o sentido dos gráficos aponta para uma retomada da economia após um período de muito turbulência. Isso é bom para todos nós empreendedores.


Em relação a ERP, é fato que o mercado de aplicações CLOUD está consolidado como uma realidade nos principais players que estavam presentes a feira. Vários stands e palestras sobre o assunto demonstraram isso.

Muito cases e estratégias de sucesso foram apresentadas, e em uma mesa redonda com os principais CEO´s das empresas de software de ERP foram discutidos diversos pontos interessantes que passo a seguir.



  • Temos que ouvir as necessidades dos clientes.
Não adianta montar estratégias, quaisquer que sejam elas, se o cliente não estiver envolvido. Se as entregas não forem as desejadas, as ações não terão sucesso.
  • Todo mundo quer ser cloud.
Pequenas e médias empresas estão loucas para se livrar de cuidados com infra-estrutura. FaaS  (Função na nuvem e aplicação sem servidor) é a próxima fronteira da computação na nuvem. 
  • É preciso ter soluções para os diversos tipos de clientes. 
Tudo bem, nuvem é o futuro, mas e se o cliente não estiver preparado para isso nesse momento? Precisamos ter soluções diversificadas para atender as estratégias dos clientes. Temos que ter ofertas diferentes de cloud, sejam elas públicas, privadas ou híbridas. Por falar nisso as soluções híbridas tiveram grande destaque na feira.
  • Temos que ser rápido para podermos errar e corrigir as estratégias de cloud.
O ciclo de desenvolvimento de soluções tem que ser cada vez mais rápido. A versão "1.0" tem que estar no ar o mais breve possível. Os erros irão acontecer, mas quanto mais rápido forem corrigidos, mais fácil será o amadurecimento da solução
  • Devemos trocar muitas telas por processos que atendam os clientes.
O escopo das soluções devem focar em processos do inicio ao fim. O futuro do ERP está na interatividade, de preferência com aplicações intuitivas e praticamente auto implantáveis. O usuário quer "plugar e usar".  Na medida do possível, as aplicações devem dar poder aos usuários para particularizar os processos. 
  • Shelfware
Deverá existir uma maior oferta de micro serviços nos sistemas, onde o usuário escolhe o que deseja realmente utilizar e só é tarifado pelo que usa. Shelfware é a aquisição de softwares que não serão utilizados, envolvendo funcionalidades técnicas não necessárias para operação da empresa, porém adquiridos. Tudo isso é desperdício de dinheiro. 
  • Temos que ser protagonistas.
As empresas de ERP tem que tomar o papel de protagonista. Não adianta ficar esperando melhor situação política ou econômica. Temos que "trincar os dentes" e crescer.
  • Big brother governamental
Existirá cada vez mais um interoperabilidade com o governo. Cada vez mais o grande irmão estará monitorando todas as atividades. As prestações de contas serão cada vez mais online. Os sistemas tem cada vez mais que ter foco no compliance da empresas.
  • Criação de um ambiente colaborativo para os usuários interagirem e aprenderem entre si.
Os sistema deverão possuir um ambiente onde os usuários de diversas empresas, possam trocar experiencias e aumentar o aprendizado. Essa sinergia trará amadurecimento das aplicações oferecidas.

Como principais desafios para projetos cloud foram elencado:
  • Ofertas simples
  • Preços acessíveis
  • Fácil utilização 
  • Controle operacional
  • Escalabilidade
Por último, fomos presenteados por uma excelente palestra de José Roberto Guimarães que nos mostrou todos os aspectos de gestão envolvidos na preparação de uma equipe de alta performance. Todos possivelmente aplicáveis em nossas empresas. Termino com uma frase para levarmos no dia a dia



"Sempre é possível fazer melhor!" - José Roberto

Marcelo Miranda
Diretor Comercial e Projetos da Unigex 

sexta-feira, 9 de fevereiro de 2018

Quanto valem os dados que estão nos seus servidores ?



O objetivo deste post é alertar para a importância de uma boa política de backup´s dos seus sistemas informatizados. Este comunicado periodicamente é enviado para todos os clientes da Unigex, independente da qualidade dos sistemas de backup que a maioria dos nossos Clientes possui, e embora a UNIGEX não seja responsável pelos backups dos sistemas de informação dos seus Clientes.

Quando pensamos em backups de sistemas sempre temos de ter em mente as seguintes perguntas:
  • Tenho a certeza de que os procedimentos de backup estão sendo executados nos períodos e métodos corretos?
  • Tenho a certeza de que se perdesse neste momento os dados que estão no meu sistema conseguiria recuperá-los a partir dos backups existentes ?
  • Houve algum teste recente de recuperação de informação a partir dos meus backups ?
Já tivemos casos complicados em alguns clientes que provocaram muito retrabalho e perdas irrecuperáveis de dados. Recentemente alguns sofreram sequestro de dados por ransomware que geraram bastante prejuízos. Além do financeiro em espécie, muito retrabalho para ajustar as informações perdidas e tempo dos colaboradores na execução das tarefas. Fara o stress que causa para a organização e todos os envolvidos.

Ransomware é um tipo de código malicioso que torna inacessíveis os dados armazenados em um equipamento, geralmente usando criptografia, e que exige pagamento de resgate (ransom) para restabelecer o acesso ao usuário, veja mais nesse link Cartilha de segurança. O pagamento do resgate geralmente é feito via bitcoins.


Nossa recomendação é que falem com os responsáveis pelos servidores e peçam uma documentação formal de como está sendo feito o backup dos seus sistemas.

Nós da Unigex estamos à inteira disposição para o caso de dúvidas em relação aos backups do Sistemas que oferecemos.

Unigex Soluções Integradas de Gestão Ltda.

sexta-feira, 19 de janeiro de 2018

Utilização do ERP Minimal em computadores MacOX


1. Instalação do java JDK:
Para utilizar o Minimal Desktop nos sistemas MAC OX é necessário instalar o java JDK. Utilize o link abaixo para realizar o download e instalação;

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html , verificar se é a versão mais atual para download. Após o download, é necessário instalar o pacote, no MAC basta clicar no arquivo que o mesmo será instalado automaticamente.
Podemos testar se o pacote foi instalado corretamente a partir do aplicativo terminal: 

Com o terminal aberto digite o comando:
$ java – version

A resposta deve ser algo parecido com a tela acima para estar instalado corretamente
2.    Mapeamento da pasta Minimal

Primeiro devemos nos conectar com o servidor onde se encontra a pasta compartilhada “Minimal:

Clique em “Conectar ao Servidor” e substitua  o endereço para o IP (ou nome da máquina) onde se encontra a pasta compartilhada. Você pode também adicionar o endereço para os servidores favoritos para facilitar novas buscas.




Ao mandar conectar, será solicitada a credencial que deseja usar para acessar esse Servidor, onde você pode acessar como convidado ou usar uma credencial válida que você tenha algum tipo de permissão diferenciada… Marque para gravar as credenciais de acesso.  




Após colocar as credenciais corretas ao Server, escolher qual Unidade quer que seu Mac se conecte, em um primeiro momento mapearei no MacBook o Diretório Programas.

Escolha o diretório “minimal’ e clique “ok”. Você pode mapear com o mesmo procedimento outras pastas compartilhadas.
Agora vá em Preferências do Sistema  

Na guia Sistema, vá em Usuários e Grupos  



Verá algo parecido com isso dependendo da configuração do seu Mac OS. Perceba um cadeado na parte inferior esquerda da tela, se o mesmo estiver fechado você deverá desbloqueá-lo para poder realizar as atualizações.

Vá em Itens de Início de Sessão, chegará a algo como:

Vamos adicionar clicando no ícone “+”

Navegue a partir do servidor até a pasta Minimal e adicione  

Você deve visualizar algo como a tela abaixo. Marque a caixa de seleção a esquerda para pasta para que o processo seja feito automaticamente na reinicialização  

Não esqueça de bloquear novamente a tela para evitar alterações indevidas.  

3.    Executando o Minimal por linha de comando



Execute novamente o aplicativo minimal (ver explicação acima). Navegue até a pasta onde de encontra a aplicação minimal:

Cd /Volumes/minimal/Programas2014 (verificar seu diretório de destino)  


Iniciar a aplicação a partir do arquivo .sh (aplicação shell script). Veja como configurar o arquivo .sh mas abaixo nesse mesmo tutorial  

Digite Login e Senha  

Pronto, o menu esta disponível.

4.    Executando o Minimal de forma automática

Podemos automatizar o processo de navegação e inicialização do arquivo shell script (.sh) com o aplicativo nativo do ambiente MAC OX chamado “Automator”  

O aplicativo permite que você automatize diversos procedimentos no sistema MAC OX, para a tarefa em questão utilizaremos a automatização de aplicativos.  


Navegue nas opções até o comando “executar script do sheel” e arraste para a direita  

Escreva os comandos que deseja automatizar (navegação e execução do aplicativo .sh)  

Pelo menu salve a aplicação na “Mesa” (Desktop)  

Pronto, seu aplicativo já aparecerá como um ícone na área de trabalho.


5.    Abrindo uma conexão remota (Terminal Service - TS) no MAC OX 


Faça download e instale, a partir da Apple Store do aplicativo “Microsoft Remote Desktop”. Pode ser utilizado outro aplicativo com o mesmo propósito a escolha do usuário, mas no tutorial somente iremos configurar esse.
Após a instalação execute o aplicativo e vamos adicionar uma conexão clicando em “New”  


De um nome para a conexão (Connection Name) e digite o endereço do servidor (PC name). Pode fechar a tela.  

Clique na conexão criar e acesse com suas credenciaias (login, senha e domínio caso seja necessário).  

Pronto esta feita a conexão.

6.    Configurações do arquivo shell script (.sh) e arquivo de propriedades (.pro)



Um arquivo .sh (shell script) segue os padrões Unix de programação, por exemplo o arquivo (minimal9-md.sh):

#!/bin/bash
$(dirname $0)/Minimal9.sh "" true Minimal-MD.pro "" "" "" "" "" ""

Onde devemos colocar qual o arquivo de inicialização usado, dependendo da versão atualmente em uso no cliente e o arquivo de propriedades específico do cliente. 
O arquivo de propriedades (.pro) deverá ser configurado sem o endereço absoluto para as pastas, ou seja, sem as letras de mapeamento (M: ) que são utilizadas nos sistemas Windows. Utilizamos o endereço relativo das pastas que consideram a pasta de início da aplicação como referência inicial, veja exemplo a seguir:

Não usar (errado)

METADATALOC=P:\\Programs2014\\Metafile 
MINTEMPLATES=P:\\Programs2014\\Template
CLITEMPLATES=P:\\Programs2014\\Cliplate
LOGOTEMPLATES=P:\\Programs2014\\Logoplate



Usar (correto)

METADATALOC=Metafile 
MINTEMPLATES=Template
CLITEMPLATES=Cliplate
LOGOTEMPLATES=Logoplate 


As demais configurações segue o mesmo padrão para configuração do ambiente Windows.

terça-feira, 2 de janeiro de 2018

Palavras de ordem para 2018


Ano novo, novo planejamento de atividades. Pensando nisso e fazendo uma reflexão do ano que se passou ficaram fixadas em minhas mente algumas palavras de ordem que irão determinar todo o planejamento da empresa para 2018.

Antes de tudo, falando de cenários, é claro para todos que o econômico e o politico não estão a mil maravilhas e é fato que somos influenciados, direta ou indiretamente por ele em todas as decisões que tomamos em nossas vidas, no entanto, eu acredito firmemente que apesar dessa influencia existir não podemos deixar que ela seja maior do que realmente é, inibindo nossas iniciativas de crescimento e melhoria em todos nossos indicadores.

Penso que devemos "trincar os dentes" e "partir para a luta", pois somos agentes de mudança e formadores de opinião no meio que estamos inseridos.

A primeira palavra em nosso planejamento é PRODUTIVIDADE. Temos que aumentar a quantidade de ofertas e entregas para nossos clientes. Temos que utilizar todo tempo disponível de forma a gerar mais resultados para nossas empresas.

A segunda palavra que me vem em mente é PROCRASTINAÇÃO. Devemos fazer agora e não deixar para depois. Temos que parar de boicotar a nós mesmo. Temos que sair da inércia individual para gerar a produtividade necessária.

Também temos que ser EFICAZES. Nossas realizações tem que ir ao encontro das necessidades de nossos clientes. Temos que pesquisar e dialogar com eles para identificar quais são as suas necessidades para AGORA e direcionarmos nossas ações para isso.

Contudo, devemos ser EFICIENTES nessas ações, temos que utilizar os recursos disponíveis de forma inteligente. "Fazer mais com menos", como é dito por varias pessoas que conheço.

E a principal: FAZER. Não adiantará nenhum planejamento sem a sua realização. Planejamentos não são feitos para "dormirem" em gavetas.

Faça dessas palavras um mantra diário e com certeza você terá um FELIZ 2018!

Marcelo Miranda

quinta-feira, 9 de novembro de 2017

Projeto Big Data


Muitas empresas estão se movimentando em busca de soluções com BIG DATA, mas o que é isso e como podemos iniciar um projeto desses?

Em primeiro lugar o termo BIG DATA apesar de estar na moda não é novo. Se trata de trabalhar com grande quantidade de dados para extrair informações para a tomada de decisão. O que é novo é a quantidade e variedade de dados que atualmente, com o advento da internet e comunicação móvel de diversos formatos, são geradas a todo momento.

Acrescenta-se a isso a Internet das Coisas ou simplesmente IOT (Internet of Things), onde os dispositivos geram mais e mais informações por segundo. Aumentando consideravelmente a quantidade de dados a serem analisados.

É importante saber que para executar projetos de BIG DATA devemos pensar em uma equipe multidisciplinar para trabalhar as informações, analistas de dados, analistas de negócios, estatísticos, estão dentre as profissões ou competências necessárias para os profissionais dessa área. No meio tecnológicos quem possuem todas essas habilidades e chamado de cientistas de dados e são comparados a unicórnios pela dificuldade de se encontrar no mercado.

Mas como começar? Esta tudo ai para ser utilizado de forma espalhada e não estruturada, estão mais para um BANDO do que um BANCO de DADOS.

Primeiro precisamos formular uma hipótese, algum assunto ou pergunta que se deseja responder. Cada pergunta possui uma forma diferente de ser respondida é sempre será o início de todos trabalho.

Logo em seguida precisamos identificar qual a fonte de informação será mais relevante para responder a hipótese formulada. Podemos utilizar, por exemplo, as redes sociais como: Facebook, Twitter, Linkedin, Instagram. Dependendo da hipótese alguma, ou até a combinação entre elas, pode fornecer maior resultado. Em alguns casos as dados internas de sistemas podem ser utilizadas como origem das informações para o trabalho.

O próximo passo é a higienização dos dados obtidos. Cada fonte de dados possui a sua própria maneira de ser armazenada. Esse trabalho é um verdadeiro "garimpo", pois trata-se de escolher o que é relevante ou não para a hipótese que esta sendo estudada. É um trabalho que muitas vezes precisa ser feito e refeito para que seja possível encontrar algo de valioso nos dados obtidos. Nessa fase, por vezes detectamos que precisamos reformular a hipótese inicial ou derivar a mesma para outros "achados".

Nesse momento já devemos ter uma arrumação da informação que possibilita alguma analise e insights e montamos relatório com conclusões preliminares para apresentação. As conclusões devem ser validadas pois é muito comum encontrarmos "falsos positivos" ou relações sem relevância nenhuma para a tomada de decisão.

Todo o trabalho apesar de ser muito técnico é também deveras artesanal e a experiência da equipe envolvida conta muito nos resultados finais.

Tudo acima tem que ser feito com muita rapidez pois algumas informações obtidas são voláteis e se houver demora podem não serem úteis quando obtidas

Marcelo Miranda

quinta-feira, 24 de maio de 2012

Unigex Patrocina JavaCE Community Conference


Foi realizado com muito sucesso nos dias 11 e 12 de Maio de 2012 na Faculdade 7 de Setembro (FA7) o "JavaCE Community Conference" e a UNIGEX apoiou o evento como um dos patrocinadores.

O evento teve como objetivo reunir alguns dos expoentes na plataforma Java (tecnologia muito popular) no Brasil para disseminação de boas práticas, ferramentas, conceitos e últimas novidades acerca do universo que gira em torno dessa plataforma através de palestras, promover sociabilização, integração, intercâmbio de conhecimento e experiências entre profissionais e estudantes da área.

A Plataforma Java por ser a mais popular nos últimos 10 anos, alcançou um grau de maturidade excepcional e hoje conta com o suporte direto das principais empresas de tecnologia do mundo, além de ser marca registrada da Oracle, uma das maiores empresas do setor.

A Unigex tem seu principal produto, o ERP Minimal, desenvolvido em Java desde 1999 e com este apoio buscou contribuir com à comunidade Java do Ceará.