Category Archive Non classé

ByPatrick

Linkedin

Je mets à jour doucement mon profile LinkedIn

ByPatrick

L’informatique vue avec 20 ans d’expérience

Quand vous envoyé appelé une page web, on a besoin que les dns soient bien configurées, que les firewalls soient bien configurés, que les reverses proxy envoient aux bon loadbalancer, que les serveurs soient up and running, qu’ils écrivent dans une table qu’une tache planifiée vide à interval régulier (asynchrone) et au final, on a le bon résultat.

ByPatrick

Nos standards high level pour une application moderne :

Niveau 1

  • Aucun paramètre important ne doit être hardcodé, ils doivent se retrouver dans un fichier de config ou dans la base de registre (emplacement des fichiers, login, psw, connection string, url..)
  • Logging d’erreurs doit être présent, en cas de crash, on doit avoir des try catch aux bons endroits
  • Ça doit être en service, ou webservice on doit pouvoir redémarrer le serveur sans que ça n’interrompe définitivement le bon fonctionnement de l’application

Niveau 2

  • Multi users : 
    • Securité via ldap et sso 
    • ou locale
  • Logging centralisé
  • l’application doit être hautement disponible
    • Load balance
    • Windows cluster

Niveau 3

  • Test unitaire
  • Test de charge
  • Multithread
  • Get configuration via un webservice
  • Si l’application se connecte à internet, permettre de se connecter à internet via un proxy

Niveau 4

  • Logging : 
  • Différents niveaux  : permettre de mettre un mode debug avec plus de détails ou simple
  • Dfférentes destinations
    • Event viewer
    • Fichiers plats
    • syslog
    • Graylog

Accès à une DB

  • Réinclure les méthodes pour permettre une mise à jour facile (penser à Mysql qui a changé en Mysqli)
  • multi DB (MsSql, Mysql, Oracle..)
  • Syncho DB locale  : permettre à l’application d’avoir une copie local d’une partie de la DB pour mode offline
  • Toutes les requêtes SQL doivent être optimisée (moins d’une seconde), vérifier nhibernate
  • l’archivage des données moins utiles

Niveau 5

  • Audit de code pour performance
  • Audit de code pour sécurité
  • Https avec certificate pinin
  • Multi langue : Traduction facile / changer de langue / ajouter une langue

Comment gérer les licenses

Code unique à taper et validation locale

Code unique à taper et activation en ligne et blocage si > X  et lier au matériel

Code unique à taper et activation en ligne et blocage si date > X  et lier au matériel

Par user avec un portail

