Este texto se tradujo utilizando el sistema de traducción automatizado de Salesforce. Realice nuestra encuesta para proporcionar comentarios sobre este contenido y díganos qué le gustaría ver a continuación.
Lea sobre nuestras programaciones de actualización aquí.
Las soluciones fiables funcionan de forma efectiva y fiable. Están disponibles, tienen un rendimiento coherente y se amplían para dar cobertura a negocios en crecimiento.
Un sistema fiable no es propenso a errores, se comporta según lo esperado y proporciona resultados de forma oportuna. Por el contrario, un sistema poco fiable es lento, no se comporta según lo esperado o falla en momentos críticos. Los sistemas poco fiables proporcionan información imprecisa, por lo que las partes interesadas no pueden Trust en ellos para decisiones comerciales.
La fiabilidad del sistema no es constante. Un sistema fiable hoy en día puede dejar de ser fiable si no está diseñado para el crecimiento. Un sistema poco fiable puede requerir mantenimiento, refactorización o reimplementación costosos, desviando fondos de proyectos estratégicos.
Mejore la fiabilidad de sus soluciones de Salesforce centrándose en tres principios: disponibilidad, rendimiento y escalabilidad. El conjunto de productos de escalabilidad de Salesforce proporciona funciones nativas para ayudar los arquitectos a poner en marcha implementaciones fiables.
La disponibilidad es una medición del porcentaje de tiempo que su sistema está operativo. Salesforce Platform gestiona la mayoría de los problemas de disponibilidad a nivel de infraestructura. Sin embargo, la disponibilidad de las soluciones que crea en la plataforma, y que experimentan sus clientes, es una responsabilidad compartida. Es importante comprender que incluso con la alta disponibilidad de Salesforce, el riesgo de interrupción del servicio nunca es cero.
Los arquitectos deben prepararse para interrupciones de servicio de Salesforce como mantenimiento planificado o circunstancias imprevistas. Además de las interrupciones de servicio, considere cómo mantener un alto rendimiento y crecer con el negocio. Restringir las opciones arquitectónicas puede provocar problemas de disponibilidad a largo plazo.
Piense en la disponibilidad durante la fase de diseño, antes de crear su solución. Cuanto más aplace la arquitectura para la disponibilidad, mayor será el coste real de los problemas de disponibilidad a largo plazo. Para mitigar posibles riesgos, utilice Prueba de escala Salesforce en su entorno de prueba. En ese entorno, puede realizar pruebas a escala de producción antes de implementar código en producción.
Los arquitectos utilizan el lenguaje del negocio, enmarcando las preocupaciones técnicas para las partes interesadas del negocio para obtener el buy-in y priorizar el trabajo de disponibilidad. Para mitigar posibles riesgos, utilice Prueba de escala Salesforce en su entorno de prueba. En ese entorno, puede realizar pruebas a escala de producción antes de implementar código en producción.
Puede diseñar para una mayor disponibilidad de sus soluciones de Salesforce a través de la gestión de riesgos y la mitigación de fallos.
La gestión de riesgos en el contexto de la arquitectura de Salesforce implica identificar posibles peligros para el funcionamiento de su sistema; sus usuarios, incluyendo empleados, socios y clientes); y sus procesos comerciales. A menudo, el proceso formal de realizar análisis de riesgos recae en las responsabilidades de los gestores de proyectos. Como arquitecto, asegúrese de que el análisis de riesgos representa adecuadamente las preocupaciones de las partes interesadas técnicas y comerciales. También es su responsabilidad identificar los casos de uso críticos para el negocio que necesita probar basándose en sus puntos críticos de producción.
Algunos de los mayores riesgos en la gestión de riesgos provienen de no dedicarle suficiente tiempo y pensamiento. Los equipos a menudo omiten la evaluación de riesgos O combinan la solución para la copia de seguridad y restauración, una parte importante de la mitigación de riesgos para la integridad de los datos, con una evaluación y mitigación de riesgos integrales.
Para evaluar el riesgo de sus soluciones de Salesforce, utilice estos métodos:
- Utilice un marco de evaluación de riesgos. Es posible que algunas grandes empresas ya dispongan de matrices de riesgo pertinentes. Si la suya lo hace, utilícelos para determinar cómo clasificar los peligros, qué tipos de información recopilar, qué necesita establecer para la reparación y mucho más. Si aún no tiene un marco de evaluación de riesgos, busque uno de un origen de buena reputación y utilícelo.
- Evalúe la gravedad del impacto y las categorías de riesgo desde la perspectiva de sus clientes. Proactive Monitoring y Scale Center proporcionan alertas y paneles configurables. Evalúan continuamente los riesgos de rendimiento y capacidad de ampliación y reducen su dependencia de listas de comprobación manuales. Customer Trust y la percepción son clave para cada negocio. En términos de repercusión comercial, los riesgos para problemas que llegan a los clientes normalmente superan los riesgos para problemas que no. Es posible que los clientes no piensen o perciban riesgos del mismo modo que los equipos internos. Si un cliente no puede iniciar sesión en su cuenta, probablemente no le importe la causa raíz del problema. Se preocupan más por su propia experiencia inmediata.
- Priorice sus riesgos. Idealmente, cada riesgo está vinculado a un plan de mitigación y respuesta sólido. En realidad, tendrá brechas que debe solucionar con el tiempo. Es importante adoptar un enfoque de “entregar valor de forma temprana e iterar”. Usted y sus equipos de entrega y mantenimiento pueden asumir solo parte del trabajo en un momento dado. En Salesforce, una expresión común es: “Si todo es importante, nada es importante”. Utilizamos V2MOM para priorizar y alinear el trabajo en toda la empresa, entre equipos y hasta cada individuo. (Puede obtener más información sobre los V2MOM en Trailhead.) Utilice sus evaluaciones de riesgo, que le dan la oportunidad de trabajar con sus partes interesadas en priorizar y comprometerse con el trabajo de gestión de riesgos más importante. Utilice Prueba de escala - Creación de plan de prueba para identificar los riesgos a priorizar y mitigar esos riesgos utilizando pruebas de escala.
Utilice Proactive Monitoring para detectar riesgos de disponibilidad temprana. Aflora anomalías como picos de límite de solicitudes de API, errores de bloqueo de filas o fallos Apex simultáneos, proporcionando perspectivas sobre las que se pueden realizar acciones antes de que los problemas se conviertan en interrupciones de servicio.
Los patrones y antipatrones de disponibilidad muestran una gestión de riesgos adecuada y deficiente en una solución de Salesforce. Utilice los patrones para validar sus diseños antes de crear o para identificar áreas de refactorización en su sistema.
Para obtener más información acerca de herramientas de Salesforce relacionadas con la gestión de riesgos, consulte Herramientas de Salesforce para fiabilidad.
Un punto de fallo es una vulnerabilidad que hace que un sistema no sea fiable. Una buena mitigación de fallos no se trata de precisar cada posible punto de fallo. En su lugar, se trata de clasificar y priorizar rápidamente puntos de fallo de modo que los equipos de mantenimiento y asistencia puedan responder de forma efectiva. Consulte Respuesta de incidente.
Para desarrollar mejores estrategias de mitigación de fallos:
- Clasifique desencadenadores para puntos de fallo en términos de personas, procesos y tecnología. Del mismo modo que categoriza los riesgos en términos de personas, procesos y tecnología, aplique el mismo pensamiento a cómo se desencadenan los puntos de fallo de alta prioridad. Este enfoque le ayuda a identificar posibles desencadenadores de fallos y a desarrollar y organizar respuestas a ellos. En ocasiones, puede mitigar desencadenadores de fallos aparentemente divergentes con enfoques de mitigación similares, basándose en cómo se clasifican los desencadenadores.
| Clasificación/Tipo de desencadenador | Mitigación |
|---|---|
| Personas | Política |
| Proceso | Libros de jugadas, planes de continuidad |
| Tecnología | Redundancia |
- Identifique el aspecto de la mitigación básica, intermedia y madura. Llevará tiempo elaborar estrategias de mitigación. Defina los niveles de mitigación para ayudarle a usted y a su equipo a ver dónde puede establecer controles de inmediato y cómo centrar sus esfuerzos a lo largo del tiempo. Busque siempre oportunidades para utilizar la automatización en sus enfoques de mitigación lo antes posible. Para ilustrar el aspecto de este enfoque en la práctica, este ejemplo muestra un desencadenador orientado a las personas y el aspecto de la mitigación basada en políticas en niveles básicos, intermedios y maduros.
| Desencadenador | Mitigación | Básico | Intermedio | Maduro |
|---|---|---|---|---|
| Cambio de acceso de usuario para un empleado nuevo o saliente | Acuerdo de nivel de servicio (SLA) y requisitos para aprovisionar o desaprovisionar usuarios | Aprovisione y anule el aprovisionamiento de usuarios manualmente, según los SLA para cambios manuales. | Procese cambios de usuario a través de trabajos programados, según los SLA para cambios programados. | Automatice el aprovisionamiento y desaprovisionamiento de usuarios a través de una solución de SSO/IDM. |
Además de utilizar libros de jugadas de arquitectura y planificación de continuidad, utilice Proactive Monitoring. Con Proactive Monitoring, puede configurar alertas en tiempo real sobre desencadenadores de fallos, como fallos de inicio de sesión, excepciones de tiempo de espera de CPU o errores de solicitud de API simultáneos. Este enfoque de alerta aumenta la mitigación de fallos garantizando que tanto las partes interesadas técnicas como comerciales estén informadas a tiempo para reducir el impacto de los fallos.
Los patrones y antipatrones de disponibilidad muestran el aspecto adecuado y deficiente de la mitigación de fallos en una solución de Salesforce. Utilícelos para validar sus diseños antes de crear o para identificar ubicaciones en su sistema para refactorizar.
Para obtener más información acerca de las herramientas de Salesforce para la mitigación de fallos, consulte Herramientas relevantes para fiable.
Esta tabla muestra una selección de patrones para buscar o crear en su organización, y antipatrones para evitar o dirigir para su solución.
✨ Descubra más patrones de disponibilidad en el Explorador de patrones y antipatrones.
| Patrones | Antipatrones | |
|---|---|---|
| Gestión de riesgos | En su negocio:
- Se está utilizando un marco de evaluación de riesgos establecido. - Los riesgos se categorizan en personas, procesos y áreas de tecnología. |
En su negocio:
-El marco de evaluación de riesgos para Salesforce es ad hoc. - Los riesgos no están claramente identificados. |
| En su documentación:
- La gravedad del riesgo se categoriza y evalúa basándose en el impacto sobre el cliente. - Se priorizan los planes de mitigación de riesgos y respuesta. |
En su documentación:
- La perspectiva del cliente no se tiene en cuenta al evaluar la gravedad o categoría del riesgo. - Los planes de mitigación de riesgos y respuesta intentan capturar todos los riesgos imaginables. |
|
| Mitigación de fallos | En su organización:
- Los desencadenadores de puntos de fallo y sus planes de mitigación correspondientes se categorizan por personas, procesos y tecnología. - Los controles de mitigación se establecen de inmediato, maduran con el tiempo e incorporan la automatización lo antes posible. - Para garantizar una escalabilidad óptima, las pruebas y la optimización completas se completan antes de que se publiquen los cambios en producción. - Antes de eventos críticos para el negocio, se realizan pruebas de escala y optimización, según los SLA. |
En su organización:
- Los desencadenadores de punto de fallo no están clasificados. Los enfoques de mitigación no existen o solo se utilizan ad hoc. - Los controles de mitigación no se revisan o mejoran. - La automatización no se utiliza en la mitigación. |
| Seguimiento y observabilidad | En su organización:
- Para comprobaciones y detección de anomalías, Proactive Monitoring está activado. - Para visibilidad continua, las alertas Proactive Monitoring están integradas con Scale Center. |
En su organización:
- Solo se realizan comprobaciones de estado manuales, y no hay supervisión continua establecida. |
El rendimiento de la arquitectura del sistema es una medición de cuánto procesa un sistema (rendimiento) y con qué rapidez responde (latencia). Normalmente comprende el rendimiento de su sistema a través de pruebas de producción y supervisión.
Un sistema con rendimiento completa los procesos de forma oportuna en cada nivel de demanda previsto.
El bajo rendimiento va de la mano con una latencia más alta y un rendimiento más bajo, lo que lleva a una productividad más baja y una mayor frustración de los usuarios. Solucionar problemas de rendimiento es urgente porque pueden llevar a una pérdida de Customer Trust y pérdidas financieras.
Puede mejorar el rendimiento de sus soluciones optimizando el rendimiento y la latencia.
Nota: La optimización del rendimiento y la latencia son aspectos esenciales para mejorar el procesamiento y la capacidad de respuesta del sistema. Sin embargo, es importante recordar que el rendimiento general del sistema también depende de lo bien que diseñe para la escala. Debe tener en cuenta ambas dimensiones en sus diseños.
En el contexto de la arquitectura de Salesforce, el rendimiento es el número de solicitudes simultáneas que un sistema puede completar en un intervalo de tiempo concreto. Las soluciones de Salesforce de los clientes diseñadas y optimizadas para el rendimiento funcionan mejor dentro de los límites reguladores integrados de Salesforce Platform.
La optimización del rendimiento en Salesforce comienza con el cálculo preciso de las cargas de trabajo en su sistema y la planificación de su crecimiento. Sin proyecciones precisas para las demandas que se realizarán en el sistema, no puede precisar posibles problemas con las funciones de rendimiento de su sistema.
Cuando piense en cargas de trabajo, tenga en cuenta estas tres dimensiones.
- El número de transacciones que su sistema debe procesar en un tiempo determinado
- El número de usuarios que deben acceder a su sistema simultáneamente
- La complejidad general de la lógica de transacciones en el sistema
Al pensar en el rendimiento, los equipos a veces se centran demasiado en la computación y las restricciones en el tiempo máximo de CPU, que están entre los límites reguladores de la plataforma. Los equipos con un enfoque restringido en el tiempo de CPU pasan por alto otros métodos para optimizar el rendimiento. Ampliar su enfoque y aplicar estos métodos mejora el rendimiento general y la eficiencia de su arquitectura de Salesforce. Esas mejoras, a su vez, ayudarán a reducir la latencia y aumentar el rendimiento general del sistema. ApexGuru detecta de forma proactiva antipatrones que limitan el rendimiento como SOQL en bucles, DML en bucles, llamadas GGD ineficientes y métodos costosos. Estas perspectivas ayudan a los equipos a eliminar los riesgos límite reguladores que limitan el rendimiento.
Para optimizar el rendimiento en su sistema:
- Favorezca el procesamiento asíncrono. Salesforce Platform utiliza contextos de transacciones para controlar la integridad de los datos y limitar el código desbocado. Consulte Transacciones en Fundamentos de arquitectura en Fundamentos de arquitectura. Por este motivo, el uso de procesamiento asíncrono (asincrónico) donde sea posible puede ayudar a minimizar posibles cuellos de botella en contextos de ejecución síncrona. Consulte Tratamiento de datos. El uso de computación asíncrona no es una cura para cada tipo de problema de rendimiento, y tendrá que tener en cuenta la latencia al incorporar procesos asíncronos. Ciertas funciones de plataforma, como Apex en cola, pueden aumentar la latencia durante picos de tráfico porque provocan que los mensajes esperen más en una cola. Dependiendo de su caso de uso, puede decidir tolerar una posible disminución en la capacidad de respuesta para mantener o mejorar el rendimiento. En otros casos, puede decidir que el aumento de la latencia no es aceptable. Con Prueba de escala, puede validar estas compensaciones simulando picos de tráfico en un Sandbox completo. Allí, puede medir cómo afectan los trabajos al rendimiento y la latencia.
- Utilice siempre masificación. En un nivel alto, masificación significa realizar operaciones contra colecciones. A menudo, los equipos que debaten sobre la masificación para sus soluciones de Salesforce se centran en la racionalización de operaciones de datos en recopilaciones. Consulte Lógica operativa. Sin embargo, la masificación a nivel del sistema implica algo más que operaciones de datos. Considere también ciertas tareas, como llamadas o cálculos complejos, como candidatos para la masificación. La masificación adecuada reduce los gastos generales. Ejecuta múltiples operaciones con una solicitud en vez de una solicitud por operación. ApexGuru aflora patrones antimasificación como DML o SOQL dentro de bucles, que puede solucionar antes de ampliar a producción. Consulte Operaciones masivas.
- Utilice SOSL para búsquedas y trate SOQL como una operación de datos. Puede parecer obvio que el uso de declaraciones SOQL demasiado complejas aumentará la cantidad de tiempo que tarda el sistema en recuperar registros. SOQL agrega gastos generales a la base de datos relacional subyacente, ralentizando el procesamiento. Al utilizar criterios de texto o comodín, SOSL tiene más rendimiento. SOSL utiliza el motor de búsqueda de la plataforma, que está optimizado para indexar texto completo y búsquedas universales. Para optimizar patrones de recuperación de registros, asegúrese de que sus estándares de diseño especifican cuándo utilizar SOSL para encontrar datos en su sistema. Asegúrese también de que especifican cómo utilizar SOQL para operaciones de datos eficientes. Consulte Lógica operativa).
- Utilice Caché de plataforma y ApexGuru. La capa de caché Lightning Platform proporciona un rendimiento más rápido y una mejor fiabilidad al almacenar en caché datos de sesión y organización de Salesforce. Caché de plataforma mejora el rendimiento distribuyendo espacio en caché de modo que algunas aplicaciones u operaciones no roben capacidad a otras. ApexGuru detecta oportunidades perdidas para almacenar en caché consultas repetidas (por ejemplo, Caché de plataforma para resultados SOQL), lo que mejora el rendimiento en entornos de alta escala.
Los patrones y antipatrones para el rendimiento muestran el aspecto adecuado y deficiente del rendimiento en una organización de Salesforce. Utilícelos para validar sus diseños antes de crear o para identificar oportunidades para una optimización adicional.
Para obtener más información acerca de las herramientas de Salesforce para la optimización del rendimiento, consulte Herramientas de Salesforce para fiabilidad.
La latencia es una medición de la rapidez con la que un sistema completa una ruta de ejecución. La optimización del rendimiento de su sistema contribuirá a mejorar la latencia. Otra dimensión de la latencia es el rendimiento percibido o la capacidad de respuesta del sistema para los usuarios.
Las personas no desean esperar a que se carguen las páginas o que finalicen los procesos. Los usuarios de su sistema se frustrarán si experimentan con frecuencia tiempos de carga prolongados al intentar navegar por vistas de lista, páginas de registro, informes, etc. Cuando esto sucede, los clientes o socios pueden decidir llevar su negocio a otro lugar en vez de tratar con sistemas de bajo rendimiento. Internamente, los empleados pueden crear soluciones para evitar el uso del sistema como está diseñado, lo que puede causar problemas descendentes para la seguridad y la integridad de los datos.
El rendimiento percibido puede ser difícil de diagnosticar. Cuando un usuario informa de un rendimiento lento, es posible que los equipos de asistencia no puedan reproducir el problema. El aumento de la latencia es a menudo el resultado de una combinación de problemas más pequeños que se basan entre sí, lo que puede dificultar el diagnóstico de la causa exacta de problemas de rendimiento percibidos.
Para reducir la latencia y mejorar la capacidad de respuesta en su sistema de Salesforce:
- Optimizar informes. Asegúrese de que cada informe cumple un único propósito específico. Identifique claramente la audiencia y el propósito de cada informe en su sistema. En los informes, incluya solo la cantidad mínima de datos que los miembros de la audiencia necesitan para tomar decisiones. La eliminación de columnas que no se alinean con el propósito de un informe mejorará el rendimiento del informe reduciendo la cantidad de datos que se deben recuperar y mostrar.
- Optimice filtros. Los filtros efectivos aceleran el rendimiento de informes y vistas de lista al definir con precisión el número de filas que se recuperan de la base de datos. Como regla general, cuanto más específica sea su lógica de filtro, más eficiente será la consulta subyacente para los datos. Las formas de optimizar filtros incluyen:
- Utilizando “igual a” y “no igual a” en vez de “contiene” y “no contiene”
- Evitar el filtrado por campos de fórmula
- Simplifique su modelo de colaboración. Un modelo de colaboración demasiado complejo puede ralentizar una variedad de procesos porque el sistema debe comprobar el modelo de colaboración y visibilidad para determinar si un usuario tiene acceso a los datos para mostrar o procesar. Los cálculos de colaboración complejos pueden aumentar la latencia en la creación de informes, vistas de lista y automatización que se ejecutan en el contexto del usuario. Consulte Compartición y visibilidad.
- Optimice componentes personalizados de la interfaz de usuario. Los componentes de interfaz de usuario (UI) creados a medida pueden aumentar la latencia. Para optimizar el rendimiento en componentes de la interfaz de usuario personalizados, considere hacer estas cosas.
- Utilice Componentes web Lightning (LWC). El marco de trabajo de LWC está estrechamente alineado con los estándares web modernos. Los componentes personalizados escritos en LWC se representan de forma más eficiente en navegadores web y permiten a los desarrolladores utilizar métodos JavaScript de mayor rendimiento. Intente siempre utilizar LWC en vez de tecnologías de interfaz de usuario antiguas, como Aura o Visualforce.
- Utilice Lightning Data Service. Lightning Data Service gestiona la creación y el mantenimiento de caché seguro, de rendimiento y compartido entre componentes. Utilícelo para evitar recorridos de ida y vuelta innecesarios al servidor para datos y para aumentar la capacidad de respuesta general de la aplicación.
- Utilice la clasificación y el filtrado del lado del cliente para datos de lista. Para componentes LWC (preferido) y Aura (de lo contrario), los desarrolladores pueden utilizar funciones de matriz JavaScript estándar para ordenar, filtrar y seleccionar valores en el lado del cliente, reduciendo el número de viajes requeridos al servidor.
Los patrones y antipatrones muestran el aspecto apropiado y de baja latencia en una organización de Salesforce. Utilícelos para validar sus diseños antes de crear o para identificar oportunidades para una optimización adicional.
Para obtener más información acerca de las herramientas de Salesforce para la optimización de la latencia, consulte Herramientas de Salesforce para fiabilidad.
Esta tabla muestra una selección de patrones para buscar o crear en su organización, y antipatrones para evitar o dirigir para su solución.
✨ Descubra más patrones de rendimiento en el Explorador de patrones y antipatrones.
| Patrones | Antipatrones | |
|---|---|---|
| Rendimiento | En sus estándares de diseño:
- Directrices sobre cómo utilizar Caché de plataforma se adhiere a prácticas recomendadas Caché de plataforma |
En sus estándares de diseño:
- Si hay directrices para el uso de Caché de plataforma, no está claro o no se alinea con prácticas recomendadas. |
| En su organización:
- La masificación se utiliza para operaciones de datos y sistema. - Los métodos DML o de base de datos siempre operan contra recopilaciones en Apex. - Los campos utilizados durante DML para un tiempo transcurrido más corto en la base de datos están limitados. - Todos los criterios comodín se utilizan en SOSL. - Las declaraciones SOQL son selectivas.: -- No utilizan comparaciones LIKE o comparaciones de texto parcial. -- Los operadores de comparación utilizan lógica positiva (es decir, INCLUDES o IN) como su lógica principal o solo lógica. -- = NULL y != NULL se utilizan solo rara vez sigue siempre un operador de comparación positiva. – Para minimizar la carga de datos y maximizar el rendimiento, solo se recuperan los campos necesarios en consultas SOQL. -- No se utilizan declaraciones LIMIT 1. -- No se utiliza la palabra clave TODAS LAS FILAS. - Se favorece el procesamiento asíncrono donde sea posible. - Las particiones de Caché de plataforma están configuradas. |
En su organización:
- Las declaraciones DML no se masifican. - Los métodos DML o de base de datos operan contra registros únicos en Apex. - SOSL rara vez o no se utiliza de forma coherente para criterios de selección de comodines. - Las declaraciones SOQL no son selectivas: -- Incluyen criterios de filtro ME GUSTA y comodín. -- Las comparaciones que utilizan criterios !=, NOT o NOT IN se utilizan como el operador de comparación principal o único. -- Utiliza criterios = NULL y != NULL como operadores de comparación principales o únicos. -- Se utilizan declaraciones LIMIT 1. -- Se utiliza la palabra clave TODAS LAS FILAS. - SOQL aparece en bucles. - Se favorecen los procesos síncronos. |
|
| Latencia | En su organización:
- Los informes sirven a un único propósito específico y contienen el número mínimo de filas y columnas necesarias para tomar decisiones. - Los filtros utilizan “igual a” y “no igual a”. - Los filtros no contienen campos de fórmula. - Los modelos de colaboración se simplifican al máximo. - Los componentes personalizados de la interfaz de usuario utilizan componentes web Lightning (LWC). - LWC utiliza Lightning Data Service para operaciones de datos. - La clasificación y filtrado de datos de lista se gestiona en el lado del cliente en JavaScript. - Salesforce Edge está activado. |
En su organización:
- Los informes sirven para múltiples fines o contienen filas y columnas adicionales que no son necesarias para tomar decisiones. - Los filtros utilizan “contiene” y “no contiene”. - Los filtros contienen campos de fórmula. - Los modelos de colaboración son complejos. - Los componentes personalizados de la interfaz de usuario utilizan marcos que pueden dar como resultado una representación menos eficiente que LWC (por ejemplo, Aura o Visualforce). - LWC utiliza Apex para operaciones de datos. - La clasificación y filtrado de datos de lista se gestiona en el lado del servidor utilizando Apex. - Salesforce Edge no está activado. |
La capacidad de ampliación es la capacidad de un sistema para tener un rendimiento coherente a medida que evoluciona y crece. Un sistema ampliable gestiona grandes aumentos en volúmenes de transacciones o acceso simultáneo sin cambios fundamentales. Los servicios de plataforma de Salesforce están diseñados para admitir la capacidad de ampliación de aplicaciones. Consulte Procesamiento de plataforma interno. Dicho esto, a medida que su organización crece y la demanda de sus productos y servicios aumenta, usted es responsable de crear un sistema que pueda tener un rendimiento efectivo y según lo esperado. La arquitectura para la escalabilidad desde el principio da como resultado una entrega más rápida de nuevas funciones y menos interrupciones de servicio a medida que aumenta el tráfico de usuarios. Al principio de la fase de diseño, antes de implementar nuevas funciones en producción, utilice Pruebas de escala para simular cargas de trabajo proyectadas y validar que la arquitectura puede ampliarse para admitirlas.
Los sistemas no diseñados para la capacidad de ampliación requieren la solución de problemas, el rediseño y la refactorización constantes y costosos. Los problemas de escalabilidad se agravan con el tiempo, lo que merma el rendimiento en todo el sistema. En algunos casos, los negocios se encuentran gastando la mayoría de los recursos de desarrollo y mantenimiento en solucionar problemas de escalabilidad en vez de en nuevas funciones que crean valor.
A veces, un negocio alcanza un punto de inflexión crítico. El diseño original de su sistema no puede admitir el crecimiento del negocio, y eventos inesperados hacen que el sistema sea inestable. Utilice perspectivas desde Centro de escala para identificar puntos de inflexión de escalabilidad de forma temprana. Scale Center aflora puntos críticos de excepción, transacciones de larga ejecución y cuellos de botella de cola que empeoran con el tiempo.
Puede diseñar mejor la escala centrándose en la optimización del modelo de datos y la gestión del volumen de datos.
Nota: Aunque no se trata aquí, las pruebas de escalabilidad son una parte crítica de la validación de sus arquitecturas de aplicación. Para obtener orientación, consulte estrategia de prueba.
El modelado de datos implica estructurar los objetos en su organización y relacionarlos entre sí de una forma que permita a sus usuarios y procesos automatizados recuperar los datos que necesitan lo más rápido posible. Realizar pasos para mejorar el rendimiento soluciona muchos problemas de rendimiento, pero sus esfuerzos no serán tan efectivos sin un modelo de datos optimizado.
Los impactos negativos de un modelo de datos mal diseñado no se notan de inmediato; sus puntos débiles se exponen a medida que el sistema crece en términos de volumen de datos, procesos, usuarios e integraciones. Un modelo de datos bien diseñado facilita la refactorización continua de su aplicación a medida que se agregan y amplían los requisitos. ApexGuru aflora antipatrones de acceso a datos como SOQL no selectivo, campos no utilizados e ineficiencias de esquemas que afectan directamente a la escalabilidad del modelo de datos.
Para optimizar su modelo de datos:
- Utilice los modelos de datos preintegrados desde Salesforce. Salesforce proporciona modelos de datos preintegrados para Ventas, Servicio y una variedad de verticales del sector. El uso de los modelos de datos proporcionados por Salesforce garantiza que las funciones en su sistema se definan solo una vez, eliminando la redundancia y los silos y estableciendo una única fuente de verdad en todo el sistema. Como utilizó modelos de datos preintegrados de Salesforce para ese origen único, es más fácil comprender los datos de la aplicación con análisis y utilizar los servicios de inteligencia artificial preintegrados de Salesforce. Además, la reducción de las personalizaciones que debe admitir reduce los costes de mantenimiento y la deuda técnica.
- Seleccione los tipos de datos correctos. Comprenda los diferentes tipos de campos compatibles con Salesforce y sus limitaciones. Considere requisitos de creación de informes y cifrado de modo que pueda evitar la necesidad de convertir datos entre tipos en el futuro.
- Elija las relaciones correctas. Salesforce admite dos tipos de relaciones entre objetos: principal-detalle y búsqueda. Las relaciones principal-detalle ofrecen dos beneficios principales. Una es las funciones de resumen integradas, que cuentan y agregan detalles desde registros secundarios. La otra es una función de eliminación en cascada integrada, a través de la cual la eliminación de un registro principal también elimina sus registros secundarios. Sin embargo, asegúrese de que comprende las implicaciones de colaboración y sesgo de datos de las relaciones principal-detalle antes de decidir utilizarlas.
- Desnormalizar para la escala. La normalización es el proceso de estructurar su modelo de datos para reducir la redundancia de datos y mejorar la integridad de los datos. Desafortunadamente, la normalización a veces causa problemas de escala. Las tablas desnormalizadas pueden tener un mejor rendimiento a escala, pero recuerde tener en cuenta la integridad y la redundancia de los datos.
Los patrones y antipatrones muestran el aspecto adecuado y deficiente de la optimización del modelo de datos en una organización de Salesforce. Utilícelos para validar sus diseños antes de crear o para identificar oportunidades para una optimización adicional.
Para obtener más información acerca de herramientas de Salesforce para la optimización de modelos de datos, consulte Herramientas de Salesforce para fiabilidad.
El volumen de datos es una medición de la cantidad de datos almacenados en su sistema, basándose en recuentos y tamaños de registros. Si su organización tiene decenas de miles de usuarios, decenas de millones de registros o cientos de gigabytes de almacenamiento de registros total, tiene un gran volumen de datos. El volumen de datos y las relaciones entre objetos en su organización afectan a la escalabilidad y probablemente tendrán un mayor impacto en la escalabilidad que el número de registros por separado.
Para mejorar la capacidad de ampliación de organizaciones con grandes volúmenes de datos:
- Distribuya registros secundarios. Evite el sesgo de datos principal-secundario garantizando que ningún principal tenga un gran número de registros secundarios. La recomendación general es que ningún principal tenga más de 10.000 registros secundarios. Por ejemplo, en una implementación que tiene muchos contactos pero no utiliza cuentas, considere configurar varios registros de cuentas y distribuir registros de contactos relacionados entre ellos.
- Distribuya la propiedad de registros. Evite el sesgo de propiedad garantizando que ningún usuario o cola posee, ni que todos los miembros de una única función o grupo público poseen, más de 10.000 registros del mismo objeto. Los datos de “aparcamiento” con un “usuario ficticio” es una práctica que a menudo conduce a un sesgo de propiedad. Si encuentra este problema, tenga en cuenta la repercusión que tendrá en los cálculos de colaboración. Si no puede redistribuir registros para aliviar el sesgo de propiedad, evite asignar el usuario propietario de datos a una función. Si el modelo de colaboración de su organización requiere una asignación de funciones, coloque al usuario propietario de datos en una función distinta en la parte superior de la jerarquía de colaboración. No permita cambios frecuentes o no planificados en la función de ese usuario, ya que cualquier cambio tendrá repercusiones significativas en el rendimiento debido a nuevos cálculos de colaboración. Mantenga ese usuario fuera de grupos públicos a los que se pueda hacer referencia en cualquier regla de colaboración.
- Reduzca la cantidad de datos de registros en Salesforce. Salesforce está diseñado para proporcionar a los negocios una única vista de sus clientes. Puede parecer contradictorio que limitar datos en Salesforce sea una práctica recomendada. Sin embargo, el poder de la vista única radica en lo bien que permite a los usuarios comerciales comprender y realizar acciones sobre datos de clientes. A medida que crece el volumen de datos, los datos que no son actuales o relevantes para los procesos o análisis diarios dan lugar a varios problemas. Esos problemas incluyen un rendimiento de aplicación degradado; un mayor riesgo de seguridad de los datos y repercusiones negativas en la búsqueda, la creación de informes y los análisis. Para evitar este tipo de problemas, defina un ciclo de vida de datos para cada objeto en su modelo de datos, con cronologías y clasificaciones para datos a medida que envejece y pierde valor comercial inmediato. De acuerdo con el ciclo de vida de los datos, implemente estos procedimientos para gestionar los datos a lo largo del tiempo.
- Archivo y purga de datos: Para mantener los volúmenes de datos lo más bajos posible, elimine registros que no necesita el negocio para ayudar a mantener los volúmenes de datos lo más bajos posible. Utilice la función de eliminación permanente de la API masiva 2.0 para eliminar grandes volúmenes de datos.
- Agregación de datos: Cree objetos personalizados de agregación que resuma tendencias históricas clave o datos de resumen en un formato compatible con la creación de informes. Rellene los objetos personalizados utilizando Apex por lotes. A continuación, los usuarios pueden ejecutar informes basándose en los registros de objetos agregados.
- Clasificación de datos. Mantenga grandes conjuntos de datos en una aplicación diferente si no son necesarios para informes de Salesforce o el trabajo diario. Haga que los datos estén disponibles en Salesforce según sea necesario a través de mashups, llamadas u objetos externos.
En la práctica, es posible que no siempre pueda abordar inmediatamente la causa raíz de un problema de capacidad de ampliación cuando surgen problemas. Por este motivo, Salesforce proporciona opciones para ayudar a aliviar los puntos débiles inmediatos. Es importante saber que la activación de estas funciones en su organización no es una estrategia arquitectónica viable a largo plazo para lidiar con grandes volúmenes de datos. Estas soluciones provisionales a corto plazo pueden ayudar a reducir la latencia en sistemas que sufren de una arquitectura de datos deficiente, pero también pueden agregar deudas técnicas a su organización.
Las soluciones a corto plazo para problemas de escala incluyen:
- Índices personalizados Los índices se almacenan en una tabla interna especial que el optimizador de consultas de la plataforma utiliza para acelerar las operaciones de acceso a los datos. Consulte Índices de arrendatarios). La plataforma indexa automáticamente ciertos tipos de campos de forma predeterminada. Para acelerar las consultas de bajo rendimiento, puede solicitar índices personalizados adicionales poniéndose en contacto con el Servicio de atención al cliente de Salesforce. Utilice la herramienta Plan de consulta para determinar si los índices personalizados mejorarán el rendimiento de sus consultas.
- Mesas flacas. Si necesita optimizar aún más las consultas para conjuntos comunes de campos en objetos con más de 1 millón de registros, las tablas reducidas pueden ayudar. Las tablas reducidas eliminan la unión en segundo plano que se produce al utilizar campos personalizados y estándar desde el mismo objeto en un informe o una automatización. Para que pueda utilizar tablas reducidas, el Servicio de atención al cliente de Salesforce debe activarlas para su organización.
Los patrones y antipatrones para la capacidad de ampliación muestran el aspecto adecuado y deficiente de la gestión del volumen de datos en una organización de Salesforce. Utilícelos para validar sus diseños antes de crear o para identificar oportunidades para una optimización adicional.
Para obtener más información acerca de las herramientas de Salesforce para gestionar volúmenes de datos, consulte Herramientas de Salesforce para fiabilidad.
Esto muestra una selección de patrones para buscar o crear en su organización, y antipatrones para evitar o dirigir para la solución.
✨ Descubra más patrones de escalabilidad en el Explorador de patrones y antipatrones.
| Patrones | Antipatrones | |
|---|---|---|
| Modelado de datos | En sus estándares de diseño:
- Existen estándares y directrices para los que las justificaciones comerciales garantizan un objeto personalizado. |
En sus estándares de diseño:
- No existen estándares para la creación de objetos personalizados. |
| En su modelo de datos:
- Los objetos estándar se utilizan cuando es posible. - Las comprobaciones de ApexGuru para antipatrones confirman que las consultas SOQL son selectivas y evitan un uso ineficiente de esquemas. - Las tablas se desnormalizan para la escala. |
En su modelo de datos:
- Tiene objetos estándar replicados. - Las tablas se normalizan para evitar redundancias. |
|
| En su negocio:
- Los generadores de código bajo comprenden los diferentes tipos de campo compatibles con Salesforce, y evalúan los requisitos de creación de informes y cifrado antes de seleccionar tipos de datos de campo. - Antes de decidir establecer una relación principal-detalle entre objetos, evalúa las implicaciones de colaboración y sesgo de datos de esa relación. |
En su negocio:
- Los generadores de código bajo seleccionan tipos de datos sin evaluar los requisitos de creación de informes y cifrado descendentes. - Antes de decidir establecer relaciones principal-detalle entre objetos, no evalúa las implicaciones de colaboración y sesgo de datos de esa relación. |
|
| Volumen de datos | En sus datos:
- Ningún registro principal tiene más de 10.000 registros secundarios. - No se asignan usuarios a más de 10.000 registros del mismo tipo de objeto. - Ninguna instancia incluye más de 10.000 registros que tengan campos de búsqueda apuntando al mismo registro. - Las cargas de datos masivas se ordenan en lotes según los valores de campo ParentId. - Para asegurarse de que las estrategias por lotes no se interrumpen bajo concurrencia, se utiliza Prueba de escala para validar patrones de carga masiva a escala de producción. - Las cargas de datos masivos en producción no se producen durante el horario laboral pico. - Las cargas de datos masivos incluyen solo los datos mínimos necesarios para decisiones comerciales. |
En sus datos:
- Existen registros con más de 10.000 registros secundarios. - Los usuarios están asignados a más de 10.000 registros del mismo tipo. - Existen instancias donde más de 10.000 registros tienen campos de búsqueda que apuntan al mismo registro. - Las cargas de datos masivos no se ordenan en lotes según los valores de campo ParentId. - Las cargas de datos masivos en producción se producen durante el horario laboral pico. - Las cargas de datos masivos no están limitadas a los datos mínimos necesarios para decisiones comerciales. |
| En Flow y Apex:
- Existe lógica para distribuir el número de registros secundarios entre múltiples registros principales en escenarios donde el sesgo de datos es un problema. - Al importar o replicar registros a través de la integración, la lógica los asigna a los usuarios humanos apropiados. - Para recopilaciones Apex, como listas y conjuntos, existe lógica para procesar múltiples registros para minimizar consultas y optimizar el manejo de datos. - Se redacta e implementa un código Apex eficiente que sigue los estándares y prácticas recomendadas para código escalable. |
En Flow y Apex:
- Los registros secundarios se asignan arbitrariamente a registros principales, independientemente del número de registros secundarios que ya están asignados. - Los registros creados a través de cargas de datos o integraciones se asignan a un "usuario de integración" genérico. - Múltiples consultas SOQL recursivas desde el mismo objeto están en transacciones síncronas, lo que lleva a un alto uso de pila. Cuando los desarrolladores escriben código Apex, introducen ineficiencias y antipatrones de rendimiento. |
|
| En su negocio:
- Ha documentado e implementado una estrategia de archivado y purga de datos |
En su negocio:
- No tiene una estrategia de archivado y purga de datos o su estrategia se documentó pero no se implementó |
| Herramienta | Descripción | Disponibilidad | Rendimiento | Capacidad de ampliación |
|---|---|---|---|---|
| Big Objects | Almacene y gestione grandes volúmenes de datos en la plataforma. | X | ||
| Escáner de código | Escanee el código Apex para problemas de rendimiento. | X | ||
| Índices personalizados | Mejore el rendimiento de las consultas con índices personalizados. | X | ||
| Eliminación de datos | Elimine datos innecesarios para mejorar el rendimiento. | X | X | |
| Divisiones | Datos de partición para limitar recuentos de registros en consultas e informes. | X | ||
| Prueba de escala | Pruebe el rendimiento del sistema e interprete los resultados. Antes de implementar en producción, para validar la capacidad de ampliación y el rendimiento, imule cargas de trabajo de API e interfaz de usuario a gran escala utilizando secuencias de comandos de Playwright o JMeter. | X | X | |
| Centro de escala | Obtenga perspectivas de autoservicio y en tiempo real sobre el rendimiento del sistema. Busque transacciones de larga ejecución, puntos de acceso de excepción y cuellos de botella de rendimiento. Diagnostique problemas de escala antes en su ciclo de desarrollo. | X | X | |
| ApexGuru | Utilice esta función basada en GenAI en Scale Center para detectar Apex, SOQL y antipatrones de clase de prueba en tiempo de ejecución. A través de la integración de ApexGuru con Salesforce Code Analyzer, obtenga recomendaciones con tecnología de IA y soluciones en línea en el flujo de trabajo de desarrollo. Utilice esas recomendaciones y soluciones para resolver puntos críticos y mejorar la selectividad de consultas, la masificación, el uso de caché y la calidad de las pruebas. | X | X | |
| Analizador de código de Salesforce | Escanee código con IDE, CLI o CI/CD para asegurarse de que se adhiere a las prácticas recomendadas. A través de la integración de Salesforce Code Analyzer con ApexGuru, obtenga perspectivas acerca de antipatrones de rendimiento directamente en el flujo de trabajo del desarrollador. | X | ||
| Red de Salesforce Edge | Mejore los tiempos de descarga y la experiencia de usuario enrutando su Mi dominio a través de Salesforce Edge Network. | X | ||
| Skinny Tables | Evite uniones en tablas que tienen campos utilizados con frecuencia. | X | ||
| Proactive Monitoring | Supervise continuamente anomalías en el crecimiento de registros, el sesgo de propiedad y las regresiones de rendimiento. Alerta sobre problemas de escala antes de que se vuelvan críticos. | X | X |
| Recurso | Descripción | Disponibilidad | Rendimiento | Capacidad de ampliación |
|---|---|---|---|---|
| Los retos de escalada cuestan millones: así es cómo preparar su negocio para el futuro | Descubra cómo la implementación de la capacidad de ampliación lleva al crecimiento sostenible y al éxito a largo plazo. | X | X | |
| Crear e implementar aplicaciones ampliables utilizando Scale Center | Comprenda cómo evaluar y resolver de forma proactiva problemas de rendimiento en sus implementaciones de Salesforce. | |||
| Analizar el rendimiento y escalar puntos de acceso en aplicaciones complejas de Salesforce | Solucione problemas de rendimiento y capacidad de ampliación en su organización. | X | X | |
| Su aplicación no debería entrar en pánico en el tráfico en horas punta: A continuación le mostramos cómo prepararse | Aprenda cuatro pasos clave para realizar pruebas a escala con éxito. | |||
| El motor de IA de ApexGuru explicado | Aprenda cómo ApexGuru utiliza modelos entrenados a medida, telemetría de la organización en el mundo real y filtrado inteligente para entregar perspectivas precisas, contextuales y con capacidad de acción. | X | X | |
| Optimizar su Apex para aplicaciones y Agentforce con ApexGuru | Aprenda cómo ApexGuru ayuda a los desarrolladores a detectar y solucionar antipatrones de rendimiento, incluyendo SOQL, DML, depuración e ineficiencias de prueba. Utilice ApexGuru como un entrenador con tecnología de IA para el desarrollo ampliable de sus aplicaciones y su implementación de Agentforce. | X | X | |
| ApexGuru Antipatterns | Aprenda de la biblioteca oficial de antipatrones detectados por ApexGuru, que se actualiza para cada versión principal de Salesforce. | X | X | |
| Prácticas recomendadas para implementaciones con grandes volúmenes de datos | Comprenda las repercusiones de los procesos de grandes volúmenes de datos. | X | ||
| Consideraciones sobre Salesforce Edge Network | Averigüe cómo preparar su organización para utilizar Salesforce Edge Network. | X | ||
| Plantilla Estándares de diseño | Cree estándares de diseño para su organización. | X | X | X |
| Consideraciones sobre el diseño de modelos de datos | Optimice modelos de datos para la escala y el mantenimiento. | X | X | |
| Diseño del acceso a registros para Enterprise Scale | Optimice el rendimiento del control de acceso a través de la configuración. | X | ||
| Infraestructura para sistemas con grandes volúmenes de datos | Obtenga información acerca de funciones que admiten el rendimiento del sistema para implementaciones con grandes volúmenes de datos. | X | ||
| Recursos de aprendizaje para la gestión por lotes | Obtenga información acerca de Gestión por lotes. | X | X | |
| Optimización del rendimiento Lightning Experience | Mejore Lightning Experience en su organización para ayudar sus usuarios a trabajar con mayor rapidez. | X | ||
| Gestionar el sesgo de búsqueda en Salesforce para evitar excepciones de bloqueo de registros | Comprenda cómo minimizar los efectos de los sesgos de búsqueda. | X | X | |
| Prácticas recomendadas de SOQL y SOSL | Siga las prácticas recomendadas de SOQL y SOSL para implementaciones con grandes volúmenes de datos. | X | X | |
| Herramientas para alineaciones a gran escala | Planifique y ejecute realineaciones de forma efectiva. | X | ||
| Uso de Mashups | Mantenga grandes conjuntos de datos en una aplicación diferente. | X | X |
Ayúdenos a mantener Salesforce Well-Architected relevante para usted; realice nuestra encuesta para proporcionar comentarios sobre este contenido y díganos qué le gustaría ver a continuación.