Diferència entre revisions de la pàgina «Desplegament d'aplicacions web»
(etiquetes #fpinfor) |
|||
(Hi ha 12 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
+ | <nowiki>#FpInfor #DawMp08 | ||
+ | #DawMp08Uf01 #DawMp08Uf02 #DawMp08Uf03 #DawMp08Uf04 | ||
+ | </nowiki> | ||
+ | |||
Continguts per l'assignatura de DAW M8 Desplegament d'aplicacions web. | Continguts per l'assignatura de DAW M8 Desplegament d'aplicacions web. | ||
Línia 5: | Línia 9: | ||
== UF1: Servidors web i de transferència de fitxers == | == UF1: Servidors web i de transferència de fitxers == | ||
− | Introducció: | + | Introducció i teoria: |
− | * [[ | + | * [[Web technology overview]] |
+ | * [[WWW History]] | ||
* [[Encriptació]] (teoria): Seguretat i connexió remota. Xifratge i sistemes de clau compartida i de clau pública/privada. | * [[Encriptació]] (teoria): Seguretat i connexió remota. Xifratge i sistemes de clau compartida i de clau pública/privada. | ||
+ | * [http://es.wikipedia.org/wiki/Modelo_OSI Model OSI de protocols de comunicació] (wikipedia) | ||
+ | |||
+ | === NF1: Accés remot i servidors al núvol === | ||
+ | * [[Comandes Linux per xarxes]] | ||
* [[Exercici SSH]]: la base per treballar amb servidors remots. | * [[Exercici SSH]]: la base per treballar amb servidors remots. | ||
− | |||
* [[AWS: Amazon Web Services]]: configura el teu VPS (Virtual Private Server) | * [[AWS: Amazon Web Services]]: configura el teu VPS (Virtual Private Server) | ||
− | |||
− | Servidor web | + | === NF2: Servidor web === |
* [[Apache2 en GNU/Linux]]. Configura diversos dominis en una màquina (virtual hosts). | * [[Apache2 en GNU/Linux]]. Configura diversos dominis en una màquina (virtual hosts). | ||
* Autenticació Apache | * Autenticació Apache | ||
* Protocols segurs: | * Protocols segurs: | ||
− | ** [[Apache amb SSL (HTTPS)]] | + | ** [[HTTPS amb Let's Encrypt]] |
+ | ** <strike>[[Apache amb SSL (HTTPS)]]</strike> No funciona des de 2017, l'empresa ha estat penalitzada per Google | ||
** [http://www.cacauet.org/alumnes/index.php Certificats_Autofirmats_amb_Apache2_i_openSSL Certificats autofirmats]. | ** [http://www.cacauet.org/alumnes/index.php Certificats_Autofirmats_amb_Apache2_i_openSSL Certificats autofirmats]. | ||
− | * [[Apache i DNIe]]. Ens caldrà habilitar el servidor HTTPS i crear els certificats. | + | * [[Apache i DNIe]]. Ens caldrà habilitar el servidor HTTPS i crear els certificats prèviament. |
+ | === NF3: Servidors de transferència d'arxius === | ||
Servidors de transferència de fitxers (FTP): | Servidors de transferència de fitxers (FTP): | ||
* [[Practica VSFTPD]]: Very Secure FTP Daemon en GNU/Linux | * [[Practica VSFTPD]]: Very Secure FTP Daemon en GNU/Linux | ||
* [[Practica PROFTPD]]: un altre servidor per GNU/Linux | * [[Practica PROFTPD]]: un altre servidor per GNU/Linux | ||
− | + | === Per saber més === | |
* [[IIS amb PHP]]. Habilitarem el servidor web IIS (Internet Information Services) en Windows 2008 Server i habilitarem el PHP. | * [[IIS amb PHP]]. Habilitarem el servidor web IIS (Internet Information Services) en Windows 2008 Server i habilitarem el PHP. | ||
+ | * [https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04 NGINX en Ubuntu], el nou servidor web de moda. Resulta més lleuger que l'Apache i s'utilitza molt com a HTTP proxy i balancejador de càrrega. | ||
* FTP en Windows 2008: | * FTP en Windows 2008: | ||
− | ** | + | ** Integrat en IIS |
** Filezilla Server | ** Filezilla Server | ||
Línia 36: | Línia 46: | ||
Els servidors d'aplicacions, juntament amb els ''frameworks'' ens permeten separar el codi de l'administració de la infraestructura i la seva escalabilitat (administració, servidors, instàncies, BBDD, usuaris, permisos, etc.). | Els servidors d'aplicacions, juntament amb els ''frameworks'' ens permeten separar el codi de l'administració de la infraestructura i la seva escalabilitat (administració, servidors, instàncies, BBDD, usuaris, permisos, etc.). | ||
− | El | + | El següent diagrama del ''stack'' de desplegament per a disposar d'una aplicació web en marxa resulta prou aclaridor. A més, ens indica en cada cas, on arriba la responsabilitat de gestió l'usuari: |
+ | |||
+ | [[Fitxer:xaas.png|600px]] | ||
+ | |||
+ | Font: http://blog.brightpattern.com/blog/clearest-explanation-yet-of-saas-paas-iaas | ||
+ | |||
+ | Resumint, tenim aquests models de treball: | ||
+ | * '''''On-premises''''': maquinari a l'empresa. | ||
+ | * '''IaaS''' o Infraestructure as a Service: per ex. Amazon Web Services | ||
+ | * '''PaaS''' o Platform as a Service: per ex. Heroku, Openshift, AWS Lambda | ||
+ | * '''SaaS''' o Software as a Service: per ex. www.wordpress.com | ||
+ | |||
+ | El model [https://en.wikipedia.org/wiki/Platform_as_a_service PaaS (Platform as a Service)] és el concepte clau que ens interessa en aquesta unitat formativa. La idea és desenvolupar l'aplicació i fer el desplegament sense haver de mantenir la infraestructura necessària típica (servidor web, base de dades, etc.). El proveïdor del PaaS ens proporciona eines per desenvolupar el software (normalment amb algun ''framework'') i, sobretot, per desplegar-la sobre la seva infraestructura. | ||
− | Pels programadors (particularment al treballar en web) és un model molt interessant per alliberar-nos de la feina de manteniment del sistema. | + | Pels programadors (particularment al treballar en web) és un model molt interessant per alliberar-nos de la feina de manteniment del sistema i recursos. |
En aquest curs veurem: | En aquest curs veurem: | ||
− | * [[ | + | * Servidors d'aplicacions al núvol: |
− | * [[Tomcat]]: servidor d'aplicacions Java (servlets, JSP) | + | ** [[Heroku]] |
+ | * Servidors d'aplicacions en servidor propi: | ||
+ | ** [[Tomcat]]: servidor d'aplicacions Java (servlets, JSP) | ||
+ | ** [[Servlets]]: aplicacions web en Java sobre el Tomcat. | ||
+ | === Per saber més === | ||
+ | '''[[Docker]]''' és una nova tecnologia de CONTENIDORS que pot comportar un gran canvi de paradigma fort a l'hora de desplegar aplicacions web. S'assemblaria força al concepte de màquines virtuals amb sistemes independents pel què fa a filesystem, llibreries, etc., amb IP pròpia, però que comparteixen el kernel amb la màquina real. | ||
+ | * [[Docker]] a cacauet.org | ||
+ | * [http://docker.io Docker.io, pàgina oficial] | ||
+ | * [http://www.muylinux.com/2016/04/19/tutorial-docker Tutorial Docker] | ||
− | + | Altres opcions interessants de PaaS: | |
− | Altres opcions interessants: | + | * [[Desplegament amb OpenShift]]: PaaS de Red Hat. Requereix coneixement de Git. Ha canviat molt, l'article està obsolet. |
− | * [ | ||
* [http://docs.aws.amazon.com/lambda/latest/dg/welcome.html AWS Lambda], el PaaS de Amazon Web Services (AWS). | * [http://docs.aws.amazon.com/lambda/latest/dg/welcome.html AWS Lambda], el PaaS de Amazon Web Services (AWS). | ||
* [https://cloud.google.com/appengine Google App Engine (GAE)], el PaaS de [https://cloud.google.com/ Google Cloud]: | * [https://cloud.google.com/appengine Google App Engine (GAE)], el PaaS de [https://cloud.google.com/ Google Cloud]: | ||
Línia 57: | Línia 86: | ||
* [[WSGI]]: especificació per enllaçar aplicacions al nostre servidor web. O sigui, com lligar Apache i aplicacions web en Python | * [[WSGI]]: especificació per enllaçar aplicacions al nostre servidor web. O sigui, com lligar Apache i aplicacions web en Python | ||
* [https://infla.cat/wiki/Django:_desplegament Desplegament de Django]. En aquest article trobareu com desplegar aplicacions Django. | * [https://infla.cat/wiki/Django:_desplegament Desplegament de Django]. En aquest article trobareu com desplegar aplicacions Django. | ||
+ | * [https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-14-04 Gunicorn amb Flask framework] : Un estupendu tutorial de Digital Ocean per instal·lar les apps en Ubuntu. | ||
<br> | <br> | ||
Línia 67: | Línia 97: | ||
*Autenticació en directoris: LDAP | *Autenticació en directoris: LDAP | ||
** [[Servidor LDAP en Debian/Ubuntu]] | ** [[Servidor LDAP en Debian/Ubuntu]] | ||
+ | * Desplegament d'apps web amb ''frameworks'': | ||
+ | ** [[Laravel#Laravel_en_producció|Laravel en producció]] | ||
+ | ** [[Django en producció]] | ||
<br> | <br> |
Revisió de 08:23, 25 jul 2018
#FpInfor #DawMp08 #DawMp08Uf01 #DawMp08Uf02 #DawMp08Uf03 #DawMp08Uf04
Continguts per l'assignatura de DAW M8 Desplegament d'aplicacions web.
Per seguir el curs és interessant (si no imprescindible) utiltizar un servidor públic. És molt convenient fer-nos un compte de AWS: Amazon Web Services amb el que podem gaudir d'un any de servidor gratuïtament.
Contingut
UF1: Servidors web i de transferència de fitxers[modifica]
Introducció i teoria:
- Web technology overview
- WWW History
- Encriptació (teoria): Seguretat i connexió remota. Xifratge i sistemes de clau compartida i de clau pública/privada.
- Model OSI de protocols de comunicació (wikipedia)
NF1: Accés remot i servidors al núvol[modifica]
- Comandes Linux per xarxes
- Exercici SSH: la base per treballar amb servidors remots.
- AWS: Amazon Web Services: configura el teu VPS (Virtual Private Server)
NF2: Servidor web[modifica]
- Apache2 en GNU/Linux. Configura diversos dominis en una màquina (virtual hosts).
- Autenticació Apache
- Protocols segurs:
- HTTPS amb Let's Encrypt
Apache amb SSL (HTTPS)No funciona des de 2017, l'empresa ha estat penalitzada per Google- Certificats_Autofirmats_amb_Apache2_i_openSSL Certificats autofirmats.
- Apache i DNIe. Ens caldrà habilitar el servidor HTTPS i crear els certificats prèviament.
NF3: Servidors de transferència d'arxius[modifica]
Servidors de transferència de fitxers (FTP):
- Practica VSFTPD: Very Secure FTP Daemon en GNU/Linux
- Practica PROFTPD: un altre servidor per GNU/Linux
Per saber més[modifica]
- IIS amb PHP. Habilitarem el servidor web IIS (Internet Information Services) en Windows 2008 Server i habilitarem el PHP.
- NGINX en Ubuntu, el nou servidor web de moda. Resulta més lleuger que l'Apache i s'utilitza molt com a HTTP proxy i balancejador de càrrega.
- FTP en Windows 2008:
- Integrat en IIS
- Filezilla Server
UF2: Servidors d'aplicacions web[modifica]
Els servidors d'aplicacions, juntament amb els frameworks ens permeten separar el codi de l'administració de la infraestructura i la seva escalabilitat (administració, servidors, instàncies, BBDD, usuaris, permisos, etc.).
El següent diagrama del stack de desplegament per a disposar d'una aplicació web en marxa resulta prou aclaridor. A més, ens indica en cada cas, on arriba la responsabilitat de gestió l'usuari:
Font: http://blog.brightpattern.com/blog/clearest-explanation-yet-of-saas-paas-iaas
Resumint, tenim aquests models de treball:
- On-premises: maquinari a l'empresa.
- IaaS o Infraestructure as a Service: per ex. Amazon Web Services
- PaaS o Platform as a Service: per ex. Heroku, Openshift, AWS Lambda
- SaaS o Software as a Service: per ex. www.wordpress.com
El model PaaS (Platform as a Service) és el concepte clau que ens interessa en aquesta unitat formativa. La idea és desenvolupar l'aplicació i fer el desplegament sense haver de mantenir la infraestructura necessària típica (servidor web, base de dades, etc.). El proveïdor del PaaS ens proporciona eines per desenvolupar el software (normalment amb algun framework) i, sobretot, per desplegar-la sobre la seva infraestructura.
Pels programadors (particularment al treballar en web) és un model molt interessant per alliberar-nos de la feina de manteniment del sistema i recursos.
En aquest curs veurem:
- Servidors d'aplicacions al núvol:
- Servidors d'aplicacions en servidor propi:
Per saber més[modifica]
Docker és una nova tecnologia de CONTENIDORS que pot comportar un gran canvi de paradigma fort a l'hora de desplegar aplicacions web. S'assemblaria força al concepte de màquines virtuals amb sistemes independents pel què fa a filesystem, llibreries, etc., amb IP pròpia, però que comparteixen el kernel amb la màquina real.
- Docker a cacauet.org
- Docker.io, pàgina oficial
- Tutorial Docker
Altres opcions interessants de PaaS:
- Desplegament amb OpenShift: PaaS de Red Hat. Requereix coneixement de Git. Ha canviat molt, l'article està obsolet.
- AWS Lambda, el PaaS de Amazon Web Services (AWS).
- Google App Engine (GAE), el PaaS de Google Cloud:
- Zope: servidor d'aplicacions per Python
- Plone: CMS basat en Python, Zope i ZODB
- Zend, un servidor d'apps per PHP.
- WSGI: especificació per enllaçar aplicacions al nostre servidor web. O sigui, com lligar Apache i aplicacions web en Python
- Desplegament de Django. En aquest article trobareu com desplegar aplicacions Django.
- Gunicorn amb Flask framework : Un estupendu tutorial de Digital Ocean per instal·lar les apps en Ubuntu.
UF3: Desplegament d'aplicacions web[modifica]
- DNS
- Root name servers: les arrels del sistema DNS mundial.
- DNS Linux en producció
- Integració d'aplicacions web amb serveis de directori
- Autenticació en directoris: LDAP
- Desplegament d'apps web amb frameworks:
UF4: Control de versions i documentació[modifica]
Control de versions:
- Control de versions (article de teoria)
- Git: comandes
- SVN: Subversion. No el veurem en aquest curs, s'està deixant d'utilitzar ja que el Git és més modern i avantatjós.
- CVS: ídem
Testing web services:
Documentació:
- Sphinx:
- Pàgina oficial: http://sphinx.pocoo.org/
- Tutorial per un primer projecte: http://codeandchaos.wordpress.com/2012/07/30/sphinx-autodoc-tutorial-for-dummies/
- Pyramid: documentant amb Sphinx
- Doxygen
- Mercurial
- Wiki (mediawiki/trac)