miércoles, 8 de agosto de 2018

Gitlab

La forma más fácil de instalar un servidor de GitLab es utilizando una máquina virtual ya configurada que se puede obtener del sitio de Bitnami.
Otras opciones de instalación incluyen la instalación del Omnibus package en sus diversas opciones (Ubuntu, Debian, etc.) así como otras opciones de instalación como Docker, Kubernets, Google Cloud Platform, Amazon Web Services.

Una vez instalada la máquina virtual de Bitnami, hay que leer la siguiente información básica:
- How To Configure A Static IP Address

cd /etc/systemd/network
sudo cp 99-dhcp.network viainfo.network
sudo mv 99-dhcp.network 99-dhcp.network-bak
sudo chmod 777 viainfo.network
vi viainfo.network

El archivo "viainfo.network" tiene que quedar así:

  [Match]
  Name=en*

  [Network]
  Address=172.10.10.104
  Gateway=172.10.10.1
  DNS=172.10.10.243


Para reiniciar el sistema:
- sudo reboot

Habilitar Key-Based Authentication en SSH Server
Ver Linux básico.

Habilitar usuarios:
- Crear acceso SSH para cada nuevo usuario (desde Git Bash)
  • Crear SSH Key
    • ssh-keygen -t rsa -b 4096 -C "pablon@viainfo.com.ar"
      • Dejar nombre de archivo x default
      • NO informar palabra clave
  • Agregar la nueva clave privada al SSH Agent
    • eval $(ssh-agent -s)
    • ssh-add ~/.ssh/id_rsa
    • ssh-add -l (para ver las claves existentes)
  • Agregar la nueva clave publica a la cuenta de GitHub
    • clip < ~/.ssh/id_rsa.pub  (copia la clave "pública" al clipboard)
    • Ingresar a User Settings / SSH Keys y agregar la nueva clave.
Para verificar la conexión al servidor:
  • ssh -vT git@172.10.10.246
Configurar el cliente:



- Finalmente habilitar el acceso de cada usuario a un nuevo repositorio.




Documentación:
- How to enable SSH Server
- How To Connect To The Server Through SSH
- How To Obtain Root Privileges
- How To Upload Files To The Server With SFTP
- How To Configure Your Application To Use A Third-Party SMTP Service For Outgoing Email
- How To Configure Outbound Email Settings
- How To Create A Full Backup Of GitLab


SQL Server Performance Tunning

Son muchos los temas a tener en cuenta. Aquí mencionamos sólo algunos de ellos a modo de ayuda memoria.

Uso de Dispositivos Físicos, Esperas y Eficiencia de Indices en SQL Server
Varios temas a tener en cuanta.

Crear índices sugeridos por SQL Server
La tabla Sys.dm_db_missing_index_groups devuelve información sobre qué indices faltan.

Descripción y resolver problemas de bloqueo de SQL Server

Monitor de Actividad de SQL Server



Entity Framework DbContext




Managing DbContext the right way with Entity Framework 6: an in-depth guide:  http://mehdi.me/ambient-dbcontext-in-ef6/
-          DbContextScope: a simple, correct and flexible way to manage DbContext instances



Entity Framework Working with Transactions (EF6 Onwards) : https://msdn.microsoft.com/en-gb/data/dn456843.aspx#transactionScope



Para leer:



CONCLUSIONES:

Lo que no funciona con el DbContextScope es el refresh de Ids (Identities).
Dentro de una transacción, al grabar una tabla con un campo identity, como no va contra el motor sino hasta hacer el .SaveChanges(), no tenemos información de los IDs que se deben transferir a los registros de las tablas relacionadas (hijos).
Tampoco funciona la ejecución de SP dentro de transacciones, porque el DbContextScope sólo difiere el SaveChanges() y hace uno todo junto al final, pero la ejecución de un SP no pasa por el SaveChanges().
Para transacciones lo mejor es utilizar TransactionScope().