MeetUp de seguridad en arquitectura de micro-servicios. ArqConfMDQ Enero 2020

Qué emoción, hicimos el primer meetup con formato de meetup, jajaj. Lo cierto es que ArqConfMDQ logró por primera vez una reunión que salió del formato de presentación. Esta vez, con formato de charla informal, en un grupo reducido (fuimos 18) logramos llevar adelante un intercambio super enriquecedor de experiencias, ideas y lo mejor… PROBLEMAS.

Vinieron buenos amigos y nuevos amigos del ámbito local, nacional y de empresas de alcance internacional.

Agradecemos a la empresa aDomicilio por prestarnos el lugar e invitar unas ricas pizzas.

charlapizzas

Ahora bien, ¿cómo fue el meetup?, Si bien se plantearon temas comunes para la comunidad de desarrolladores que trabajan con micro-servicios, el estado del arte de estas arquitecturas y las tecnologías que lo soportan, hacen que las formas de responder a esos temas tengan distintos posibles enfoques, con distintas herramientas y con muchos “depende”.

Estuvo genial, arrancamos sentando una base del concepto de micro-servicios basados en la definición del US National Institute of Standards and Technology

microservicio standard institute

Y no podíamos dejar de mencionar la opinión de Martin Fowler

microservicio M Fowler

esto nos permitió sentar los ejes de la charla que denominamos Security concerns

  • Attack surface expanded
  • Increased request
  • Responsibility allocation
  • Multiple layer communication
  • Third party products
  • Log & monitoring

Fuimos pasando por cada uno de estos temas y se vieron distintas arquitecturas y tecnologías para resolverlos y los tradeoffs necesarios.

Un gran tema que abarcó esos concerns fue el uso de gateway. Claramente aporta a la seguridad desde el momento que se asume como único punto de acceso, de esta manera podríamos establecer una red privada donde solo se puede acceder a los microservicios desde el gateway. Pero cómo afecta  esto a la comunicación entre microservicios servicios. Se establecieron como válidos dos esquemas,

  • autorización y autenticación en el gateway y luego seguridad por infra
  • que los microservicios también adopten funciones de seguridad, validen token y tengan lógica de autorización.

Entonces conversamos de autorización de acceso al endpoint o bien que la respuesta tenga contenidos restringidos según el rol. En general, el acuerdo común es que si un dato no puede ser accedido por determinado rol estaría bien que haya lógicas de autorización en el microservicio. Es decir, la responsabilidad de seguridad a nivel de dato queda dentro del scope del microservicio.

Una manera de integrar el control de seguridad es que el service mesh pase x el API Gateway en general acordamos que el service mesh debe apuntar al uso de sidecars o librerías y reservar al API Gateway para que reciba invocaciones externas.

En este punto entramos en un gran mundo, rest vs graphql. No llegamos a un acuerdo, coincidimos que está muy bueno pero que plantearon que se delega mucho en el cliente y en general había cierto esceptisismo, (personalmente creo que no había caso testigo que bajara una opinión tajante). Sí quedo claro que es una herramienta poderosa que propone una solución a temas de composición y que el enfoque es superador a perder las buenas prácticas de REST.

La charla quedó super abierta, cerramos con unas pizzas y cervezas y salieron muchos temas más a seguir tratando. Planteamos la posibilidad de para los próximos meetups con este formato hacer un cierre con conclusiones para compartir.

Saludos, hasta el próximo meetup.

 

 

 

 

 

Meetup Noviembre 2019 Arquitecturas de Microservicios

Este Meetup sí que fue fuera de serie. Tuvimos la oportunidad de recibir a dos grandes protagonistas de ArqConf de Buenos Aires.

Ellos son Gustavo Brey (ITAlchemist) y Santiago Blanco, estos cracks nos compartieron dos presentaciones de algo que está en pleno desarrollo e innova día a día, Arquitecturas de Microservicios.

Muchas gracias a la Universidad Atlantida Argentina por sumarse a la iniciativa y poner a disposición el lugar, estuvimos super cómodos.

Antes de atender particularmente al contenido de las presentaciones de mi parte un concepto clave que debemos considerar es el de la arquitectura aplicada. El usar herramientas del ecosistema, como Gitlab, Kubernetes, Docker, Kong, Spring Cloud son librerías, herramientas y hasta estándares de industria (que muy rapidamente lograron instalarse como de facto) es muy interesante, pero, debemos entender, para aprovecharlas, para tomar mejores decisiones que tienen implícito dentro de sí tácticas que atienden a atributos de calidad requeridos o deseables para la solución que estamos atacando.

