Docker: Padronização de ambientes

Standard

Docker é uma ferramenta de open source (código aberto) sem nenhum custo, que permite um conjunto completo do ambiente, deste configurações de máquinas, aplicações e programas necessários, permitindo ser distribuído e virtualizado de maneira fácil e rápida para outras máquinas. Para utilização da ferramentas é necessário seguir as seguintes etapas, este tutorial foi aplicado em um ambiente Linux (Ubuntu) para o padronização dos ambientes

Instalação do Docker;

  • apt-get install docker.io

Verificar se o Docker está rodando;

  • sudo docker run hello-world

O Docker mantém um local pra armazenar repositórios (https://hub.docker.com), semelhando o que o github faz.

Para baixar o repositório crs-uno-server;

  • docker pull alefevariani/crs-uno-server

Listando os container;

  • docker ps

Listar images Docker existentes na máquina;

  • docker images

Rodando e acessando o shell do container, informando o ID image;

  • docker run -it ID IMAGE bash
  • docker run -it CONTEINER ID IMAGE bash

 

Criando um repositório no Docker.

Para a criação de um repositório é necessário criar uma conta no site:

logindocker
Após o login efetuado, será apresentado um tela semelhante a imagem a seguir, onde terá a
opção Create Repository (criar repositório);

tela-inicial-docker.png

Selecionada a opção Create Repository (criar repositório), a tela será esta a seguir, que possui o nome, descrições e a visibilidade que pode ser privada (private) ou pública (public);

tela-criar-repositorio-docker.png

Criado o repositório, neste caso a tela será semelhante a está;

tela-repositorio-teste-docker.png

Nesta imagem já é apresentado o comando “docker pull alefevariani/teste” para baixar o container image criado, mas como esta vazio é preciso criar a máquina com os itens a seguir;

Via terminal linux, criar uma pasta, com o arquivo Dockerfile;

 

  • mkdir teste
  • cd teste/
  • nano Dockerfile

Adicionar conteúdo no Dockerfile, neste arquivo ficam as configurações da máquina, mais
informações para criação do arquivo Dockerfile no link e também para os repositórios oficiais oferecidos, segue link;

Exemplo arquivo Dockerfile:
# INSTALAR SO UBUNTU, ÚLTIMA VERSÃO
FROM ubuntu:latest
# INSTALAR APACHE 2 E PHP
RUN apt-get -y install apache2 php5
#LIBERAÇÃO DE PORTAS 80 E 443
EXPOSE 80 443

Para executar o arquivo Dockerfile e verificara se os comando estão todos corretos:

  • docker build -t alefevariani/teste .

No local de alefevariani/teste, deve-se passar nomeSeuUsuario/nomeRepositorio.
Para mandar o container para seu repositório no Hub Docker, são os seguintes passos,
semelhante a um controle de versão;

Listar último container.

  • docker ps -l

Fazer commit da imagem criada, informando o CONTAINER ID.

  • docker commit CONTAINER ID alefevariani/teste

Enviar a imagem da máquina para o repositório, permitindo depois fazer pull por outras máquinas.

  • docker push alefevariani/teste

Feito isso, pode-se utilizar este container para várias máquinas, no caso, para o servidor de
desenvolvimento e produção, evitando diferenças de versões em sistemas operacional, linguagem de programação, banco de dados e pacotes extras.

Conclusão

Docker é uma ferramenta muito poderosa e vem sendo usado por várias pessoas e por muitas empresas de grande porte, o que ajuda ainda mais uma ferramenta se tornar de qualidade. Docker foi uma das ferramentas mais comentadas em 2015, junto também com o assunto DevOps, que também vem ganhando força 🙂

New Relic: Monitoramento de aplicações.

Standard

New Relic foi fundada em 2008 para fornecer um gerenciamento avançado de desempenho
de aplicações para empresas de qualquer tamanho, hoje possui, segundo Relic (2015):

  • 250 mil usuários;
  • 4 mil aplicações monitoradas por dia;
  • 1 bilhão de aplicações mobile monitoradas;
  • 690 bilhões de métricas por dia;

Esta ferramenta permite monitorar aplicativos oferecendo vários tipos de produtos, dentre
eles para: mobile, browser, servers, apm (application performance monitoring) dentre outros. Para utilização da ferramentas é necessário seguir as seguintes etapas, este tutorial foi aplicado em um ambiente Linux (Ubuntu) para o monitoramento de aplicações PHP.

1 – Cadastro no site, Neste cadastro é solicitado as informações pessoais, empresa em que está atuando, quantidade de servidores, pessoas da empresa e por fim é perguntado quais plataformas gostaria de monitorar, dentre as opções: PHP, Java, Ruby, Dotnet, NodeJs, Android e IOS.

2 – Após o cadastro é necessário a instalação do “agent” PHP, escolhendo a opção Add more, neste momento será apresentado as opções dos “agent” disponíveis para fazer o monitoramento das aplicações;

2

3 – Escolhendo a opção PHP é apresenta as etapas para instalação do agent PHP;

3.1 – Get your license key (pegar chave de licença);

4.1-1.png
Percebe-se que foi gerado uma chave, que representa a licença para utilização. Esta chave é
utilizada para a instalação e configurações do “agent”, link de ajuda 2 . Na imagem a seguir são apresentados os comandos para instalação do agent New Relic que é um componente para a configuração com o PHP, acesse com o usuário Administrador.

3.2 – Install the PHP agent (instalar agent PHP);
3.2.1 – Select your environment (selecione o ambiente);

4.2.1

3.2.2 – Debian-based (Debian, Ubuntu, etc.) (base debian) Get the key (pegar chave);

4.2.2
3.2.3 – Add our repository (adicionar repositório);

4.2.3.png
3.2.4 – Install de package and configure it (instalação e configuração);

4.2.4
Nestes comando serão solicitados as chaves de licença do usuário e o nome da aplicação
inicial para o monitoramento, seu nome vem por padrão “PHP Application”.

3.3 – Add your PHP license key (adicionar chave de licença no arquivo newrelic.ini ou php.ini);

 4.3.1
3.4 – Stop and Start your PHP services (parar e iniciar serviços PHP);

4 – Restart os web server, no Ubuntu com os comandos;
– sudo service newrelic-daemon restart
– sudo service apache2 restart

5 – O quinto passo é aguardar 5 minutos para que o New Relic comece a receber dados. Com as instalações e configurações feitas corretamente (mais a frente será mostrado a configuração com varias aplicações).

6 – Informar a chave do usuário, neste passo é necessário informar a chave em um arquivo;
– sudo nano /etc/newrelic/nrsysmond.cfg

Alterar na linha onde é encontrado license_key=CHAVE_USUARIO, passando a chave de licença;

7 – Com os passo seguidos acima o monitoramento das aplicações com New Relic está quase pronto, basta informar quais são as aplicações que serão monitoradas, existe algumas maneiras de fazer isso, através do .htaccess da aplicação, pelo próprio PHP da aplicação ou pela configuração dos hosts, que será o exemplo mostrado a seguir. No arquivo de configurações dos hosts do Apache, localizado em /etc/apache2/sites-available/000-default.conf foram criados dois hosts.

14

Percebe-se que a única diferença é o IfModule, onde é informado o nome da aplicação definida pelo usuário. E no arquivo /etc/hosts ficara como na imagem a seguir, onde é informado um endereço para os ips para as aplicações sga e agm.

15

Por fim, basta reiniciar o apache, e analisar os dados coletados no navegador das aplicações
monitoradas. A ferramenta New Relic oferece alguns recursos que auxiliam no monitoramento e acompanhamento da aplicação, dentre eles:

Monitoramento:

Monitoring → Overview, nesta tela é mostrado um visão geral da aplicação, como informações tempo de respostas de transações na Web, taxa de transferências, porcentagens de erros.

8.png

9.png

Monitoring → Service Maps, onde permite ver quais bases de dados que a aplicação
mantêm conexão.

7.png

Monitoring → Transactions, esta tela mostra as transições com mais detalhes, apresentando a sua performance e as categorias de cada transação, podem ser transições web e ou transições database.

10.png

Monitoring → Databases, na tela de Databases são apresentados as consultas que foram
feitas e o tempo que foi necessário para executar.

12.png

O New Relic oferece ainda telas de erros da aplicação, configuração de Alertas para casos
com mais relevâncias, além de disponibilizar uma bom quantidade de relatórios, que visão levantar informações como: escalabilidade, transações das bases de dados e disponibilidade.

Conclusão

Com ferramenta New Relic o monitoramento de aplicações se torna mais fácil de identificar problemas de performance, processamento, consumo de memoria, isso tudo ajuda desenvolvedores/infra a resolver e melhorar a utilização os usuários diante das aplicações, com vários uteis podendo ser utilizados, basta definir quais são as suas exigências e necessidades.

DevOps: introdução, como surgiu, conceitos e ferramentas.

Standard

Meu trabalho de conclusão de curso foi em cima do tema DevOps, no qual vem ganhando bastante atenção nos últimos tempos e que também me manteve motivado até o fim do trabalho. Será abordado um pouco da introdução, como ele surgiu, os principais conceitos e algumas ferramentas indicadas, além de links bons para leitura.

Introdução

DevOps é um movimento cultural que foca no aperfeiçoamento da comunicação, colaboração e integração entre desenvolvedores de software e administradores da
infraestrutura de TI.
O objetivo é fazer com que desenvolvedores e engenheiros trabalhem juntos, com
foco em automação no maior número de processos possíveis no desenvolvimento de
software. Buscando modificar a antiga dinâmica, onde desenvolvedores e gerentes de infra
eram vistos como ilhas isoladas livres de intercomunicação e cooperativismo.

Como surgiu

O movimento DevOps não começou em apenas um lugar, existem muitos lugares que
dão pistas sobre as origens do termo, por volta de 2008 começa-se a utilizar o termo
infraestrutura ágil em algumas listas de discussão com foco em desenvolvimento ágil, e na mesma época durante evento o Agile 2008.
O Agile abriu caminho para o DevOps, desviando as direções das metodologias de
desenvolvimento de software modelo cascata e indo em direção a um ciclo continuo de
desenvolvimento.
O termo DevOps foi criado durante a conferência Velocity da O’Reilly em 2009, onde
John Allspaw (Etsy.com) e Paul Hammond (Typekit) apresentaram um, com o objetivo de
unir desenvolvedores(Dev) e administradores da infra de TI (Ops) de forma a promover a
integração continua até a entrega.
Um dos participantes foi um entusiasta do assunto era Patrick Debois, que após ter
visto a palestra citada a cima ficou muito animado, tendo a grande ideia de criar um encontro chamado DevOpsDay, que teve seu primeiro encontro em Ghent – Bélgica no final de 2009, o encontro durou 2 dias, e foi onde o assunto começou a ser conhecido pelo mundo.

Conceitos

O DevOps se mantêm em quatro pilares principais, conhecidos pelas siglas C.A.M.S,
são eles:

  • Cultura, as equipes precisam ter colaboração, manter uma relação saudável
    entre as áreas, mudança de comportamento, flexibilidade, troca de ideia e
    principalmente trabalharem juntos, evitando responsabilidades centralizadas e
    incentivando a criação de equipes multidisciplinares;
  • Automação, ferramentas entram em cena para automatizar o maior número
    de processos, sendo eles: automação para liberação de versão, automação de
    build, de provisionamento de ambientes para testes, monitoramento ou
    qualquer outro processo, é interessante identificar os processos que sejam
    repetitivos ou que levem bastante tempo e buscar resolver o quanto antes,
    evitando que se torne algo mais difícil de alterar futuramente;
  • Medição/Avaliação, deve-se medir tudo que possível, performance,
    processos e interações e até mesmo pessoas. Sem medir, não se pode melhorar
    nem aperfeiçoar os processos;
  • Compartilhamento, ter uma boa comunicação entre as equipes, incentivar as
    pessoas a se comunicarem e compartilharem ideias e problemas é um ponto
    crucial numa iniciativa do DevOps. Histórias de sucesso atraem novos
    talentos para o movimento e criam um excelente canal de feedback, que
    fomentam um processo de melhoria contínua; O DevOps é um movimento em constante construção e definição, seguir ou aplicar a cultura DevOps em uma empresa parte principalmente da mudança de cultura.

O DevOps é um movimento em constante construção e definição, seguir ou aplicar a
cultura DevOps em uma empresa parte principalmente da mudança de cultura.

Ferramentas

Um dos principais princípios do DevOps é investir em automação. A automação
permite executar tarefas ou processos mais rapidamente e diminuir a possibilidade de erros
humanos e para isso podem ser citadas algumas ferramentas:
Vagrant
Ferramenta que permite a construção de ambientes virtualizados de desenvolvimento
completos, com um fluxo de trabalho fácil e simples de usar e com foco na automação.

Docker
Docker é uma plataforma aberta para desenvolvedores e administradores de sistema,
que ajuda na criação e execução de aplicações distribuídas.

Puppet
Ferramenta de código aberto para gerenciamento de configuração. A ideia é ter a
configuração centralizada e sendo distribuída pra várias maquinas ou servidores na rede;

Chef
Chef permite automatizar a forma como se constrói, implanta e gerencia a
infraestrutura, tornando versionáveis e testável.

Composer
Gerenciador de dependências da aplicação, permite manter e incluir novos
pacotes/bibliotecas necessárias facilmente na aplicação.

New Relic
É uma ferramenta de monitoramento de aplicação onde permite análise da aplicação
e ajuda pessoas que constroem software a entender o que os históricos de dados estão
tentando dizer-lhes, através da coleta, armazenamento e analise dos mesmos.
Ferramentas existem muitas e surgem mais a cada dia, basta analisar qual a
necessidade real para cada caso.

Links para leitura

Link apresentação monografia I:
http://pt.slideshare.net/alefevariani/devops-49735272

Link monografia completa:
https://github.com/AlefeVariani/MonografiaDevOpsAlefeVariani

O que é DevOps afinal?
http://gutocarvalho.net/octopress/2013/03/16/o-que-e-um-devops-afinal

Agile DevOps: Quebrando os silos.
http://www.ibm.com/developerworks/br/library/a-devops9/#ibm-pcon

O que é DevOps? Metodologia, benefícios e ferramentas.
http://newrelic.com/devops/what-is-devops

Cultura DevOps e integração entre infra e devel
http://pt.slideshare.net/GutoCarvalho/cultura-devops-e-integrao-entre-infra-e-devel

DevOps.com
http://devops.com/

Blog do Patrick Debois referencias sobre DevOps
http://www.jedi.be/blog/

DevOps Brasil
http://devops-br.org/

SecOps – Segurança em DevOps
http://imasters.com.br/infra/seguranca/secops-seguranca-em-devops/

Ferramentas para criar uma cultura eficiente de DevOps
http://computerworld.com.br/tecnologia/2015/01/30/7-ferramentas-para-criar-uma-cultura-de-devops-correta

Eventos oficiais do DevOps que acontecem pelo mundo
http://www.devopsdays.org/

Conclusão

A ideia deste artigo era dar uma visão geral sobre o assunto DevOps e continuar a pesquisa/leitura com os links de ajuda, os quais me ajudaram bastante, principalmente o artigo do Guto Carvalho.

Mysql e PostgreSQL pelo terminal (console) do Ubuntu.

Standard

Objetivo é mostrar como utilizar dois bancos de dados, Mysql e PostgreSQL, através do terminal (console) do Ubuntu, apenas por linha de comando. Mysql e PostgreSQL estão entre os melhores e mais utilizados atualmente, ambos possuem várias interfaces gráficas que auxiliam na utilização, visualização e consultas de dados.

Dentre as principais interfaces gráficas.

Para o Mysql:

Para o PostgreSQL:

Mas nem sempre as interfaces são boas ou mesmo quando você nem tem uma instalada ou até quando está acessando uma maquina remotamente,  sendo assim, resta o terminal (console), que acaba se tornando uma boa opção. A seguir será mostrado como utilizar ambos banco de dados.

Mysql pelo terminal;

Comando para logar no Mysql pelo terminal;

$ sudo mysql -u root -p

root é o nome do usuário do banco mysql (no meu caso), após, será solicitado a senha do usuário.

Para alterar a senha de um usuário;

$ mysqladmin password -u root -p

Agora estando no Mysql, podemos fazer todas as operações, como:

Visualizar os bancos existentes no Mysql;

mysql> show databases;

Identificado o banco que você precisa, fazer alguma mudança, operação ou consulta, para acessar ele;

mysql> use nomedobanco;

Acessado o banco pra visualizar as tabelas existentes;

mysql> use tables;

Para consultar os dados das tabelas entra o SQL;

mysql> select * from nometabela;

Outro comando útil é o describe, onde pode-se ver as informações das tabelas, seus campos, seus tipos, suas obrigatoriedades e suas ligações;

mysql> describe nometabela;
pode ser usado o desc no lugar do describe;

Para criar uma banco novo, acessado ele;

mysql> create database bancoteste;
mysql> use bancoteste;

Criando uma tabela, inserindo dados, atualizando e deletando;

mysql> create table pessoa(id int(6) auto_increment primary key, nome varchar(50) NOT NULL, sobrenome varchar(50));

mysql> insert into pessoa (id, nome, sobrenome) values (10, ‘Alefe’, ‘Variani’);

ou assim, já o campo id é auto incrementado e o campo descrição não é obrigatório.

mysql> insert into pessoa (nome) values (‘NomeTeste’);

Atualizar dados do registro;

mysql> update pessoa set nome = ‘Mathues’, sobrenome=’Silva’ where pessoa.nome = ‘NomeTeste’;

Deletar registro, tabela ou banco;

mysql> delete from pessoa where pessoa.nome = ‘Mathues’;
mysql> drop table nometabela
mysql> drop database nomebanco;

PostgreSQL pelo terminal;

Comando para logar no Postgresql pelo terminal;

$ sudo su postgres -c psql postgres

Logar em outro banco (acessando direto);

$ psql -h 127.0.0.1 -U postgres -d meubanco

postgres=# ALTER USER postgres WITH PASSWORD ‘root’;
Para sair:
postgres=# \q

Para ver as tabelas;
postgres=# \d

Para ver as Views;
postgres=# \dv

Para ver os Bancos existentes;
postgres=# \l

Para mudar de Banco;
postgres=# \c nomebanco

Identificar o usuário;

postgres=# SELECT current_user

Existem vários outros comandos e links interessantes para ajuda, basta procurar. Ambos banco de dados são fáceis de mexer pelo terminal (menos o Oracle, fique o mais longe possível dele hehe).

Este post derivou de uma dificuldade que encontrei em acessar um banco de dados pelo terminal, espero que seja útil não apenas pra mim 🙂

Zend Framework 2 é legal! Mas como ele funciona ?!

Standard

Muito se fala sobre Frameworks, da importância de usar, quando usar, sendo ele microframeworks ou fullstack, e logo de cara é citado o Zend Framework como uma referência.

ZendFramework

Surgindo suas várias vantagens:

  • Modelo MVC
  • Baseado em eventos
  • PHP 5
  • As melhores práticas com PHP
  • Modular e Extensível
  • Comunidade forte
  • Segurança

Isso todo mundo já sabe,
Mas como o ZF2 funciona? Como ele é dividido?

Quando comecei a utilizar o ZF2, naturalmente não parei para entender como o ZF2 funciona, o que ele faz primeiro, como ele é dividido, como usar, quando usar.
E isso dificultou muito quando me deparei com problemas básicos da ferramenta. Por isso para iniciar é importante saber como ele é dividido.

Divisão dos diretórios(pastas)

Estrutura ZF2

/config

Configurações gerais da aplicação, como configurações com o Banco de Dados. Atenção para o application.config.php arquivo de grande importância.
Nele são definidos os Módulos que serão utilizados ou carregados, além de também fazer a chamada dos arquivos locais e globais no diretório autoload, responsáveis pela ligação com banco.

/data

Arquivos de cache, podendo armazenar arquivos como diagramas da aplicação. De preferência, não adicionar arquivos com códigos.

/module

Todos os módulos da aplicação.
Um módulo, para um problema específico da aplicação.
Todos os módulos com sua própria configuração e estrutura MVC. Se o objetivo era ser Modular, conseguiram 🙂

/public

Arquivos CSS, JS e imagens.
Atenção para o index.php onde é rodada a aplicação, único arquivo que o usuário terá acesso.

/vendor

Bibliotecas utilizadas na aplicação.
Caso utilizar um nova biblioteca é aqui que deve ser adicionada.
Repare que já existe o composer e o próprio zendframework.

O que é executado primeiro? qual a sequência? o que acontece quando é rodada a aplicação ZF2?

index.php

Bom, o primeiro arquivo a ser rodado pela aplicação é o index.php que fica no diretório /public.

Zend\Mvc\Application::init(require ‘config/application.config.php’)->run();

As duas funções estão localizadas no diretório (vendor/zendframework/zendframework/library/Zend/Mvc)
arquivo Application.php.
Nele esta também funções que serão usadas futuramente, como getConfig(), getRequest(), getResponse() e outras.

init(require ‘config/application.config.php’) – método de inicialização rápida e fácil da aplicação.
application.config.php – fica responsável pela configuração dos módulos a serem carregados, mantendo o index.php sem alteração.

run() – Roda aplicação através do evento MvcEvent.

application.config.php

Neste momento chegamos no config/application.config.php
onde estão definidos o módulos utilizados, caso seja criado um novo módulo e ele não for adicionado no array ‘modules’ ele não será carregado.

No array ‘module_paths’ definimos o local dos módulos (./module e ./vendor)

Obs.: se passarmos ‘a’ no array ‘modules‘, no array ‘module_paths‘ ele vai esperar que exista um módulo ‘a’ no diretório /module

Module.php

Agora estamos no Module.php do módulo. Considerado por muitos o coração do módulo.
Nele existe 3 funções

  • onBootstrap() – responsável pelos eventos
  • getConfig() – configurações do modulo, como route, view manager e controller
  • getAutoloaderConfig() – responsável pelos Autoloder através dos namespaces

A partir daqui o ZF2 encontra o /config/module.config.php, que irá tratar as rotas, encontrar os controles invocados, e parando no controller, onde entram os conceitos do MVC (Model, View e Controller) onde a maioria já conhece, mas isso é assunto para um próximo post.

Instalação do ZF2

A instalação do Zend Framework 2 pode-se dizer que é um dos pontos mais fácil.

Existem vários tutoriais sobre o assunto. Mas o mais indicado é dá Documentação Oficial do ZF2.

De forma rápida, você precisa do PHP 5.3 ou versões superiores instalado em sua máquina para fazer a instalação.

Depois você precisa do Skeleton do ZF2 encontrado no GitHub ou através do zftool, tendo baixado o skeleton basta acessar sua aplicação e instalar o ZF2 através do composer (gerenciador de dependências) pelos comandos:

php composer.phar self-update
php composer.phar install

Agora você tem o ZF2 instalado.

Utilizando o servidor do PHP (a partir da versão 5.4), acessando o diretório /public e com o comando:

php -S localhost:8080

Você verá o resultado em seu browser, acessando:

http://localhost:8080

Há muitas formas de instalar o ZF2 está é apenas uma.

Conclusão

Zend Framework 2 é um ótimo framework para estudar e usar.
O entendimento dele não é algo simples, mas com o passar do tempo tudo se esclarece e você passa a usar os componentes que o ZF2 lhe oferece dá melhor forma.

Esperam que tenham gostado.
Dúvidas, críticas, sugestões de melhorias são bem vindas.

Att
Alefe Variani

Padrões PSR de desenvolvimento PHP

Standard

A pouco tempo comecei a estudar os padrões PSR, onde não tinha a menor ideia do que era.

Descobri que basicamente o PSR são regras desenvolvimento PHP.
Uma forma de programadores encontrar maneiras de todos trabalharem juntos independente do projeto.

Criado pela PHP-FIG(http://www.php-fig.org/), grupo de desenvolvedores PHP, onde são criadas praticas de melhorias que podem ser seguidas, mas não é esse o objetivo(diz o grupo).

Imagem

Existem grandes projetos membros que apoiam o trabalho
Ex:(CakePHP, Doctrine, Symfony2, Zend Framework 2 . . .)

ImagemImagemImagemImagem

o PSR são divididos por:

PSR-0: autoloader(namespaces), como carregar arquivos
PSR-1: tags do php, Efeitos secundários, Codificação de Caracteres(UTF-8), nomenclatura . . .
PSR-2: Linhas, Indentação, Palavras-chave e True/False/Null, Declarações de ‘use’, Extends e Implements . . .
PSR-3: log, Classes helper e interfaces, Mensagem
PSR-4: especificação para as classes de carregamento automático de caminhos de arquivo.

Por enquanto são esses.

Um bom Artigo sobre PSR(em prática):
http://blog.erikfigueiredo.com.br/padrao-psr-0-de-desenvolvimento-php-criar-um-autoloader/

Repositorio no GitHub para acompanhar e contribuir:
https://github.com/enricopvarella/fig-standards/tree/master/accepted/pt-br

Já comecei a utilizar e achei muito bom, um pouco chato no começo.

PHP tem o seu padrão, basta seguir 🙂 🙂

Imagem

att

Alefe Variani

 

 

Entenda sobre o Scrum – Metodologia Ágil.

Standard

Muito utilizado atualmente no gerenciamento de projetos (não só projetos de software). Tem como foco agilidade e flexibilidade no desenvolvimento.

Imagem demonstrativa de como funciona o Scrum:

Imagem

Seu primeiro conceito é:

Product Backlog – Que é basicamente uma lista de todos os requisitos do produto. Que é definido pelo Product Ower que é o cliente responsável por definir qual são as prioridade de desenvolvimento.

A partir dai o SCRUM Master que é o responsável pelo  SCRUM Team (time de desenvolvedores),  a pessoa que está sempre ligada com o Product Ower para possíveis mudanças e geralmente o cara que mais entende sobre o Scrum e que dará suporte, apoio para que o time continue nos trilhos.

Depois de ser definidos os requisitos o SCRUM Master começa um Sprint que é um das varias etapas que podem ter o produto em desenvolvimento, onde é definido o tempo do Sprint.

Dentro do Sprint tem uma reunião diária, que deve ser feita todos os dias, no inicio do trabalho. Todo o time deve responder de forma resumida essas 3 perguntas:

O que eu fiz ontem?

O que eu vou fazer hoje?

O que esta me impedindo ou qual a dificuldade que estou tendo?

No final de cada Sprint deve-se fazer um retrospecto do sprint feito, vendo no que pode ser melhorado ou ajuntado.

A ideia é em todo final de sprint o  SCRUM Master e  SCRUM Master apresente o protótipo parcial feito até o momento, aproveitando e tirando possíveis duvidas e pensando o novo Sprint.

Uma dica que é muito útil, mas que não faz parte do Scrum é na hora de definir um Sprint. O SCRUM Master junto SCRUM Team podem definir e dividir as tarefas do Sprint para o time de desenvolvimento, usando um quadro dividido em 3 colunas

Tarefas para fazer – Tarefas sendo feitos – Tarefas feitas(testar).

Exemplo na imagem a baixo;

Imagem

Assim cada desenvolvedor pega um tarefa coloca seu nome e deixa no quadro em seu determinado estado, com isso o SCRUM Master terá maior controle do sprint sendo feito.

. . .

Claro que exitem outro conceitos do Scrum que não foi abordados aqui, mas cabe a cada um conhecer e se aprofundar nesta metodologia fácil de utilizar, que virou modinha aqui no Brasil.

Nada precisa ser seguido a risca, depende do time escolher as melhores praticas e modelar seu próprio Scrum a partir de outra metodologias 🙂

Dicas, sugestões, criticas, erro são bem-vindos.

Valeu

Att

Alefe Variani