Notícias da empresa
21 Setembro 2019
Escolhendo uma pilha de tecnologia e bancos de dados para desenvolvimento de software corporativo
“Ao iniciar o desenvolvimento de software corporativo, é importante entender qual pilha de tecnologia pode ser usada para resolver os problemas de uma grande empresa, quais indicadores-chave de um produto de software são importantes para o cliente?”
— Nikita Vasiliev, CTO Almexoft
De fato, a seleção de um novo software por uma grande empresa é um processo bastante lento, com mais de 50% do trabalho realizado durante a fase de análise de pré-requisitos. Isso se deve aos principais desafios do mundo moderno – alto grau de automação e rápida adaptação de processos e sistemas às necessidades dos clientes e do mercado.
Nesse sentido, as tecnologias utilizadas na criação de software devem fornecer alta estabilidade, garantia de continuidade por um longo período de tempo, escalabilidade e, principalmente, repetibilidade e portabilidade da infraestrutura.
Especialista com 20 anos de experiência na área de TI. Sob sua liderança, muitas soluções para automação de negócios foram implementadas (incluindo para Altium, Alfabank, Kazakhmys, Visa International)
Não analisarei detalhadamente todas as linguagens e plataformas para criação de software corporativo, mas apenas abordarei minha própria experiência positiva de nossa empresa, adquirida durante o desenvolvimento de projetos, incluindo Almexoft – Java EE.
De fato, o Java EE é amplamente utilizado, especialmente em grandes empresas. Uma vantagem é que a plataforma é composta por um conjunto de padrões que garantem a compatibilidade com versões anteriores. Mesmo os aplicativos J2EE mais antigos continuarão a funcionar com sucesso. Este sempre foi um argumento poderoso para as empresas que fazem planos de longo prazo.
Os aplicativos baseados na API Java EE podem ser executados em todos os servidores Java EE. Os aplicativos independentes do fornecedor permitem que as empresas criem software à prova de futuro que não se limita a nenhum produto específico. As empresas escolhem o Java EE devido à confiabilidade, simplicidade e desempenho da plataforma – a execução lenta de programas escritos em Java é um mito. Servidores HTTP modernos construídos em Java estão no mesmo nível das implementações C/C++ em termos de desempenho (embora, reconhecidamente, o uso de memória do primeiro seja maior).
Os programadores têm outros argumentos. A sintaxe simples da linguagem (deixemos de fora construções da moda como expressões lambda), organização conveniente de bibliotecas e ferramentas de alta qualidade para gerenciar dependências facilitam a construção de grandes projetos e a conexão de bibliotecas de terceiros, que não faltam. Comunidades inteiras estão fazendo desenvolvimento Java de código aberto de qualidade. Java é multithreading inteligente e rápido, especialmente nas versões mais recentes da plataforma, e a capacidade de organizar milhões de threads leves no estilo Go (Goroutines).
Afinal, a própria Java Virtual Machine (JVM), que facilita a programação em Scala, Groovy, Python, Ruby, JavaScript, Kotlin, Ceilão e outras linguagens de programação. Nesse caso, tudo o que estiver escrito em Python, por exemplo, estará disponível em Java e vice-versa.
Todos os itens acima levaram a toda uma cultura da indústria de software empresarial na qual os padrões tornam as coisas melhores em geral.
Muito em software corporativo também depende da escolha do sistema de gerenciamento de banco de dados (DBMS).
Embora todos os SGBDs executem a mesma tarefa básica – permitindo que os usuários criem, editem e acessem informações armazenadas em bancos de dados – o processo real de realização dessa tarefa varia muito. Além disso, as funções e capacidades de cada DBMS podem diferir significativamente.
Provavelmente vale a pena começar com Oracle (e PL/SQL).
A história deste produto remonta à década de 1970, e agora a empresa de mesmo nome conquistou uma reputação simplesmente brilhante, tornando-se o padrão de confiabilidade no mercado de banco de dados corporativo.
A versão mais recente do Oracle é projetada para ambientes em nuvem e pode ser hospedada em um ou mais servidores, isso permite gerenciar bancos de dados que contêm bilhões de registros, e o gerenciamento de dados físicos não afeta o acesso às estruturas lógicas. Além disso, a segurança nesta versão é levada ao mais alto nível, pois cada transação é isolada das outras.
Atualmente, a linha Oracle DBMS inclui diversos produtos totalmente compatíveis entre si, o que possibilita encontrar a máxima adequação aos interesses de um cliente corporativo. A única desvantagem da Oracle pode ser o alto custo de licenciamento de banco de dados. No entanto, o Oracle é ideal para grandes organizações que trabalham com bancos de dados enormes e funções diversas.
Uma das várias opções populares de SGBD de shareware é o PostgreSQL.
PostgreSQL chasto ispol’zuyetsya dlya vedeniya baz dannykh veb-portalov. Buduchi odnoy iz pervykh razrabotannykh sistem upravleniya bazami dannykh, v nastoyashcheye vremya PostgreSQL khorosho razvita i pozvolyayet upravlyat’ kak strukturirovannymi, tak i nestrukturirovannymi dannymi. PostgreSQL mozhet byt’ ispol’zovana na bol’shinstve osnovnykh platform, vklyuchaya Linux, i prekrasno spravlyayetsya s zadachami importa informatsii iz drugikh tipov baz dannykh s pomoshch’yu sobstvennogo instrumentariya.
Aktual’naya versiya PostgreSQL polnost’yu sovmestima so standartom SQL:2011 i predlagayet obrabotku bol’shikh ob”yemov dannykh pri uvelicheniye chisla odnovremenno rabotayushchikh pol’zovateley. PostgreSQL yavlyayetsya besplatnoy bazoy dannykh, poetomu podkhodit dlya proyektov s ogranichennym byudzhetom.
Outro DBMS popular é o Microsoft SQL Server (e T-SQL).
Em primeiro lugar, trata-se de um DBMS, cujo núcleo funciona tanto em servidores na nuvem quanto em servidores locais, permitindo combinar os tipos de servidores usados ao mesmo tempo. A partir do lançamento do SQL Server 2016, a Microsoft adaptou o produto para ser executado no sistema operacional Linux.
Um dos recursos exclusivos da versão 2016 é o suporte a dados temporais (suporte a dados temporários), que permite rastrear alterações de dados ao longo do tempo, enquanto a tecnologia de mascaramento dinâmico de dados (mascaramento dinâmico de dados) garante que apenas usuários autorizados vejam dados confidenciais. Este produto combina bem com outros produtos da Microsoft e é ideal para grandes organizações que já usam a linha de produtos da Microsoft.
Entre as deficiências do produto, posso destacar apenas o alto custo de licenciamento e a alta intensidade de recursos do produto, que, mesmo com um ajuste cuidadoso de desempenho, pode ocupar todos os recursos disponíveis.
MySQL é um dos bancos de dados mais populares para aplicações web.
Embora não seja um sistema de perfil para software corporativo, o MySQL é o padrão de fato para servidores da Web executados no sistema operacional Linux. MySQL é um pacote de software gratuito desenvolvido e mantido pela Oracle Corporation. Novas versões do MySQL são lançadas regularmente, expandindo a funcionalidade e melhorando a segurança do SGBD. Existem versões pagas especiais projetadas para uso comercial.
Para clientes comerciais, está disponível um pedido para novas funcionalidades. Na versão gratuita, a maior ênfase é colocada na velocidade e confiabilidade, e não na completude da funcionalidade, o que pode ser tanto uma vantagem quanto uma desvantagem, dependendo da aplicação do banco de dados. A flexibilidade do MySQL DBMS é suportada por um grande número de tipos de tabelas: os usuários podem escolher entre tabelas MyISAM que suportam pesquisa de texto completo e tabelas InnoDB que suportam transações no nível de registros individuais.
O sistema tem um nível de confiabilidade suficiente e é ideal para organizações que precisam de uma ferramenta de gerenciamento de banco de dados confiável, mas gratuita. Infelizmente, apenas o suporte pago está disponível para a versão gratuita. Além disso, você precisa gastar muito tempo e esforço para fazer o MySQL executar tarefas simples, enquanto outros SGBDs fazem isso automaticamente.
Outro banco de dados gratuito que possui uma versão comercial é o MongoDB.
O MongoDB foi projetado para aplicativos que usam dados estruturados e não estruturados. Devido ao fato de que o MongoDB não foi originalmente projetado para lidar com modelos de dados relacionais (embora possa), pode haver problemas de desempenho ao tentar usar o MongoDB dessa maneira.
No entanto, o MongoDB pode se sair bem onde outros DBMSs são lentos ou impotentes.
Cada vez mais, soluções de coluna, como Vertica ou SAP HANA, são usadas para processar volumes gigantescos de informações.
O último, por exemplo, suporta SQL, OLTP e OLAP, enquanto o kernel SAP HANA reduz os requisitos de recursos por meio do uso de compactação. Ao mesmo tempo, os dados são armazenados na memória, reduzindo o tempo de acesso, em alguns casos significativamente. As soluções de coluna são ideais para armazenar, recuperar e analisar estatisticamente informações em várias camadas de armazenamento e são indispensáveis para criar data warehouses corporativos (DWHs).
A desvantagem é o alto custo das licenças, mesmo se estivermos falando do custo de software empresarial caro.
Um papel essencial para o sucesso do software empresarial é a capacidade de passar de um banco de dados para outro, mais poderoso, a longo prazo, movendo-se em sincronia com o desenvolvimento do negócio.
A chave para isso é o Hibernate ORM, que cria uma relação objeto-relacional entre o código da plataforma e o DBMS. Devido a isso, como parte da entrega padrão do Almexoft, oferecemos aos nossos clientes a oportunidade de escolher um dos SGBD suportados:
- Oracle
- Postgre
- Microsoft SQL Server
Resumindo o que foi escrito acima e contando com meus mais de 20 anos de experiência em desenvolvimento de software, gostaria de trazer a pilha de tecnologia ideal que nossa empresa mais frequentemente recomenda a clientes corporativos e usa na automação de processos de negócios e documentos eletrônicos da Almexoft Sistema de gestão:
- Java EE (AOP, EJB, ORM)
- DBMS Oracle/Postgree
- REST/Thrift API