| Linha 90: | Linha 90: | ||
<br> | <br> | ||
* 08. O que é um | * 08. O que é um ServerLess? | ||
** | ** | ||
<br> | <br> | ||
Edição das 17h59min de 17 de outubro de 2019
Evolução na profissão
A carreira de programação de Fabian começou muito antes dele decidir se tornar um arquiteto de soluções. Antes de entrar na faculdade, durante o perídodo da febre dos computadores nos anos 90, ele se envolveu em cursos de programação à distância pelo correio, o que o ajudou quando entrou para a engenharia.
Ele fez um curso de Cobol na época, e, ao ficar em primeiro lugar no curso, conseguiu um estágio dando aulas de Cobol em uma empresa. Foi a primeira experiência de Fabian com ganhar dinheiro por meio da tecnologia. Ele depois conseguiu um estágio oficial na CDL (Câmara de Diligentes Lojistas), onde ele começou a obter um reconhecimento profissional e teve suas primeiras experiências com elaboração de sistemas.
Quando foi fazer seu mestrado, Fabian começou a trabalhar como consultor na área de análise de sistemas. Envolveu-se em projetos de downsizing e implementação de serviços para a automação de lojas. Ele também deu aulas em várias instituições (como UFU, Unitri e FIAP) sobre diversos tópicos, o que certamente o auxiliou a entender sobre as novidades do mercado e sobre o que ele necessita.
Depois de trabalhar em várias empresas e instituições, ele virou consultor no Banco Bradesco, onde trabalhou no desenvolvimento de vários serviços e auxiliou na seção de consultoria. Posteriormente, ele recebeu uma oferta para trabalhar na SCOPUS, onde, como funcionário, cuidava das áreas de "Ethical Hacking", da qualidade e de desenvolvimento de produtos, entre outras. Lá ele desenvolveu várias tecnologias para bancos, e criou sua primeira patente na área de segurança.
Em 2016, ele fez um processo seletivo da Amazon que afirmou sua posição como "Arquiteto de Soluções". Nesta nova profissão, ele começou a exercer papéis muito mais no desenvolvimeto de arquiteturas para a infrastrutura do que no de arquiteturas para software (ou seja, começou a trabalhar mais com bancos de dados e servidores do que os softwares que os utilizam). Ele trabalhou com várias parceiras da Amazon para desenvolver as soluções que elas usariam e aplicariam em seus serviços. Ele se mudou recentemente para Nova York, para trabalhar na mesma posição.
Descrição da atividade atual
Fabian atualmente trabalha na Amazon Web Services. Ele recebe projetos, principalmente das empresas parceiras da Amazon, para produção de soluções para problemas que elas possuem, que podem partir desde servidores para os funcionários acessarem mais rápido a informação à redes de bancos de dados para o manuseio de informação entre franquias. Ele é responsável pela consulta com os clientes, a projeção dos gastos e (notavelmente na Amazon) por parte do desenvolvimento da própria solução.
Em geral, o processo ocorre da seguinte forma: ele se encontra com o cliente antes da venda do produto, avalia os pré-requisitos e elabora a estrutura da solução que será dada ao cliente. Há outros times que de fato montam as soluções, mas o arquiteto também trabalha na montagem e implementação da arquitetura (serviços gerais). O arquiteto também ajuda a otimizar e reduzir os gastos da implementação com o tempo ("arquiteture review").
Nessa profissão, programa-se em várias linguagens, como Java, Python, Javascript, Scala, ou frameworks variadas (React.js, etc.). O profissional também deve mostrar ao cliente os serviços que serão usados, os custos, as limitações, e as possibilidades de crescimento.
Requisitos mínimos para exercer a profissão
Por mais que as empresas (como a Amazon) não requerem faculdade explicitamente, é necessário saber os fundamentos de vários dos serviços necessários na construção de soluções, como fundamentos de rede, banco de dados, Cloud Computing, sistemas distribuídos, storage, etc. Um arquiteto de soluções que não conhece o funcionamento das ferramentas que usará para projetar suas soluções não será capaz de produzir um resultado muito bom.
Além disso, é necessário conhecimento da língua inglesa.
Ferramentas usadas no dia-a-dia
No caso de Fabian, ele faz uso das plataformas da Amazon (?) para fazer o manuseio de negócios e a própria construção da arquitetura. Na área da programação, ele tende a usar linguagens como Python e Java, em IDEs como Cloud9 e Visual Studio Code.
Normalmente, as ferramentas usadas vão defender do que a solução exigir: caso a solução exija, ele usa IA e as ferramentas envolvidas; caso ele vá trabalhar com algo intenso em termos de processamento, eles utilizam GPUs, e assim por diante. A Amazon oferece diversas ferramentas, extendendo de analítica até VR e AR, as quais podem ser encontradas no site da AWS (Amazon Web Services).
Tecnologias envolvidas
No caso do Arquiteto de Soluções, tecnologias de quase todas as áreas podem ser usadas para alcançar a solução desejada. Por isso, o arquiteto deve ter um conhecimento pelo menos decente de todas as ferramentas à disposição dele para atuar.
No caso de Fabian, a maioria das ferramentas estão disponibilizadas por meio de serviços da Amazon Web Services. Ele aplica, principalmente, as tecnologias de banco de dados e de Cloud Computing em grande parte de seus trabalhos.
Em BDs (Bancos de Dados), Fabian principalmente analisa qual tipo de Banco de Dados ele deve utilizar para garantir o melhor resultado (entre BDs relacionais ou não relacionais), além de projetar maneiras de como acessar, modificar informação ou checar o estado de cada uma das máquinas físicas por meio dos serviços/ferramentas que ele disponibilizará para o cliente. Ele normalmente esquematiza a interação entre esses diversos serviços, sempre considerando como fazer com que a interação seja a mais eficiente possível. Isso exige um bom conhecimento do funcionamento de bancos de dados, desde as linguagens usadas até o funcionamento de cada tipo de BD e suas implementações.
Em Cloud Computing, Fabian deve, de forma similar, projetar os serviços que conectarão o cliente (usuário) com a nuvem, buscando montar um sistema simples e eficiente. Ele também deve verificar quais computadores disponíveis seriam mais efetivos para atender às necessidades do cliente, e, então, montar a rede que os conectarão ao sistema da nuvem elaborada para o cliente. Isso envolve um bom conhecimento sobre como funcionam redes de computadores, além da necessidade de estudar as condições do cliente quanto à conexão a rede e determinar se essa é o suficiente para manter o sistema funcionando suavemente.
Ética profissional
É necessário, para um arquiteto de soluções, ser capaz de adquirir a confiança do cliente, mantendo a honestidade e evitando fazer papo de vendedor e criar informação.
O principal exemplo seria na entrevista de planejamento com o cliente. Pensar sempre em como você gostaria de ser tratado como consumidor também é importante, uma vez que, dessa forma, você é capaz de entender melhor o cliente e ser mais respeitoso com ele. Além disso, fazer papo de vendedor e supor informações sobre as quais você não tem certeza não resulta em nada além da criação de expectativas errôneas ou inatingíveis no consumidor.
Esse método de agir é quase que exigido pela Amazon, mesmo não é tão comum em outras empresas. Para a Amazon, é dada muita atenção para como o cliente é tratado.
Exemplo de resultado tangível
Quando Fabian trabalhou no Banco Bradesco, ele ajudou a desenvolver um produto para eliminar a necessidade do uso de usuários e senhas sem prejudicar muito a segurança. Por meio de um sistema de "assinatura" de transação, o usuário pode acessar a informação sobre transações específicas com um código associado a cada uma, evitando que o usuário tenha a necessidade de guardar dezenas de senhas.
Fabian também tem orgulho de ter feito o primeiro sistema de automatização de loja em Uberlândia, na loja de artigos domésticos Ritz, no início do ano 2000. Ele funcionava por meio de terminais para auxiliar os lojistas nas transações, evitando transtornos na hora da venda.
Upload da apresentação
Dúvidas
- 01. O que é RAID? Por que as variações de 1 a 5?
- 02. O que é um downsizing?
- 03. O que faz o Arquiteto de Soluções? Ele faz a mesma coisa em qualquer empresa?
- 04. Para que serve o Docker?
- 05. O que é CDN?
- 06. Quais itens normalmente são vistos numa revisão na implementação do cliente? Qual é a meta?
- 07. Scala, que linguagem é essa? É promissora? Por quê?
- 08. O que é um ServerLess?
- 09. O que é escalabilidade? Dê um exemplo.
- 10. Qual a diferença entre um BD Relacional e Não-Relacional?