Yearly Archive 12 December 2019

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