Nos últimos 5 anos tenho tido a oportunidade de conversar com vários profissionais e empresas em todo Brasil sobre o impacto da nuvem no mercado de tecnologia. É claro que uma mudança de paradigma como essa impacta em grande parte os profissionais que estão inseridos neste contexto e por conta disso, durante essas conversas, uma das principais dúvidas que sempre surge (especialmente por parte dos profissionais) é: dado que sou um desenvolvedor ou então, dado que sou um profissional de infra, como você vê o processo de transição profissional para este novo momento do mercado? O que devo saber/estudar? Quais competências são requeridas para este momento?
Quando ouço esse tipo de pergunta, sempre vejo algumas outras implícitas. Por exemplo:
- Aquilo que conheço sobre desenvolvimento de software, será que irá mudar?
- Quando eu for projetar alguma nova aplicação, terei que conhecer coisas novas? Quais?
- No que o processo de desenvolvimento tradicional mudará com a nuvem?
- Como posso evoluir para me tornar um desenvolvedor com expertises especializados para este novo momento?
- Dado que toda a estrutura física da TI (servidores, roteadores, bridges, etc) são agora abstraídos pelos provedores de nuvem, em relação ao profissional de infra, será que esta posição vai acabar?
- Será que apenas desenvolvedores serão requeridos neste novo mercado?
- Se não, como posso evoluir como profissional no sentido de me adaptar a este novo momento proporcionado pela nuvem?
Dessa maneira, gostaria de compartilhar com você um pouco da minha percepção sobre qual seria o caminho evolutivo natural para aquele profissional que quer se especializar em nuvem para atender de maneira efetiva as demandas desse “admirável mundo novo”. Claro que, como desenvolvedor que sou, serei capaz de dar mais insights interessantes para esta classe profissional, entretanto, muito destes são válidos e úteis também para aquele profissional de infra que está buscando entender seu papel neste novo momento.
Vale frisar que esta é uma opinião única e exclusiva do Fabrício, baseada na experiência que pude acumular ao longo dos anos de trabalho com nuvem. Isso não é, de maneira alguma, uma palavra oficial da Microsoft, ok?
Características da nuvem
Antes de falar especificamente sobre as novas competências, tecnologias, etc., gostaria de fazer um apanhado geral sobre “o que é a nuvem” em termos técnicos. Esse racional nos dará os insumos que precisamos para pensar nesse caminho de evolução para a nuvem.
Quando paramos para pensar sobre o processo de operacionalização de aplicações na nuvem, temos basicamente três perspectivas:
- Ligar máquinas virtuais (com o SO de sua escolha), colocá-las em suas respectivas redes virtuais, instalar os serviços requeridos e finalmente, colocar as aplicações em ambiente produtivo utilizando tais máquinas. Alternativamente, é possível mesclar o cenário de máquinas virtuais com serviços built-in de nuvem, como por exemplo, load balancers, bancos de dados, armazenamento, etc.
- Colocar aplicações e serviços para rodar 100% baseados em recursos built-in de nuvem (aka PaaS). Isso quer dizer que podemos sim fazer com que aplicações grandes e complexas consigam ter excelente performance, segurança e resiliência sem precisar ligar uma máquina virtual sequer. Particularmente, aposto minhas fichinhas neste modelo como sendo o futuro da computação em nuvem.
- A terceira perspectiva é a de poder conectar as duas primeiras a serviços de altíssimo nível (aka SaaS) dentro de sua plataforma de nuvem. Por exemplo, é perfeitamente possível que determinado grupo de máquinas virtuais rode aplicações que se conectam a bancos de dados como serviço e ao mesmo tempo, consumam informações provenientes de um serviço já pronto e nativo (ou não) da plataforma de nuvem (por exemplo, Office 365).
Com isso posto, podemos pensar de forma um pouco mais demorada sobre a natureza das aplicações. De forma geral, por razões óbvias (isto é, as aplicações provavelmente nasceram antes do conceito de nuvem pública), a maioria esmagadora das aplicações que encontramos no dia-a-dia não foram projetadas para “rodar” de maneira distribuída (principal vantagem da nuvem). Ainda nesta linha, preciso dizer: não se engane, uma aplicação web pode sim não ser uma aplicação de nuvem. Mas isso foi apenas uma observação contextualizada 😉 . Meu ponto aqui é: levar uma aplicação desta natureza para a nuvem lhe forçará, na maioria das vezes, a ter um conhecimento bem horizontal sobre a plataforma destino e certamente implicará em um grande esforço para “amarrar todas as pontas”. São características dessas aplicações:
- Statefull. De forma geral o processo de persistência dos dados sensíveis da aplicação são realizados in place, isto é, utilizando cookies, sessions, etc.
- Configurações de ambiente. Esta é outra característica comumente encontrada. No sentido de aproveitar ao máximo a estrutura proporcionada pelo ambiente, muitas aplicações utilizam configurações específicas do mesmo (seja do container web ou do próprio sistema operacional).
- Complementos instalados no servidor. Esta é outra característica comum de aplicações não projetadas para a nuvem. Para “aproveitar” o servidor da aplicação, alguns complementos necessários à aplicação acabam sendo instalados no mesmo.
- Forte amarração com file system do servidor. Por razões óbvias (por rodarem em ambientes que não disponibilizava um serviço específico para armazenamento) as aplicações usualmente gravam arquivos (uploads, arquivos gerados pela aplicação, etc.) no próprio file system do servidor.
Existem alguns outros aspectos, entretanto, estes são aqueles mais comumente encontrados. Por outro lado, existem sim muitas aplicações que já nasceram não necessariamente na nuvem, mas sim direcionadas ao conceito de comunicação entre módulos baseada em serviços web e além disso, que implementam patterns de computação distribuída. Evidentemente que aplicações com esta natureza tendem a ser mais facilmente movimentadas para a nuvem pública. São características dessas aplicações:
- Stateless. Dados sensíveis são gerenciados por estruturas paralelas ao core da aplicação. A aplicação não armazena dados localmente, apenas processa as requisições e passa o resultado adiante. Um recurso amplamente utilizado para persistir dados sensíveis em aplicações distribuídas é o cache (MemCached, Redis Cache, etc.).
- Aplicações rodam com configurações mínimas no ambiente de host. De maneira oposta as aplicações com arquiteturas não distribuídas, aplicações modernas (que já nasceram para a nuvem) tendem a ser mais leves e a rodarem com as configurações mínimas proporcionadas pelos serviços de host de plataforma como serviço.
- Complementos adicionais como serviços internos. Complementos adicionais de terceiros são necessários? Grupos de recursos (rodando sobre VMs tradicionais) plugáveis devem ser criados de maneira apartada e consumidos como um serviço interno pelos serviços da aplicação.
- Utilização de serviços PaaS ou SaaS built-in. De maneira geral, aplicações distribuídas consomem vários serviços da própria plataforma nuvem. Apenas para citar alguns: balanceadores de carga, bancos de dados (SQL, MySQL, Postgres e NoSQL), serviços de mensageria, serviços de host de aplicações web, serviços de CDN, serviços de cache, serviços de containers.
- Serveless. Um dos principais argumentos para se convencer determinada empresa a levar determinada aplicação existente ou ainda, projetar uma nova aplicação para a nuvem, é falar sobre redução de custos. Dessa maneira, metodologias que permitam a aplicação executar de maneira satisfatória consumindo o mínimo de recursos possível, são totalmente bem vindas. Neste contexto surge a estratégia de serveless. Neste modelo, basicamente não existe a criação de servidores. Cria-se uma estrutura de processamento e sob demanda, tarefas são enviados para processamento sobre estas estruturas de maneira transacional. O custo? Apenas o minuto de processamento.
- Micro(Macro)serviços. De forma geral, aplicações projetadas para a nuvem (e portanto, para funcionarem de maneira distribuída) são “quebradas” em pequenas (ou não tão pequenas assim) partes. O modelo mais comum de comunicação entre as partes é HTTP/HTTPS com serviços Restful, entretanto, existem outras formas de comunicação. Sob a perspectiva de nuvem, o principal benefício deste modelo é a possibilidade de se escalar as partes de maneira individualizada, resolvendo possíveis gargalos de performance de maneira mais eficiente.
Sobre verticais e skills
Baseado no racional realizado no tópico anterior, a partir daqui, gostaria de discutir um pouco sobre os skills exigidos (ao meu ver, pelo menos) dos profissionais que desejam ter sucesso nesse ambiente de cloud computing.
A grande beleza da nuvem, na minha opinião, está no fato de que ela agrupa diversos conceitos, tecnologias e metodologias. Além disso, me encanta o elevado nível de abstração implementado por ela, tanto em relação a quem a manipula, quanto em relação ao utiliza as aplicações nela hospedadas na ponta. Este encantamento vem do fato de que a nuvem simplifica uma ampla gama de necessidades das empresas de modo geral. Dessa maneira, quando falamos em plataforma de nuvem, qualquer uma que se diga moderna e robusta deverá ser capaz de fornecer recursos divididos nas seguintes grandes verticais:
- Aplicação. Recursos específicos para gerenciamento de aplicações de modo geral, desde hospedagem até monitoramento, tracking, etc.
- Data. Recursos específicos para gestão de dados de maneira geral. Estão incluídos aqui recursos de big data, elastic search, opções para bancos de dados relacionais e não relacionais, , dentre muitos outros.
- Computação. Hoje, sem a mínima dúvida, recursos de computação são os mais buscados nas plataformas de nuvem. De maneira geral, recursos de computação incluem: máquinas virtuais, containers, redes, balanceadores de carga, big computing, VPN, dentre outros.
- Inteligência. Vertical que agrupa serviços de inteligência. Dentre eles podemos mencionar machine learning, inteligência artificial, APIs especialistas, etc.
- IoT (Internet das Coisas). Recursos específicos de conectividade, ingestão e processamento de dados proveniente de qualquer dispositivo.
- Monitoramento e segurança. Vertical que agrupa serviços que possibilitam ao profissional monitorar e proteger de diferentes maneiras, aplicações e ambientes de nuvem.
Isso sem falar dos SDKs, complementos e demais ferramentas de apoio (portal, CLI, APIs, etc.) que são criados para facilitar o processo de gestão desse ambiente. Menciono isso para concluir que não é preciso fazer muito esforço para entender que uma plataforma de nuvem, com o tempo, tende a se tornar algo gigantesco e como consequência disso, em mesma escala, com o tempo, fica praticamente impossível para qualquer profissional, por melhor que ele seja, conhecer todos os meandros da mesma. Portanto, se você está no time dos apavorados profissionais (pelo fato de que você está vendo sua plataforma de nuvem preferida crescer rapidamente e você não aprende os recursos no mesmo ritmo) fique tranquilo, é assim mesmo.
Falando mais diretamente em termos de skills, gosto de dividir os mesmos em três grandes grupos:
- Dos profissionais que desenvolvem aplicações para a nuvem.
- Dos profissionais que fazem a gestão dos ambientes das aplicações.
- Dos profissionais que conseguem unir estes dois perfis.
E antes de prosseguir com mais detalhes sobre cada um desses perfis, gostaria de dizer que é super comum que um profissional consiga agrupar ambos e isso, é muito legal. Em geral, para se tornar um bom arquiteto de nuvem é fundamental que este processo de merge ocorra. Vou dar mais detalhes sobre isso em breve.
Dos profissionais que desenvolvem aplicações para a nuvem
O mercado ainda não nomeou formalmente este perfil profissional, dessa maneira, me reservo o direito de batizá-lo como “Cloud Developer“. Nada de muita novidade em relação ao desenvolvedor tradicional. Trata-se de um dev que, por conhecer bem sobre aplicações distribuídas e recursos de nuvem, consegue projetar aplicações ou módulos de aplicações já existentes que extraia o melhor da plataforma. Sob minha perspectiva, os skills adicionais (digo adicionais porque todos os skills importantes sob a perspectiva de desenvolvimento de software permanecem fundamentais) importantes aqui são:
- Sólido conhecimento sobre os conceitos fundamentais de nuvem (IaaS, PaaS, SaaS, replicação, escalabilidade, resiliência, etc.).
- Sólido conhecimento sobre os principais recursos da plataforma de nuvem que se irá utilizar.
- Sólido conhecimento sobre armazenamento (bancos de dados relacionais ou não, arquivos estáticos, etc.).
- Sólido conhecimento sobre redes de computadores (incluindo modelos e protocolos de comunicação).
- Sólido conhecimento sobre comunicação através da internet (HTTP, CORS, REST, JSON, microserviços, mensageria, dentre outros).
- Sólido conhecimento sobre padrões de arquitetura para aplicações distribuídas (service gateway, service locator, remote facade, etc.). Isso é fundamental. Lembre-se, a arquitetura que você está propondo não pode ter gerar erros ou downtime.
- São desejáveis também conhecimentos em tecnologias open source (Linux, Docker, etc.).
- Sólido conhecimento em pelo menos uma linguagem de programação e frameworks adjacentes.
- Conhecimento avançado sobre segurança de aplicações.
- Conhecimentos avançados sobre modelos de criptografia de informações.
Neste processo de transição para a nuvem, a experiência tem mostrado que desenvolvedores têm conseguido se adaptar mais rapidamente. Evidentemente que isso não é uma regra mas sim, um insight. E faz sentido notarmos este comportamento. Isso porque, como as plataformas de nuvem removem toda a complexidade da infraestrutura e comoditiza os serviços, para o profissional que possui conhecimentos mais gerais de infraestrutura (e desenvolvedores geralmente os tem) não será tão complexo criar e manter ambientes na nuvem. Além é claro, da naturalidade com códigos e arquitetura das aplicações.
Existem também duas habilidades importantes (mas não obrigatórias) para este perfil profissional: algum conhecimento sobre o processo de DevOps; e a vivência com command line interfaces (CLI) e Bash.
Dos profissionais que fazem a gestão dos ambientes das aplicações
Este é o caminho natural do profissional de infraestrutura para a nuvem. Todo conhecimento acumulado ao longo de anos trabalhando com estruturas locais de datacenters são extremamente úteis na nuvem. A grande diferença aqui está no fato de que todo o processo agora é realizado sob demanda, utilizando o portal web, CLI, APIs ou qualquer outra forma de gestão existente. Pelo que tenho observado, além dos conhecimentos já acumulados de infraestrutura, espera-se deste perfil profissional os seguintes skills:
- Conhecimentos avançados sobre os conceitos de nuvem (IaaS, PaaS, SaaS, replicação, escalabilidade, resiliência, etc.).
- Sólido conhecimento sobre os principais recursos da plataforma de nuvem que se irá utilizar.
- Conhecimentos avançados de tecnologias open source (Linux, Docker, Chef, Puppet, etc.).
- Conhecimentos avançados sobre estratégias de backup, site recovery e replicação de serviços.
- Familiaridade com o conceito de containers e orquestradores (Kubernetes, DC/OS, Swarm, etc.).
- Conhecimentos avançados sobre monitoração de ambientes e redes.
- Conhecimentos avançados sobre estratégias e operação de storages em nuvem pública.
- Conhecimentos avançados sobre segurança de ambientes (em Linux e Windows).
Um aspecto interessante aqui é: existe uma percepção generalizada de que a nuvem irá “matar” o profissional de infraestrutura. Particularmente não acredito nisso. É verdade que, como mencionei anteriormente, houve uma aproximação mais rápida e natural dos desenvolvedores para este mundo de infraestrutura, entretanto, existem aspectos avançados de segurança e configuração de ambientes que apenas profissionais “do ramo” conseguem ajudar. Também é verdade que nesse mundo de “Infrastructure as Code (IaC)” onde toda a infraestrutura é entregue para a plataforma de nuvem de maneira automatizada por código, é super importante para este profissional estar mais próximo às linhas de código.
Dos profissionais que conseguem unir estes dois perfis
Algo que tenho reparado (e sou um exemplo desta afirmação) é que, com o tempo, mesmo sendo um desenvolvedor por natureza, a experiência no dia-a-dia com a nuvem faz com que o profissional vá agregando novos skills, skills esses que talvez não seriam exigidos em outra circunstância e aí é claro, ao adicionar novos skills, o profissional acaba por se tornar a cada dia, mais completo.
Sob minha perspectiva, apenas após alguns anos no trabalho com diferentes tipos e tamanhos de projetos sobre uma ou mais plataformas de nuvem, é possível dizer que se é um “Cloud Architect”. Isso porque apenas após este “tempo” é possível entender modelos que funcionam ou não, pequenos “truques” das plataformas, melhores práticas dentro de cada ambiente, etc.
O que preciso estudar para me tornar um profissional de nuvem?
Não existe muito segredo aqui. Após todos os temas levantados anteriormente, fica fácil evidenciar os conceitos e tecnologias com as quais o profissional deve estar familiarizado para conseguir trabalhar de maneira eficiente com a nuvem. Dessa forma, as dicas a seguir estão alinhadas com os racionais realizados anteriormente.
Outra observação importante é: as dicas a seguir desconsideram os conhecimentos que já são inerentes a cada perfil profissional. Vou me ater exatamente ao caminho de aprendizado no que tange a nuvem. A Figura 1 resume o processo de evolução do profissional para a nuvem.
Figura 1. O mapa de evolução para a nuvem
1. Estude conceitos básicos de nuvem
Claro, tudo começa aqui. Não há como ser um bom profissional de nuvem sem conhecer as colunas de sustentação de modelo. A pergunta que você pode estar se fazendo aqui é: quais são estes conceitos fundamentais? Sob minha perspectiva são:
- Características de uma plataforma de nuvem
- Self-service computing. Recursos podem ser criados e gerenciados por qualquer usuário devidamente autorizado.
- Broad network service. Uma gigante rede de computadores que permite o acesso a qualquer tipo de recurso por diferentes dispositivos.
- Resource Pooling. A maneira como os recursos computacionais (storage, memória, processamento, placas de rede, etc.) são organizados para atender as demandas dos clientes de acordo com as demandas.
- Elasticity. A capacidade que uma dada plataforma de computação em nuvem tem de se auto expandir para cima ou para baixo de acordo com as demandas das aplicações.
- Measurement. A capacidade que a plataforma de nuvem possui para medir os recursos consumidos.
- Tipos de nuvem
- Private cloud. Quando determinada empresa ou instituição implementa sua própria nuvem, seja ela com uma locação in place ou através de uma terceirização de datacenter.
- Public cloud. Serviços computacionais oferecidos no modelo de locação. Diferentemente de um colocation ou aluguel de infraestrutura, a nuvem pública oferece acesso a serviços no modelo de commodities.
- Hybrid cloud. A mescla dos dois ambientes acima em um um só.
- Modelos de serviços
- Infrastructure as a Service (IaaS). São disponibilizados ao consumidor o acesso a recursos como máquinas virtuais (VMs), storage (armazenamento de dados), banda de rede, memória para processamento e outros.
- Platform as a Service (PaaS). Fornece ao consumidor serviços de alto nível, ferramentas, bibliotecas e middleware para desenvolver aplicações na nuvem.
- Software as a Service (SaaS). É disponibilizada ao consumidor a capacidade de acessar e executar aplicações na nuvem utilizando uma interface como, por exemplo, um web-browser. Não há controle, por parte do consumidor, da infraestrutura que suporta as aplicações.
Materiais para estudo sobre fundamentos de computação em nuvem:
Livro: Cloud Computing – From Beginning to End
Autor: Ray J. Rafaels
Link: https://www.goodreads.com/book/show/25940441-cloud-computing
Vídeo: Fundamentos de Computação em Nuvem
Autor: Fabio Hara e Osvaldo Daibert
Link: https://mva.microsoft.com/pt-br/training-courses/fundamentos-de-computao-em-nuvem-8890?l=Wa2AL3A3_9604984382
Vídeo: The Business of Cloud Computing
Autor: Chris Auld
Link: https://channel9.msdn.com/events/TechEd/2010/COS200
Video: Cloud Computing: is it right for you?
Autor: John Craddock
Link: https://channel9.msdn.com/events/TechEd/2010/COS321
Artigo: What is cloud computing?
Autor: whatiscloud.com
Link: http://whatiscloud.com/basic_concepts_and_terminology/index
Artigo: Cloud Computing Fundamentals
Autor: C. Fehling
Link: http://www.springer.com/cda/content/document/cda_downloaddocument/9783709115671-c2.pdf?SGWID=0-0-45-1443612-p174949176
2. A escolha da plataforma de nuvem
Evidentemente, todos os conceitos precisam aterrisar em algo prático. Em nosso caso, esse “algo prático” é a plataforma de nuvem que se irá trabalhar. Como você deve saber, existem basicamente quatro grandes plataformas de nuvem no mercado hoje. São elas:
- Microsoft Azure. Plataforma criada e mantida pela Microsoft.
- Amazon Web Services. Plataforma de nuvem da Amazon.
- Google Cloud. Plataforma de nuvem da Google.
- Softlayer / Blue Mix. Plataforma de nuvem da IBM.
Essas são as principais mas não as únicas. Existem outras plataformas menores mas que estão presentes no mercado e gerando considerável incômodo a estas maiores. Casos da Heroku, Oracle, Rackspace e outras.
No contexto deste post, vou focar minhas sugestões e análises no Microsoft Azure. As razões para isso são muitas, entretanto, gostaria de destacar as principais aqui.
Moderna. Azure é hoje, sem a mínima dúvida, a plataforma de computação em nuvem mais moderna do mercado. O que justifica esta afirmação é a ampla gama de recursos de alto nível em todas as três verticais anunciados a cada 1 ou 2 meses. Azure Container Services, Web Apps, SQL Azure, DocumentDB e Event Hub são apenas alguns exemplos. Isso sem falar nos pesados investimentos em datacenters ao redor do mundo (Azure sozinho tem mais capacidade computacional que Google, Amazon e IBM somados).
Poderosos recursos de infraestrutura. Sim, esta é uma realidade no Azure hoje. Há alguns anos, AWS lovers podiam dizer que eles estavam “anos” na frente do Azure. Hoje não podem mais. Basta usar os recursos de IaaS do Azure no dia-a-dia para comprovar esta afirmação. Além disso, o Gartner é vocal nesta afirmação também, como é possível visualizar na Figura 2.
Figura 2. Quadrante mágico do Gartner em relação a IaaS
Nuvem inteligente. Este é outro aspecto pelo qual é muito legal usar o Azure. Existe dentro da plataforma uma ampla gama de serviços de inteligência. Apenas para destacar alguns: Azure Machine Learning, Recommendations API, Vision API, Emotions API, Text-to-speech, Speech-to-text, Face Recognition, dentre muitos outros. Tudo disponível a um simples consumo de API Rest.
Híbrida. Azure é a plataforma de nuvem que mais se preocupa em criar um eco-sistema funcional para conectar nuvens privadas e a nuvem pública. Aqui a Microsoft leva certa vantagem em relação a seus concorrentes. Isso porque é a única que consegue colocar soluções de ponta a ponta, ou seja, desde um client qualquer na máquina desktop que utiliza Windows até um poderoso recurso de sync em um servidor on-premisses ou na nuvem pública.
Existes várias outras razões que eu poderia destacar aqui para mostrar porque o Azure é uma excelente escolha em termos de plataforma de nuvem, entretanto, acredito que estas quatro iniciais são suficientes para dar esta ideia. Além disso, vou deixar que você descubra mais insights por conta própria utilizando a plataforma e verificando os materiais de estudo disponibilizados a seguir.
Materiais de estudo sobre Azure:
Livro: Azure – Coloque suas aplicações e serviços no cloud
Autor: Tiago Custódio
Link: https://www.casadocodigo.com.br/products/livro-windows-azure
Livro: Microsoft Azure Essentials – Fundamentals of Azure
Autor: Michael S. Collier and Robin E. Shahan
Link: https://mva.microsoft.com/ebooks
Livro: Microsoft Azure Essentials – Web Apps for Developers
Autor: Rick Rainey
Link: https://mva.microsoft.com/ebooks
Video: Microsoft Azure Fundamentals
Autor: MVA
Link: https://mva.microsoft.com/en-US/training-courses/microsoft-azure-fundamentals-8391?l=BfBcAzIz_504984382
3 e 4. Patterns + Prática
Você já se familiarizou com os conceitos de nuvem, assim como já se familiarizou com determinada plataforma de nuvem. Agora, é o momento de falarmos falarmos um pouco sobre padrões de arquitetura. Muito embora eu realmente acredite que apenas a prática em projetos é o que dará os insights necessários para definir uma arquitetura robusta, conhecer os patterns de nuvem é fundamental para que uma implementação que faça sentido possa ser feita.
Aqui o ponto é: estude os patterns, entenda os benefícios e efeitos colaterais de cada um deles. Uma vez feito isso, já que você escolheu o Azure como plataforma de operação, você deve praticar. Busque cenários o mais próximos da realidade possível e então tente reproduzir estes cenários no Azure. Depois, utilizando alguma ferramenta de testes, tente confirmar o funcionamento dos recursos que você realizou deploy. Não existe melhor forma de aprender do que praticando, não é mesmo?
Alguns bons materiais para estudo de cloud patterns:
Artigo: Cloud Design Patterns
Autor: Microsoft
Link: https://docs.microsoft.com/en-us/azure/architecture/patterns/
Artigo: Cloud Patterns
Autor: cloudpatterns.org
Link: http://www.cloudpatterns.org/
Poster: Azure Design Patterns (poster)
Autor: Microsoft
Link: https://azure.microsoft.com/en-us/resources/infographics/cloud-design-patterns/
Website: Azure Architecture Center
Autor: Microsoft
Link: https://docs.microsoft.com/en-us/azure/architecture/
Mercado
Se existe uma afirmação que é verdadeira é: após todo este processo descrito anteriormente, você talvez não será um expert em nuvem, mas o mercado com certeza estará pronto para absorve-lo. Basta que você tenha em mente uma boa estratégia para mostrar suas novas competências. Dessa maneira, para fechar o ciclo deste texto, gostaria de discutir um pouco sobre um dos métodos mais eficazes (sob minha perspectiva) para apresentar seus novos conhecimentos para o mercado – o compartilhamento espontâneo de conteúdos.
Como você já deve estar imaginando a esta altura, me refiro ao processo compartilhar seus aprendizados com outras pessoas através de blog, redes sociais, vídeos, etc. de maneira totalmente espontânea, isto é, sem esperar qualquer retorno financeiro direto em troca desta atividade. Este foi um caminho que escolhi há alguns anos atrás (e que mantenho até hoje) e do qual não me arrependo. Muito pelo contrário, sempre estou buscando novas forma de contribuir. Montou uma arquitetura que ficou bacana no Azure? Faça um blog post. Descobriu uma característica super bacana de determinado recurso? Porque não gravar um vídeo sobre?
Só coisas boas vieram como consequência deste trabalho. A melhor delas foi/é, sem dúvida, os vários emails e comentários que recebi (e ainda recebo) de várias pessoas de todo o Brasil sobre como os conteúdos que compartilhei/compartilho os ajudaram na evolução de suas carreiras profissionais, etc. Outra consequência natural deste trabalho, foi o privilégio de ser premiado pela Microsoft como “Most Valuable Professional” ou simplesmente, MVP. Primeiro fui reconhecido na categoria ASP.NET e depois, Azure. Isso sem falar na projeção que você como profissional recebe pela amplificação dos conteúdos produzidos por você. Legal não?
Para saber mais sobre o programa MVP, clique aqui.
Enfim, é isso. Espero que este conteúdo possa ajudá-lo no seu direcionamento de carreira e por fa
Facebook
Twitter
Instagram
LinkedIn
RSS