Arquitetura de Software
Arquitetura de Software
Arquitetura de Software
1
NOSSA HISTÓRIA
2
Sumário
INTRODUÇÃO ........................................................................................ 4
ENCAPSULAMENTO ........................................................................ 22
CONSIDERAÇÕES FINAIS................................................................... 26
REFERÊNCIAS ..................................................................................... 27
3
INTRODUÇÃO
4
O QUE É A ARQUITETURA DE SOFTWARE?
5
OBJETIVOS DA ARQUITETURA DE SOFTWARE
6
A FUNÇÃO DO ARQUITETO DE SOFTWARE
7
Uma das habilidades vitais de um arquiteto é poder visualizar a arquitetura
de software de vários pontos de vista diferentes: cada uma delas individualmente
pode não ser totalmente relevante, mas combiná-las oferece uma visão de alto
nível do produto.
8
PRINCÍPIO DA RESPONSABILIDADE ÚNICA
9
PRINCÍPIO ABERTO-FECHADO
10
Entre essas soluções, é importante atentar-se a Herança. Apesar da he-
rança permitir resolver o OCP, se não houver o devido cuidado, ela pode aumen-
tar o acoplamento do código, dificultando a manutenção, extensão e permitindo
criar código que viole o Single Responsibility Principle.
O problema é que a herança pode fazer com que aumente o acoplamento
entre as classes, se dependermos mais da forma como a classe é implementada,
do que da maneira como ela é representada no sistema (sua abstração).
11
PRINCÍPIO DA SUBSTITUIÇÃO DE LISKOV
Seja q(x) uma propriedade que se pode provar do objeto x do tipo T. En-
tão, q(y) também é possível provar para o objeto y do tipo S, sendo S um subtipo
de T.
Significa dizer que classes derivadas devem poder substituídas por suas
classes base e que classes base pode ser substituídas por qualquer uma das
suas subclasses. Uma subclasse deve sobrescrever os métodos da super-
classe de forma que a funcionalidade do ponto de vista do cliente continue a
mesma.
12
PRINCÍPIO DE SEGREGAÇÃO DE INTERFACE
13
Outra forma de implementar interfaces em Ruby é utilizando herança. Nós
podemos fazer com que a classe base lance exceções para cada método, de
forma que a classe herdeira é obrigada a implementar esses métodos. O mesmo
pode ser obtido com mixins. Dessa maneira, ao herdar uma classe ou incluir um
módulo, a classe herdeira precisa implementar o método.
14
PRINCÍPIO DE INVERSÃO DE DEPENDÊNCIA
Módulos de alto nível não devem depender dos de baixo nível; ambos
devem depender de abstrações. Da mesma forma, as abstrações não devem
depender de detalhes, mas os detalhes devem depender de abstrações. Como
tal, esse princípio introduz uma abstração de interface entre componentes ou
camadas de software de nível superior e inferior para remover as dependências
entre eles.
15
O PRINCÍPIO DA MENOR SURPRESA
O princípio de menos espanto (ou menos surpresa) sugere que uma so-
lução ou abordagem não surpreenderia uma pessoa razoavelmente experiente
na área de assunto quando encontrada pela primeira vez (o público pode variar,
por exemplo, usuário final, programador, testador etc.).
16
O PRINCÍPIO DO MENOR ESFORÇO
17
O PRINCÍPIO DO CUSTO DE OPORTUNIDADE
Toda vez que fazemos uma escolha, há um certo valor que colocamos
nessa escolha. O valor tem duas partes: benefícios e custos. O custo de oportu-
nidade de uma escolha é o que desistimos de obtê-la. Para tomar uma boa de-
cisão econômica, queremos escolher a opção com o maior benefício para nós,
mas com o menor custo. Por exemplo, se tivermos duas opções, um sistema
interno ou um produto de fornecedor pronto para uso e escolhermos o último,
nosso custo de oportunidade será o novo sistema brilhante que nossa equipe de
desenvolvimento poderia ter desenvolvido, mas não o fez . É disso que se trata
a arquitetura de software: ponderar as opções umas das outras e tentar tomar
uma decisão informada sobre qual delas agregará mais valor ao projeto. Por
exemplo, uma dicotomia muito comum é criar uma solução tática com tempo de
comercialização rápido ou uma solução mais estratégica, que agora será mais
cara, com o objetivo de alavancá-la em projetos futuros e, portanto, minimizar o
custo posteriormente. Aqui estão alguns pontos a considerar:
18
Quais são os principais objetivos de cada parte interessada?
Como você irá mitigar necessidades conflitantes?
19
O PRINCÍPIO DO ÚLTIMO MOMENTO RESPONSÁVEL
Uma estratégia de não tomar uma decisão prematura, mas adiar o com-
promisso e manter em aberto decisões importantes e irreversíveis até que o
custo de não tomar uma decisão se torne maior que o custo de tomar uma deci-
são.
20
PRINCÍPIOS DE DESIGN DE SOFTWARE
SEPARAÇÃO DE INTERESSES
21
ENCAPSULAMENTO
22
INVERSÃO DE DEPENDÊNCIA
(Fonte: https://docs.microsoft.com/pt-br/dotnet/architecture/modern-web-apps-azure/architectu-
ral-principles )
23
A aplicação do princípio da inversão de dependência permite que A
chame métodos em uma abstração implementada por B, possibilitando que A
chame B em runtime, mas que B dependa de uma interface controlada por A em
tempo de compilação (invertendo, portanto, a dependência típica em tempo de
compilação). Em tempo de execução, o fluxo da execução do programa perma-
nece inalterado, mas a introdução de interfaces significa que diferentes imple-
mentações dessas interfaces podem ser conectadas com facilidade.
24
OS PRINCÍPIOS DA BOA ARQUITETURA
(https://oieduardorabelo.medium.com/flexibilidade-um-princ%C3%ADpio-de-arquite-
tura-de-software-de1d9e2314bb)
25
CONSIDERAÇÕES FINAIS
26
REFERÊNCIAS
27
28
BANCO DE DADOS E ARQUITETURA PARA BIG DATA
1
NOSSA HISTÓRIA
2
Sumário
INTRODUÇÃO ........................................................................................ 4
CONSIDERAÇÕES FINAIS................................................................... 24
REFERÊNCIAS ..................................................................................... 26
3
INTRODUÇÃO
Seu conceito pode ser definido como ferramentas e práticas que geren-
ciam e analisam grandes volumes de dados de diferentes fontes, em velocidade
considerável, buscando agregar as organizações, valor de negócios e maior con-
fiabilidade em relação às decisões a serem tomadas.
Este artigo visa esclarecer a concepção e conceito de Big Data, sua utili-
zação nas organizações, apresentar as tecnologias envolvidas, para que desta
maneira as empresas possam utilizar desses recursos, contando com os bene-
fícios de que dispõe para um maior gerenciamento e apoio na tomada de deci-
sões.
4
Esse tipo de dados requer dispositivos de armazenamento e processamento que
suportem seu formato e garantam melhor eficiência em suas análises. Diante
desta necessidade crescente de armazenar, manipular e analisar de forma rá-
pida e inteligente, grandes volumes de dados não estruturados foi criado o con-
ceito de Big Data.
5
CONTEXTO HISTÓRICO
6
O QUE É O BIG DATA
Big Data pode ser definido também, como um grande data warehouse ou
um BI em cima de um data set de terabytes de dados ou também como um
volume de dados muito significativo, porém não se trata apenas de volume, mas
também de uma variedade imensa de dados não estruturados que precisam ser
avaliados e tratados em velocidade adequada para terem valor ao negócio.
7
Com a expansão dos conceitos de Big Data, diversas empresas já estão
tomando iniciativas para aderir ao mesmo, porém, sem uma estratégia bem de-
finida, afinal, "Big Data não é apenas comprar pacotes de tecnologia, mas uma
nova maneira de explorar esse imenso volume de dados que circula dentro e
fora das empresas". Para aderir ao Big Data , as empresas devem estar cientes
de que serão embutidas transformações em processos de negócio, fonte de da-
dos, infraestrutura de tecnologia, capacitação e mudanças organizacionais na
empresa e em TI.
Contudo, a maioria das empresas ainda não tem uma visão clara do con-
ceito Big Data, do seu potencial e de como alavancar esta potencialidade. Bem
como, de que a ideia de que Big Data só faz sentido se o valor da análise dos
dados compensar o custo de sua coleta, armazenamento e processamento e as
questões legais envolvidas.
8
Dados podem ser caracterizados como uma descrição primária de obje-
tos, eventos, atividades e transações que são gravados, classificados e armaze-
nados, mas não chegam a ser organizados de forma a transmitir algum signifi-
cado específico. Quando esse conjunto de registros sobre um determinado
evento, fato, número, texto ou qualquer mídia que possa ser processada pelo
computador, é agrupada, caracterizado e padronizado, transforma-se em infor-
mação.
9
FASES DO PROCESSO DE ANÁLISE DO BIG DATA
Para que ocorra sucesso com o uso desse novo conceito, é necessário
que as organizações sigam algumas fases do processo de Big Data.
10
VANTAGENS DO USO DO BIGA DATA
11
Estes fatores podem ser melhor explicados nos seguintes itens:
12
O caminho da obtenção de vantagens competitivas trazidas pelo Big Data
é o conhecimento profundo do negócio para perceber e chegar à combinação
ideal de dados e informações sobre o cliente e o mercado, que possam favorecer
a estratégia, eficácia, aceitação da proposta de valor, prever tendências de con-
sumo e, por fim, alcançar avanços na realização dos objetivos estratégicos da
empresa.
13
DESAFIOS DA UTILIZAÇÃO DO BIG DATA
14
Outro desafio visível em relação ao Big Data é a falta de profissionais
qualificados. A EMC Brasil realizou uma pesquisa onde 73% das empresas en-
trevistadas apontaram a cultura como sendo a maior barreira de lidar com o Big
Data. O levantamento destaca que 88% das companhias acreditam que será um
desafio capacitar seus trabalhadores para a nova TI.
15
O QUE É UMA ARQUITETURA DE DADOS
(Fonte: https://canaltech.com.br/big-data/Visao-geral-da-Arquitetura-de-Big-Data/)
16
ARQUITETURA PARA BIG DATA
Para Jill Dyché vice-presidente da SAS Best Pratices, Big Data é mais
que apenas um grande volume de dados não estruturados, ele também conclui
que as tecnologias que possibilita o processamento e análise, estas tecnologias
possibilitam analisar conteúdo de forma rápida. [Davenport 2014].
17
estruturados exige uma forma diferenciada em relação ao que tem sido feito até
então. Um novo padrão de banco de dados foi criado para isto. Eles são chama-
dos de NoSQL (Not Only SQL). E os bons e velhos arquivos texto, imagens, voz,
etc. que são armazenados diretamente no sistema operacional voltam a fazer
parte do contexto da análise de dados.
18
A utilização de alguns destes componentes em conjunto indica o trabalho
em um ambiente de Big Data. Ao se utilizar um dos componentes isoladamente,
dificilmente se estará trabalhando com Big Data.
19
(Fonte: https://blog.marcoreis.net/arquitetura-de-referencia-para-solucoes-de-big-data/ )
20
VISÃO FUNCIONAL DO BIG DATA
(Fonte: https://blog.marcoreis.net/arquitetura-de-referencia-para-solucoes-de-big-data/ )
21
programas de big data, como Hadoop e Spark, a partir de seus respectivos fra-
meworks.
22
O QUE É PRECISO PARA SE OBTER SUCESSO NA IMPLE-
MENTAÇÃO DO BIG DATA
Uma desta tecnologias que vem ser consolidando cada vez mais neste
modelo de arquitetura, é o banco NoSQL, com um paradigma diferente do banco
de dados relacional, eles propõem maneiras diferentes de armazenamento dos
dados, seja no modelo de chavevalor, família de colunas, orientado a documen-
tos e baseado em grafos.
23
CONSIDERAÇÕES FINAIS
Sem uma boa visão e definição de Negócio, é impossível ter uma solução
ou mesmo um projeto de Big Data. Saber a questão adequada para um problema
de Big Data e vincular esta questão com uma necessidade real do negócio da
empresa é fundamental para este tipo de projeto. Identificar oportunidades com-
petitivas envolve conhecer melhor o cliente, o produto, a cadeia de distribuição
ou produção, os fornecedores e os competidores. Big Data pode ser uma boa
ferramenta para atender este objetivo. Mas sem ter em mente com clareza e
precisão onde se quer chegar, fatalmente este tipo de projeto estará fadado ao
fracasso.
24
A Escalabidade tem a ver com o Volume, mas também envolve a Varie-
dade das origens (o segundo dos Vs) encontrada neste tipo de projeto. E isso se
resolve com Processamento Paralelo, Bancos Não-Relacionais (NoSQL) e
Cloud Computing. É uma solução técnica. Certamente irá evoluir para facilitar o
processo, mas não é algo que deva atemorizar o condutor deste tipo de projeto.
25
REFERÊNCIAS
26
ARQUITETURA DE SOFTWARE E DE DADOS SEGUROS
1
NOSSA HISTÓRIA
2
Sumário
INTRODUÇÃO ........................................................................................ 4
CONSIDERAÇÕES FINAIS................................................................... 23
REFERÊNCIAS ..................................................................................... 25
3
INTRODUÇÃO
4
PORQUE SE PENSAR EM SEGURANÇA
5
APRENDENDO SOBRE A IMPORTÂNCIA DE UM SOF-
TWARE SEGURO
6
O QUE É IMPORTANTE NO DESIGN DE UM SOFTWARE SE-
GURO?
Deixar a superfície de ataque maior do que tem que ser porque a maioria
dos desenvolvedores não entende o que é superfície de ataque de um sistema
ou sabe que precisa estar atenta quando mudá-la;
7
Cometer erros estúpidos em fluxos de trabalho de negócios que permitem
que os atacantes ignorem as verificações e os limites, e roubem dinheiro ou in-
formações.
Todos esses fatores compreendem o projeto no nível arquitetural e estão
diretamente relacionados com a organização do sistema e, portanto, afetam os
atributos de qualidade (também chamados de requisitos não funcionais) como
desempenho, portabilidade, confiabilidade, disponibilidade, entre outros. Se fi-
zermos uma comparação entre arquitetura de software (caracterizada, por
exemplo, pelo estilo em camadas) e arquitetura ‘clássica’ (relativa à construção
de edificações), podemos observar que o projeto arquitetural é determinante
para o sucesso do sistema.
Catego-
Representações
rias arquitetu- Restrições
de projeto
rais
8
Modelos, dese- Padrão de circulação,
Arquite-
nhos, planos, elevações acústica, iluminação e venti-
tura Clássica
e perspectivas lação
9
Esses aspectos servem como indicadores de uma maturidade inicial de
engenharia de software. Outros aspectos compreendem uso e reuso de soluções
existentes no desenvolvimento de novos sistemas. Para tanto, a prototipagem
tem sido usada em projetos de natureza inovadora (bem antes da implementa-
ção ou aceitação de um produto acontecer).
10
Servir de base à estimação de custos e gerência do projeto
– a existência de uma arquitetura bem definida permite ao gerente de
projeto adequadamente alocar tarefas de, por exemplo, implementação
de componentes e melhor estimar o tempo e tamanho de equipe neces-
sária para realização de um projeto.
11
SEGURANÇA É UM PROCESSO
(Fonte: http://menezeseassociados.com.br/gerenciamento-de-seguranca-de-processo/ )
12
Segurança bem implementada desencoraja e coíbe condutas maliciosas,
previne enganos e protege contra infortúnios (afinal, acidentes acontecem). Por
isso, diminui desperdícios de tempo e dinheiro, protegendo a privacidade das
pessoas e a reputação das marcas.
13
QUAL É O PROCESSO DE DESENVOLVIMENTO DE UM
SOFTWARE SEGURO?
14
BOAS PRÁTICAS DE SEGURANÇA DE SOFTWARE
15
Antes de lançar o seu sistema para o público geral, faça tes-
tes nos seus métodos de segurança e tente pensar como alguém que
deseja comprometer a segurança do sistema. Nessa etapa, é importante
garantir que todos os blocos de código que envolvem informações sensí-
veis não tenham brechas que possam comprometer a segurança do usu-
ário;
16
A DIFERENÇA DE UM SOFTWARE SEGURO E INSEGURO
(Fonte: https://blog.convisoappsec.com/orientacao-sobre-a-compra-de-um-software-seguro/ )
17
ESTILO ARQUITETURAL
18
Mas, o que se ganha em saber o estilo arquitetural? Ele oferece:
19
A IMPORTÂNCIA DO REÚSO
20
Tabela 2. Características e uso prático da arquitetura de software.
21
Suporta o desenvolvimento ba- Como usar arquitetura
seado em componentes e linha de pro- como parâmetro para reduzir cus-
duto (quando os requisitos são consi- tos de manutenção e amortizar
derados para uma família de sistemas) custos de desenvolvimento
22
CONSIDERAÇÕES FINAIS
23
empresas de software. Novas estratégias de desenvolvimento de sistemas de-
vem ser para o reuso e com reuso (de componentes de software) e o pilar prin-
cipal dessas estratégias é a arquitetura de software. Há, portanto, uma necessi-
dade premente de formação de capital humano com tais qualificações.
Uma questão que você deve estar se fazendo é: Por que apenas recen-
temente houve o foco na arquitetura de software?
24
REFERÊNCIAS
25
ARQUITETURA DE SOFTWARE NA PLATAFORMA NODE.JS
1
NOSSA HISTÓRIA
2
Sumário
INTRODUÇÃO ........................................................................................ 4
PRINCÍPIOS .......................................................................................... 14
ESTRUTURA E PERFORMANCE......................................................... 16
ESCALABILIDADE ................................................................................ 17
EXPRESS.............................................................................................. 21
CONSIDERAÇÕES FINAIS................................................................... 25
REFERÊNCIAS ..................................................................................... 26
3
INTRODUÇÃO
4
O QUE É O NODE.JS
Mas javascript não é só no Browser? Não mais. Node é feito sobre e en-
gine da Google chamada V8 que roda no Chrome, o V8 interpreta o código ja-
vascript e dessa forma é processado no lado do servidor.
5
Não podemos dizer que node é um Framework nem um Middleware nem
uma Linguagem, na verdade trata-se de um runtime Javascript. Com o cresci-
mento exponencial de bibliotecas, recursos e da comunidade, podemos dizer
que node tornou-se uma plataforma.
6
O SURGIMENTO DO NODE.JS
Porém, com a rápida evolução da Web nos últimos anos, a linguagem Ja-
vascript e seus motores de execução passaram por diversas melhorias, tornando
viável sua execução com outros propósitos além da manipulação de páginas
HTML.
Com essa nova fase no uso do Javascript, aplicações server-side passa-
ram a ser implementadas, e em 2009 foi criado o primeiro ambiente de execução
Javascript com este propósito: O Node.js.
7
CARACTERÍSTICAS DO NODE.JS
(Fonte: https://www.opus-software.com.br/node-js/ )
8
No modelo Node.js, apenas uma thread é responsável por tratar as requi-
sições.
Essa thread é chamada de Event Loop, e leva esse nome pois cada re-
quisição é tratada como um evento. O Event Loop fica em execução esperando
novos eventos para tratar, e para cada requisição, um novo evento é criado.
9
A figura abaixo representa a diferença de funcionamento de um servidor
web tradicional e um Node.JS:
(Fonte: https://www.opus-software.com.br/node-js/ )
10
No servidor Node.js, o Event Loop é a única thread que trata as requisi-
ções, enquanto que no modelo tradicional uma nova thread é criada para cada
requisição. Enquanto o Event Loop delega uma operação de E/S para
uma thread do sistema de forma assíncrona e continua tratando as outras requi-
sições que aparecerem em sua pilha de eventos, as threads do modelo tradicio-
nal esperam a conclusão das operações de E/S, consumindo recursos compu-
tacionais durante todo esse período de espera.
11
VANTAGENS DO USO DO NODE.JS
Flexibilidade
Leveza
Criar um ambiente Node.js e subir uma aplicação é uma tarefa que não
exige muitos recursos computacionais em comparação com outras tecnologias
mais tradicionais. Se utilizado em conjunto com ferramentas como o Docker, o
ganho na velocidade de deploy e replicação de máquinas pode ser muito signi-
ficativo e em ambientes escaláveis isso significa menos custo e mais eficiência.
Produtividade da equipe
12
Mesma linguagem no frontend e backend: Javascript é a linguagem
padrão para desenvolvimento web client-side. Empresas de desenvolvimento
Web contam como esse know-how como um ponto de partida importante para
iniciar o uso do Node.js. Além disso, esse fator pode representar ganhos de reu-
tilização de código e criação de equipes multidisciplinares, com melhor aprovei-
tamento de recursos.
13
PRINCÍPIOS
Acima de qualquer estrutura que eu possa propor aqui, vale ressaltar al-
guns princípios e motivações que devem estar acima de quaisquer convenções
em seu código:
14
Guarde seus testes perto do seu código: Essa ideia vai de encontro à
anterior. Coloque o arquivo JS de testes de cada feature na mesma pasta da
feature, para facilitar os testes e correção dos bugs encontrados. Também ajuda
a lembrar das features que ainda não possuem testes codificados.
15
ESTRUTURA E PERFORMANCE
16
ESCALABILIDADE
(Fonte: https://www.linkedin.com/pulse/uma-arquitetura-para-web-com-nodejs-graphql-
postgres-matheus )
17
ESTENSIBILIDADE E PACOTES
18
ARQUITETURA LIMPA
19
sendo as principais funcionalidades da aplicação. Esses casos de uso utilizam
as entidades a fim de atingir seus objetivos, criando assim uma dependência
nelas.
20
EXPRESS
21
A IMENSIDÃO DO NODE.JS
Aplicações web não são sempre a mesma coisa e, da mesma forma, não
há uma única arquitetura e/ou estrutura de código que possa ser aplicada à todas
aplicações express.js.
Sim, é possível criar grandes aplicações em Node.js uma vez que gran-
des empresas estão fazendo exatamente isso nos últimos anos, como Walmart,
Netflix e Uber, só para citar algumas. A questão aqui é: sua aplicação realmente
é grande e precisa de uma arquitetura como a deles?
22
CASOS DE USO MAIS COMUNS
Ambientes Escaláveis
Mocks e Protótipos
23
API com NoSQL por trás
24
CONSIDERAÇÕES FINAIS
Para isso basta você acrescentar novos módulos ao node com o co-
mando npm install -g <NomeModulo>. Isso é porque o Node.js vem pelado de
fábrica e você deve incluir módulos conforme necessário. Essa abordagem mi-
nimalista, que permite criar ambientes Web muito leves, é um dos fatores de
sucesso do Node.JS
25
REFERÊNCIAS
26
DEVOPS E GESTÃO DO CICLO DE VIDA DE APLICAÇÕES
1
NOSSA HISTÓRIA
2
Sumário
INTRODUÇÃO ........................................................................................ 4
OS PILARES DO ALM........................................................................... 22
CONSIDERAÇÕES FINAIS................................................................... 27
REFERÊNCIAS ..................................................................................... 28
3
INTRODUÇÃO
Seu ciclo de vida é regido por 5 princípios básicos que podem ser lembra-
dos pelo acrônimo CALMS (em inglês), são eles: Culture (Cultura), Automation
(Automação), Lean (Enxuto), Measurement (Medição) e Sharing (Compartilha-
mento).
Das muitas mudanças sugeridas por este novo ciclo de vida, as mais re-
levantes e que merecem destaque são as culturais e tecnológicas. A cultura De-
vOps incentiva o desenvolvimento contínuo e colaborativo com entregas de alta
qualidade, não existindo barreiras para o compartilhar de informações, onde an-
teriormente havia nós (dev) e eles (ops), agora existe um TIME.
4
deverá ser redesenhada para um modelo de serviços, com pontos de contato
com o mundo exterior através de um ecossistema de APIs.
5
O QUE É DEVOPS?
6
A metodologia DevOps tem se mostrado extremamente eficiente e im-
pacta em três importantes pilares do ciclo de vida de aplicações: Aumento de
Produtividade, Maior Qualidade na Entrega e Redução de Custo no Desenvolvi-
mento.
Na DATA SYSTEM não foi diferente, com uma cultura voltada para a qua-
lidade, produtividade e agilidade, resultados significativos foram alcançados. A
clara definição dos processos e objetivos, a integração colaborativa entre os de-
partamentos aliado a implementação de metodologias ágeis no processo de de-
senvolvimento concedeu para o DevOps méritos de uma moderna e importante
mudança de conceito e para a empresa a satisfação de poder entregar soluções
de maior performance aos seus clientes e singular notoriedade no mercado.
7
clientes por novos recursos e assim valorizar o produto da empresa. A área de
Operações, por sua vez, deseja o mínimo de alterações possíveis no ambiente
de produção, pois podem gerar um novo ponto de instabilidade o que desvalori-
zará o produto da empresa. Assim há interesses contraditórios. Um setor quer
evoluir e o outro garantir.
8
AÇÕES RECOMENDADAS NA PRÁTICA DEVOPS
9
versão de software seja testada em um ambiente e executada em produção em
outro e assim surjam problemas não previstos.
10
OS BENEFÍCIOS DE IMPLEMENTAR DEVOPS
Segurança
11
As pequenas entregas, ao contrário daquelas únicas e mais amplas, fa-
zem com que o produto criado seja otimizado e atenda mais às necessidades do
seu cliente.
Maior capacitação
12
Equipes integradas
13
pesquisem;
compreendam falhas.
14
DEVOPS NAS TRINCHEIRAS
( Fonte: https://blog.mandic.com.br/artigos/o-real-significado-do-termo-devops/ )
Alguém pode notar que o método waterfall inclui esses mesmos elemen-
tos. Então, como chamar isso de DevOps? Defende Dadgar: “O objetivo do De-
vOps é paralelizar o máximo possível. Esses 7 passos são necessários e sufici-
entes, mas não precisam ser feitos sequencialmente “.
15
cumprir um princípio-chave do DevOps – ou seja, os desenvolvedores devem
manter a responsabilidade pelos aplicativos em produção, ao invés de deixar a
tarefa para a equipe de operações.
16
O QUE É GERENCIAMENTO DO CICLO DE VIDA DE APLI-
CAÇÕES
17
Juntando essas informações, o ALM é capaz de oferecer implantações
mais rápidas, maior visibilidade do fluxo de trabalho, produtos de melhor quali-
dade e maior satisfação do desenvolvedor.
18
ETAPAS DO ALM
Governança da aplicação
A governança descreve as decisões tomadas sobre uma aplicação. Ao
começar o processo de criação de uma nova aplicação, geralmente há uma ideia
inicial, mas é importante levar em consideração como ela dialogará com os ob-
jetivos e necessidades da sua empresa.
19
Teste das aplicações
Operações e manutenção
20
( Fonte: https://leonardo-matsumota.com/2018/01/14/alm-application-lifecycle-manage-
ment-ciclo-de-vida-da-aplicacao/ )
21
OS PILARES DO ALM
(Fonte: https://leonardo-matsumota.com/2018/01/14/alm-application-lifecycle-manage-
ment-ciclo-de-vida-da-aplicacao/ )
22
OS MODELOS DE CICLO DE VIDA DO SOFTWARE
Cascata
23
Incremental
Esse modelo foi criado na década de 1980. Ele tem um contato contínuo
entre os responsáveis pelo projeto e o cliente. Desse modo, é possível maximizar
a satisfação e evitar riscos.
Modelo evolutivo
24
Sempre que um feedback é entregue, um novo projeto de desenvolvi-
mento se iniciará. Em outras palavras, as mudanças no sistema e as suas atua-
lizações são feitas como a evolução de uma espécie: a cada nova versão do
software, melhorias são aplicadas para garantir maior satisfação do usuário.
Modelo espiral
25
mercado e, com isso, garantir a satisfação de múltiplos perfis de usuário. Por
isso, devem ser tratados como uma ferramenta estratégica.
26
CONSIDERAÇÕES FINAIS
27
REFERÊNCIAS
28
ANÁLISE, PROJETO E AVALIAÇÃO DE ARQUITETURA DE
SOFTWARE
1
NOSSA HISTÓRIA
2
Sumário
INTRODUÇÃO ................................................................................................... 4
REFERÊNCIAS ................................................................................................ 26
3
INTRODUÇÃO
Existem grandes estudos sendo executados nesta área, porém muitos pontos
ainda não foram esclarecidos ou avaliados. Uma das grandes dificuldades para
a avaliação da qualidade do produto de software é que grande parte dos testes
só pode ser executada após a finalização do software. Isto significa um alto custo
e um grande esforço de mudança caso a qualidade desejada não seja atingida.
Para evitar estas situações, cada vez mais estão surgindo metodologias e técni-
cas que auxiliam tanto no processo de desenvolvimento do software como tam-
bém para a avaliação dos artefatos gerados. Baseando-se nesta idéia, foram
criados vários trabalhos para avaliar a qualidade do produto de software através
do estudo de sua arquitetura.
4
Através da arquitetura do sistema, é possível prever alguns dos possíveis com-
portamentos do software antes de sua conclusão, além de poderem ser obser-
vadas características importantes como coesão, que influencia na manutenção
do produto.
5
PARA QUE SERVE A ARQUITETURA DE SOFTWARE E COMO
ELA AJUDA OS NEGÓCIOS?
6
DESENVOLVIMENTO DE SISTEMA DE SOFTWARE
(Fonte: https://www.devmedia.com.br/artigo-engenharia-de-software-14-analise-da-arquitetura-
de-software/13254 )
7
APLICANDO A ARQUITETURA DE SOFTWARE NOS NEGÓCIOS
“O arquiteto deve ter sempre o senso crítico de avaliar novas formas de aplicar
estas tecnologias ou até de sugerir algo que nunca antes tenha sido utilizado”,
diz Lobato. O que na prática é a criação ou seleção dos componentes e intera-
ções fundamentais para que a tecnologia seja implantada. Assim, por trás de
toda a tecnologia, há uma representação de informação adequada às necessi-
dades dos consumidores ou colaboradores.
8
Normalmente, essas companhias buscam por uma modelagem específica, com-
binando componentes com base em uma visão arquitetural que mais se adeque
ao software. Para isso acontecer, os arquitetos avaliam todas as opções de im-
plementação de um sistema.
9
ANÁLISE DE ARQUITETURA DE SOFTWARE
Perceba que o modelo arquitetural pode ser considerado como um ‘esboço’ ini-
cial da arquitetura de software do sistema em desenvolvimento. É importante
ainda observar que a análise de uma arquitetura de software é um processo
iterativo no qual são feitos refinamento de um modelo arquitetural inicial, deri-
vado a partir de um conjunto de requisitos arquiteturais. Em cada iteração, uma
mini análise ocorre, refinando a arquitetura proposta inicialmente. Esse processo
é ilustrado na figura abaixo.
10
(Fonte: http://www.garcia.pro.br/EngenhariadeSW/artigos%20engsw/art%205%20-%20Re-
vista%20Engenharia%20de%20Software%20-%20edicao%2014%20-%20Ana-
lise%20da%20Arquitetura%20de%20Software.pdf )
Entretanto, note que não é tarefa fácil validar uma arquitetura de software quanto
ao suporte que oferece a um conjunto de requisitos. É muitas vezes difícil asso-
ciar novas arquiteturas a atributos de qualidade. Observa-se, geralmente, que
os desenvolvedores concentram-se nos aspectos funcionais das arquiteturas.
Assim, o principal propósito da análise arquitetural é verificar se os requisitos
arquiteturais têm sido levados em conta durante o desenvolvimento de um sis-
tema de software.
11
PROPRIEDADES DA ARQUITETURA DE SOFTWARE
12
comunicação entre eles, são determinantes do desempenho e, portanto,
da eficiência do sistema.
(Fonte: http://www.garcia.pro.br/EngenhariadeSW/artigos%20engsw/art%205%20-%20Re-
vista%20Engenharia%20de%20Software%20-%20edicao%2014%20-%20Ana-
lise%20da%20Arquitetura%20de%20Software.pdf)
13
MÉTODO DE ANÁLISE DE ARQUITETURA DE SOFTWARE
Utilizar cenários para gerar uma partição funcional do domínio, uma orde-
nação parcial das funções e um acoplamento dos cenários às várias fun-
ções existentes na partição.
Assim, para cada cenário, a análise fornece uma pontuação das arquiteturas que
estão sendo avaliadas, denominadas de arquiteturas candidatas. Recai, por-
tanto, sobre o avaliador a responsabilidade de determinar os pesos dos cenários
considerados, bem como a pontuação global das arquiteturas candidatas.
14
Objetivando realizar a análise, portanto, torna-se necessário considerar o con-
texto no qual o sistema de software encontra-se inserido, bem como considerar
as circunstâncias específicas àquele contexto. Uma forma de atingir esse obje-
tivo é fazendo uso de cenários a fim de entender e avaliar se uma arquitetura
oferece suporte ou não a um específico requisito não funcional, e sob quais cir-
cunstâncias.
(Fonte: http://www.garcia.pro.br/EngenhariadeSW/artigos%20engsw/art%205%20-%20Re-
vista%20Engenharia%20de%20Software%20-%20edicao%2014%20-%20Ana-
lise%20da%20Arquitetura%20de%20Software.pdf)
15
USO DE ATRIBUTOS DE QUALIDADE NA ANÁLISE ARQUITE-
TURIAL
16
quaisquer modificações (em termos de adição ou alteração de características),
possuir bom nível de disponibilidade e ter baixo custo.
Como essas metas de qualidade podem ser alcançadas?
17
(Fonte: http://www.garcia.pro.br/EngenhariadeSW/artigos%20engsw/art%205%20-%20Re-
vista%20Engenharia%20de%20Software%20-%20edicao%2014%20-%20Ana-
lise%20da%20Arquitetura%20de%20Software.pdf)
18
A ESCOLHA DO MODELO ARQUITETURIAL PARA UM SOF-
TWARE
Mas, atualmente, há alguns padrões que são mais usados para a criação da
solução do software, que também são conhecidos como estilo de arquitetura.
Veja mais:
19
Arquitetura de microsserviços (Microservices pattern)
Este padrão utiliza múltiplos serviços e componentes para desenvolver uma es-
trutura modular favorecida. Hoje, é um dos modelos preferidos dos desenvolve-
dores e arquitetos de software por possibilitar a escalabilidade e independência
dos módulos – que até podem utilizar diferentes linguagens e programações.
20
AVALIAÇÃO DA ARQUITETURA DE SOFTWARE
No decorrer dos últimos anos, as funcionalidades críticas dos sistemas vão len-
tamente se transferindo do hardware para o software. Juntamente com esta
transformação a complexidade dos sistemas vai aumentando [GRUNSKE et all
2002]. O desafio não é mais prover os atributos funcionais, mas sim garantir os
atributos de qualidade, pois estes requerem uma atenção explícita, para que, no
final, seja atingido um nível satisfatório.
21
Uma solução para este problema de descrição dos atributos de qualidade é a
utilização de cenários, como meio de caracterizar melhor esses requisitos. Os
cenários também são uma poderosa maneira para representar as visões e con-
ceitos que os stakeholders possuem desses atributos. Vários processos de ava-
liação utilizam à idéia de cenários, entre eles podem ser citados SAAM e QAW
[MENDES 2002] [BARBACCI et all 2005]. O processo proposto também é base-
ado em cenários, permitindo simular as necessidades e as mudanças que po-
dem ocorrer no software.
22
O FUTURO DA ARQUITETURA DE SOFTWARE
Essas três tendências têm caminhado bem próximas umas das outras, porque
são uma evolução natural da arquitetura de software, e também parte da revolu-
ção digital. Separamos as principais razões para ficar de olho em:
Inteligência artificial
Desenvolver software com base em inteligência artificial já é uma prática reali-
zada no mercado de TI, mas logo essa evolução tecnológica ficará mais fácil e
acessível para a produção de softwares e aplicativos. Graças a facilidade na
hora de programar e uma interface mais intuitiva que atende mais rapidamente
às necessidades dos negócios.
23
Microsserviços
A praticidade dos microsserviços criará um movimento de migração de sistemas
para as empresas que têm uma área de TI mais fortalecida e com maior produ-
tividade.
“O futuro da arquitetura, por mais que seja muito difícil prever, tem grandes chan-
ces de sempre procurar por novas tecnologias que otimizam o que já existe no
mercado”, ressalta Lobato.
24
CONSIDERAÇÕES FINAIS
A qualidade não está apenas nas funcionalidades. Ela também deve ser levada
em consideração no esforço gasto para manter o software sempre atualizado
com as mudanças requisitadas. Devido a isso existe a necessidade de averiguar
a facilidade de manutenção do software durante todo o seu ciclo de vida.
25
REFERÊNCIAS
26
PROCESSO ÁGIL DE DESENVOLVIMENTO DE SOFTWARE
(SCRUM)
1
NOSSA HISTÓRIA
2
Sumário
INTRODUÇÃO ................................................................................................... 4
CONTEXTO HISTÓRICO................................................................................... 9
SCRUM ............................................................................................................ 17
PROPOSTAS DO SCRUM............................................................................... 20
REFERÊNCIAS ................................................................................................ 28
3
INTRODUÇÃO
4
O desenvolvimento ágil sabe que trabalhadores do conhecimento rendem mais
e melhor em ambientes que estimulam o uso intensivo da criatividade e do co-
nhecimento.
É importante frisar sempre que desenvolver softwares não é uma tarefa das mais
simples. Uma ampla gama de variáveis influencia no modo como uma aplicação
será construída, somando-se ainda a isto influências como a pressão pela en-
trega do produto em um prazo muito curto, mudanças motivadas por alterações
na legislação vigente, dificuldades dos usuários que solicitam um sistema em
5
descrever de forma clara e concisa aquilo que realmente necessitam (com pro-
váveis pedidos de modificações ao longo do projeto), dentre outros aspectos.
A noção de mudança também representa um elemento central na elaboração de
aplicações. Por mais que todo um esforço procurando contemplar um número
extenso de situações seja levado a cabo, é praticamente impossível construir um
software que em determinado momento não precise passar por alterações. Aliás,
é bastante comum que exista a necessidade de modificações durante a constru-
ção da aplicação, comprometendo assim uma parcela do tempo e de recursos
que já haviam sido alocados para a implementação daquela solução.
(Fonte: https://br.freepik.com/vetores-premium/infografico-de-processo-agil-scrum-diagrama-
de-gerenciamento-de-projetos-metodologia-de-projetos-e-ilustracao-do-fluxo-de-trabalho-da-
equipe-de-desenvolvimento_8637055.htm )
6
O QUE É O DESENVOLVIMENTO ÁGIL
Embora cada envolvido tivesse suas próprias práticas e teorias preferidas, todos
concordavam que, em suas experiências prévias, os projetos de sucesso tinham
em comum um pequeno conjunto de princípios. Com base nisso eles criaram
o Manifesto para o Desenvolvimento Ágil de Software, frequentemente chamado
apenas de Manifesto Ágil. O termo Desenvolvimento Ágil identifica metodologias
de desenvolvimento que adotam os princípios do manifesto ágil. Estes princípios
são os seguintes:
O manifesto reconhece o valor dos itens à direita, mas diz que devemos valorizar
bem mais os itens à esquerda.
7
ao final de cada ciclo, sempre se tem um software funcional, testado e aprovado.
Os ciclos são chamados de iterações e crescem em número de funcionalidades
a cada repetição, sendo que, no último ciclo, todas as funcionalidades desejadas
estarão implementadas, testadas e aprovadas.
(Fonte: https://www.devmedia.com.br/introducao-ao-desenvolvimento-agil/5916 )
8
CONTEXTO HISTÓRICO
Alguns exemplos são DSDM, Scrum, Crystal Clear, XP, UP e FDD, todas desen-
volvidas ao longo dos anos 1990.
9
A metodologia funcionava com uma cadeia de eventos normalmente inflexível e
resistente à mudanças. E se você conhece o meio de desenvolvimento de sof-
twares, sabe que mudanças e otimizações são parte do ciclo de criação do pro-
duto.
10
PREMISSAS DO DESENVOLVIMENTO ÁGIL
Entretanto, muitos outros só ficam claros quando ele tem a oportunidade de uti-
lizar o sistema. Portanto, o cliente não especifica estes detalhes no início do
projeto por uma razão muito simples: ele não os conhece. Além do mais, mesmo
que tais detalhes fossem conhecidos previamente, seria muito difícil especificá-
los através de documentos, devido à grande quantidade de elementos que pre-
cisariam ser descritos.
11
COMO O DESENVOLVIMENTO ÁGIL FUNCIONA
O Manifesto Ágil traz apenas valores e princípios, portanto, é muito mais concei-
tual. O que acontece é que existem várias metodologias que ajudam a executar
esses conceitos – muitas delas surgidas antes do manifesto, conforme explica-
mos antes.
12
BENEFÍCIOS DO DESENVOLVIMENTO ÁGIL
A flexibilidade torna mais fácil a mudança de rumos de um projeto, que pode ser
motivada por inúmeros outros motivos além de erros.
13
Por fim, o cliente fica mais satisfeito com o atendimento, já que o desenvolvi-
mento ágil foca o tempo todo em atender suas necessidades.
14
OS VALORES DO DESENVOLVIMENTO ÁGIL
Por mais que a documentação de um sistema seja importante e não deva ser
ignorada, ela não deve ser mais relevante do que as atividades voltadas para a
garantia de seu funcionamento. Afinal, esse é o principal valor esperado pelos
clientes.
15
Responder a mudanças mais que seguir um plano
Agora que você conhece os valores que guiam o desenvolvimento ágil de sof-
tware, no próximo item, veja as principais características dos seus 12 princípios
fundamentais.
16
SCRUM
O Scrum tem este nome devido a uma atividade que ocorre durante uma partida
de rugby, esporte muito popular nos Estados Unidos e evoluindo bastante no
Brasil com times profissionais surgindo a cada dia. Scrum é um método de de-
senvolvimento ágil de software criado por Jeff Sutherland e a sua equipe de de-
senvolvimento de software.
O Scrum é indicado para projetos com prazos apertados, requisitos que estão
sempre sendo modificados e que são críticos para o negócio. Este método define
um conjunto de ações de desenvolvimento, são eles: o Backlog que é onde re-
gistra-se todo o trabalho pendente (requisitos ou funcionalidades) organizando-
os por prioridades.
Temos também como uma ação do Scrum as Sprints que são algumas funcio-
nalidades do Backlog que podem ser atendidas num prazo curto, de no máximo
30 dias. É nas Sprints que o trabalho de desenvolvimento realmente será reali-
zado para entregar o mais rápido possível um incremento de software operacio-
nal ao cliente.
17
Outra ação do Scrum são as Reuniões que tipicamente são curtas (15 minutos)
e realizadas diariamente pela equipe Scrum. Nesta reunião diária são feitas três
perguntas bastante pontuais para todos os membros da equipe: "O que você
realizou desde a última reunião da equipe?", "Quais obstáculos estão encon-
trando?" e "O que planeja realizar até a próxima reunião da equipe?".
Estas perguntas ajudam todos a entenderem o que cada um fez no dia anterior,
se tem alguma dificuldade para realizar o trabalho atual e o que se pretende
fazer hoje. Esta reunião é considerada muito importante porque ajuda a equipe
a revelar problemas o mais cedo possível, também ajuda a disseminar o conhe-
cimento.
Uma dica importante é que nem todas as equipes acham a reunião diária apro-
priada para ser feita na parte da manhã, isto porque alguns membros começam
a trabalhar no turno da tarde ou porque as pessoas não possuem um humor
muito bom pela manhã, tente avaliar essas questões e decida o melhor mo-
mento.
Como as Demos são realizadas durante os incrementos, pode ser que não te-
nhamos toda a funcionalidade completa, mas teremos funções que possam ser
entregues dentro do prazo acertado com o cliente.
18
Ele é relativamente simples de implementar e aborda muitos dos aspectos com-
plexos de gestão que costumam representar dor de cabeça para os times de
desenvolvimento.
Em suma, podemos dizer que o uso de Scrum impõe uma certa disciplina, que
permite um acompanhamento mais próximo do andamento do projeto. Suas en-
tregas podem ser até semanais, entregando valor mais rápido.
19
PROPOSTAS DO SCRUM
20
PAPEIS DE ATUAÇÃO DA METODOLOGIA SCRUM
21
Além dos três papéis já descritos, certamente também existirão envolvidos com
o projeto, mas que não desempenham um papel direto na sua execução. Estes
elementos podem englobar usuários, gerentes, diretores ou departamentos que
possuem interesses (neste caso são conhecidos dentro da Gerência de Projetos
como “stakeholders”) ou ainda, são afetados pelos resultados do produto final.
Considerando tudo isto, criou-se uma forma lúdica de representar o grau de com-
prometimento de uma pessoa em um projeto que segue as práticas do Scrum;
para isto, foi utilizada uma sequência de histórias em que interagem um porco e
um frango. Porcos representariam profissionais realmente engajados/compro-
metidos com o sucesso do projeto (Product Owner, Scrum Master, Time), ao
passo que frangos seriam pessoas relacionadas indiretamente e sem uma maior
disposição para com o mesmo (usuários comuns, gerentes ou áreas afetadas).
22
EVENTOS POSSÍVEIS EM SCRUM
Como outros métodos ágeis, Scrum é uma metodologia que prima pelo desen-
volvimento iterativo e incremental de software. Em termos práticos, isto significa
que ciclos contendo um conjunto de específico de atividades são repetidos con-
tinuamente ao longo de um projeto; por incremental, deve-se ter em mente a
ideia de sucessivas entregas de funcionalidade, acrescentando aquilo que se
espera do software em intervalos constantes de tempo.
Esta última recebe o nome de Sprint, sendo que essa estimativa de tempo não
pode ser alterada, a fim de com isto garantir a entrega sem atrasos e facilitar o
planejamento.
23
A Reunião de Planejamento da Sprint é uma atividade com duração de 8 horas
e da qual participam todos os profissionais comprometidos com o projeto (Pro-
duct Owner, Scrum Master, Equipe de Desenvolvimento). Esta reunião é for-
mada por duas etapas: num primeiro momento o Product Owner define a priori-
dade de funcionalidades a serem implementadas (a partir do Backlog); posteri-
ormente, a Equipe montará sua própria lista de trabalho (Sprint Backlog) com
base no que foi exposto pelo Product Owner.
24
ARTEFATOS DO SCRUM
Por mais que como uma metodologia ágil Scrum priorize a entrega do software
em detrimento de uma extensa e trabalhosa documentação, a elaboração e a
consequente manipulação de alguns artefatos neste modelo é de fundamental
importância para o controle das atividades rotineiras. A seguir estão listados tais
documentos:
Uma User History é uma pequena história que descreve as características espe-
radas para uma funcionalidade constante no Backlog do Produto. Constam no
documento que representa tal história um título, uma descrição clara do que se
necessita, bem como é possível se indicar ainda uma prioridade para execução
da tarefa.
25
O Gráfico de Burn Down é uma ferramenta de gerenciamento. Este artefato cos-
tuma ser atualizado diariamente, servindo de base para a comparação entre o
que foi planejado e aquilo que realmente se realizou. Pode ser considerado um
instrumento para tomada de decisão, uma vez que fornece embasamento para
ações em prol de uma maior produtividade ou ainda, a fim de atenuar riscos
iminentes.
26
CONSIDERAÇÕES FINAIS
Claro que os códigos em si podem ser bastante objetivos, mas estamos falando
aqui do desejo do cliente e da interpretação que os desenvolvedores têm disso.
Por isso, ao considerar implementar as práticas de desenvolvimento ágil, pense
no quão criativo e suscetível a erros será o trabalho da sua equipe.
Scrum é mais um método ágil, representando uma alternativa flexível para ori-
entar equipes na entrega de sistemas com qualidade. Diversas ferramentas de
software (gratuitas ou proprietárias) já foram desenvolvidas, auxiliando assim o
dia a dia de profissionais envolvidos em projetos que adotaram esta metodologia.
27
REFERÊNCIAS
GROFFE, Renato. Desenvolvimento ágil com Scrum: uma visão geral. 2012.
28
ARQUITETURA ORIENTADA E SERVIÇOS E MICROSSERVIÇOS,
COMPUTAÇÃO EM NUVEM E MOBILE
1
NOSSA HISTÓRIA
2
Sumário
INTRODUÇÃO ................................................................................................... 4
TECNOLOGIA POLIGLOTA............................................................................. 16
CONCLUSÃO................................................................................................... 24
REFERÊNCIAS ................................................................................................ 25
3
INTRODUÇÃO
E tudo isso dentro do que geralmente chamam de “arquitetura SOA”. Mas, o que
é tudo isso? Será que estamos falando simplesmente de web services?
Para ajudá-lo em sua avaliação dessas tecnologias e dos benefícios que elas
oferecem (inclusive para iniciativas executivas como Lean-Six Sigma, gerência
de portfólio e transformação da aquisição, bem como soluções com foco em mis-
sões em áreas como inteligência, defesa e logística), este white paper avalia os
benefícios e os riscos dessas soluções e apresenta perspectivas e estudos de
caso do mundo real como elementos de base para sua análise.
4
tarem rapidamente à evolução dos mercados, políticas, regulamentações e mo-
delos de negócios. Felizmente para elas, a convergência de um trio de tecnolo-
gias e práticas de negócios – gestão de processos de negócios (BPM), arquite-
tura orientada a serviços (SOA) e Web 2.0 – está fornecendo uma solução.
5
O QUE É SOA?
Sendo assim, caso haja mudanças nas necessidades do negócio, estes fatores
permitem que a empresa responda a isso de forma rápida.
Esta web service será responsável por fazer todas as validações do cliente antes
de o inserir na base de dados. Assim, caberia aos demais softwares simples-
mente consumir esse serviço da maneira adequada.
6
Abaixo segue uma imagem de um esquema de regras de negocio
Fonte: https://www.treinaweb.com.br/blog/voce-sabe-o-que-e-arquitetura-orientada-a-servicos-soa
7
ARQUITETURA ORIENTADA A SERVIÇOS (SOA) PARA AUTO-
MAÇÃO INDUSTRIAL
8
No entanto, existe a necessidade e potencial para melhorar as funcionalidades
e minimizar problemas de integração através de abordagens colaborativas de
sistemas e serviços (COLOMBO et al., 2014). Nesse sentido é importante con-
siderar os próximos passos para a evolução dos sistemas industriais através da
IIoT e Industria 4.0, de forma que consigam atender os desafios recentes como
grau de descentralização e independência dos sistemas.
9
A Imagem abaixo é uma pirâmide de negócios
Fonte: (https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.profissio-
naisti.com.br%2Fbeneficios-de-uma-arquitetura-orientada-a-servico-soa-para-o-negocio-parte-
1%2F&psig=AOvVaw2E_AyXpsFCEdTroVjb_kLD&ust=1626437167803000&source=ima-
ges&cd=vfe&ved=0CAcQjRxqFwoTCMjDodSD5fECFQAAAAAdAAAAABAD)
10
O QUE É ARQUITETURA DE MICROS SERVIÇOS?
Os micros serviços são uma arquitetura e uma abordagem para escrever pro-
gramas de software. Com eles, as aplicações são desmembradas em compo-
nentes mínimos e independentes.
11
Trata-se da restruturação das equipes de desenvolvimento e da comunicação
entre serviços de modo a preparar a aplicação para falhas inevitáveis, escalabi-
lidade futura e integração de funcionalidades novas.
Eles podem ser usados para quebrar uma grande aplicação monolítica em ser-
viços menores e mais simples.
Cada micro serviço faz uma coisa, e faz bem, então o “Micro” em micros serviços
refere-se ao escopo dos serviços funcionalidades, não o número de linhas de
código e nem do tamanho em megabytes do monólito.
Em resumo o conceito básico: ele é uma pequena aplicação que executa uma
única tarefa e o faz com eficiência.
Cada micros serviço é geralmente construído por uma equipe completa, que re-
duz possíveis dificuldades de comunicação entre equipes diferentes.
Os micros serviços podem não ser adequados para aplicações mais simples e
são mais adequados para aplicações complexas que crescem ao longo de um
período de tempo, com grandes bases de código e equipes.
São ideais para realizar múltiplas funções de negócios, com cada micros serviço
focado em realizar uma única função ou sub-função de negócios.
12
PRINCÍPIOS DOS MICROS SERVIÇOS
2. Autônomos
Um microserviço deve ser autônomo, ou seja, não deve depender de outros ser-
viços que interajam com ele. Isto implica na mudança de um microserviço dentro
de uma aplicação. Ele não deve forçar que outros microsserviços necessitem
mudar. O ponto importante desse princípio reflete que cada microserviço deve
ter seu próprio banco de dados ou outro serviço de armazenamento.
3. Resiliência
13
4. Observável
5. Automatização
Com a divisão de uma aplicação entre diversos mini blocos há uma necessidade
maior de automatizar algumas tarefas para manter este tipo de arquitetura.
Como integração contínua e entrega contínua. Esse é um dos aspectos que fa-
zem esse modelo ser abraçado por defensores da cultura DevOps. Pois esta é
a ideia principal que move essa cultura.
14
BENEFICIOS DE MICROSSERVIÇOS
Escala Independente
Atualizações Independentes
Manutenção Fácil
15
TECNOLOGIA POLIGLOTA
16
MONITORAMENTO DE SERVIÇOS
Resiliência
Falha de software irá ocorrer, não importa o quanto se testa. Isto tão importante
quanto múltiplos micros serviços são distribuídos por toda a Internet. A questão
é “como evitar a falha”, mas “como lidar com falha”. “É importante que os serviços
tomem ação corretiva para garantir que a experiência do usuário não seja afe-
tada”
Devops
17
A imagem abaixo mostra um tipo de micro serviço
18
COMPUTAÇÃO EM NUVEM E MOBILE
O mobile cloud computing (MCC) traz um novo paradigma aos aplicativos mó-
veis, em que o processamento e o armazenamento de dados são movidos para
plataformas de computação poderosas e centralizadas.
Elas, por sua vez, são acessadas pela conexão sem fio, com base em um app
nativo ou navegador da Web.
19
Conheça agora algumas vantagens da utilização da computação em nuvem
móvel.
Melhor facilidade na criação de testes unitários, de aceitação, etc., uma vez que
os serviços são coesos;
Maior frequência de deploy, uma vez que os serviços podem ser implantados de
forma independente;
20
comumente encontramos, são encapsulados em containers Docker, que por na-
tureza abrem processos distintos no sistema operacional.
1. Flexibilidade
Como a maioria das empresas estão migrando suas aplicações de missão crí-
tica, como o SAP, por exemplo, como o uso da mobile cloud, qualquer colabora-
dor que possua acesso pode executar suas tarefas como se estivesse no escri-
tório a partir de qualquer lugar.
21
Nesse sentido, a mobile cloud ajuda na implementação da estratégia BYOD,
cada vez mais presente nas empresas modernas.
3. Alta disponibilidade
4. Eficiência de custos
5. Backup de dados
Como você gera constantemente novos dados em seu dispositivo móvel, o apli-
cativo de mobile cloud pode realizar o backup na nuvem de forma automática.
Assim, garantindo a segurança das informações.
Dessa forma, caso aconteça roubo, furto ou avaria de seus dispositivos mó-
veis, seus dados estarão preservados.
22
6. Recuperação de dados
Para isso, você deve seguir alguns procedimentos específicos, que podem ser
realizados de qualquer local. Para isso, basta estar conectado à internet e ter
espaço de armazenamento suficiente no seu dispositivo.
Agora você já sabe mais sobre a mobile cloud e seus benefícios. Vale ressaltar
que para garantir a segurança dos seus dados é necessário adotar procedimen-
tos específicos para mobile.
7. Escalabilidade
23
CONCLUSÃO
24
REFERÊNCIAS
25