como - php linux
¿Es la pila LAMP apropiada para uso empresarial? (21)
"pero donde se trata de una plataforma central para sistemas como CRM y recursos humanos, así como para sitios web internos y externos"
Primero, encuentre una aplicación LAMP CRM o HR.
Luego encuentre un cliente para la aplicación LAMP CRM o HR.
Lamentablemente, no hay muchos ejemplos del ítem 1. Por lo tanto, su caso está probado. No puede utilizarse para aplicaciones empresariales porque, actualmente, no hay ninguna de las aplicaciones a las que llama "empresa".
Sus otros puntos, sin embargo, son muy interesantes.
Se considera que Linux no es tan compatible como Unix, Solaris o servidores de Windows . Creo que Red Hat se opondría fuertemente a esto. Llámalos. Creo que harán un discurso de venta muy persuasivo. Lee sus historias de éxito
Apache es más difícil de configurar y mantener que los servidores web como BEA WebLogic o IIS . ¿Por quién? ¿Administradores de sitios web de Apache? ¿O a los administradores de sitios web de IIS? Esto es completamente subjetivo.
MySQL es una base de datos "no lista para horario central" . Tómelo con Sun Microsystems. Creo que se opondrían firmemente a esto. Llámalos. Creo que harán un discurso de venta muy persuasivo. Lee sus historias de éxito
PHP / Ruby on rails están optimizados para CRUD, y ambos se están ejecutando lentamente . Podría ser cierto Java y Python pueden ser más rápidos. PHP y Ruby no son la última palabra en LAMP.
¿La pila LAMP (Linux, Apache, MySQL, PHP / Ruby / Python) es apropiada para uso empresarial?
Para ser claros, me refiero a "empresa", una empresa grande o muy grande, donde la seguridad, la solidez, la disponibilidad de conjuntos de habilidades, el costo total de propiedad (TCO), la escalabilidad y la disponibilidad de herramientas son consideraciones clave. Dicho de otra manera, una empresa que busca la adopción externa de marcos / arquitectura: algo omnipresente se verá como más "válido" que algo exótico / esotérico en este tipo de entorno.
He visto casos de uso donde Oracle, IBM y Sun han implementado sistemas en la pila LAMP para varias empresas. También he visto ejemplos en los que sitios web como yellowpages.com (Ruby on rails) y Facebook (php) se basan en él. Sin embargo, ninguno de estos ejemplos es exactamente lo que estoy buscando.
Estoy tratando de encontrar ejemplos en los que es un estándar empresarial en un banco muy grande (Ie, Citigroup), una compañía de telecomunicaciones (es decir, AT & T) o un fabricante (es decir, Procter and Gamble). Para ser claros, no busco un ejemplo en el que se use en un sentido limitado (como en JPMorgan Chase), pero donde se trata de una plataforma central para sistemas como CRM, sistemas de fabricación o gestión de recursos humanos, así como para y sitios web externos.
La percepción que he visto hasta ahora es que las aplicaciones creadas en la pila LAMP funcionan más lentamente y son menos flexibles. Algunos de los argumentos que he escuchado son:
Se considera que Linux no es tan compatible como Unix, Solaris o servidores de Windows.
Apache es más difícil de configurar y mantener que los servidores web como BEA WebLogic o IIS.
MySQL es un DB "no preparado para horario de máxima audiencia" para aficionados, y no un competidor para SQL Server u Oracle (aunque PostgreSQL parece tener una reputación de ser más robusto).
PHP / Ruby on rails están optimizados para CRUD (operaciones de creación, lectura, actualización y eliminación). Aunque esto es una ventaja cuando se crean aplicaciones web con uso intensivo de CRUD, ambos funcionan más lentamente que Java / Java EE o C # (que son ambos estándares comunes de Enterprise). Además, muchas aplicaciones y sistemas (como los sistemas de fabricación) tienen una gran cantidad de funcionalidad que no es CRUD que puede ser más difícil de construir con PHP o Ruby, o incluso con Python.
¿Puede alguien proporcionar argumentos para apoyar o refutar la idea de que la pila LAMP sea apropiada para la empresa?
¡Gracias!
KA
ACTUALIZACIÓN: Algunas veces, la pila LAMP es apropiada para uso empresarial: blogs orientados externamente
Creo que el primer criterio debe ser el nivel de habilidad de tu equipo, el nivel de comodidad, pero asegúrate de que las decisiones de la plataforma funcionen bien con ellos. Decida lo que decida, piense en la escalabilidad y la mantenibilidad de su código. Las herramientas son increíbles sin importar la pila que elijas.
Yo personalmente lo dividiría en 3 pilas-
La pila de Java donde tiene Solaris o Enterprise Linux (RedHat) con Weblogic / Websphere / Tomcat, etc. y Java Enterprise junto con las tecnologías de Hibernate, Spring, etc. La mayoría optaría por Oracle como DB.
La pila de Microsoft con algún código abierto si es necesario Win Server - IIS - .net / C # (ASP.net, etc.) - NHibernate, NUnit (prueba de unidad) etc. Lo más probable es que desee utilizar SQL Server como DB
Ninguno de los anteriores apila con Enterprise Linux ejecutando todo un buffet de cosas de código abierto como MySQL (ahora bajo el dominio de Sun, así que se puede ver seriamente), Apache (hay gurús de apache), Ruby (no es mi elección personal) / PHP (buena suerte) / Python (me gusta porque es un lenguaje maduro). Defendería python o ruby desde el punto de vista del código de administración. Quizás para algunos podría ser PHP ... no me gusta.
Creo que encontrará que muchas empresas usan servidores Linux, a menudo soportados por Redhat, Novell o IBM, y que Apache también se usa comúnmente.
Pero muchas empresas tienden a utilizar bases de datos como Oracle o IBM DB2 en lugar de ofertas de código abierto, aunque hay muchas empresas que realmente no necesitan el tipo de poder que esos sistemas ofrecen y podrían salirse con la suya con MySQL o PostgreSQL.
Y para el lenguaje del servidor web, creo que puedes usar casi cualquier cosa. Sin embargo, si usa Apache probablemente sea más fácil usar PHP, Ruby o Python, mientras que si usa IIS o Weblogic o Domino será más fácil hacerlo en Java / C #.
Linux / Apache está reforzado, delgado y cada uno viene con mucha gente (por el precio correcto por supuesto) que proporcionará soporte, muchas herramientas útiles, muchas en niveles excepcionalmente altos de utilidad que trabajan con ellas y que se han construido sobre ellas. .
Sin embargo, no estoy seguro de los otros dos. En particular, MySQL parece haber empeorado de forma extraña desde que fueron adquiridos por Sun, al contrario de las publicaciones en este hilo que sugieren que Sun puede ser una buena influencia:
Linux se usa mucho. Apache y Tomcat se usan mucho. MySQL puede ser robusto ahora. Yo usaría PostgreSQL en su lugar. Los bancos usarán Oracle, pero hay un buen soporte para Java y Tomcat allí. PHP se usa mucho, pero muchas compañías grandes preferirían Java.
Es mejor que discutas por una versión de Linux, (posiblemente compatible comercialmente) de Tomcat, Java, Tomcat | Oracle | MSSQL, en mi opinión.
Necesitará un administrador de sistemas Linux, especialmente a medida que aumente el número de servidores, aunque estoy seguro de que puede obtener uno de tiempo parcial antes de que se presente ese momento. Si la compañía ya tiene administradores de sistemas de Windows, argumentar a favor de Linux será difícil.
OMI no hay buenos argumentos generales contra Linux y Apache; Desde luego, puede obtener soporte a nivel empresarial para Linux si está dispuesto a pagar por ello (y una buena aproximación de forma gratuita si está dispuesto a seguir las reglas de la comunidad). Y Apache no es tan difícil de configurar a menos que necesite sus características más complejas, lo que es poco probable en un servidor de aplicaciones.
Ciertamente se puede argumentar contra MySQL ya que algunas de las características más importantes con respecto a la seguridad de los datos se han agregado recientemente. Si le preocupa eso, use PostgreSQL en su lugar.
En cuanto al idioma en el que escribe su aplicación: PHP definitivamente ha demostrado ser capaz de ejecutar sistemas extremadamente grandes y complejos; Me preocuparía más la facilidad de mantenimiento que el rendimiento. Y Ruby on Rails está "optimizado para CRUD" solo en la medida en que una simple aplicación de Internet CRUD se puede escribir en poco tiempo (literalmente minutos), pero eso no significa que de alguna manera sea menos adecuada para aplicaciones más complejas, solo que tomará mucho más tiempo (aún menos que con muchos otros idiomas)
Personalmente, no veo a Linux como menos compatible que el otro sistema operativo mencionado; de hecho, los proveedores de hardware suelen admitir Linux sobre cualquier otro sistema operativo (excepto Windows, que en general admiten bastante bien siempre que utilice distribuciones de uso común).
Siempre que no use un sabor extraño (Sugerencia: simplemente use RHEL o Centos, que es su equivalente gratuito), Linux es muy compatible.
MySQL puede tener algunas deficiencias, pero en mi opinión tiene muchas fortalezas; lo usamos a gran escala en formas no previstas, pero todavía funciona bastante bien en general (la mayoría de los problemas se deben a que nuestras versiones están desactualizadas o mal configuradas).
Lo que "P" representa en LAMP es discutible. Siento que PHP no está listo para la empresa, ya que tiene muchas deficiencias individuales (por ejemplo, manejo pobre de unicode, espacios de nombres, API incoherentes, sintaxis inconsistente, compatibilidad con versiones anteriores deficientes, funcionalidad duplicada / obsoleta) que se suman a la dificultad para implementar un sistema mantenible.
Pero dado un equipo con la experiencia adecuada, incluso si elige PHP, puede usarse para crear una aplicación de muy alta calidad.
Redhat e IBM brindan total soporte para Linux, Sun compró MySQL, Yahoo usa Php, numerosas compañías usan una pila LAMP, pero muchas usan partes.
Si contratas idiotas para implementarlo, C ++ y Oracle no podrán escalar. Si contratas personas que son inteligentes y hacen las cosas, PHP y MySQL se escalarán muy bien.
El mismo argumento vale para la seguridad y la solidez.
Facebook, Digg, partes de Yahoo se ejecutan en PHP. Por supuesto, contratan muchos programadores de doctorado.
Solo quiero agregar que he sido testigo muchas veces de que los clientes solo se sienten cómodos una vez que entregan dinero en serio por alguna solución, incluso si hace que la integración empresarial sea aún más difícil, a pesar de los argumentos que traiga a la mesa.
estrictamente una opinión subjetiva, pero personalmente encuentro que MySQL y, en menor medida, PHP son una debilidad, pero ciertamente hay muchas personas en desacuerdo y grandes compañías que se hicieron LAMP.
Prefiero ver que Postgres o incluso SQLite eliminen fragmentos del mercado de MySQL, y me gustaría ver más aplicaciones basadas en mono o jsp o cocoon. Supongo que LAMP es un poco demasiado específico para un término general. :)
Mi 2c:
Linux: desde que salió kernel 2.6, diría que es definitivamente un SO de alta calidad. La versión 2.4 no estaba allí y 2.2 era una broma, pero 2.6 es realmente bueno. Sin embargo, ten cuidado con una elección de distribución. En mi experiencia, RedHat / CentOS es muy bueno, y aparentemente Debian (¡original, no Ubuntu!) Puede configurarse muy bien si tienes un buen administrador. Mi experiencia con OpenSUSE no fue muy buena.
Apache: No lo he usado, pero no veo por qué sería un problema.
MySQL: este es el punto más débil de la pila. No voy a entrar en detalles aquí - mire los comentarios en reddit.programming si está interesado. Mejor mira en PostgreSQL.
PHP / Perl / Ruby / Python: He trabajado con Perl y en menor medida con Python. Probablemente estén bien para aplicaciones basadas en web donde la mayor parte del trabajo lo realiza el servidor web y el DBMS de todos modos. Sin embargo, prefiero el sistema de tipo estático y prefiero elegir Java / C # para una aplicación empresarial y C ++ para la programación del sistema.
Solo pensé en agregar otro sitio web a la lista de aquellos que funcionan con LAMP - Wikipedia. Séptimo sitio web más grande del mundo, escrito completamente en PHP y se ejecuta en MySQL, y solo tienen dos o tres desarrolladores pagados. Por supuesto, tienen algo de ayuda de voluntarios, pero no es mucho, y está bien escalado. No sé si realmente los llamaría ''empresa'', pero para un sitio web tan grande y popular, parece haberlo hecho bien para ellos mismos.
Se considera que Linux no es tan compatible como Unix, Solaris o servidores de Windows.
Como han dicho otros arriba, llame a Red Hat y estoy seguro de que mendigarán. Y la cantidad de soporte disponible para Linux absolutamente gratis es sorprendente.
Apache es más difícil de configurar y mantener que los servidores web como BEA WebLogic o IIS.
Eso depende de a quién le preguntes. Las personas que generalmente administran servidores IIS probablemente lo verán de esta manera. Las personas que generalmente administran Apache no lo harán. Depende de a quién contrates, y si tu stack es LAMP, no querrás contratar personas sin ninguna experiencia Apache.
Supongo que las grandes aplicaciones CRM comerciales y de recursos humanos podrían estar sesgadas hacia la entrega de grandes productos RDBMS comerciales como base para sus productos. Si nada más, estoy seguro de que prefiero unirme contra una amenaza común.
Y les cuesta más justificar las tarifas de licencia y soporte si integran productos que no las tienen.
Si es lo suficientemente bueno para Google, créame, es lo suficientemente bueno para usted.
Me gustaría sugerir que identifiquemos los requisitos de escalabilidad de los sistemas Enterprise y cómo difieren en comparación con las aplicaciones web. Mire algunos de los sistemas más escalables como Wikipedia, Flickr, Wordpress, Facebook, MySpace y muchos otros. Verá la pila LAMP allí. Soy más un fanático de Python (ya que siento que el lenguaje tiene una sensación más limpia) pero escucho a expertos como Cal Henderson (Flickr) que escribió un libro sobre escalabilidad al hablar sobre cómo escaló un banco de servidores MySQL.
¿Cuáles son las características esenciales de un sistema empresarial?
El soporte, la disponibilidad de experiencia, la estabilidad de la plataforma / lenguaje probablemente cuenten.
Pero LAMP tiene otras características como un desarrollo más rápido, una extensibilidad más fácil, muchas bibliotecas disponibles para su reutilización, varias historias documentadas de escalabilidad, marcos web en proceso de maduración.
Aquí hay un par de consejos para construir sistemas escalables (estoy hablando de Web Scale). Siempre me pregunté a la luz de toda esta evidencia, por qué la percepción de que LAMP no está listo para las aplicaciones de Enterprise sigue apareciendo.
En cuanto a Apache, cada estudio de Netcraft muestra una historia de adopción muy diferente. Por la gran cantidad de servidores, puede haber más personas con conocimiento para configurar, ajustar y ampliar el servidor web.
Arquitecturas web escalables. Consulte la cuota de mercado de todos los servidores de agosto de 1995 a enero de 2009.
Tienes algunos mitos realmente malos en tu publicación:
Mitos de JavaEE: Servidores de aplicaciones más fáciles de configurar que Apache, no, apache es más fácil. -Usted implica que solo la solución completa de JavaEE es empresarial, no.
Mitos CRUD: -CRUD es más lento que JavaEE? WTF? POJO y EJB están utilizando CRUD. El factor limitante no es crud, su rendimiento del servidor
Hay 3 áreas limitantes de cuello de botella sin importar la tecnología, incluso la implementación del servidor MS, la capa de persistencia y la capa de aplicación. La tecnología elegida no es el factor de velocidad, ya que puede intercambiar ventajas en una capa por desventajas en la otra capa. Por ejemplo, podríamos spee duplicar Java utilizando el almacén de documentos en lugar de DB normal.
La mayoría de las nuevas implementaciones de Rails utilizan servidores que no son Apache que son más rápidos por un factor de 3 a 5 que Apache ... incluso un servidor Apache bien afinado puede superar a algunos stacks javaEE ... solo pregúntele a yahoo ya que usan Symfony en algunas de sus propiedades.
Algo omnipresente se verá como más "válido" que algo exótico / esotérico en este tipo de entorno.
Aunque personalmente no recomendaría PHP debido a las muchas fallas en el lenguaje, sin duda es omnipresente. Con la llegada del pasajero de Fusion, el soporte de Rails entre las empresas de hosting compartido también está creciendo muy rápidamente. Le doy otro año o 2 como mucho antes de que el 90 +% de las cuentas de alojamiento compartido admitan los rieles de fábrica. Si eso no es ubicuo, ¿qué es?
Se considera que Linux no es tan compatible como Unix, Solaris o servidores de Windows.
Si esto le molesta, compre soporte de RedHat, o instale Solaris y compre soporte de Sun. Ambos le darán el apoyo tan bueno como sea probable que Microsoft
Apache es más difícil de configurar y mantener que los servidores web como BEA WebLogic o IIS.
No puedo hablar por BEA WebLogic, pero habiendo configurado Apache, IIS y Tomcat, Apache es lo más fácil de entender, y para encontrar ejemplos y documentación para un largo camino.
MySQL es un DB "no preparado para horario de máxima audiencia" para aficionados, y no un competidor para SQL Server u Oracle.
¿Oh enserio? . Usted debe hacer que su misión sea decirle a la NASA, Google, CERN, Reuters, etc. que todos están usando una base de datos de aficionados que no está lista para el horario estelar.
PHP / Ruby on Rails están optimizados para CRUD, y ambos funcionan más lentamente que Java / Java EE o C # (que son ambos estándares comunes de Enterprise).
Hay 2 cosas aquí:
Optimizado para CRUD: esto es totalmente irrelevante.
Rails y algunos de los frameworks python / php están optimizados para aplicaciones CRUD. Muchos de los frameworks C # / Java también están optimizados para aplicaciones CRUD. Sin embargo, si la aplicación que está creando es una aplicación CRUD (y el 99% de las aplicaciones web lo son), ¿no es esto una buena cosa?
Si no está compilando una aplicación CRUD, hay muchos frameworks no crud optimizados en ruby / python / php / java / C #. Ganancia neta: nadie (por lo tanto, es irrelevante)
Realice una ejecución más lenta que Java / C #: sin duda, esto es cierto, pero tampoco importa. Para un sitio de poco tráfico la diferencia de rendimiento no va a ser nada, y para un sitio de alto tráfico, su cuello de botella será la base de datos, ya sea MySQL, Oracle o lo que sea.
Lo que compensa por todo esto es el tiempo de desarrollo. Una vez que hayas usado todos estos consejos para convencer a tu jefe de que no perderás nada utilizando LAMP, si crunch los números y les muestras que va a tomar 6 meses-hombre para construir el sitio en Java , y solo 3 para construirlo en ruby / python, entonces eso es realmente a lo que se reduce.
Creo que no es que la tecnología sea prematura o algo que haga que grandes empresas como AT & T sigan adelante con una implementación completa a nivel empresarial. Estas compañías tienen un presupuesto tan grande para TI que pasa lo último que tendrían en mente es gastar más en la personalización y la mejora requerida en los técnicos de código abierto para satisfacer sus necesidades comerciales.
Entonces, lo que buscan (que proviene de mi experiencia de consultoría) es comprar y ejecutar el paquete de productos y no tienen que gastar más en la parte de investigación y pirateo. Las empresas que utilizan la creación de código abierto han desarrollado sus propios grupos de soporte a nivel mundial para atender las demandas de soporte, que las grandes empresas no están dispuestas a hacer. Necesitan cosas rápidas y seguras, y pueden pagar.
Hay dos problemas principales para las grandes empresas que utilizan pilas LAMP:
- TCO : teniendo en cuenta que LAMP básicamente es gratis, las empresas aún logran un menor costo total de operación con otras soluciones comerciales
- Compatibilidad : las empresas no tienen problemas para pagar el dinero extra para obtener soporte profesional las 24 horas de sus proveedores comerciales
El motivo por el que no se encuentran las aplicaciones empresariales basadas en LAMP no es porque no sean de nivel empresarial, sino que en mi opinión son completamente diferentes. Muchos de los grandes jugadores usan LAMP o similar. Facebook y MySpace vienen inmediatamente a la mente. Entonces, claramente no es un problema de escala y perf .
Dicho esto, la razón por la que me parece que no hay ninguna aplicación empresarial desarrollada en LAMP es su intrínseca naturaleza abierta. No quiero construir un módulo actuarial como un archivo PHP porque cualquiera puede robar la lógica. Por otro lado, si tengo una DLL, puedo conservar el control. No encontrarás muchas aplicaciones de 30 versiones compiladas en PHP por esta misma razón, pero es mucho más fácil lograr ese tipo de protección con, por ejemplo, ASP.NET.