Skip to content
Desenvolvimento de Aplicações com Arquitetura Baseada em Microservices
Branch: master
Clone or download
Latest commit e95bbcd Mar 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE
docs
hw
lectures Add files via upload Mar 12, 2019
sourcecode Source code from lecture 7 Apr 3, 2018
.gitignore
CODE_OF_CONDUCT.md Create new file Feb 5, 2018
CONTRIBUTING.md
LICENSE Initial commit Dec 4, 2017
PULL_REQUEST_TEMPLATE.md
README.md
guidelines.md
if1007-microservices-icon.png Add files via upload Dec 4, 2017

README.md

Desenvolvimento de Aplicações Nativas da Nuvem com Arquitetura Baseada em Microservices

IF1007

Sistemas de Informação, Centro de Informática, (UFPE)

Instrutores

Disciplinas

  • Pós-Graduação: IN1062 - Tópicos Avançados em Sistemas Distribuídos 3
  • Graduação: IF1007 - Tópicos Avançados em Sistemas de Informação 4

Local

  • Centro de Informática, horários: segunda (17:00-18:40) e quarta (18:50-20:30), sala E-112.
  • Canal de comunicação oficial no Slack
  • Aulas práticas, quando ocorrerem, serão no Lab G2 (preferencialmente).

Edições passadas

Comunicação

Ementa

Microservice é um estilo e padrão de arquitetura de software em que sistemas complexos são decompostos em serviços menores que trabalham em conjunto para formar serviços maiores. Os Microservices são serviços autônomos, independentes e independentemente implantáveis. No mundo de hoje, muitas empresas usam microservices como principal padrão para a construção de aplicativos corporativos grandes e orientados a serviços.

O framework Spring é um framework de programação popular com a comunidade de desenvolvedores por muitos anos. O Spring Boot removeu a necessidade de ter um conteiner leve de aplicação e forneceu um meio para implantar aplicativos leves e sem servidor. O Spring Cloud combina muitos componentes e junto com o OSS Netflix e fornece um ecossistema para executar e gerenciar microservices em grande escala. Ele fornece recursos como balanceamento de carga, registro de serviço, monitoramento, gateway de serviço e assim por diante.

No entanto, os microservices vêm com seus próprios desafios, como monitoramento, gerenciamento, distribuição, dimensionamento, descoberta, etc., especialmente quando se implanta em escala. A adoção de microservices sem abordar os desafios dos microservices comuns levaria a resultados catastróficos. A parte mais importante deste curso é discutir um modelo de capacidade de microservice agnóstico em termos de tecnologia que busca ajudar a resolver os desafios mais comuns do mundo de microservice.

Bibliografia Sugerida

Não há livro texto obrigatório. Entretanto, a seguir estão alguns livros que podem ser recomendados:

Bibliografia Complementar

Bibliografia sobre Ferramentas, Frameworks e Tecnologias

Blogs, Disciplinas, Treinamentos

Business Cases

Research Trends

Objetivos

Espera-se que os alunos vivenciem exposição prática a ferramentas, processos e princípios do desenvolvimento de aplicações baseadas na arquitetura de microservices, juntamente com as boas práticas e técnicas de implantação nos princípios de DevOps e as vantagens e desafios do uso e imersão na Computação em Nuvem através de projetos práticos, enquanto compreendem modelos e ideias de pesquisa por trás das ferramentas e processos. As aulas incluirão experiências de aprendizagem no estilo de workshops, onde os alunos irão trabalhar em um problema e receberão comentários do professor, colaboradores convidados e outros colegas de classe. Quando possível, palestras convidadas da indústria ajudarão a ilustrar exemplos de como a tecnologia é implantada na prática.

Metodologia

Na disciplina, será utilizada uma mistura de aulas tradicionais com atividades e workshops em sala de aula. Durante as aulas, abordaremos conceitos básicos relacionados aos tópicos a serem tratados na disciplina. Durante os workshops em sala de aula, realizaremos exemplos de exercícios com ferramentas relevantes que reforçam o material de aula. As avaliações serão baseadas nas aulas, exercícios dirigidos, workshops e o projeto final.

Pré-Requisitos

