SlideShare una empresa de Scribd logo
1 de 39
Agosto 2016
GO!
Meli
Go
This is our vision
Building the foundation to Build a 3B Company by FY20
Federico León
Senior Analyst
Fraud Prevention Team
Java, Groovy and Golang... developer
federico.leon@mercadolibre.com
Sobre mí
This is our vision
Building the foundation to Build a 3B Company by FY20
+ ¿Cómo empieza? ¿Por qué un nuevo lenguaje?
+ Características del lenguaje.
+ Concurrencia.
+ ¿Dónde lo aplicamos en Meli y qué resultados obtuvimos?
+ Q & A.
Agenda
Let’s
GO ( cuack )
This is our vision
Building the foundation to Build a 3B Company by FY20
¿Cómo empieza?
+ 21 de septiembre de 2007: Inicios. por Robert Griesemer, Rob Pike y Ken Thompson.
+ Principios de 2008: Se comienza el desarrollo del compilador. Proyecto part-time.
+ Mediados de 2008: Golang se convierte en un proyecto full-time.
+ Fines de 2008: Russ Cox se une al proyecto y con su experiencia ayuda a pasar Go de un
prototipo a una realidad.
+ 10 de noviembre de 2009: Proyecto público y open source.
This is our vision
Building the foundation to Build a 3B Company by FY20
¿Cómo empieza?
This is our vision
Building the foundation to Build a 3B Company by FY20
¿Por qué un nuevo lenguaje?
Código fuente en Google
+ 2.000.000.000 líneas de
código.
+ 86 TBs.
Distribuído entre 10
datacenters.
Fuente: Rachel Potvin @Scale
Engineering Conference
¿Qué alternativa elegir?
Compilación eficiente.
Ejecución eficiente.
Facilidad de programación.
Soporte MultiCore.
¿Cuál seleccionamos?
This is our vision
Building the foundation to Build a 3B Company by FY20
¿Por qué un nuevo lenguaje?
Otros problemas:
Builds lentos.
Dependencias descontroladas.
Cada programador usando un subconjunto diferente del lenguaje.
Pobre entendimiento del código, (difícil de leer, mal documentado, etc).
Duplicación de esfuerzo.
Características
This is our vision
Building the foundation to Build a 3B Company by FY20
Algunas características de Go
+ Imperativo.
+ Compilado.
+ Fuerte y estáticamente tipado.
+ Diseñado para la concurrencia.
+ Framework de testing nativo.
+ Web server integrado.
This is our vision
Building the foundation to Build a 3B Company by FY20
¿Estáticamente tipado?
This is our vision
Building the foundation to Build a 3B Company by FY20
Funciones con múltiples retornos
This is our vision
Building the foundation to Build a 3B Company by FY20
Bucles? Sólo necesitamos uno!
This is our vision
Building the foundation to Build a 3B Company by FY20
Rangos
This is our vision
Building the foundation to Build a 3B Company by FY20
Para más tarde: defer
This is our vision
Building the foundation to Build a 3B Company by FY20
Servidor web integrado
Concurrencia
“Concurrency is NOT parallelism”
Rob Pike
Heroku's Waza conference
Enero 2013
This is our vision
Building the foundation to Build a 3B Company by FY20
Primero recordemos lo siguiente:
Concurrencia
Composición de procesos ejecutándose independientemente.
Paralelismo
Ejecución simultánea de procesos, (pueden o no estar relacionados).
La concurrencia provee una forma de estructurar la solución a un determinado
problema de forma que (si se necesitara o fuera posible) podría ejecutarse en
paralelo.
This is our vision
Building the foundation to Build a 3B Company by FY20
Ejemplo: Reciclemos manuales viejos!
This is our vision
Building the foundation to Build a 3B Company by FY20
Agregamos un gopher
This is our vision
Building the foundation to Build a 3B Company by FY20
Le proveemos herramientas
This is our vision
Building the foundation to Build a 3B Company by FY20
Podríamos pensar en paralelo...
This is our vision
Building the foundation to Build a 3B Company by FY20
Otro diseño
This is our vision
Building the foundation to Build a 3B Company by FY20
Podríamos pensar en paralelo...
This is our vision
Building the foundation to Build a 3B Company by FY20
Otro diseño
This is our vision
Building the foundation to Build a 3B Company by FY20
Podríamos pensar en paralelo...
This is our vision
Building the foundation to Build a 3B Company by FY20
Todo junto!
This is our vision
Building the foundation to Build a 3B Company by FY20
Conclusiones
+ Manuales => Contenido (json, xml, archivos, bases de datos, procesos, etc).
+ Gopher => CPU.
+ Carretilla => Tráfico de red, discos, etc.
+ Horno => Frontends, otras APIs, servicios externos.
Un diseño concurrente para un servicio web escalable.
Gophers sirviendo contenido web!
This is our vision
Building the foundation to Build a 3B Company by FY20
Goroutines
This is our vision
Building the foundation to Build a 3B Company by FY20
Canales
This is our vision
Building the foundation to Build a 3B Company by FY20
Select
¿Dónde lo
aplicamos?
This is our vision
Building the foundation to Build a 3B Company by FY20
Algunos números de MercadoLibre:
MELI Cloud
22.740 instancias.
205 TBs en memoria RAM.
100.000 CPUs.
Amazon (Fury)
1.696 instancias.
1.716 volúmenes.
536 balanceadores de carga.
This is our vision
Building the foundation to Build a 3B Company by FY20
Algunas APIs: Locations
This is our vision
Building the foundation to Build a 3B Company by FY20
Algunas APIs: Categories
This is our vision
Building the foundation to Build a 3B Company by FY20
Algunas APIs: Tendencias
This is our vision
Building the foundation to Build a 3B Company by FY20
Links de interés
+ Página oficial: https://golang.org
+ Golang tour: https://tour.golang.org/welcome
+ Effective Go: https://golang.org/doc/effective_go.html
+ Playground: https://play.golang.org/
En Argentina:
+ Meetup: http://www.meetup.com/Golang-Argentina/
+ Facebook: https://www.facebook.com/golangar/
+ Twitter: @golangar
?
Muchas
gracias!