Kubernetes por ejemplo, es una implementación (o facilita la implementación) que atiende a dos atributos de calidad, Continuidad de Negocio (availability) y Performance (más enfocado en volumen) de la táctica de escalabilidad horizontal (puede leerse en algunos papers como incorporación de recursos).

Docker es otro ejemplo, dentro de un atributo de Portabilidad permite implementar distintas tácticas, como encapsulamiento, uso de intermediario, entre otros.

Como resumen, son tecnologías super interesantes, hoy la industria demanda de ellas muchísimo y brindan soluciones, debemos siempre entender ¡¡por qué!! son la mejor solución. Además nos facilitan mucho el trabajo ;P

Comparto a continuación las presentaciones de los chicos y el sitio donde podrán encontrar muchísimo más material. Repositorio de contenidos de arqconf

Puntos destacados:

  • Da diferencia entre CI y CD y las ventajas de llegar HASTA EL FINAL
  • Muy interesante el resumen que hizo Santiago de “Challenges”.

ArqConfMDQ – DevOps en Arquitectura de Microservicios

ArqConfMDQ – From legacy to Microservices

Nos vemos la próxima.

 

 

 

 

 

 

Meetup de verano de Arquitectura en Mar del Plata

Ayer 19 de Febrero nos encontramos en ArqConfMDQ para compartir el 3er encuentro de Arquitectura de Software, el primero de este año. Fue una gran experiencia, tuve la oportunidad de conocer gente nueva y de compartir con amigos este momento.

El evento fue muy interesante, en un ámbito distinto al de los anteriores. Este ArqConfMDQ se realizó a metros de la playa, en un bar, Bruto Mar del Plata. El lugar es espectacular, muy bien decorado y extraordinariamente bien atendido todos tuvimos oportunidad de disfrutar de alguna bebida mientras participábamos de las charlas.

 

bruto

Por qué lo hicimos ahí, primero por lo interesante del marco, disruptivo, cómodo, distinto, segundo porque nos invitó la Secretaría de Tecnología e Innovación de General Pueyrredón. Este es un proyecto de  que brinda espacio de co-working en la ciudad de Mar del Plata.

El evento comenzó con una presentación de ADD (Architecture Driven Design) aplicado, como continuación de charlas anteriores donde vimos de que se trata y las herramientas disponibles. Pueden ver Taller de Arquitectura de Software en ATICMA y 1er Encuentro de Arquitectura de Software en Mar del Plata en referencia al material.

Allí vimos como dos empresas muy importantes a nivel local Deitres Infosis a partir de una necesidad particular, donde se propusieron partir de bases sólidas abren ese esfuerzo a la comunidad para compartir la experiencia y beneficiarse con ella.

Este proyecto es una plataforma que permite gestionar miles de millones de mensajes entre componentes de IOT y aplicaciones. Pueden sumarse al proyecto, esperamos participación, ejemplos de uso, propuestas e incluso roadmap.

Acá va el material.

La segunda charla fue aún más emocionante, hablamos de una caso de arquitectura cloud native aplicado. Impresionante, un hermoso ejemplo de cómo aprovechar y potenciar desarrollos a partir de los servicios cloud. Con un breve recorrido de los conceptos básicos de cloud que rápidamente se sumergió en el mundo de CI/CD (Continuous integration / Continuous Delivery ). Lo que más me gustó?, las gráficas de los servicios de Amazon (awsgeek.com), que buenas e ilustrativas, una perlita que nos trajo Esteban.

Periodic-Table-of-Amazon-Web-Services

 

 

Acá les dejo el material.

Los esperamos en el próximo evento el 19/3. Ya lo anunciaremos en el grupo  de meetup y tweeter.

Saludos a todos!!!

Taller de Arquitectura de Software en ATICMA

El jueves pasado tuve la oportunidad de compartir algo de Arquitectura de Software con distintos profesionales de la industria de Software de Mar del Plata. Fue una muy grata experiencia llena de intercambio en un ámbito muy ameno.

Gracias Aticma por la oportunidad de brindar algo a la comunidad y colaborar con Mar del Plata con algo de conocimiento.

El eje del taller, fue mostrar una metodología de trabajo que nos conduzca para lograr que un diseño cumpla con atributos de calidad específicos. Vimos como esta metodología; basada en la metodología propuesta por el Software Engineering Institute pero ajustada a un contexto Pyme, nos ayuda a relevar los atributos de calidad del software. Paso siguiente, nos guía para lograr el cumplimiento de los mismos en el diseño de la arquitectura  y que al mismo tiempo esté alineado con los objetivos de negocio.

