Esse rápido guia tem por objetivo explanar a instalação do Apache Tomcat 6.0.20 no CentOS5.X for installing Apache Tomcat 6.0.18 on CentOS5. Tomamos por referência, as instruções disponíveis no site do próprio SO, clique aqui.
Pre-requisitos de instalação
Iremos considerar que já estão devidamente instalados e configurados o java JDK 6 Update 10 e Java Runtime Environment (JRE) 6 Update 10 binário.
Criando as variáveis de ambinete do java
# mkdir /usr/java
# cd /usr/java
instalando os binários baixados, antes porém não esqueça das permissões de execução.
# chmod +x /root/jre-6u10-linux-i586.bin
# chmod +x /root/jdk-6u10-linux-i586.bin
# ./root/jre-6u10-linux-i586.bin
# ./root/jdk-6u10-linux-i586.bin
verifique a instalação
# ls
verifique se os diretórios em /usr/java foram criados : jdk1.6.0_10 e jre1.6.0_10.
Instalação
1.Faça o Download e extração do Apache Ant (apache-ant-1.7.1-bin.tar.gz) para /usr/share
# cd /usr/share
# tar -xzf apache-ant-1.7.1-bin.tar.gz
2.Faça o Download e extração do Apache Tomcat (apache-tomcat-6.0.20.tar.gz) para /usr/share
# tar -xzf apache-tomcat-6.0.20.tar.gz
3.Crie um link simbólico para o ant
# ln -s /usr/share/apache-ant-1.7.1/bin/ant /usr/bin
4.Configura a variavel JAVA_HOME $env no arquivo catalina.sh
5.
# cd /usr/share/apache-tomcat-6.0.20/bin
# vi catalina.sh
5.Após a primeira linha, adicione o seguinte
JAVA_HOME=/usr/java/jdk1.6.0_10
6.Teste a configuração com o Tomcat
# cd /usr/share/apache-tomcat-6.0.20/bin
# ./startup.sh
7.Verifique os log de erro
# less /usr/share/apache-tomcat-6.0.20/logs/catalina.out
8.Corriga os erros, se houverem, do contrário acesse : http://localhost:8080
Inicialização automáticao do tomcat
1. Crie o seguinte script em /etc/init.d/tomcat para iniciar / parar o tomcat.
# cd /etc/init.d
# vi tomcat
2. Adicione as linhas abaixo no arquivo acima criado.
#!/bin/bash
# Nome do Serviço: tomcat
JAVA_HOME=/usr/java/jdk1.6.0_10
export JAVA_HOME
TOMCAT_HOME=/usr/share/apache-tomcat-6.0.18/bin
START_TOMCAT=/usr/share/apache-tomcat-6.0.18/bin/startup.sh
STOP_TOMCAT=/usr/share/apache-tomcat-6.0.18/bin/shutdown.sh
start() {
echo -n "Starting tomcat: "
cd $TOMCAT_HOME
${START_TOMCAT}
echo "done."
}
stop() {
echo -n "Shutting down tomcat: "
cd $TOMCAT_HOME
${STOP_TOMCAT}
echo "done."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 10
start
;;
*)
echo "Modo de uso: $0 {start|stop|restart}"
esac
exit 0
2.Modifique as permissões
# chmod 755 tomcat
3.Adicione o script para ser um serviço do sistema
# chkconfig --add tomcat
4.Verifique as modificações
# chkconfig --level 2345 tomcat on
# chkconfig --list tomcat
A saída deverá ser algo do tipo:
you should see that service using levels 2, 3 and 4:
tomcat 0:off 1:off 2:on 3:on 4:on 5:on 6:off
5.Teste o script start up/shutdown
# service tomcat start
# service tomcat stop
Por enquanto É isso ai. Boa sorte.
quarta-feira, 5 de maio de 2010
quarta-feira, 2 de dezembro de 2009
Recuperando senha do usuario postgres
Os passos os seguintes:
1) Altera o pg_hba.conf para autenticar como trust, reinicie o postgresql
2) Altere a senha da seguinte forma:
- sudo su postgres -c psql postgres (Abre o psql com usuário ‘postgres’ no banco ‘postgres’)
- ALTER USER postgres WITH PASSWORD ‘password’; (altera a senha do usuário ‘postgres’ para o que estiver entre aspas)
- \q (finaliza o psql)
3) Depois volta a configuração original.
1) Altera o pg_hba.conf para autenticar como trust, reinicie o postgresql
2) Altere a senha da seguinte forma:
- sudo su postgres -c psql postgres (Abre o psql com usuário ‘postgres’ no banco ‘postgres’)
- ALTER USER postgres WITH PASSWORD ‘password’; (altera a senha do usuário ‘postgres’ para o que estiver entre aspas)
- \q (finaliza o psql)
3) Depois volta a configuração original.
terça-feira, 11 de agosto de 2009
Integração APACHE2 + TOMCAT através do mod_jk connector
1.Introdução
Apache é um programa (software) que permite tornar um computador acessível via o protocolo HTTP, da Internet. É o servidor web mais utilizado atualmente no mundo e funciona em qualquer sistema operacional. Permite que linguagens de programação sejam agregadas a ele como módulos, o que gera mais segurança, estabilidade e performance.
TomCat é um servidor de aplicações Java para web, é um Contêiner Web. O Tomcat tem a capacidade de atuar também como servidor web/HTTP autônomo, ou pode funcionar integrado a um servidor web dedicado, como Apache httpd ou Microsoft IIS, ou ainda como parte integrante de um servidor de aplicações mais amplo, como JBoss AS, provendo os recursos de Java Servlet e JSP.
A integração do Apache com o TOMCAT é feita para que as páginas estáticas sejam executadas pelo Apache e as em JSP pelo contêiner TOMCAT, além do direcionamento das aplicações via APACHE, sendo o WebServer de acesso para as aplicações que estão no TOMCAT.
As páginas ESTÁTICAS serão executadas pelo APACHE (ganho de performance) e as páginas dinâmicas (JSP) executadas pelo contêiner TOMCAT.
A integração permite "esconder" as portas do TOMCAT, já que sua aplicação será chamada por uma URL na porta 80 e o APACHE sim, irá pegar sua aplicação no TOMCAT e mostrar.
Possibilidade de se realizar LOADBALANCER entre dois ou mais TOMCATs usando o APACHE como o WebServer que irá gerenciar essa carga e dividirá ela.
Quando o servidor é instalado, a configuração inicial do Tomcat contém um conector que recebe pedidos de HTTP utilizando AJP (Apache Jserv Protocol). Embora o Tomcat seja capaz de recebe pedidos de HTTP diretamente da rede, esse conector permite que o Tomcat receba pedidos de software em uma camada inferior. Por exemplo, o Tomcat pode receber pedidos de servidores da Web (como o Apache HTTP Server), servidores proxy e sistemas de balanceamento de carga que suportem os protocolos AJP.
O objetivo deste artigo é integrar os Servidores Apache e Tomcat, a validação deste tutorial foi feito na máquina virtual Ubuntu 8.0.Lembrando que esse tutorial pode ser utilizado para qualquer sistema operacional Linux/Unix.
2.Pré-Requisitos
Para o funcionamento da integração do TomCat com Apache que foi instalado no Ubuntu 8.0, serão necessários ter os seguintes serviços instalados:
· UBUNTU 8.0
· APACHE
· TOMCAT
· TOMCAT CONECTOR(MOD_JK)
· JDK+JRE(JAVA)
3.Instalação do Apache
Baixar o último SOURCE em www.apache.org.
Consideremos que estamos usando a versão 2.2.6 do APACHE, que está em um diretório de instalação de nosso servidor, vamos descompactar e instalar o mesmo:
# tar -xvf httpd-2.2.6.tar.gz
# cd httpd-2.2.6
# ./configure --prefix=/usr/local/apache2 --enable-ssl=/usr/local/ssl
# make
# make install
# /usr/local/apache2/bin/apachectl start
Pronto, o Apache está instalado com suporte a SSL no diretório padrão que definimos: /usr/local/apache2.
4.Instalação do TomCat e Java Baixar o último SOURCE em tomcat.apache.org/. Usar como padrão o diretório /usr/local para instalação do TOMCAT
# cd /usr/local
# tar -xvf apache-tomcat-6.0.14.tar.gz
# ln -s apache-tomcat apache-tomcat-6.0.14/
# vi /etc/profile
Adicionar as seguintes linhas no final do arquivo:
CATALINA_HOME=/usr/local/apache-tomcat
TOMCAT_HOME=/usr/local/apache-tomcat
export CATALINA_HOME TOMCAT_HOME CLASSPATH
Agora iremos instalar o JAVA, baixe a última versão do BIN JDK no site da SUN e coloque do diretório que iremos instalar ele, no caso /usr/local. Como ele será instalado com o "nome-versão", também iremos criar um LINK com o nome JAVA apontando para ele, o que também nos permite trocar de versão sem maiores problemas.
# chmod +x jdk-1_5_0_12-linux-i586.bin
# ./ jdk-1_5_0_12-linux-i586.bin
(seguir orientações da instalação - padrão, só YES e ENTER)
# ln -s java jdk1.5.0_12/
# vi /etc/profile
Adicionar as seguintes linhas no final do arquivo:
JAVA_HOME="/usr/local/java"
JRE_HOME="/usr/local/java/jre"
CLASSPATH="$JAVA_HOME:$JAVA_HOME/lib:$JRE_HOME/lib:."
MANPATH="$MANPATH:$JAVA_HOME/man"
JAVA_DOC="$JAVA_HOME/docs"
PATH="$PATH:$JAVA_HOME/bin:$JRE_HOME/bin"
export JAVA_HOME JRE_HOME CLASSPATH MANPATH JAVA_DOC PATH
Startando o Tomcat:
# /usr/local/apache-tomcat/bin/catalina.sh start
5.Integração Apache com TomCat
1º Baixar o Tomcat Connector para instalar o MOD_JK
http://archive.apache.org/dist/jakarta/tomcat-connectors/jk2/source/jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz
2º Descompactar e instalar# tar -xzvf tomcat-connectors-1.2.25-src.tar.gz
# cd tomcat-connectors-1.2.25-src
# cd native/
# ./configure --with-apxs=/usr/local/apache2/bin/apxs
# make
# make install
3º Configurar o MOD_JK
# vim /usr/local/apache2/conf/httpd.conf
Acrescentar a linha abaixo:
LoadModule jk_module modules/mod_jk.so
4º Inicializar o Apache
# /usr/sbin/apachectl start
6.Configuração do TOMCAT
1º Mudar o arquivo server.xml dentro de /usr/local/apache-tomcat/conf/
# vim /usr/local/apache-tomcat/conf/server.xml
Procurar por:
Adicionar a propriedade "jvmRoute="tomcat1"" e ficará assim:
2º Reiniciar o TOMCAT:
# /usr/local/apache-tomcat/bin/catalina.sh
7.Configuração do Apache
1º Criar dois arquivos, um para configurarmos a comunicação com o TOMCAT e outro para configurações básicas do MOD_JK.
# vim /usr/local/etc/apache2/conf/workers.properties
Adicionar o conteúdo abaixo:
#
# workers.properties
#
# In Unix, we use forward slashes:
ps=/
# list the workers by name
worker.list=tomcat1(nome configurado no arquivo server.xml do TOMCAT)
# ------------------------
# First tomcat server
# ------------------------
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost(nome do servidor onde temos o tomcat)
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=50
worker.tomcat1.cachesize=10
worker.tomcat1.cache_timeout=500
worker.tomcat1.socket_keepalive=1
worker.tomcat1.socket_timeout=300
# Specify the size of the open connection cache.
#worker.tomcat1.cachesize
#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
# ----> lbfactor must be > 0
# ----> Low lbfactor means less work done by the worker.
worker.tomcat1.lbfactor=100 //Definindo que toda a carga será usada apenas para um TOMCAT, é o nosso caso.
#
# END workers.properties
8.Configurar o arquivo tomcat.conf
# vim /usr/local/apache2/conf/tomcat.conf
--> Adicionar o seguinte conteúdo ao arquivo criado:
JkWorkersFile /usr/local/apache2/conf/workers.properties
JkLogFile /usr/local/apache2/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /examples/servlet/* tomcat1
JkMount /examples/* tomcat1
JkMount /examples/jsp/* tomcat1
JkMount /*.jsp tomcat1
9.Adicionar o arquivo "tomcat.conf" no "httpd.conf" do Apache.
# vim /usr/local/apache2/conf/httpd.conf
Adicionar a seguinte linha no arquivo:
Include conf/tomcat.conf
10.Reiniciar o APACHE # /usr/local/apache2/bin/apachectl start 11.Testando a integração
Agora ao invés de acessarmos o endereço do TOMCAT
http://localhost:8080/
Iremos acessar:
http://localhost/examples/
IMPORTANTE: Arquivo: /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 sl02.xxxx.br sl02 localhost.localdomain localhost intranet
172.18.0.29 sl09.xxxx.br sl09
Referências a:
http://www.vivaolinux.com.br/artigo/Integracao-Apache-=%3E-Tomcat/?pagina=5
http://www.vivaolinux.com.br/dica/Integracao-simples-do-Apache-2-com-Tomcat-5
Apache é um programa (software) que permite tornar um computador acessível via o protocolo HTTP, da Internet. É o servidor web mais utilizado atualmente no mundo e funciona em qualquer sistema operacional. Permite que linguagens de programação sejam agregadas a ele como módulos, o que gera mais segurança, estabilidade e performance.
TomCat é um servidor de aplicações Java para web, é um Contêiner Web. O Tomcat tem a capacidade de atuar também como servidor web/HTTP autônomo, ou pode funcionar integrado a um servidor web dedicado, como Apache httpd ou Microsoft IIS, ou ainda como parte integrante de um servidor de aplicações mais amplo, como JBoss AS, provendo os recursos de Java Servlet e JSP.
A integração do Apache com o TOMCAT é feita para que as páginas estáticas sejam executadas pelo Apache e as em JSP pelo contêiner TOMCAT, além do direcionamento das aplicações via APACHE, sendo o WebServer de acesso para as aplicações que estão no TOMCAT.
As páginas ESTÁTICAS serão executadas pelo APACHE (ganho de performance) e as páginas dinâmicas (JSP) executadas pelo contêiner TOMCAT.
A integração permite "esconder" as portas do TOMCAT, já que sua aplicação será chamada por uma URL na porta 80 e o APACHE sim, irá pegar sua aplicação no TOMCAT e mostrar.
Possibilidade de se realizar LOADBALANCER entre dois ou mais TOMCATs usando o APACHE como o WebServer que irá gerenciar essa carga e dividirá ela.
Quando o servidor é instalado, a configuração inicial do Tomcat contém um conector que recebe pedidos de HTTP utilizando AJP (Apache Jserv Protocol). Embora o Tomcat seja capaz de recebe pedidos de HTTP diretamente da rede, esse conector permite que o Tomcat receba pedidos de software em uma camada inferior. Por exemplo, o Tomcat pode receber pedidos de servidores da Web (como o Apache HTTP Server), servidores proxy e sistemas de balanceamento de carga que suportem os protocolos AJP.
O objetivo deste artigo é integrar os Servidores Apache e Tomcat, a validação deste tutorial foi feito na máquina virtual Ubuntu 8.0.Lembrando que esse tutorial pode ser utilizado para qualquer sistema operacional Linux/Unix.
2.Pré-Requisitos
Para o funcionamento da integração do TomCat com Apache que foi instalado no Ubuntu 8.0, serão necessários ter os seguintes serviços instalados:
· UBUNTU 8.0
· APACHE
· TOMCAT
· TOMCAT CONECTOR(MOD_JK)
· JDK+JRE(JAVA)
3.Instalação do Apache
Baixar o último SOURCE em www.apache.org.
Consideremos que estamos usando a versão 2.2.6 do APACHE, que está em um diretório de instalação de nosso servidor, vamos descompactar e instalar o mesmo:
# tar -xvf httpd-2.2.6.tar.gz
# cd httpd-2.2.6
# ./configure --prefix=/usr/local/apache2 --enable-ssl=/usr/local/ssl
# make
# make install
# /usr/local/apache2/bin/apachectl start
Pronto, o Apache está instalado com suporte a SSL no diretório padrão que definimos: /usr/local/apache2.
4.Instalação do TomCat e Java Baixar o último SOURCE em tomcat.apache.org/. Usar como padrão o diretório /usr/local para instalação do TOMCAT
# cd /usr/local
# tar -xvf apache-tomcat-6.0.14.tar.gz
# ln -s apache-tomcat apache-tomcat-6.0.14/
# vi /etc/profile
Adicionar as seguintes linhas no final do arquivo:
CATALINA_HOME=/usr/local/apache-tomcat
TOMCAT_HOME=/usr/local/apache-tomcat
export CATALINA_HOME TOMCAT_HOME CLASSPATH
Agora iremos instalar o JAVA, baixe a última versão do BIN JDK no site da SUN e coloque do diretório que iremos instalar ele, no caso /usr/local. Como ele será instalado com o "nome-versão", também iremos criar um LINK com o nome JAVA apontando para ele, o que também nos permite trocar de versão sem maiores problemas.
# chmod +x jdk-1_5_0_12-linux-i586.bin
# ./ jdk-1_5_0_12-linux-i586.bin
(seguir orientações da instalação - padrão, só YES e ENTER)
# ln -s java jdk1.5.0_12/
# vi /etc/profile
Adicionar as seguintes linhas no final do arquivo:
JAVA_HOME="/usr/local/java"
JRE_HOME="/usr/local/java/jre"
CLASSPATH="$JAVA_HOME:$JAVA_HOME/lib:$JRE_HOME/lib:."
MANPATH="$MANPATH:$JAVA_HOME/man"
JAVA_DOC="$JAVA_HOME/docs"
PATH="$PATH:$JAVA_HOME/bin:$JRE_HOME/bin"
export JAVA_HOME JRE_HOME CLASSPATH MANPATH JAVA_DOC PATH
Startando o Tomcat:
# /usr/local/apache-tomcat/bin/catalina.sh start
5.Integração Apache com TomCat
1º Baixar o Tomcat Connector para instalar o MOD_JK
http://archive.apache.org/dist/jakarta/tomcat-connectors/jk2/source/jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz
2º Descompactar e instalar# tar -xzvf tomcat-connectors-1.2.25-src.tar.gz
# cd tomcat-connectors-1.2.25-src
# cd native/
# ./configure --with-apxs=/usr/local/apache2/bin/apxs
# make
# make install
3º Configurar o MOD_JK
# vim /usr/local/apache2/conf/httpd.conf
Acrescentar a linha abaixo:
LoadModule jk_module modules/mod_jk.so
4º Inicializar o Apache
# /usr/sbin/apachectl start
6.Configuração do TOMCAT
1º Mudar o arquivo server.xml dentro de /usr/local/apache-tomcat/conf/
# vim /usr/local/apache-tomcat/conf/server.xml
Procurar por:
Adicionar a propriedade "jvmRoute="tomcat1"" e ficará assim:
2º Reiniciar o TOMCAT:
# /usr/local/apache-tomcat/bin/catalina.sh
7.Configuração do Apache
1º Criar dois arquivos, um para configurarmos a comunicação com o TOMCAT e outro para configurações básicas do MOD_JK.
# vim /usr/local/etc/apache2/conf/workers.properties
Adicionar o conteúdo abaixo:
#
# workers.properties
#
# In Unix, we use forward slashes:
ps=/
# list the workers by name
worker.list=tomcat1(nome configurado no arquivo server.xml do TOMCAT)
# ------------------------
# First tomcat server
# ------------------------
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost(nome do servidor onde temos o tomcat)
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=50
worker.tomcat1.cachesize=10
worker.tomcat1.cache_timeout=500
worker.tomcat1.socket_keepalive=1
worker.tomcat1.socket_timeout=300
# Specify the size of the open connection cache.
#worker.tomcat1.cachesize
#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
# ----> lbfactor must be > 0
# ----> Low lbfactor means less work done by the worker.
worker.tomcat1.lbfactor=100 //Definindo que toda a carga será usada apenas para um TOMCAT, é o nosso caso.
#
# END workers.properties
8.Configurar o arquivo tomcat.conf
# vim /usr/local/apache2/conf/tomcat.conf
--> Adicionar o seguinte conteúdo ao arquivo criado:
JkWorkersFile /usr/local/apache2/conf/workers.properties
JkLogFile /usr/local/apache2/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /examples/servlet/* tomcat1
JkMount /examples/* tomcat1
JkMount /examples/jsp/* tomcat1
JkMount /*.jsp tomcat1
9.Adicionar o arquivo "tomcat.conf" no "httpd.conf" do Apache.
# vim /usr/local/apache2/conf/httpd.conf
Adicionar a seguinte linha no arquivo:
Include conf/tomcat.conf
10.Reiniciar o APACHE # /usr/local/apache2/bin/apachectl start 11.Testando a integração
Agora ao invés de acessarmos o endereço do TOMCAT
http://localhost:8080/
Iremos acessar:
http://localhost/examples/
IMPORTANTE: Arquivo: /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 sl02.xxxx.br sl02 localhost.localdomain localhost intranet
172.18.0.29 sl09.xxxx.br sl09
Referências a:
http://www.vivaolinux.com.br/artigo/Integracao-Apache-=%3E-Tomcat/?pagina=5
http://www.vivaolinux.com.br/dica/Integracao-simples-do-Apache-2-com-Tomcat-5
domingo, 4 de maio de 2008
O uso de metodologias ágeis traz vantagens competitivas ?
Diversas metodologias aliadas ao desenvolvimento estruturado de software estabelecem e impõem um conjunto de procedimentos disciplinados, e bem definidos, com o objetivo de tornar esse processo mais eficiente e previsível. Estas metodologias, também conhecidas por metodologias de engenharia, exigem um planejamento rigoroso e detalhado de todo o processo de desenvolvimento, sendo muitas vezes criticadas por tornarem o processo lento e burocrático.
No entanto, surgiram recentemente as denominadas metodologias ágeis como resposta à insatisfação crescente em relação aos métodos tradicionais. Estes novos métodos pretendem estabelecer um compromisso viável entre extremos, onde a preocupação reside na utilização de um conjunto mínimo de processos, os suficientes para se obterem resultados satisfatórios no mais curto espaço de tempo.
Através de um processo, com ciclos constantes de inspeção e adaptação, a equipe trabalha sempre em um ambiente de melhoria continua dos processos e pessoas.
Scrum é uma metodologia ágil que busca uma forma empírica de lidar com o caos, em detrimento a um processo bem definido [Schwaber2004].
Em ambientes complexos, um processo bem definido tem sua probabilidade de sucesso drasticamente reduzida quando aplicado ao desenvolvimento de um produto. Uma das principais idéias do scrum para atacar esse problema é a implantação de um controle descentralizado que é capaz de lidar mais efetivamente com contextos pouco previsíveis [Schwaber2004].
É neste contexto que se inserem os métodos ágeis e conceitos a ele associados, os quais serão alvos de discussão nos próximos blogs.
Através de um processo, com ciclos constantes de inspeção e adaptação, a equipe trabalha sempre em um ambiente de melhoria continua dos processos e pessoas.
Scrum é uma metodologia ágil que busca uma forma empírica de lidar com o caos, em detrimento a um processo bem definido [Schwaber2004].
Em ambientes complexos, um processo bem definido tem sua probabilidade de sucesso drasticamente reduzida quando aplicado ao desenvolvimento de um produto. Uma das principais idéias do scrum para atacar esse problema é a implantação de um controle descentralizado que é capaz de lidar mais efetivamente com contextos pouco previsíveis [Schwaber2004].
É neste contexto que se inserem os métodos ágeis e conceitos a ele associados, os quais serão alvos de discussão nos próximos blogs.
Assinar:
Postagens (Atom)