Más contenido relacionado

Similar a ¡Meli GO GO! - Conocé Golang, el lenguaje de programación de Google.

APIs Mercado Libre
APIs Mercado LibreAPIs Mercado Libre
APIs Mercado LibreGDG Cali
 
Apps Mobile para el nuevo mundo.
Apps Mobile para el nuevo mundo.Apps Mobile para el nuevo mundo.
Apps Mobile para el nuevo mundo.melidevelopers
 
MuleSoft Madrid Meetup #2 slides 29th January 2020
MuleSoft Madrid Meetup #2 slides 29th January 2020MuleSoft Madrid Meetup #2 slides 29th January 2020
MuleSoft Madrid Meetup #2 slides 29th January 2020Ieva Navickaite
 
Conocer a los usuarios - El diseño como factor estratégico en el Desarrollo d...
Conocer a los usuarios - El diseño como factor estratégico en el Desarrollo d...Conocer a los usuarios - El diseño como factor estratégico en el Desarrollo d...
Conocer a los usuarios - El diseño como factor estratégico en el Desarrollo d...melidevelopers
 
Fernando Adrian Scasserra
Fernando Adrian ScasserraFernando Adrian Scasserra
Fernando Adrian Scasserramelidevelopers
 
Benchmark de competidores con CWV y BigQuery
Benchmark de competidores con CWV y BigQueryBenchmark de competidores con CWV y BigQuery
Benchmark de competidores con CWV y BigQueryEstela Franco
 
Silyan presentacion corporativa-diciembre10
Silyan presentacion corporativa-diciembre10Silyan presentacion corporativa-diciembre10
Silyan presentacion corporativa-diciembre10Silvia Roldán Sánchez
 
Silyan presentacion corporativa-diciembre10
Silyan presentacion corporativa-diciembre10Silyan presentacion corporativa-diciembre10
Silyan presentacion corporativa-diciembre10Silvia Roldán Sánchez
 
Cómo estamos transformando el SEO en Adevinta de 0 a 100 - Clinic SEO Barcelo...
Cómo estamos transformando el SEO en Adevinta de 0 a 100 - Clinic SEO Barcelo...Cómo estamos transformando el SEO en Adevinta de 0 a 100 - Clinic SEO Barcelo...
Cómo estamos transformando el SEO en Adevinta de 0 a 100 - Clinic SEO Barcelo...Esteve Castells
 
Gerencia Proyectos Software Libre – Campus Party 2008
Gerencia Proyectos Software Libre – Campus Party 2008Gerencia Proyectos Software Libre – Campus Party 2008
Gerencia Proyectos Software Libre – Campus Party 2008Cesar Trujillo
 
026 k2 b-tool_su_aliado_en_nuevos_proyectos_con_genexus
026 k2 b-tool_su_aliado_en_nuevos_proyectos_con_genexus026 k2 b-tool_su_aliado_en_nuevos_proyectos_con_genexus
026 k2 b-tool_su_aliado_en_nuevos_proyectos_con_genexusGeneXus
 
