Introducción

1

Lo que aprenderás sobre DevOps con GitLab

2

¿Qué es Devops?

3

El ciclo de vida del Devops

4

Introducción a Gitlab

5

Gitlab vs Github

Administración

6

Autenticación

7

Grupos

8

Autorización

9

Auditoría

10

Proyectos

Planificación

11

Tipos de desarrollo

12

Planificación en Gitlab-Issues

13

Planificación en Gitlab-Etiquetas

14

Planificación en Gitlab-Pesos

15

Planificación en Gitlab-Milestones

16

Planificación en Gitlab-Boards

17

Planificación en Gitlab-Service Desk

18

Planificación en Gitlab-Quick actions

Verificación

19

Inicialización del repositorio

20

Merge requests

21

Profundizando en Merge requests

22

Continuous Integration-CI

23

Gitlab CI

24

Automatizacion con GitLab Cl

25

Validacion de la configuracion con GitLab Cl

26

gitlab-ci.yml

27

Gitlab pages

28

Implementando Gitlab pages

29

¿Qué es el Desarrollo Ágil?

30

Gitlab autodevops

31

Implementando GitLab autodevops

32

Habilitando autodevops

Empaquetación

33

Gitlab container registry

34

Introducción a contenedores

Seguridad

35

Introducción a DevSecOps

36

Firmas de seguridad

37

Pruebas estáticas de seguridad

38

Escaneo de contenedores

39

Escaneo de dependencias

40

Pruebas dinámicas de seguridad

41

Gitlab security dashboard

Distribución

42

Continuous Delivery (CD)

43

Ambientes

44

Review apps

45

Estrategias de Distribución

46

Feature Flags

47

Rollback

Monitoreo

48

¿Por qué monitorear?

49

Métricas de desempeño (performance metrics)

50

Métricas de salud (health metrics)

51

Metricas de equipo

52

Rastreo de errores

Conclusiones

53

¿Por qué desarrollar con Gitlab?

Feature Flags

46/53

Lectura

Los feature flags son una técnica poderosa, que permite a los equipos modificar el comportamiento de su sistema sin necesidad de modificar código o realizar un despliegue. Esto aumenta la velocidad del equipo sin sacrificar la estabilidad del sistema.

Sin embargo, no todo es color rosa: los feature flags introducen gran complejidad a nuestro sistema, y si no somos cuidadosos, podemos construir un sistema en el cual sea imposible escribir pruebas unitarias (por la explosión combinatoria de posibilidades que los feature flags introducen). Por eso, como regla general, debemos mantener los feature flags en un mínimo.

Ahora sí, a entrarle de lleno. Para trabajar correctamente con los feature flags, es indispensable reconocer que existen diversas categorías, y el tratamiento que le damos a cada una debe ser distinto.

Tipos de Feature Flags
La primera categoria se conoce como Release Flags. Este tipo de bandera nos permite implementar una estrategia de Continuous Delivery, dónde los diferentes features se activan de manera manual e independiente. Este tipo de estrategia es importante cuando se requiere lanzar una funcionalidad compleja que requiere estar concluida al 100% para ser lanzada o cuando se necesita coordinar un evento externo junto con el despliegue de la funcionalidad (por ejemplo, cuando el feature se lanza en coordinación con una campaña de marketing).

La segunda categoría son los Experiment Flags. Este tipo de flag se utiliza cuando nuestra aplicación permite la realización de experimentos A/B. Cada usuario de la aplicación es segmentado en cohortes y se muestran diferentes funcionalidades dependiendo del cohorte al que pertenezcan. Este tipo de flags tiene un periodo de vida muy corto, pues una vez que se ha determinado el resultado del experimento, se opta por una u otra versión, y se estandariza el uso en el sistema. También, es importante tener duraciones cortas porque cuando se corren diversos experimentos A/B de manera simultánea, existen altas posibilidades que los experimentos interfieran el uno con el otro, eliminando así la validez estadística del resultado.

Por su parte, los Ops Flags, permiten crear switches que facilitan controlar el comportamiento del sistema en runtime. Existen ocasiones, por ejemplo, en el que los sistemas reciben cargas inusuales y es necesario optimizar los recursos que tenemos disponibles para servir nuestra aplicación. En este caso, a través de feature flags es posible deshabilitar temporalmente servicios no críticos (como quizá un proceso que utiliza mucha memoria o procesamiento), para después habilitarlos una vez que la carga se haya normalizado.

Por último, los Permission Flags nos permiten habilitar funcionalidades para usuarios específicos de nuestra aplicación. Un ejemplo de lo anterior acontece cuando una compañía decide hacer dogfooding para probar internamente funcionalidades antes de habilitarlas para todos los clientes. En este caso, se puede utilizar una lista de Ids de usuarios para determinar si es necesario mostrar la funcionalidad o no.

Feature Flags en Gitlab
Gitlab ofrece la funncionalidad de manejar feature flags directamente desde la interfaz del proyecto. Detrás de bambalinas, Gitlab utiliza el proyecto open source Unleash. Unleash tiene dos componentes: un servidor (que permite definir y administrar feature flags), y librerías para el cliente para que pueda consultar el estado de un flag específico. Gitlab implementa el servidor, y deja que los desarrolladores implementen la parte del cliente, según su lenguaje de programación.

Para crear un feature flag, es necesario realizar lo siguientes pasos:

Navega al menú Operations > Feature Flags
Da click en el botón que dice New Feature Flag
Escoge un nombre y una descripción para tu feature flag
Y da click en el botón Create feature flag
Captura de Pantalla 2019-04-05 a la(s) 17.27.30.png

Un punto importante son los Environment Specs, los cuales permiten activar el feature en diferentes ambientes (por ejemplo, staging y producción). También se puede habilitar el ambiente * que aplica para todos los ambientes. Gitlab toma por default el ambiente más específico.
Captura de Pantalla 2019-04-05 a la(s) 17.27.53.png

Por último, para generar la integración del lado del cliente es necesario utilizar una de las múltiples librerías que ofrece Unleash. Para configurarlo, es necesario obtener los datos de configuración desde la interfaz de Gitlab y añadirlos al momento de inicializar nuestra librería. Para eso, navega a Operations > Feature Flags y da click en el botón Configure. En ese momento aparecerá un popup con la información que necesitas.
Captura de Pantalla 2019-04-05 a la(s) 17.28.27.png

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Para complementar
GitLab Feature flags

muy bien explicado la funcionalidad Feature Flags

En las nuevas versiones no veo esa opción