| (16 revisões intermediárias por 4 usuários não estão sendo mostradas) | |||
| Linha 1: | Linha 1: | ||
= Evolução na profissão = | = Evolução na profissão = | ||
* Como foi a evolução (acadêmica e profissional) até chegar na sua posição atual? | * Como foi a evolução (acadêmica e profissional) até chegar na sua posição atual? | ||
"Do ponto de vista da universidade é um processo e do ponto de vista pessoal um plano. Sempre dediquei muita energia ao trabalho e sabia que tinha de ter um | |||
determinado rendimento (ao longo de décadas) para chegar ao topo da carreira. Eu diria que me diverti muito e também trabalhei e trabalho muito. O atingimento foi uma | |||
consequência." | |||
* Quais foram as principais formações (certificação, especialização, curso, etc) extra-curriculares? | * Quais foram as principais formações (certificação, especialização, curso, etc) extra-curriculares? | ||
-->''Mestrado'' em Engenharia de Elétrica pela Escola Politécnica da Universidade de São Paulo (1990) na área de Arquitetura de Redes de Computadores. | |||
-->''Doutorado'' em Engenharia Elétrica pela Escola Politécnica da Universidade de São Paulo, POLI/USP, Brasil e o Centre National de la Recherche Scientifique (CNRS-France 1995) na área de Sistemas Distribuídos. | |||
-->''Pós-Doutorando'' pela University of Bristol, BRISTOL, Inglaterra. | |||
<br> | <br> | ||
= Descrição da atividade atual = | = Descrição da atividade atual = | ||
* O que efetivamente faz o profissional na sua condição? | * O que efetivamente faz o profissional na sua condição? | ||
"Bom, eu tenho uma rotina de leituras, de discussões de projetos e de pesquisas e de aulas. Além disso, preciso elaborar novos projetos à | |||
medida que os projetos correntes estão a terminar. Os projetos de teses são algo cotidiano e provavelmente ai está uma das coisas mais | |||
interessantes. No começo vc ensina o aluno, após um tempo ele te ensina e a gente fica amigo. Tenho contato com pelo menos 50 (ex) | |||
estudantes em todo o mundo." | |||
* O que entrega como resultado? | * O que entrega como resultado? | ||
"Eu diria que o meu principal resultado, a minha principal entrega, são alunos formados (graduação, mestrado, doutorado). | |||
Como consequência dos projetos de pesquisa, entrego conhecimento e ativos (como propriedade intelectual e patentes)." | |||
<br> | <br> | ||
= Requisitos mínimos para exercer a profissão = | = Requisitos mínimos para exercer a profissão = | ||
* Cite alguns soft skills necessários para quem tem intenção de seguir essa carreira? | * Cite alguns soft skills necessários para quem tem intenção de seguir essa carreira? | ||
-Empreendedorismo. | |||
-Estar aberto a mudanças. | |||
-Auto-aperfeiçoamento. | |||
-Autotranscendência. | |||
-"Sede por conhecimento". | |||
* Sugira alguns hard skills. | * Sugira alguns hard skills. | ||
'''- Strong Material Background''' | |||
''* Theoretical (Teórico)'' | |||
• Computing Theory (Teoria Computacional) | |||
• Algorithm Analysis (Análise de Algoritmo) | |||
• Formal Languages and Automata (Linguagens Formais e Autômatos) | |||
• Statistics (Estatística) | |||
''* Technological (Tecnológico)'' | |||
• Computer Architecture and Organization (Arquitetura e Organização de Computadores) | |||
• Operating Systems (Sistemas Operacionais) | |||
• Computer Networks (Rede de Computadores) | |||
• Database systems (Sistemas de Banco de Dados) | |||
• Computer/Networking Programming (Programação de Redes e Computadores) | |||
'''- Project Management (Gestão de Projetos)''' | |||
<br> | <br> | ||
= Ferramentas usadas no dia-a-dia = | = Ferramentas usadas no dia-a-dia = | ||
* Cite algumas ferramentas, tecnologias ou metodologias das quais depende para sucesso nas atividades. | * Cite algumas ferramentas, tecnologias ou metodologias das quais depende para sucesso nas atividades. | ||
'''- Strong Programming Skill (non-exhaustive list)''' | |||
''– Imperative oriented'' | |||
• Assembly | |||
• C/C++ | |||
• RUST | |||
• Java frameworks | |||
• Python, PhP, Cython aso | |||
''– Functional oriented'' | |||
• LISP | |||
• Haskell | |||
• Scheme | |||
• ML | |||
<br> | <br> | ||
| Linha 24: | Linha 70: | ||
= Ética profissional = | = Ética profissional = | ||
* Pode dar algum exemplo já vivido por você ou por alguma outra pessoa sobre aspectos éticos na profissão, seja positivo ou negativo? | * Pode dar algum exemplo já vivido por você ou por alguma outra pessoa sobre aspectos éticos na profissão, seja positivo ou negativo? | ||
"Tem vários casos desde não aceitar o troco errado (quando vc receberia mais troco do que o devido), ser intransigente e respeitar as regras de transito, em termos | |||
gerais.... Tem um bem interessante, de um colega que trabalhava para o Gartner Group, que fazia um estudo na América Latina e percebeu que aquele trabalho acabaria | |||
com a posição dele. Assim mesmo, terminou o projeto e meses depois estava desempregado. Tem o caso de plagio de pesquisa que foi detectado no meio do nosso | |||
grupo.... foi muito frustrante perceber que alguém que trabalha com vc usa desse expediente..... Felizmente detectamos e corrigimos a tempo, acredito que foi uma | |||
tremenda experiência para a pessoa." | |||
<br> | <br> | ||
= Upload da apresentação = | = Upload da apresentação = | ||
* | * Link da palestra no youtube: https://www.youtube.com/watch?v=nPKWTNz5IfA. | ||
* Arquivo de slides, feitos pelo palestrante Frosi: [[Arquivo:2021_-_GBC021_-_Profissao_C&I.pdf]] | |||
<br> | <br> | ||
= Dúvidas = | = Dúvidas = | ||
'''01) Pode nos informar sobre alguma ferramenta muito utilizada para edição de artigos?''' | |||
Para edição de artigo uso o Latex (No Windows - TexStudio; Linux - TexMaker; ou na nuvem OverLeaf - recomendo este ultimo) e o gerenciador de referências | |||
bibliográficas Mendeley (https://www.mendeley.com) . | |||
'''02) O que é Qualis? Como funciona o processo de avaliação de artigos nesse sistema?''' | |||
Qualis é a sistemática da CAPES para avaliar os veículos (revistas e congressos) para publicação de trabalhos científicos. Basicamente, a CAPES utiliza o fator de | |||
impacto (IF) do veiculo e, quanto maior o IF, maior o qualis. | |||
'''03) Quais os requisitos que um professor doutor cobra dos alunos para entrar num IC ou em algum projeto?''' | |||
Isto varia bastante, eu particularmente gosto de fazer uma conversa na qual avalio os valores do aluno, a capacidade de diálogo, iniciativa e comprometimento. O | |||
desempenho vai ser cobrado pelo edital, uma vez que alunos com rendimento baixo têm pouca chance. Por outro lado, há IC voluntárias que dependem somente da | |||
vontade do aluno e da combinação do professor. Estas ICs têm certificados que valem tanto quanto daquelas com bolsas. E tem uma coisa muito interessante. Se o | |||
aluno for para um universidade americana, eles valorizam muito trabalhos voluntários. Eu não faço distinção de ICs, todos têm de ter os mesmos compromissos. | |||
Participação em projeto, no meu caso, valem as mesmas regras da IC voluntária, exceto que em geral os projetos oferecem bolsas. | |||
'''04) Atualmente, está realizando alguma pesquisa? Se sim, qual e como tem funcionado?''' | |||
Estou envolvido em diversos projetos de pesquisa e vou mencionar as direções que tenho interesse, que são basicamente: 1) Ontologias; 2) Internet do Futuro; 3) | |||
Redes de telecom 5G e posteriores; 4) Hardware de nova geração para suporte a futuras aplicações; 5) Computação Autônoma. Ao todo são 12 projetos. | |||
'''05) Como equilibrar os 3 pilares de pesquisa extensão e ensino e não acabar focando somente em um aspecto dos 3?''' | |||
Vc já deu metade da resposta: a palavra é equilíbrio. Eu costumo dizer que a vida é uma balança de muitos pratos e a sabedoria está em você manter o equilíbrio desses vários pratos. Por exemplo, diversão é importante - cinema, musica etc - se você não se divertir, a vida não vale a pena - contudo, se você só se divertir, vai mal. Minha sugestão vai na linha do que falei na palestra - PLANEJAMENTO. Faça um plano, equilibre tudo e siga o plano. | |||
'''06) Quantas horas você trabalha por semana?''' | |||
''Chiiiii'', eu recebo por 40 horas, mas pelos meus últimos cálculos, trabalho pelo 56 horas por semana. A vida de pesquisador é bem estranha, às vezes, você não vê o | |||
tempo passar. Quando você acha algo legal, o tempo voa. É comum, eu trabalhar 12 horas por dia. Todavia, tenho minhas diversões, com a bike (no momento tenho um | |||
projeto muito bacana), musica, fotografia..... Eu tenho a sorte de precisar dormir pouco.... isso me ajuda bastante. | |||
'''07) Como é o mercado de trabalho nessa área?''' | |||
Intenso, altamente promissor. Eu digo que se você quer imigrar, a maneira mais fácil é entrar numa área de pesquisa e destruir... Vc vai ter vaga no mundo todo, no | |||
Brasil nem se fala. Eu recebo emails quase todos os dias de alguém pedindo indicações de estudantes...... Há muitas empresas que estão fazendo academic alliance | |||
conosco por conta de ter acesso a vocês. | |||
'''08) Eu pediria para ele delinear o trabalho de pesquisa dele e o que fez ele decidir por essa linha de pesquisa.''' | |||
Acredito que a primeira parte da pergunta, a resposta está na pergunta 04 ... Eu sempre gostei de comunicação e em 1981 eu estava nos US e li um artigo do PARC | |||
(Palo Alto Research Center) da Xerox sobre uma rede de velocidade altíssima.... Fui fazer uma visita e voltei entusiasmado. Deste modo, minha paixão por arquitetura | |||
de computadores, sistemas operacionais e redes de computadores me levaram para a área que atuo. | |||
'''09) Quando está na graduação, você teve algum momento de realização que a área da Pesquisa era a que queria seguir? Alguma experiência na graduação que te fez interessar pela Pesquisa?''' | |||
Durante a graduação eu não fiz um projeto de IC canônico, trabalhei em vários projetos (voluntariamente), mas na época nao me interessei pela pesquisa. Fui | |||
para a Ericsson (um empresa gigante de equipamentos) e lá comecei a sentir falta de alguns conceitos..... foi quando comecei a olhar o mestrado. Se tivesse a | |||
maturidade que tenho hoje, teria começado o mestrado imediatamente. As áreas mencionadas são sempre as que trazem maiores revoluções, como acontece neste | |||
momento. | |||
'''10) Como a área de pesquisa é utilizada no mercado de trabalho?''' | |||
De uma década para cá, as experiências e títulos acadêmicos (que começou com MBAs, mesmo os mais simples) se consolidou e é um diferencial competitivo. Hoje, | |||
mestrado e doutorado começa a ser muito comum na indústria, principalmente nos US e na Europa. Na Ásia nem se fala, Japão incluído ..... Tem um aluno que está | |||
terminando o PhD nos US e já tem uma vaga numa indústria de sw para engenharia. | |||
'''11) Qual área o Sr. atua? Seu foco se mantém em qual projeto?''' | |||
Minhas pesquisas se encontram em 3 áreas, que são as áreas que atuo: Sistemas Operacionais; Arquitetura de Computadores e Redes de Computadores. Tenho | |||
alguns interesses mais específicos, sendo ICN (Information Centric Networking) uma das áreas mais promissoras no momento. | |||
'''12) Gostaria de saber quais devem ser os focos para alguém que no futuro deseja atuar na área da Computação Quântica.''' | |||
Essa é sem duvida a área mais promissora para os próximos 10 anos. Conheço pelo menos 20 institutos no Reino Unido, US, Alemanha, Holanda... para citar alguns | |||
países, que contratariam imediatamente uma pessoa dessa área. Primeiro, vc tem de ter uma solida formação em computação (principalmente a parte teórica), em física | |||
e matemática. Contudo, conheço vários cientistas que são ótimos em computação e matemática e estão evoluindo em computação quântica. Resumindo, se você for bom em computação e matemática, então vc tem todas as chances de caminhar em computação quântica. Para finalizar, a principal característica de pesquisadores nesta área é a curiosidade... | |||
'''13) Quais são os pilares, estudos de grande importância? Essa é uma área que se mostra uma boa aposta para quem mora no Brasil?''' | |||
Se você tiver uma solida formação em Computação e vivenciar o máximo de projetos que puder durante a graduação, te garanto que você será querido em TODAS as | |||
empresas do Brasil.... e não só .... | |||
'''14) Há alguma diferença entre realizar pesquisa no Brasil e realizar pesquisa em outros lugares do mundo?''' | |||
Essencialmente não!!! A principal ferramenta é seu cérebro. Todavia, principalmente em instituições do primeiro mundo, você poderá contar com um apoio instrumental e humano que raramente encontramos no Brasil. Eu fiz minha carreira no Brasil e nunca senti dificuldade em nenhum dos lugares que passei. | |||
'''15) Qual visão dele como pesquisador sobre o mundo do empreendedorismo no ramo de TI e fora dele?''' | |||
Empreendedorismo é a palavra chave para o sucesso de qualquer um. Até empresas estão buscando colaboradores que sejam empreendedores. Isto é uma coisa de | |||
pratica e você deve começar na graduação. Crie seu projeto, pesquise, leia tudo sobre o assunto e você verá que para tudo há um espaço no mercado. O livro 'A | |||
Estratégia do Oceano Azul', vale muito a pena ler ate o capitulo 6. | |||
'''16) Qual foi a maior dificuldade que você encontrou até agora durante a sua carreira?''' | |||
Sem sombra de duvida foi exatamente quando me formei. Era inicio dos anos 80 e havia uma enorme crise, talvez até maior do que a atual. Meu pai faleceu 9 meses | |||
depois que eu formei e tive de cuidar de minha mãe e irmãos que eram mais novos. Estava recém contratado, com ameaças de toda sorte, e enormes problemas | |||
familiares para resolver. Ao longo da carreira, tive os problemas normais de toda empresa, que são: algumas pessoas em níveis superiores sem valores ou psicopatas. | |||
Minha decisão de voltar para a universidade ocorreu quando tive de demitir quase uma centena de pessoas pelo simples fato de que a empresa queria lucrar mais. Isto | |||
foi muito complicado, fiquei muito tempo com isto na mente. | |||
'''17) Qual o maior desafio que o professor Pedro já enfrentou na carreira de pesquisador?''' | |||
Penso que foi minha mudança para a UFU. Eu já tinha minha carreira na EPUSP, mas a busca de uma cidade com melhor qualidade de vida para minha família me | |||
levou a deixar SP. Quando cheguei na FACOM, não havia pós graduação. O projeto da nossa pós começou comigo e o Prof. Joao Nunes. É muito difícil vencer a | |||
gravidade (G), levantar o programa do zero, foi sem dúvida um desafio. Outro desafio é fazer projetos de pesquisa com a indústria nacional. | |||
'''18) Como o senhor vê o cenário desenvolvimento de tecnologias no Brasil?''' | |||
O Brasil é um pais que tem um desenvolvimento agrário enorme e nesse campo (perdão do trocadilho) há muito o que se desenvolver em termos de diversas | |||
tecnologias - TI, mecânica, mobile..... Em outras áreas, o Brasil praticamente não desenvolve tecnologia... Minhas esperança é a indústria de Sw... espero que alguém | |||
dessa turma crie uma indústria de software. Por incrível que pareça... o Brasil tem muitas empresas de serviços de TI, mas tem pouquíssimas empresas de software. E | |||
isto é uma grande possibilidade. | |||
'''19) O ambiente de pesquisa permite ao pesquisador o desenvolvimento de novas ideias com total liberdade?''' | |||
Isto talvez seja o principal atrativo da carreira. Você é livre!!!! Se eu quiser mudar de área agora, posso fazê-lo. Logicamente, vai um tempo até que tenha algo | |||
apresentável, mas nada me impede de mudar. A própria essência da pesquisa é a mudança.... Você muda a cada instante, seu conhecimento aumenta a cada instante. | |||
'''20) Qual é o limite para o investimento em pesquisas inovadoras em um ambiente controlado?''' | |||
Talvez eu não tenha capturado o espirito da pergunta. Mas se ambiente controlado for empresas, há muito incentivo do governo para que empresas desenvolvam | |||
inovações... O governo renuncia parte de impostos para que empresas invistam em capacitação de pessoas e inovação... Por isto que você vê algumas universidades de grupos justamente para usufruir dessas renúncias. Aqui em Uberlândia tem a Universidade Algar, Universidade Martins do Varejo entre outras. Em geral, eu não tenho tanto domínio da parte fiscal, é algo em torno de 3 a 5% do faturamento da empresa. Algumas, são mesmo obrigadas. | |||
'''21) O que te fez preferir a área acadêmica em vez da privada?''' | |||
Parte está na resposta da pergunta 16. Acredito que a possibilidade de desenvolver profissionais e pesquisas com muita liberdade foi sem sombra de dúvida o motivo | |||
da minha decisão. | |||
<br> | <br> | ||
= Tecnologia: CI/CD = | = Tecnologia: CI/CD = | ||
* | * Conceitos Primordiais: | ||
* | |||
Antes de tratar do CI/CD em si, é necessário tratar de conceitos primordiais, relacionados a um repositório, tais como ''"branch"'', ''"pull request"'', ''"build"'', ''"deploy"'', etc. | |||
É comum a existência de projetos em que as funções e responsabilidades são divididos entre os programadores. É aqui que temos as branchs, que, ao final do | |||
processo, são unificadas através de processos chamados “merge” e “pull-request”. | |||
Uma branch, cuja tradução literal é “Ramo”, funciona como tal, se fizermos um paralelo do repositório para com uma árvore. Assim, temos a branch principal (master), | |||
que é análoga ao tronco, ligada à vários outros ramos (outras branchs). | |||
O Pull Request entra no repositório original, ou em uma branch do mesmo, para puxar (pull) atualizações do repositório fork ou de outras branchs. Além disso, é muito | |||
utilizado como ferramenta de revisão, por fazer essa “ponte” com o conteúdo “oficial” do código. | |||
Um commit é responsável por adicionar as alterações mais recentes do código na branch selecionada. Uma vez que as alterações foram feitas e estão apenas em | |||
máquinas locais, o commit é responsável por comparar as diferenças entre o código da branch e o local, identificando suas diferenças e fazendo o upload das mesmas. | |||
O versionamento entra no momento em que as partes já feitas são compartilhadas para que assim qualquer pessoa com acesso ao projeto possa continuar do ponto | |||
onde ficou parada, através de um fork do repositório original, adicionando funcionalidades as que já estavam no ponto de parada. | |||
Build de um sistema é o seu último estágio de desenvolvimento, antes da publicação. Consiste no software empacotado, pronto para a instalação. Assim como com o | |||
deploy, existem várias ferramentas que facilitam o processo de build, elas são chamadas “gerenciadores de build”. | |||
Para “construir” um build é necessário ter realizado várias tarefas, dentre elas compilação, implantação, integração com o banco de dados, testes unitários, | |||
encapsulamento do código, análise estatística, coleta de métricas, análise dinâmica e documentação. | |||
Na prática o Deploy é o ato de disponibilizar um sistema para uso, seja no ambiente de desenvolvimento para testes ou produção. Existem várias formas de realizar o | |||
deploy de um sistema, práticas essas que foram evoluindo com o passar do tempo. Dentre elas, vale ressaltar o deploy manual e o automatizado (completamente ou | |||
parcialmente). Além disso, existem estratégias e ferramentas que auxiliam o deploy, como por exemplo o Jenkins (uma famosa ferramenta de deploy automático). | |||
* Sobre o CI/CD: | |||
CI/CD é ''traduzido'' como continuous integration/continuous delivery. Consiste em um método para entregar as aplicações feitas com certa frequência aos clientes. Dito | |||
isso, a automação além de relevante, é aplicada nas etapas de desenvolvimento dessas aplicações. Os principais conceitos desse método são: integração, entrega e | |||
implantação contínuas. | |||
Utilizar essa tecnologia permite solucionar problemas que a integração de novos trechos de código poderiam causar às equipes de desenvolvimento caso ela não | |||
estivesse sendo usada. | |||
Continuous Integration (CI) é, resumidamente, um ciclo de automação para desenvolvedores. Este possibilita, de forma simultânea, a alteração do código de uma | |||
aplicação, onde essas alterações são testadas e consolidadas regularmente em um repositório compartilhado (CD) da equipe desenvolvedora. O Continuous Delivery | |||
(CD), por sua vez, torna automática a validação do código da aplicação nesse repositório (como dito anteriormente). A entrega contínua garante uma base de códigos | |||
que sempre estará pronta para implantação em um ambiente de produção, a realização de testes atua nessa parte também. Os principais pilares da entrega contínua é | |||
o ''aproveitamento''/aperfeiçoamento do código, visto o feedback frequente gerado pelo resultado dos testes, a automatização do processo, demandando menos tempo | |||
de uma equipe nessa parte da criação. Rapidez e facilidade é o resultado final desse processo. | |||
Pipeline é, traduzido para o português, ''esteira''. Representa, literalmente, uma sequência de tarefas que os devops procuram automatizar com finalidade de formar, | |||
de fato, o Continuous Integration/Continuous Delivery. | |||
* Exemplo de uma pipeline: | |||
** Pegar a última versão do código; | |||
** Fazer análise do código; | |||
** Compilar; | |||
** Realizar testes unitários; | |||
** Empacotar; | |||
** Implantar. | |||
* Uma sequência de tarefas num processo de CI/CD pode ser descrito da seguinte forma: | |||
** Compilação -> Teste -> Lançamento -> Implantação -> Validação. | |||
* Dentre as ferramentas que ajudam a implementar o CI/CD, é válido ressaltar: | |||
** Github | |||
** CloudBees (que começou com o próprio Jenkins). | |||
** AWS CodePipeline (Ferramenta da empresa AMAZON para integração e implementação contínuas). | |||
** Bitbucket (A Atlassian, desenvolvedora do popular painel de rastreamento de trabalho Jira, e o repositório de código, Bitbucket, decidiram aproveitar seu fluxo de trabalho criando o Bitbucket Pipelines, uma ferramenta de integração contínua na nuvem da Bitbucket). | |||
** Gitlab (Um dos maiores concorrentes da Atlassian. Os mecanismos de desenvolvimento, teste e implementação do GitLab também são conectados diretamente aos seus repositórios Git para que eles possam ser ativados.) | |||
** CicleCI (Muitas das ferramentas de integração contínua concentram-se no código que pode ser construído no ambiente Linux. A CircleCI constrói e entrega no mundo Linux, mas também oferece um produto que irá construir aplicativos Android e qualquer coisa que saia do Xcode da Apple) | |||
** Sourcetree | |||
** GitKraken | |||
Teste se relacionam com o CI/CD uma vez que as entregas são feitas constantemente, para garantir uma entrega continua do projeto, sendo necessário o teste da | |||
funcionalidade sozinha, no momento de sua entrega, e juntamente com as outras já implantadas, caso haja, para garantir que tudo funcione como o esperado. | |||
O devOps é um termo que descreve um conjunto de práticas para integração entre as equipes de desenvolvimento de softwares, operações e de apoio envolvidas | |||
(como controle de qualidade) e a adoção de processos automatizados para produção rápida e segura de aplicações e serviços, integrando-se ao CI/CD uma vez que | |||
esse prega uma entrega de aplicação por partes, em que cada equipe pode ficar responsável por determinada parte do projeto e a integração de todas as partes | |||
Fontes: | |||
[https://www.redhat.com/pt-br/topics/devops/what-is-ci-cd] | |||
[https://www.youtube.com/watch?v=AZtTd3pFVTY] | |||
[https://www.youtube.com/watch?v=j0DNdPXTBi0] | |||
[https://gomex.me/2020/07/05/precisamos-falar-sobre-pullrequest/#:~:text=A%20maioria%20das%20organiza%C3%A7%C3%B5es%20utiliza,rela%C3%A7%C3%A3o%20ao%20reposit%C3%B3rio%20ou%20branch.] | |||
[https://medium.com/reprogramabr/entendendo-sobre-branch-e-pull-request-516aea4e364f] | |||
[https://www.hostgator.com.br/blog/o-que-e-deploy-e-como-realiza-lo/] | |||
[https://www.jenkins.io/] | |||
[https://www.curitibati.com.br/Blog/Post/CI_CD_Alem_dos_Conceitos] | |||
[https://leonardo-matsumota.com/2019/07/26/devops-pipeline-de-implantacao-ci-continuous-integration-e-cdcontinuous-delivery/] | |||
[https://medium.com/@danielchristofolli/gerenciamento-de-buildsd83d960155a1] | |||
[https://cio.com.br/gestao/10-ferramentas-para-integracao-e-entrega-continuas-na-nuvem/] | |||
Edição atual tal como às 18h19min de 6 de maio de 2021
Evolução na profissão
- Como foi a evolução (acadêmica e profissional) até chegar na sua posição atual?
"Do ponto de vista da universidade é um processo e do ponto de vista pessoal um plano. Sempre dediquei muita energia ao trabalho e sabia que tinha de ter um determinado rendimento (ao longo de décadas) para chegar ao topo da carreira. Eu diria que me diverti muito e também trabalhei e trabalho muito. O atingimento foi uma consequência."
- Quais foram as principais formações (certificação, especialização, curso, etc) extra-curriculares?
-->Mestrado em Engenharia de Elétrica pela Escola Politécnica da Universidade de São Paulo (1990) na área de Arquitetura de Redes de Computadores. -->Doutorado em Engenharia Elétrica pela Escola Politécnica da Universidade de São Paulo, POLI/USP, Brasil e o Centre National de la Recherche Scientifique (CNRS-France 1995) na área de Sistemas Distribuídos. -->Pós-Doutorando pela University of Bristol, BRISTOL, Inglaterra.
Descrição da atividade atual
- O que efetivamente faz o profissional na sua condição?
"Bom, eu tenho uma rotina de leituras, de discussões de projetos e de pesquisas e de aulas. Além disso, preciso elaborar novos projetos à medida que os projetos correntes estão a terminar. Os projetos de teses são algo cotidiano e provavelmente ai está uma das coisas mais interessantes. No começo vc ensina o aluno, após um tempo ele te ensina e a gente fica amigo. Tenho contato com pelo menos 50 (ex) estudantes em todo o mundo."
- O que entrega como resultado?
"Eu diria que o meu principal resultado, a minha principal entrega, são alunos formados (graduação, mestrado, doutorado). Como consequência dos projetos de pesquisa, entrego conhecimento e ativos (como propriedade intelectual e patentes)."
Requisitos mínimos para exercer a profissão
- Cite alguns soft skills necessários para quem tem intenção de seguir essa carreira?
-Empreendedorismo. -Estar aberto a mudanças. -Auto-aperfeiçoamento. -Autotranscendência. -"Sede por conhecimento".
- Sugira alguns hard skills.
- Strong Material Background
* Theoretical (Teórico)
• Computing Theory (Teoria Computacional)
• Algorithm Analysis (Análise de Algoritmo)
• Formal Languages and Automata (Linguagens Formais e Autômatos)
• Statistics (Estatística)
* Technological (Tecnológico)
• Computer Architecture and Organization (Arquitetura e Organização de Computadores)
• Operating Systems (Sistemas Operacionais)
• Computer Networks (Rede de Computadores)
• Database systems (Sistemas de Banco de Dados)
• Computer/Networking Programming (Programação de Redes e Computadores)
- Project Management (Gestão de Projetos)
Ferramentas usadas no dia-a-dia
- Cite algumas ferramentas, tecnologias ou metodologias das quais depende para sucesso nas atividades.
- Strong Programming Skill (non-exhaustive list)
– Imperative oriented
• Assembly
• C/C++
• RUST
• Java frameworks
• Python, PhP, Cython aso
– Functional oriented
• LISP
• Haskell
• Scheme
• ML
Tecnologias envolvidas
- Sugira alguma tecnologia que possa ser pesquisada por esta equipe e que possa servir de base para futura aplicação nessa profissão.
Ética profissional
- Pode dar algum exemplo já vivido por você ou por alguma outra pessoa sobre aspectos éticos na profissão, seja positivo ou negativo?
"Tem vários casos desde não aceitar o troco errado (quando vc receberia mais troco do que o devido), ser intransigente e respeitar as regras de transito, em termos gerais.... Tem um bem interessante, de um colega que trabalhava para o Gartner Group, que fazia um estudo na América Latina e percebeu que aquele trabalho acabaria com a posição dele. Assim mesmo, terminou o projeto e meses depois estava desempregado. Tem o caso de plagio de pesquisa que foi detectado no meio do nosso grupo.... foi muito frustrante perceber que alguém que trabalha com vc usa desse expediente..... Felizmente detectamos e corrigimos a tempo, acredito que foi uma tremenda experiência para a pessoa."
Upload da apresentação
- Link da palestra no youtube: https://www.youtube.com/watch?v=nPKWTNz5IfA.
- Arquivo de slides, feitos pelo palestrante Frosi: Arquivo:2021 - GBC021 - Profissao C&I.pdf
Dúvidas
01) Pode nos informar sobre alguma ferramenta muito utilizada para edição de artigos?
Para edição de artigo uso o Latex (No Windows - TexStudio; Linux - TexMaker; ou na nuvem OverLeaf - recomendo este ultimo) e o gerenciador de referências bibliográficas Mendeley (https://www.mendeley.com) .
02) O que é Qualis? Como funciona o processo de avaliação de artigos nesse sistema?
Qualis é a sistemática da CAPES para avaliar os veículos (revistas e congressos) para publicação de trabalhos científicos. Basicamente, a CAPES utiliza o fator de impacto (IF) do veiculo e, quanto maior o IF, maior o qualis.
03) Quais os requisitos que um professor doutor cobra dos alunos para entrar num IC ou em algum projeto?
Isto varia bastante, eu particularmente gosto de fazer uma conversa na qual avalio os valores do aluno, a capacidade de diálogo, iniciativa e comprometimento. O desempenho vai ser cobrado pelo edital, uma vez que alunos com rendimento baixo têm pouca chance. Por outro lado, há IC voluntárias que dependem somente da vontade do aluno e da combinação do professor. Estas ICs têm certificados que valem tanto quanto daquelas com bolsas. E tem uma coisa muito interessante. Se o aluno for para um universidade americana, eles valorizam muito trabalhos voluntários. Eu não faço distinção de ICs, todos têm de ter os mesmos compromissos. Participação em projeto, no meu caso, valem as mesmas regras da IC voluntária, exceto que em geral os projetos oferecem bolsas.
04) Atualmente, está realizando alguma pesquisa? Se sim, qual e como tem funcionado?
Estou envolvido em diversos projetos de pesquisa e vou mencionar as direções que tenho interesse, que são basicamente: 1) Ontologias; 2) Internet do Futuro; 3) Redes de telecom 5G e posteriores; 4) Hardware de nova geração para suporte a futuras aplicações; 5) Computação Autônoma. Ao todo são 12 projetos.
05) Como equilibrar os 3 pilares de pesquisa extensão e ensino e não acabar focando somente em um aspecto dos 3?
Vc já deu metade da resposta: a palavra é equilíbrio. Eu costumo dizer que a vida é uma balança de muitos pratos e a sabedoria está em você manter o equilíbrio desses vários pratos. Por exemplo, diversão é importante - cinema, musica etc - se você não se divertir, a vida não vale a pena - contudo, se você só se divertir, vai mal. Minha sugestão vai na linha do que falei na palestra - PLANEJAMENTO. Faça um plano, equilibre tudo e siga o plano.
06) Quantas horas você trabalha por semana?
Chiiiii, eu recebo por 40 horas, mas pelos meus últimos cálculos, trabalho pelo 56 horas por semana. A vida de pesquisador é bem estranha, às vezes, você não vê o tempo passar. Quando você acha algo legal, o tempo voa. É comum, eu trabalhar 12 horas por dia. Todavia, tenho minhas diversões, com a bike (no momento tenho um projeto muito bacana), musica, fotografia..... Eu tenho a sorte de precisar dormir pouco.... isso me ajuda bastante.
07) Como é o mercado de trabalho nessa área?
Intenso, altamente promissor. Eu digo que se você quer imigrar, a maneira mais fácil é entrar numa área de pesquisa e destruir... Vc vai ter vaga no mundo todo, no Brasil nem se fala. Eu recebo emails quase todos os dias de alguém pedindo indicações de estudantes...... Há muitas empresas que estão fazendo academic alliance conosco por conta de ter acesso a vocês.
08) Eu pediria para ele delinear o trabalho de pesquisa dele e o que fez ele decidir por essa linha de pesquisa.
Acredito que a primeira parte da pergunta, a resposta está na pergunta 04 ... Eu sempre gostei de comunicação e em 1981 eu estava nos US e li um artigo do PARC (Palo Alto Research Center) da Xerox sobre uma rede de velocidade altíssima.... Fui fazer uma visita e voltei entusiasmado. Deste modo, minha paixão por arquitetura de computadores, sistemas operacionais e redes de computadores me levaram para a área que atuo.
09) Quando está na graduação, você teve algum momento de realização que a área da Pesquisa era a que queria seguir? Alguma experiência na graduação que te fez interessar pela Pesquisa?
Durante a graduação eu não fiz um projeto de IC canônico, trabalhei em vários projetos (voluntariamente), mas na época nao me interessei pela pesquisa. Fui para a Ericsson (um empresa gigante de equipamentos) e lá comecei a sentir falta de alguns conceitos..... foi quando comecei a olhar o mestrado. Se tivesse a maturidade que tenho hoje, teria começado o mestrado imediatamente. As áreas mencionadas são sempre as que trazem maiores revoluções, como acontece neste momento.
10) Como a área de pesquisa é utilizada no mercado de trabalho?
De uma década para cá, as experiências e títulos acadêmicos (que começou com MBAs, mesmo os mais simples) se consolidou e é um diferencial competitivo. Hoje, mestrado e doutorado começa a ser muito comum na indústria, principalmente nos US e na Europa. Na Ásia nem se fala, Japão incluído ..... Tem um aluno que está terminando o PhD nos US e já tem uma vaga numa indústria de sw para engenharia.
11) Qual área o Sr. atua? Seu foco se mantém em qual projeto?
Minhas pesquisas se encontram em 3 áreas, que são as áreas que atuo: Sistemas Operacionais; Arquitetura de Computadores e Redes de Computadores. Tenho alguns interesses mais específicos, sendo ICN (Information Centric Networking) uma das áreas mais promissoras no momento.
12) Gostaria de saber quais devem ser os focos para alguém que no futuro deseja atuar na área da Computação Quântica.
Essa é sem duvida a área mais promissora para os próximos 10 anos. Conheço pelo menos 20 institutos no Reino Unido, US, Alemanha, Holanda... para citar alguns países, que contratariam imediatamente uma pessoa dessa área. Primeiro, vc tem de ter uma solida formação em computação (principalmente a parte teórica), em física e matemática. Contudo, conheço vários cientistas que são ótimos em computação e matemática e estão evoluindo em computação quântica. Resumindo, se você for bom em computação e matemática, então vc tem todas as chances de caminhar em computação quântica. Para finalizar, a principal característica de pesquisadores nesta área é a curiosidade...
13) Quais são os pilares, estudos de grande importância? Essa é uma área que se mostra uma boa aposta para quem mora no Brasil?
Se você tiver uma solida formação em Computação e vivenciar o máximo de projetos que puder durante a graduação, te garanto que você será querido em TODAS as empresas do Brasil.... e não só ....
14) Há alguma diferença entre realizar pesquisa no Brasil e realizar pesquisa em outros lugares do mundo?
Essencialmente não!!! A principal ferramenta é seu cérebro. Todavia, principalmente em instituições do primeiro mundo, você poderá contar com um apoio instrumental e humano que raramente encontramos no Brasil. Eu fiz minha carreira no Brasil e nunca senti dificuldade em nenhum dos lugares que passei.
15) Qual visão dele como pesquisador sobre o mundo do empreendedorismo no ramo de TI e fora dele?
Empreendedorismo é a palavra chave para o sucesso de qualquer um. Até empresas estão buscando colaboradores que sejam empreendedores. Isto é uma coisa de pratica e você deve começar na graduação. Crie seu projeto, pesquise, leia tudo sobre o assunto e você verá que para tudo há um espaço no mercado. O livro 'A Estratégia do Oceano Azul', vale muito a pena ler ate o capitulo 6.
16) Qual foi a maior dificuldade que você encontrou até agora durante a sua carreira?
Sem sombra de duvida foi exatamente quando me formei. Era inicio dos anos 80 e havia uma enorme crise, talvez até maior do que a atual. Meu pai faleceu 9 meses depois que eu formei e tive de cuidar de minha mãe e irmãos que eram mais novos. Estava recém contratado, com ameaças de toda sorte, e enormes problemas familiares para resolver. Ao longo da carreira, tive os problemas normais de toda empresa, que são: algumas pessoas em níveis superiores sem valores ou psicopatas. Minha decisão de voltar para a universidade ocorreu quando tive de demitir quase uma centena de pessoas pelo simples fato de que a empresa queria lucrar mais. Isto foi muito complicado, fiquei muito tempo com isto na mente.
17) Qual o maior desafio que o professor Pedro já enfrentou na carreira de pesquisador?
Penso que foi minha mudança para a UFU. Eu já tinha minha carreira na EPUSP, mas a busca de uma cidade com melhor qualidade de vida para minha família me levou a deixar SP. Quando cheguei na FACOM, não havia pós graduação. O projeto da nossa pós começou comigo e o Prof. Joao Nunes. É muito difícil vencer a gravidade (G), levantar o programa do zero, foi sem dúvida um desafio. Outro desafio é fazer projetos de pesquisa com a indústria nacional.
18) Como o senhor vê o cenário desenvolvimento de tecnologias no Brasil?
O Brasil é um pais que tem um desenvolvimento agrário enorme e nesse campo (perdão do trocadilho) há muito o que se desenvolver em termos de diversas tecnologias - TI, mecânica, mobile..... Em outras áreas, o Brasil praticamente não desenvolve tecnologia... Minhas esperança é a indústria de Sw... espero que alguém dessa turma crie uma indústria de software. Por incrível que pareça... o Brasil tem muitas empresas de serviços de TI, mas tem pouquíssimas empresas de software. E isto é uma grande possibilidade.
19) O ambiente de pesquisa permite ao pesquisador o desenvolvimento de novas ideias com total liberdade?
Isto talvez seja o principal atrativo da carreira. Você é livre!!!! Se eu quiser mudar de área agora, posso fazê-lo. Logicamente, vai um tempo até que tenha algo apresentável, mas nada me impede de mudar. A própria essência da pesquisa é a mudança.... Você muda a cada instante, seu conhecimento aumenta a cada instante.
20) Qual é o limite para o investimento em pesquisas inovadoras em um ambiente controlado?
Talvez eu não tenha capturado o espirito da pergunta. Mas se ambiente controlado for empresas, há muito incentivo do governo para que empresas desenvolvam inovações... O governo renuncia parte de impostos para que empresas invistam em capacitação de pessoas e inovação... Por isto que você vê algumas universidades de grupos justamente para usufruir dessas renúncias. Aqui em Uberlândia tem a Universidade Algar, Universidade Martins do Varejo entre outras. Em geral, eu não tenho tanto domínio da parte fiscal, é algo em torno de 3 a 5% do faturamento da empresa. Algumas, são mesmo obrigadas.
21) O que te fez preferir a área acadêmica em vez da privada?
Parte está na resposta da pergunta 16. Acredito que a possibilidade de desenvolver profissionais e pesquisas com muita liberdade foi sem sombra de dúvida o motivo da minha decisão.
Tecnologia: CI/CD
- Conceitos Primordiais:
Antes de tratar do CI/CD em si, é necessário tratar de conceitos primordiais, relacionados a um repositório, tais como "branch", "pull request", "build", "deploy", etc. É comum a existência de projetos em que as funções e responsabilidades são divididos entre os programadores. É aqui que temos as branchs, que, ao final do processo, são unificadas através de processos chamados “merge” e “pull-request”. Uma branch, cuja tradução literal é “Ramo”, funciona como tal, se fizermos um paralelo do repositório para com uma árvore. Assim, temos a branch principal (master), que é análoga ao tronco, ligada à vários outros ramos (outras branchs). O Pull Request entra no repositório original, ou em uma branch do mesmo, para puxar (pull) atualizações do repositório fork ou de outras branchs. Além disso, é muito utilizado como ferramenta de revisão, por fazer essa “ponte” com o conteúdo “oficial” do código. Um commit é responsável por adicionar as alterações mais recentes do código na branch selecionada. Uma vez que as alterações foram feitas e estão apenas em máquinas locais, o commit é responsável por comparar as diferenças entre o código da branch e o local, identificando suas diferenças e fazendo o upload das mesmas. O versionamento entra no momento em que as partes já feitas são compartilhadas para que assim qualquer pessoa com acesso ao projeto possa continuar do ponto onde ficou parada, através de um fork do repositório original, adicionando funcionalidades as que já estavam no ponto de parada. Build de um sistema é o seu último estágio de desenvolvimento, antes da publicação. Consiste no software empacotado, pronto para a instalação. Assim como com o deploy, existem várias ferramentas que facilitam o processo de build, elas são chamadas “gerenciadores de build”. Para “construir” um build é necessário ter realizado várias tarefas, dentre elas compilação, implantação, integração com o banco de dados, testes unitários, encapsulamento do código, análise estatística, coleta de métricas, análise dinâmica e documentação. Na prática o Deploy é o ato de disponibilizar um sistema para uso, seja no ambiente de desenvolvimento para testes ou produção. Existem várias formas de realizar o deploy de um sistema, práticas essas que foram evoluindo com o passar do tempo. Dentre elas, vale ressaltar o deploy manual e o automatizado (completamente ou parcialmente). Além disso, existem estratégias e ferramentas que auxiliam o deploy, como por exemplo o Jenkins (uma famosa ferramenta de deploy automático).
- Sobre o CI/CD:
CI/CD é traduzido como continuous integration/continuous delivery. Consiste em um método para entregar as aplicações feitas com certa frequência aos clientes. Dito isso, a automação além de relevante, é aplicada nas etapas de desenvolvimento dessas aplicações. Os principais conceitos desse método são: integração, entrega e implantação contínuas. Utilizar essa tecnologia permite solucionar problemas que a integração de novos trechos de código poderiam causar às equipes de desenvolvimento caso ela não estivesse sendo usada. Continuous Integration (CI) é, resumidamente, um ciclo de automação para desenvolvedores. Este possibilita, de forma simultânea, a alteração do código de uma aplicação, onde essas alterações são testadas e consolidadas regularmente em um repositório compartilhado (CD) da equipe desenvolvedora. O Continuous Delivery (CD), por sua vez, torna automática a validação do código da aplicação nesse repositório (como dito anteriormente). A entrega contínua garante uma base de códigos que sempre estará pronta para implantação em um ambiente de produção, a realização de testes atua nessa parte também. Os principais pilares da entrega contínua é o aproveitamento/aperfeiçoamento do código, visto o feedback frequente gerado pelo resultado dos testes, a automatização do processo, demandando menos tempo de uma equipe nessa parte da criação. Rapidez e facilidade é o resultado final desse processo. Pipeline é, traduzido para o português, esteira. Representa, literalmente, uma sequência de tarefas que os devops procuram automatizar com finalidade de formar, de fato, o Continuous Integration/Continuous Delivery.
- Exemplo de uma pipeline:
- Pegar a última versão do código;
- Fazer análise do código;
- Compilar;
- Realizar testes unitários;
- Empacotar;
- Implantar.
- Uma sequência de tarefas num processo de CI/CD pode ser descrito da seguinte forma:
- Compilação -> Teste -> Lançamento -> Implantação -> Validação.
- Dentre as ferramentas que ajudam a implementar o CI/CD, é válido ressaltar:
- Github
- CloudBees (que começou com o próprio Jenkins).
- AWS CodePipeline (Ferramenta da empresa AMAZON para integração e implementação contínuas).
- Bitbucket (A Atlassian, desenvolvedora do popular painel de rastreamento de trabalho Jira, e o repositório de código, Bitbucket, decidiram aproveitar seu fluxo de trabalho criando o Bitbucket Pipelines, uma ferramenta de integração contínua na nuvem da Bitbucket).
- Gitlab (Um dos maiores concorrentes da Atlassian. Os mecanismos de desenvolvimento, teste e implementação do GitLab também são conectados diretamente aos seus repositórios Git para que eles possam ser ativados.)
- CicleCI (Muitas das ferramentas de integração contínua concentram-se no código que pode ser construído no ambiente Linux. A CircleCI constrói e entrega no mundo Linux, mas também oferece um produto que irá construir aplicativos Android e qualquer coisa que saia do Xcode da Apple)
- Sourcetree
- GitKraken
Teste se relacionam com o CI/CD uma vez que as entregas são feitas constantemente, para garantir uma entrega continua do projeto, sendo necessário o teste da funcionalidade sozinha, no momento de sua entrega, e juntamente com as outras já implantadas, caso haja, para garantir que tudo funcione como o esperado. O devOps é um termo que descreve um conjunto de práticas para integração entre as equipes de desenvolvimento de softwares, operações e de apoio envolvidas (como controle de qualidade) e a adoção de processos automatizados para produção rápida e segura de aplicações e serviços, integrando-se ao CI/CD uma vez que esse prega uma entrega de aplicação por partes, em que cada equipe pode ficar responsável por determinada parte do projeto e a integração de todas as partes