Differenttic corporativa
Differenttic corporativaDifferenttic corporativa
Differenttic corporativaDifferentTic
 
La importancia de las APIs en los chatbots
La importancia de las APIs en los chatbotsLa importancia de las APIs en los chatbots
La importancia de las APIs en los chatbotsRolando Carrasco
 

Similar a ¡Meli GO GO! - Conocé Golang, el lenguaje de programación de Google. (20)

APIs Mercado Libre
APIs Mercado LibreAPIs Mercado Libre
APIs Mercado Libre
 
Apps Mobile para el nuevo mundo.
Apps Mobile para el nuevo mundo.Apps Mobile para el nuevo mundo.
Apps Mobile para el nuevo mundo.
 
The Grails Framework.
The Grails Framework.The Grails Framework.
The Grails Framework.
 
MuleSoft Madrid Meetup #2 slides 29th January 2020
MuleSoft Madrid Meetup #2 slides 29th January 2020MuleSoft Madrid Meetup #2 slides 29th January 2020
MuleSoft Madrid Meetup #2 slides 29th January 2020
 
FULLSTACK JS DEV in 2017
FULLSTACK JS DEV in 2017FULLSTACK JS DEV in 2017
FULLSTACK JS DEV in 2017
 
Conocer a los usuarios - El diseño como factor estratégico en el Desarrollo d...
Conocer a los usuarios - El diseño como factor estratégico en el Desarrollo d...Conocer a los usuarios - El diseño como factor estratégico en el Desarrollo d...
Conocer a los usuarios - El diseño como factor estratégico en el Desarrollo d...
 
Fernando Adrian Scasserra
Fernando Adrian ScasserraFernando Adrian Scasserra
Fernando Adrian Scasserra
 
Benchmark de competidores con CWV y BigQuery
Benchmark de competidores con CWV y BigQueryBenchmark de competidores con CWV y BigQuery
Benchmark de competidores con CWV y BigQuery
 
Silyan presentacion corporativa-diciembre10
Silyan presentacion corporativa-diciembre10Silyan presentacion corporativa-diciembre10
Silyan presentacion corporativa-diciembre10
 
Silyan presentacion corporativa-diciembre10
Silyan presentacion corporativa-diciembre10Silyan presentacion corporativa-diciembre10
Silyan presentacion corporativa-diciembre10
 
Cómo estamos transformando el SEO en Adevinta de 0 a 100 - Clinic SEO Barcelo...
Cómo estamos transformando el SEO en Adevinta de 0 a 100 - Clinic SEO Barcelo...Cómo estamos transformando el SEO en Adevinta de 0 a 100 - Clinic SEO Barcelo...
Cómo estamos transformando el SEO en Adevinta de 0 a 100 - Clinic SEO Barcelo...
 
Los bots son las nuevas apps
Los bots son las nuevas appsLos bots son las nuevas apps
Los bots son las nuevas apps
 
Gestores
GestoresGestores
Gestores
 
Mobile, ¿todavia pensándolo?
Mobile, ¿todavia pensándolo?Mobile, ¿todavia pensándolo?
Mobile, ¿todavia pensándolo?
 
Gerencia Proyectos Software Libre – Campus Party 2008
Gerencia Proyectos Software Libre – Campus Party 2008Gerencia Proyectos Software Libre – Campus Party 2008
Gerencia Proyectos Software Libre – Campus Party 2008
 
026 k2 b-tool_su_aliado_en_nuevos_proyectos_con_genexus
026 k2 b-tool_su_aliado_en_nuevos_proyectos_con_genexus026 k2 b-tool_su_aliado_en_nuevos_proyectos_con_genexus
026 k2 b-tool_su_aliado_en_nuevos_proyectos_con_genexus
 
Differenttic corporativa
Differenttic corporativaDifferenttic corporativa
Differenttic corporativa
 
Mayo 2012
Mayo 2012Mayo 2012
Mayo 2012
 
Cristiam Castillo Znexus
Cristiam Castillo ZnexusCristiam Castillo Znexus
Cristiam Castillo Znexus
 
La importancia de las APIs en los chatbots
La importancia de las APIs en los chatbotsLa importancia de las APIs en los chatbots
La importancia de las APIs en los chatbots
 

Más de melidevelopers (20)

Mercado Envíos Ful
Mercado Envíos FulMercado Envíos Ful
Mercado Envíos Ful
 
Lucía Brizuela
Lucía BrizuelaLucía Brizuela
Lucía Brizuela
 