Utilisateurs concurrents (dès que l’application se lance, elle va se connecter à un serveur de licence et bloquer une licence pendant X heures

  •   Multi interface / design
  •   Webservice attaqués via 
    • Page web (ergonomique, réactives)
    •  Interface lourde
    • Appx ou apk (s’adapte et testé par device client)

Contraintes d’intégrités et workflow

Déploiement:

  • Pouvoir déployer facilement et recréer des environnements à la demande (Cloud, Infrastructure as code,

Swagger et health

ByPatrick

Services offerts par Linode

it’s important that you know what sort of capabilities are available to you on Linode:

Compute

  • Shared Linodes: Balanced power and performance
  • High Memory: Maximum RAM configurations perfect for caching or in-memory DBs
  • Dedicated CPU: For those CPU-intensive applications and DBs that don’t like to share
  • GPU: Equipped for complex computing, machine learning, video processing
  • Kubernetes: Fully-managed container orchestration engine

Storage

Networking

  • Nodebalancers: No fuss, intelligent load balancing and failover for your web-facing systems
  • DNS Manager: Complimentary and comprehensive Domain Management to make your life easier

Services

  • Managed: Incident response and triage for your peace of mind
  • Professional Services: Augment your team with our consultants and project experts

Tools

  • API: Programmatically access all of Linode’s products and services
  • CLI: Manage your Linodes from the comfort of your terminal
  • One-Click Apps: Save time deploying in the cloud with pre-installed software
  • Linode Images: Easily deploy one image across multiple machines with Linode Images
  • Integrations: All your favorites in one place and ready to go to work for you
  • Stackscripts: Automatically configure new Linode instances using simple scripts
  • Monitoring: Easily analyze performance and system metrics
  • Users & Permissions: Collaboration and security to accelerate your business

One-Click Apps :

ByPatrick

Vultr

Vultr offre 17 datacenter différents

un nombre raisonnable d’applications déployable en 1 click

ByPatrick

Fake harddrive from china

Juste pour l’anecdote, mon frère est allé à Pekin et dans un grand magasin spécialisé dans le matériel l’informatique, il a acheté pour un bon prix un disque dur de 2To.

Malheureusement, le résultat ne fut pas au rendez vous:

Ils avaient juste mis une clef USB de 2Go et un peu de métal pour faire illusion. Impossible à déceller sans ouvrir ou faire un test en détail (essayer de remplir les 2To et de les relire)

ByPatrick

Docker

Aujourd’hui, notre serveur docker a été un peu récalcitrant, certains containers avaient du mal à démarrer. Un petit

docker logs -f --tail 100 db

nous a appris qu’ils manquaient d’espace disque. Dans un premier temps, nous avons :

docker volume prune

et agrandit la taille du disque via docker desktop (et oui, celui là est sous windows)

ByPatrick

Intune : Comment signer un appx avec un code signing certificat digicert en vue d’un déploiement via intune (mode Hybride)

Le prérequis sont

  • installer The Windows 10 SDK sur un pc windows 10.
  • avoir un code Signing Certificat de digicert par exemple.

Ensuite, il y a deux façons, la première, si on a le pfx et le mot de passe :

signtool.exe sign /fd sha256 /f “CODE_SIGNING_CERTIFICAT.pfx” /p MySecretPfxPassword /t http://timestamp.verisign.com/scripts/timstamp.dll ” Reader_Setup.exe”

L’idéal pour scripter ce genre d’action est de rajouter le certificat dans le certificat store du pc ou d’un serveur et de lancer la commande :

“C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\signtool.exe” sign /tr http://timestamp.digicert.com /sm /td sha256 /fd sha256 /sha1 “CERTIFICAT_THUMPRINT6D0A0BBAA40DD73” Nom_De_lAPPX.APPX

ByPatrick

Comment ajouter un loadbalancer, un certificat dans netscaler en ligne de commande

Comme ils disent, YAKA, 😉

Alors, je vais être franc, le plus simple quand on le fait pour la 1ère fois, c’est via la page web. Mais après quand on veut automatiser, la ligne de commande, c’est quand même pratique 😉

cli_script.sh "add server 192.168.1.119 192.168.1.119"
cli_script.sh "add service guacamole 192.168.1.119 HTTP 8080 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -sp OFF -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO"
cli_script.sh "add lb vserver guacamole2 SSL 172.17.0.6 444 -persistenceType NONE -cltTimeout 180"
cli_script.sh "bind lb vserver guacamole2 guacamole"
cli_script.sh "bind ssl vserver guacamole2 -certkeyName DOMAINE.DOMAINE.be"
cli_script.sh "add ssl certKey DOMAINE -cert domain.name.pfx -key domain.name.pfx -inform PFX -passcrypt PASSWORD -expiryMonitor DISABLED"
cli_script.sh "bind ssl vserver guacamole2 -certkeyName DOMAINE.DOMAINE.be"

cli_script.sh "save config"

Et voilà comment en quelques lignes, on crée un virtual server, on crée un virtual serveur, on configure un certificat et on utilise netscaler en reverse proxy pour protéger une site web.

ByPatrick

SCCM SQL products

Comment exporter le nom des applications et la version depuis SCCM

SELECT
  NormalizedName,
  NormalizedPublisher ,
  NormalizedVersion ,
  COUNT( DISTINCT ResourceID) AS QTY
FROM
  dbo.v_GS_INSTALLED_SOFTWARE_CATEGORIZED
GROUP BY
  NormalizedName,
  NormalizedPublisher ,
  NormalizedVersion
ORDER BY   QTY DESC

/***/

 SELECT PRD .ProductName, PRD.ProductVersion 
FROM
v_GS_SoftwareProduct PRD
inner join v_GS_Computer_System 
where ProductVersion not like ‘%,%’ and ProductName not like ‘%,%’

/***/

 select DISTINCT SYS .Netbios_Name0, SYS.Resource_Domain_OR_Workgr0 ,SP. CompanyName, SP.ProductName, SP.ProductVersion
 FROM
v_GS_SoftwareProduct SP
 JOIN v_R_System SYS ON SP .ResourceID= SYS.ResourceID
 JOIN v_FullCollectionMembership fcm on sys. ResourceID=fcm .ResourceID
 WHERE fcm. CollectionID = ”
 ORDER By SYS. Netbios_Name0, SP .CompanyName, SP.ProductName , SP. ProductVersion

/***/

select distinct SYS .Netbios_Name0 computername, SP.DisplayName0 , SP. Publisher0, SP.Version0
FROM
v_Add_Remove_Programs SP
inner JOIN v_R_System SYS ON SP. ResourceID=SYS .ResourceID
WHERE 
SP. Version0 not like ‘%,%’ and SP .DisplayName0 not like ‘%,%’
 ORDER By
SYS. Netbios_Name0, SP .Publisher0, SP.DisplayName0 , SP. Version0