Para participar deste curso é desejável que os participantes tenham:

  • Conhecimento básico de inglês técnico para leitura, estudo e acompanhamento das atividades propostas, uma vez que a maior parte do material disponível está em inglês.
  • Conhecimento básico de arquitetura de computador, sistemas operacionais, redes, engenharia de software e banco de dados.
  • Conhecimento de modelos de processo de desenvolvimento de software, em especial Metodologias Ágeis, testes de software. Conhecimento em TDD e BDD serão uma vantagem. Maiores informações podem ser consultadas no site da disciplina de Engenharia de Software (IF977).
  • Experiência em sistemas de computação, armazenamento, infraestruturas de rede e computação em nuvem será uma vantagem.

Avaliação

  • Projeto em equipe com até 3 membros [70%]
    • Caráter puramente acadêmico e educacional. O projeto vai tratar de diversos aspectos do desenvolvimento de uma aplicação simples com arquitetura de microsserviços.
  • Observações:
    • Entrega fora do prazo: redutor de 1 ponto por dia de atraso.
    • Atraso máximo: 1 (uma) semana. Após esse prazo, será dada nota zero para a respectiva atividade de avaliação.
    • Trabalhos com referências bibliográficas inconsistentes terão um redutor no conteúdo técnico.
    • Trabalhos “CTRL-C + CTRL-V” terão nota zero (vale tanto para cópia de colegas, como para trabalhos copiados da internet).
  • Exercício Escolar Teórico Individual e/ou Atividades Práticas Individuais [30%]
    • Exercício com questões objetivas
  • Como atividade de recuperação é proposta a aplicação de um Exercício Escolar abordando os temas apresentados e discutidos em classe.

Projetos

Recursos

Tópicos

  • Welcome, Methodology, Course Introduction (Core Topics)
  • Introduction to Microservices Concepts
  • Demystifying Microservices
  • Building Microservices with Spring Boot
  • Applying Microservices Concepts
  • Microservices Evolution – A Case Study
  • Scaling Microservices with Spring Cloud
  • Autoscaling Microservices
  • Logging and Monitoring Microservices
  • Containerizing Microservices with Docker
  • Managing Dockerized Microservices with Mesos and Marathon
  • Kubernetes orquestration enviroment
  • The Microservices Development Life Cycle

Plano de aulas 2019.1

# Class Topics Assignments
01 Feb-18 Welcome, Methodology, Course Introduction (Core Topics)
02 Feb-20 Introduction to Microservices Concepts HW1
03 Feb-25 Demystifying Microservices 1/2
04 Feb-27 Demystifying Microservices 2/2 HW2
05 Mar-11 Building Microservices with Spring Boot 1/2
06 Mar-13 Building Microservices with Spring Boot 2/2 HW3
07 Mar-18 Applying Microservices Concepts 1/2
08 Mar-20 Applying Microservices Concepts 1/2 HW4
09 Mar-25 Microservices Evolution – A Case Study 1/2
10 Mar-27 Microservices Evolution – A Case Study 2/2 HW5
11 Apr-01 Scaling Microservices with Spring Cloud 1/2
12 Apr-03 Scaling Microservices with Spring Cloud 2/2 HW6
13 Apr-08 Autoscaling Microservices 1/2
14 Apr-10 Autoscaling Microservices 2/2 HW7
15 Apr-15 Background: Operations (Chapter 3 from Len Bass' book) HW9
16 Apr-17 The Deployment Pipeline (Chapter 4 from Len Bass' book)
17 Apr-22 Logging and Monitoring Microservices 1/2
18 Apr-24 Logging and Monitoring Microservices 2/2 HW8
19 Apr-29 Containerizing Microservices with Docker 1/2
20 May-06 Containerizing Microservices with Docker 2/2 HW11.1, HW11.2
21 May-08 Managing Dockerized Microservices with Mesos and Marathon 1/2
22 May-13 Managing Dockerized Microservices with Mesos and Marathon 2/2 HW12
23 May-15 Introduction to Kubernetes 1/2
24 May-20 Introduction to Kubernetes 2/2
25 May-22 The Microservices Development Life Cycle 1/2
26 May-27 The Microservices Development Life Cycle 2/2
27 May-29 Project execution time
28 Jun-03 Follow-up of project execution
29 Jun-05 Project execution time
30 Jun-10 Follow-up of project execution
31 Jun-12 Project execution time
32 Jun-17 Follow-up of project execution
33 Jun-19 Project presentation
34 Jun-26 Project presentation
35 Jul-01
36 Jul-03 Publication of final results

Disciplinas correlatas e/ou influenciadas

Após a iniciativa de construção desta disciplina, outras nasceram motivadas por este movimento ou inspiradas nos tópicos aqui cobertos. São elas:

You can’t perform that action at this time.