Victor Piñal
Victor PiñalVictor Piñal
Victor Piñal
 
Leandro Bertalot y Jair Vázquez
Leandro Bertalot y Jair VázquezLeandro Bertalot y Jair Vázquez
Leandro Bertalot y Jair Vázquez
 
Omar Galicia
Omar GaliciaOmar Galicia
Omar Galicia
 
Daniel Gándara
Daniel GándaraDaniel Gándara
Daniel Gándara
 
Mercado Pago para seller del on
Mercado Pago para seller del onMercado Pago para seller del on
Mercado Pago para seller del on
 
Mandaê
MandaêMandaê
Mandaê
 
Eu entrego
Eu entregoEu entrego
Eu entrego
 
Be Commerce
Be CommerceBe Commerce
Be Commerce
 
Bling!
Bling!Bling!
Bling!
 
Any Market
Any MarketAny Market
Any Market
 
Aprendendo sobre o seu mercado
Aprendendo sobre o seu mercadoAprendendo sobre o seu mercado
Aprendendo sobre o seu mercado
 
AWS
AWS AWS
AWS
 
Mercado Pago - SDK mobile
Mercado Pago - SDK mobile Mercado Pago - SDK mobile
Mercado Pago - SDK mobile
 
sensedia - Design Sprint
sensedia - Design Sprint sensedia - Design Sprint
sensedia - Design Sprint
 
VTEX
VTEX VTEX
VTEX
 
Mercado pago - além do e-commerce
Mercado pago - além do e-commerceMercado pago - além do e-commerce
Mercado pago - além do e-commerce
 
Facebook - Marketing
Facebook - MarketingFacebook - Marketing
Facebook - Marketing
 
Speed up! Critical css to the rescue
Speed up! Critical css to the rescueSpeed up! Critical css to the rescue
Speed up! Critical css to the rescue
 

Último

definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 

Último (20)

definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 

