Identificar candidatos Este feature necesita cambios? Produce riesgo técnico? Escoger un enfoque de integración Cómo integrar el servicio extraído? Escoger un enfoque de migración de datos Cómo mover los datos a su propio storage? Extrayendo servicios El proceso 1 2 3
Identificar candidatos Este feature necesita cambios? Produce riesgo técnico? Escoger un enfoque de integración Cómo integrar el servicio extraído? Escoger un enfoque de migración de datos Cómo mover los datos a su propio storage? Extrayendo servicios El proceso 1 2 3
Introducir capa de servicios para el feature Si ya no la tienes Agregar camino alternativo bajo feature flag Cuidado, se podrían necesitar joins en memoria Mover el tráfico Ahora el código se puede limpiar Monolito como gateway El proceso 2.1 2.2 2.3
def index likes = user_likes_service.public_track_likes( @user, pagination) respond collection_for(likes) end Introducir capa de servicios para el feature Monolito como gateway
Introducir capa de servicios para el feature Si ya no la tienes Agregar camino alternativo bajo feature flag Cuidado, se podrían necesitar joins en memoria Mover el tráfico Ahora el código se puede limpiar El proceso 2.1 2.2 2.3 Monolito como gateway
def public_track_likes(user, pagination) if $feature.active?(:use_likes_service, user) … else … end end Agregar camino alternativo bajo feature flag Monolito como gateway
Introducir capa de servicios para el feature Si ya no la tienes Agregar camino alternativo bajo feature flag Cuidado, se podrían necesitar joins en memoria Mover el tráfico Ahora el código se puede limpiar El proceso 2.1 2.2 2.3 Monolito como gateway
Introducir handlers para los paths Esto permite intervención Agregar camino alternativo bajo feature flag Puede implicar no sólo invocar el nuevo servicio Mover el tráfico Ahora el código se puede limpiar Strangler El proceso 2.1 2.2 2.3
Introducir handlers para los paths Esto permite intervención Agregar camino alternativo bajo feature flag Puede implicar no sólo invocar el nuevo servicio Mover el tráfico Ahora el código se puede limpiar Strangler El proceso 2.1 2.2 2.3
Introducir handlers para los paths Esto permite intervención Agregar camino alternativo bajo feature flag Puede implicar no sólo invocar el nuevo servicio Mover el tráfico Ahora el código se puede limpiar Strangler 2.1 2.2 2.3 El proceso
Identificar candidatos Este feature necesita cambios? Produce riesgo técnico? Escoger un enfoque de integración Cómo integrar el servicio extraído? Escoger un enfoque de migración de datos Cómo mover los datos a su propio storage? Extrayendo servicios El proceso 1 2 3