Este documento fornece uma introdução sobre o OpsWorks da AWS, incluindo seus principais conceitos como stacks, layers, instâncias, aplicações e lifecycles. O OpsWorks permite orquestrar a infraestrutura na nuvem da AWS, gerenciar configurações e implantar aplicações de forma automatizada através do uso de receitas no Chef. Uma demonstração é fornecida para ilustrar como o OpsWorks pode ser usado na prática.
4. DevOps – designing processes for
coordinating software development teams
with IT operations teams. - IBM
…modern applications, running in the cloud,
still need to be resilient and fault tolerant, still
need monitoring, still need to adapt to huge
swings in load, etc. But those features,
formerly provided by the IT/operations
infrastructures, now need to be part of the
application, particularly in “platform as a
service” environments.
Operations doesn’t go away, it becomes part
of the development. And rather than envision
some sort of uber developer, who
understands big data, web performance
optimization, application middleware, and
fault tolerance in a massively distributed
environment, we need operations specialists
on the development teams.
The infrastructure doesn’t go away – it moves
into the code; and the people responsible for
the infrastructure, the system administrators
and corporate IT groups, evolve so that they
can write the code that maintains the
infrastructure. Rather than being isolated,
they need to cooperate and collaborate with
the developers who create the applications.
This is the movement informally known as
“DevOps”. - Mike Loukides
DevOps is the practice of operations and
development engineers participating together
in the entire service lifecycle, from design
through the development process to
production support. - The Agile Admin
Manifesto Ágil - http://agilemanifesto.org/iso/ptbr/principles.html
Agile Infrasctrucure
Agile Development
Dev & Ops Cooperation
The problem are the machines!
The problem aren't the
machines, but the code!
At my machine works!
Infrastructure as a code
5. “
Este é futuro. Em um ambiente com dezenas, centenas ou milhares de
máquinas virtuais, vários SOs e várias linguagens de programação
usadas pelos desenvolvedores, o método de trabalho “na unha” está
morto. Aprender Ruby, Python e tecnologias Cloud não é mais opcional,
mas mandatório.
Times de infra protegem o valor do negócio. Times de desenvolvimento
aumentam o valor do negócio. É preciso eliminar conflitos entre times
de Desenvolvimento e Operações para que ambos cooperem para o
negócio fluir. Isto é DevOps!
“Infrastructure as Code”
6. Pilares da Cultura DevOps
- Cultura
- Colaboração
- Fim das divisões
- Relação saudável entre as áreas
- Mudança de comportamento
- Automação
- Deploy
- Controle
- Monitoração
- Gerência de Configuração
- Orquestração
7. Pilares da Cultura DevOps
- Avaliação
- Métricas
- Medições
- Performance
- Logs e Integração
- Compartilhamento
- O feedback é tudo
- Boa comunicação entre a equipe
8. - Infraestrutura como código
- Orquestração de servidores
- Gerência de configurações
- Provisionamento dinâmico de
ambientes
Aspectos técnicos
9. - Controle de versões
- Ambientes de desenvolvimento,
homologação e produção (no mínimo)
- TDD/TDI: Desenvolvimento e
Infraestrutura guiado por testes onde
novas funcionalidades/ambientes
iniciam com a criação de testes
- Infra participando nos projetos deste
o início
Aspectos técnicos
10. - Infra em reuniões de dev
- Dev em reuniões de infra
- Ambiente de entrega contínua [1]
- Os desenvolvedores devem
conseguir fazer o deploy sem
interferência da infra - no mundo
perfeito [2]
Aspectos técnicos
11. Time de Infraestrutura ágil
- Versionamento do código e
arquivos de configuração (git)
- Organização de atividades de
forma visual (KANBAN BOARD)
- Trabalho em pares
12. Time de Infraestrutura ágil
- Divisão das atividades em sprints
- Reuniões ágeis diárias (standup
meeting de 10 minutos - em pé)
- Reuniões ágeis periódicas
(retrospectiva e planejamento de
sprints).
13. Ferramentas de Infraestrutura Ágil
1. Orquestradores
2. Gerenciamento de Configuração
3. Bootstrapping e Provisionamento
15. 2. Gerenciamento de Configuração
Centralização de configurações e facilidade na administração de ambientes.
Puppet
Chef
Cfengine
Salt
Ansible
Vagrant
16. 3. Bootstrapping e Provisionamento
Instalação do sistema operacional (Físico/Virtual/Cloud).
Kickstart
Cobbler
Satellite
17. Opsworks = All In One
- Orquestração
- Gerência de Configuração
- Bootstrappping
19. “O OpsWorks é a ferramenta que permite criar e
gerenciar stacks e aplicações.
Com ele você pode provisionar recursos na AWS,
gerenciar a configuração e fazer o deploy de
aplicações.
20. - Baseado no Chef (http://chef.io)
- Cookbooks
- Default (Github)
- Custom
- Receitas
OpsWorks - Introdução
21. - Stack
A base de um ambiente. Pode ser
entendido como se fosse um
container para os recursos
(instâncias, ebs, rds, eip).
Auxilia a gerenciar e organizar os
recursos como um grupo.
OpsWorks - Conceitos
22. - Layer
Onde os componentes da stack são
definidos, assim como seus papéis e
funções dentro do ambiente.
Por exemplo, layer de servidores web,
layer de proxy, layer de servidores de
backend, frontend, etc.
OpsWorks - Conceitos
23. - Layer
Na layer estão as configurações para
todos os integrantes com a mesma
função, por exemplo, as recipes,
configurações de rede (elb, pip, eip),
volumes ebs e security groups.
OpsWorks - Conceitos
24. - Recipes
O cookbook é um conjunto de
receitas, que podem ser utilizadas de
modo customizado ou default.
As receitas são onde definimos como
queremos que determinado recurso
seja criado/instalado/configurado no
nosso ambiente.
OpsWorks - Conceitos
25. - Recipes
Default: Utiliza as recipes do
OpsWorks no Github
Custom: Você cria suas receitas e as
utiliza.
OpsWorks - Conceitos
26. - LifeCycle:
São eventos de execução de tarefas e
recipes nas layers
- Setup
- Configure
- Deploy
- Undeploy
- Shutdown
OpsWorks - Conceitos
27. - Instâncias
Representa um recurso
computacional, como uma instância
EC2. Define configuração básica
como SO e tamanho.
OpsWorks - Conceitos
28. - Instâncias - Tipos:
- 24x7
- Load based
- Time-Based
* Auto-Heal
* Integração EC2 fora do OpsWorks
* Integração On-Premise
OpsWorks - Conceitos
29. - Apps
Aplicações à serem disponibilizadas
no ambiente.
Cada uma é representada por um app,
que especifica o tipo de aplicação e
contém informações para que o
OpsWorks realize o deploy.
OpsWorks - Conceitos
30. - Apps
No deploy de uma app, as recipes do
lifecycle de Deploy são executadas na
instância através da realização do
download da app do repositório para
a instância.
* O repositório pode ser no Git, S3, SVN ou um link HTTP
** As receitas do lifecycle de deploy também podem realizar tarefas de
configuração ou restart de serviços.
OpsWorks - Conceitos