¡Meli GO GO! - Conocé Golang, el lenguaje de programación de Google.

  • 2. This is our vision Building the foundation to Build a 3B Company by FY20 Federico León Senior Analyst Fraud Prevention Team Java, Groovy and Golang... developer federico.leon@mercadolibre.com Sobre mí
  • 3. This is our vision Building the foundation to Build a 3B Company by FY20 + ¿Cómo empieza? ¿Por qué un nuevo lenguaje? + Características del lenguaje. + Concurrencia. + ¿Dónde lo aplicamos en Meli y qué resultados obtuvimos? + Q & A. Agenda
  • 5. This is our vision Building the foundation to Build a 3B Company by FY20 ¿Cómo empieza? + 21 de septiembre de 2007: Inicios. por Robert Griesemer, Rob Pike y Ken Thompson. + Principios de 2008: Se comienza el desarrollo del compilador. Proyecto part-time. + Mediados de 2008: Golang se convierte en un proyecto full-time. + Fines de 2008: Russ Cox se une al proyecto y con su experiencia ayuda a pasar Go de un prototipo a una realidad. + 10 de noviembre de 2009: Proyecto público y open source.
  • 6. This is our vision Building the foundation to Build a 3B Company by FY20 ¿Cómo empieza?
  • 7. This is our vision Building the foundation to Build a 3B Company by FY20 ¿Por qué un nuevo lenguaje? Código fuente en Google + 2.000.000.000 líneas de código. + 86 TBs. Distribuído entre 10 datacenters. Fuente: Rachel Potvin @Scale Engineering Conference ¿Qué alternativa elegir? Compilación eficiente. Ejecución eficiente. Facilidad de programación. Soporte MultiCore. ¿Cuál seleccionamos?
  • 8. This is our vision Building the foundation to Build a 3B Company by FY20 ¿Por qué un nuevo lenguaje? Otros problemas: Builds lentos. Dependencias descontroladas. Cada programador usando un subconjunto diferente del lenguaje. Pobre entendimiento del código, (difícil de leer, mal documentado, etc). Duplicación de esfuerzo.
  • 10. This is our vision Building the foundation to Build a 3B Company by FY20 Algunas características de Go + Imperativo. + Compilado. + Fuerte y estáticamente tipado. + Diseñado para la concurrencia. + Framework de testing nativo. + Web server integrado.
  • 11. This is our vision Building the foundation to Build a 3B Company by FY20 ¿Estáticamente tipado?
  • 12. This is our vision Building the foundation to Build a 3B Company by FY20 Funciones con múltiples retornos
  • 13. This is our vision Building the foundation to Build a 3B Company by FY20 Bucles? Sólo necesitamos uno!
  • 14. This is our vision Building the foundation to Build a 3B Company by FY20 Rangos
  • 15. This is our vision Building the foundation to Build a 3B Company by FY20 Para más tarde: defer
  • 16. This is our vision Building the foundation to Build a 3B Company by FY20 Servidor web integrado
  • 17. Concurrencia “Concurrency is NOT parallelism” Rob Pike Heroku's Waza conference Enero 2013
  • 18. This is our vision Building the foundation to Build a 3B Company by FY20 Primero recordemos lo siguiente: Concurrencia Composición de procesos ejecutándose independientemente. Paralelismo Ejecución simultánea de procesos, (pueden o no estar relacionados). La concurrencia provee una forma de estructurar la solución a un determinado problema de forma que (si se necesitara o fuera posible) podría ejecutarse en paralelo.
  • 19. This is our vision Building the foundation to Build a 3B Company by FY20 Ejemplo: Reciclemos manuales viejos!
  • 20. This is our vision Building the foundation to Build a 3B Company by FY20 Agregamos un gopher
  • 21. This is our vision Building the foundation to Build a 3B Company by FY20 Le proveemos herramientas
  • 22. This is our vision Building the foundation to Build a 3B Company by FY20 Podríamos pensar en paralelo...
  • 23. This is our vision Building the foundation to Build a 3B Company by FY20 Otro diseño
  • 24. This is our vision Building the foundation to Build a 3B Company by FY20 Podríamos pensar en paralelo...
  • 25. This is our vision Building the foundation to Build a 3B Company by FY20 Otro diseño
  • 26. This is our vision Building the foundation to Build a 3B Company by FY20 Podríamos pensar en paralelo...
  • 27. This is our vision Building the foundation to Build a 3B Company by FY20 Todo junto!
  • 28. This is our vision Building the foundation to Build a 3B Company by FY20 Conclusiones + Manuales => Contenido (json, xml, archivos, bases de datos, procesos, etc). + Gopher => CPU. + Carretilla => Tráfico de red, discos, etc. + Horno => Frontends, otras APIs, servicios externos. Un diseño concurrente para un servicio web escalable. Gophers sirviendo contenido web!
  • 29. This is our vision Building the foundation to Build a 3B Company by FY20 Goroutines
  • 30. This is our vision Building the foundation to Build a 3B Company by FY20 Canales
  • 31. This is our vision Building the foundation to Build a 3B Company by FY20 Select
  • 33. This is our vision Building the foundation to Build a 3B Company by FY20 Algunos números de MercadoLibre: MELI Cloud 22.740 instancias. 205 TBs en memoria RAM. 100.000 CPUs. Amazon (Fury) 1.696 instancias. 1.716 volúmenes. 536 balanceadores de carga.
  • 34. This is our vision Building the foundation to Build a 3B Company by FY20 Algunas APIs: Locations
  • 35. This is our vision Building the foundation to Build a 3B Company by FY20 Algunas APIs: Categories
  • 36. This is our vision Building the foundation to Build a 3B Company by FY20 Algunas APIs: Tendencias
  • 37. This is our vision Building the foundation to Build a 3B Company by FY20 Links de interés + Página oficial: https://golang.org + Golang tour: https://tour.golang.org/welcome + Effective Go: https://golang.org/doc/effective_go.html + Playground: https://play.golang.org/ En Argentina: + Meetup: http://www.meetup.com/Golang-Argentina/ + Facebook: https://www.facebook.com/golangar/ + Twitter: @golangar
  • 38. ?

Notas del editor

  1. Agregar más gophers no es suficiente. Necesitan herramientas para trabajar.
  2. Más rápido. Cuellos de botella. Necesitamos sincronizar los gophers.
  3. Diseño concurrente. Puede o no ejecutarse en paralelo. De ser así, este diseño es 2X más rápido que el anterior.
  4. Concurrente. 4 gophers realizando tareas simples.
  5. 2 gophers Una pila en el medio para acumular manuales.
  6. 16 gophers. Puede ejecutarse tanto single thread como en paralelo. En paralelo, la solución es casi 16X más rápida que el diseño original.
  7. Se crean y lanzan anteponiendo la palabra reservada go. Muy livianas. No son threads!!!
  8. Se basan en CSP, “Communicating Sequential Processes”, Tony Hoare, 1978. Parten de su implementación en Erlang. Permiten la comunicación y sincronización de varias goroutines.
  9. Similar a un switch. La decisión se basa en la habilidad de comunicar en vez de valores iguales.