Los puntos destacados son:

Escenarios –> Necesidad de negocio –> Atributo de calidad –> Estrategias de solución

Patrón de arquitectura –> Estilo de arquitectura –> Vistas

Dejo la presentación del taller a disposición, de nuevo muchas gracias.

Presentación

No muestra el puerto de ESP8266 en el menú de Arduino IDE con MAC

Aside

Las placas ESP8266 son placas bastante económicas que nos permiten operar sobre WIFI. Adquirí una para desarrollar un proyecto personal de domótica y me encontré que no podía accederla desde mi computadora (MacBook AIR).

Al conectar por USB no sucedía nada.

 

Screen Shot 2018-07-26 at 12.01.27

Obviamente acudí a google para saber que podía ser y si alguien había encontrado la solución. Había infinidad de tracks sobre el problema y como solucionarlo, todos proponían instalar un driver y rebootear. Esto es cierto pero en parte.

Lo realmente cierto y en el caso particular de MAC (no probé en distribuciones de linux) es que hay que deshabilitar drivers ya existente para que tome los nuevos que instalamos. Esto no lo dice fehacientemente en ningún lado.

Les comparto los pasos que seguí para lograrlo.

Instalar los drivers: instale 2 drivers Virtual Com Drivers y FTDI. Esto instala los drivers FTDIUSBSerialDriver.kext y usbserial.kext en el directorio /Library/Extensions.

Deshabilita los drivers nativos: en el directorio /System/Library/Extensions encontrarán AppleUSBSerial.kextAppleUSBFTDI.kext, hay que deshabilitarlos usando el comando:

sudo kextunload -b com.apple.driver.AppleUSBFTDI

sudo kextunload -b com.apple.driver.AppleUSBSerial

Habilitar los nuevos drivers:

sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver

sudo kextload -b com.wch.usbserial

y finalmente

Screen Shot 2018-07-30 at 16.48.43

2do Encuentro de Arquitectura de Software en Mar del Plata

Agenda del evento

La idea va tomando cuerpo, se llevó a cabo un segundo encuentro y hubo una gran audiencia. No era para menos, recibimos a Alejandro Bianchi presidente de Liveware, un experto en Arquitectura de Software; a Ignacio Peña VP of Technology de Globant y a Diego García. CTO. de Lateral View.

Este encuentro tuvo como epicentro Arquitectura y Agile, dos conceptos muy fuertes en el desarrollo de software, que según con quién hablemos, pueden verse como complementos o contrapuntos. Con las charlas que presenciamos, vimos como con todo lo que sucede en el marco de la arquitectura, ese balance entre ambos conceptos es un trade-off más con el que tenemos que lidiar y no existen recetas; existe conocimiento y experiencia.

Abrió el evento Alejandro, su presentación tuvo una parte introductoria de lo que encierra la disciplina de arquitectura, algunos de los conceptos que siempre repetimos como los atributos de calidad, epicentro del diseño de arquitectura. Pero rápidamente ubico a la arquitectura en el contexto actual, cuales son las tecnologías que hoy marcan tendencia y determinan el rumbo de las industrias nuevas y tradicionales. Internet de las cosas, cloud computing, microservicios, blockchain y sobre todo el concepto de digitalización de la empresa.

Por qué decimos “sobre todo”, porque la digitalización hoy domina el mercado, digitalización desde un concepto mucho más amplio que cambiar papel por bytes, es digitalización como una nueva propuesta de valor.

Este marco nos lleva a que IT debe desarrollar nuevas habilidades, nuevas capacidades y Alejandro propone como tesis que el rol del arquitecto en este marco es esencial y crítico.

Es así que la presentación pasa por como se mixan las habilidades blandas del arquitecto con técnicas, la negociación constante entre la metodología y las demandas actuales de vertiginosidad, ciclos de vida más cortos y agilismo. Es importante incorporar el concepto de que tanto para Agiles como para la Arquitectura prima por sobre todas las cosas la satisfacción del cliente. Es allí donde Alejandro nos muestra coincidencias muy claras entre principios del agilismo y la arquitectura.

La presentacion abarcó también un tema importante como la deuda técnica y su gestión. Tema que hemos hablado en el evento anterior y recalcamos siempre. La deuda técnica existe, debe ser gestionada pero por sobre todas las cosas buscamos que sea algo conciente, debe ser una decisión tomada no una situación encontrada.

Nos quedamos con gustito de más, se mencionó devops y es un tema que nos interesa, esto es simplemente una captura de lo que fue la charla; acá les dejo la presentación de Alejandro para que puedan desmenuzarla aún más.

Presentacion Alejandro Bianchi

Luego de la presentación de Alejandro presentamos el grupo ArqConfMDQ, fundamentalemente con el objetivo de poner una visión en común:

En ArqConfMDQ queremos fomentar el conocimiento aplicado al diseño de software. Buscamos compartir experiencias que ayuden al desarrollo profesional de las personas y empresas de la región. El marco de esta comunidad comprende fomentar estándares, buenas prácticas, novedades, debatir sobre ideas, herramientas y técnicas. También esperamos que sea un lugar para juntarnos a estudiar nuevas metodologías, colaborar y probar tecnologías existentes y socializar soluciones. Un lugar en el que el conocimiento se comparta para lograr un mundo mejor para todos.

con un interés:

Lograr un desarrollo del conocimiento en Arquitectura de Software que contribuya el posicionamiento de Mar del Plata como polo tecnológico en el plano internacional.

Este meetup propone diferentes dinámicas en sus actividades:

  • Encuentros
  • Charlas
  • Talleres

Luego vimos la presentación de Nacho Peña de Globant que con su estilo tan particular e histriónico compartió su experiencia en aplicaciones con un ciclo de vida hiper explosivo Nos conto como las decisiones de arquitectura se sopesan con los tiempos requeridos por la dinámica de este tipo de aplicaciones. Vimos como obviamente se puede acelerar ese ciclo a partir de tomar riesgos, y como la disponibilidad de recursos y la posibilidad de realizar inversiones de riesgo compensan la vuelta atrás de esas decisiones. Fue una charla muy entretenida y nos dió una mirada super práctica.

Finalmente presentó su caso Diego García de Lateral View.  “Funciones Lambda: el futuro ya llegó”. Más que interesante, mientras recorría su proyecto fue compartiendo las decisiones de arquitectura que tomó en cada etapa, aciertos errores pero lo más interesante fue lo innovador de su solución y el debate que despertó en conceptos que hoy se discuten mucho, serveless, microservicios, SAAS vs PAAS… otro debate que da para un meetup dedicado.

Les dejo la presentación de Diego y el link a su proyecto

Funciones Lambda- el futuro ya llegó

https://github.com/diego1686/newsletter-subscription

Espero que sea de utilidad y no duden en comentar o compartir sus opiniones y/o dudas.

Un placer haber participado en la organización del evento, nos vemos en el próximo meetup de ArqConfMDQ!!!

2018-06-18 at 2.09.38 PM (1).jpeg   07706a59-7dfb-4d68-8423-56a3e6eb6355.jpg535ba8ff-3285-4f3a-a5a1-2e1763f432ea.jpg    da038ea4-caee-4e2e-bb40-5bd39508514d.jpg2018-06-18 at 2.09.37 PM.jpeg   20180614_180034.jpg

1er Encuentro de Arquitectura de Software en Mar del Plata

El día de ayer tuve la oportunidad de participar en el primer encuentro de Arquitectura de Software organizado por Aticma, Universidad FASTA, Universidad CAECE y Universidad Nacional de Mar del Plata.

Fue para mi un honor volver a mi alma mater y esta vez pararme del otro lado a compartir algo de conocimiento.  Agradezco a Fernando Soriano por la organización del evento y esta estupenda idea. Y a Santiago Blanco, Santiago Urrizola y Carlos Sallago por sumarse al panel de cierre y enriquecer la charla con su experiencia y conocimiento.

Comparto aquí la presentación que acompañó la charla. Esta presentación tuvo como eje central el impacto de la disciplina de arquitectura en el proceso de Ingeniería de Software. Mi intensión fue exponer como la arquitectura de software es un constante trade off que debe permitir a la empresa tomar decisiones de diseño conscientes y metódicas con el fin de lograr sus objetivos. Es menester del arquitecto nunca perder de vista estos objetivos.

La presentación recorre algunos conceptos de arquitectura, su contexto en base a la dimensión de la arquitectura objetivo y el modelo de empresa donde se lleva a cabo.

Una segunda parte abarca someramente técnicas y métodos que respaldan a la arquitectura de software como una disciplina.

Descargar “Presentación 1er encuentro de arquitectura mar del plata”