logo

Suite de logiciels pour gérer des serveurs Ubuntu.

Ce projet est pour me permettre d’offrir plusieurs services partagés.

C’est un changement de la version utilisant Chef à un logiciel 100% interne fait en Java.

Applications de base installées sur tous les serveurs:

  • Page de maintenance commune lorsqu’un site est retiré.
  • Surveillance des services (httpd, mysql, …) pour qu’ils soient automatiquement redémarrés s’ils plantent.
  • Application de sauvegarde quotidienne de tous les utilisateurs, bases de données, job cron et services upstart.

Ressources gérées par le site web:

  • Gère
    • les utilisateurs,
    • les certificats et clés SSL,
    • les sites web,
    • les bases de données,
    • les services upstart,
    • les tâches cron.

Logiciels complémentaires:

  • Système d’envoi d’entrées DNS au serveur DNS
    • Association automatique de l’adresse IP de la machine qui contient le site.
    • Création automatique des entrées DNS basées sur les sites Apache configurés et les adresses courriel utilisées.
    • Permet de facilement migrer un site sur un nouveau serveur sans avoir à manuellement changer le DNS.
    • Permet de distribuer la charge d’un site sur plusieurs machines: ajout et retrait automatique si une machine s’ajoute ou quitte.
  • Système surveillance
    • Envoie les statistiques de chaque machine régulièrement.
    • [En cours] Envoie l’espace disque utilisé par chaque utilisateur (sites web, courriel, bases de données, …)
  • Site web pour gérer les comptes par l’administrateur et les utilisateurs
    • Gérer les sites.
    • Gérer les courriels.
  • Redirection des connexions locales à MySQL vers un autre serveur MySQL centralisé
    • Permet de déployer le même code sur plusieurs machines en conservant localhost comme base de données.
    • La connexion est cryptée entre les serveurs.
Technologies: , , , , , , , , , , , , , ,

Dans le cadre de mon travail chez Morgan Stanley, je m’occupe de plusieurs produits dans l’équipe de Business Intelligence (BI).

Hadoop:

  • Application web libre service pour gérer des projets sur des distributions d’Hadoop Cloudera et MapR.
  • Permettre d’accepter ou refuser l’accès aux grappes aux différents projets.
  • Permettre aux utilisateurs de se créer un répertoire personnel.
  • Gérer les quotas et les permissions des répertoires.
  • Intégration avec des services REST utilisant SPNEGO
  • Créer des scripts pour vérifier l’état des différents services sur les grappes.
  • Créer des exemples de code pour Hive, Impala, HBase, …

Support de WebIntel:

  • Application interne ressemblant à Google Analytics.
  • Créer une application web qui permet de noter les visites vers des urls externes et rediriger vers ces urls.
  • Créer une suite de tests incluant des tests de charges.

Preuve de concept d’une application sur Hadoop:

  • Faire des milliers d’insertions de messages dans une table en format Parquet en utilisant Impala (via le pilote JDBC d’Hive).
  • Simuler les messages quotidiens en temps réel en plus de permettre d’augmenter la charge:
    • Télécharger les vrais messages envoyés les dernières journées et les conserver en format JSON compressés.
    • Générer une liste de messages pour l’heure présente en utilisant les messages conservés et en utilisant un multiplicateur.

Support des outils pour SAP Business Object:

  • Aider à résoudre quelques bogues.
  • Rendre une application Flex listant tous les répertoires et sous répertoires plus rapide en chargeant le contenu des sous-dossiers sur demande seulement.

Autre:

  • Faire passer des entrevues techniques.
  • Ajouter de la documentation dans tous les projets que j’ai participé.
  • Créé une librairie Java commune avec plusieurs points d’intégrations sur les différents services chez Morgan Stanley.
  • M’occuper d’un stagiaire pour une réécriture d’un service utilisant Business Object. Le service passe de C# à Java.
  • Aider un autre stagiaire pour tester les performances d’une grappe Hadoop.
  • Participer à des foires de carrière.

 

Technologies: , , , , , , , , , , , , , , , , , , ,

Dans le cadre de mon travail chez Morgan Stanley, je m’occupe de plusieurs produits dans l’équipe de Business Intelligence (BI).

Support des outils pour SAP Business Object:

  • Site web en aspx pour gérer les projets.
  • Service SOAP pour contrôler les rapports.
  • Outils qui roulent en arrière-plan pour synchroniser les utilisateurs, faire une sauvegarde, etc.
  • Tâches: régler des bogues, ajouter quelques fonctionnalités et aider à la migration de R3 à R4.
  • Créer des scripts pour faciliter quelques opérations comme l’importation de beaucoup de groups LDAP.
  • Créer des outils de benchmark et comparer plusieurs implémentations pour avoir la plus rapide.

Support de WebIntel:

  • Application interne ressemblant à Google Analytics.
  • Tâches: régler des bogues et ajouter quelques fonctionnalités.
  • Migration de serveurs.

Création et support de WebIntel Workbench:

  • Application pour examiner les permissions, les visites, les vues …
  • Utilise Java, Spring, HTML, AngularJS …
  • Permets aux équipes utilisant WebIntel et à l’équipe de support de diagnostiquer leurs problèmes.
  • Permets de fouiller dans toutes les bases de données et les tables en quelques cliques sans connaitre toutes les requêtes.
  • Permets aux nouveaux développeurs d’apprendre la structure de la base de données puisque chaque vue affiche la requête SQL exécutée.

Hadoop:

  • Créer des exemples d’application Map/Reduce en Java et Scala.
  • Aider à trouver des solutions d’intégrations dans l’environnement de Morgan Stanley.

Autre:

  • Faire passer des entrevues techniques.
  • Ajouter de la documentation dans tous les projets que j’ai participé

 

Technologies: , , , , , , , , , , , , , ,

Cette application est encore en phase Beta étant donné qu’elle est très ambitieuse. Le but est de créer facilement un serveur web à la maison sur lequel rouler des applications qui accèdent aux données locales. C’est donc une plate-forme pour exécuter des applications sur votre ordinateur principal, mais à partir de n’importe quelle machine. Une autre façon de le voir est de vous dire que c’est un genre de Google Apps, mais qui roule sur votre ordinateur plutôt que sur ceux de Google.

Technologies: , , , , , , , ,

Dans le cadre de mon travail chez CGI, j’ai participé à la création d’une application web pour permettre aux étudiants gradués de postuler à la maîtrise ou au doctorat.

La version 2 couvre tout le processus:

  • Permettre aux administrateurs de créer des formulaires à remplir par les applicants selon le programme
  • Permettre aux applicants de créer leur profil et de soumettre des applications
  • Permettre à des personnes d’appuyer la candidature d’un appliquant en téléversant un fichier
  • Permettre aux réviseurs d’applications internes à McGill et aussi externes de faire des recherches et de visualiser les applications selon leurs permissions
  • Permettre aux administrateurs de McGill de gérer les permissions

Responsabilités:

  • À l’occasion
    • Créer les fichiers pour l’installation de la base de données, les configurations et le paquet à déployer
    • Déployer l’application sur les environnements de tests
    • Guider et répondre aux questions des testeurs

Spécificités:

  • Application Grails
  • Créer et accéder à des services web avec CXF et Groovy wslite
  • Créer des tâches quotidiennes de maintenances activables par un appel à un service web
  • Coder des points d’intégrations:
    • Avec des services web
    • Avec des stored proc dans la base de données Oracle
    • En créant des vues dans la base de données Oracle
    • Créer des stubs à utiliser pour le développement et l’environnement de tests
    • Avec CAS via SAML pour obtenir des attributs de l’utilisateur connecté
  • Générer des PDF avec Flying Saucer
  • Créer des pages applicatives avec ZKUI
    • Gestion des modèles de courriels et de documents PDF contenant des variables
    • Gestion des règles pour l’approbation automatique d’une application
  • Créer des scripts SQL pour faire une migration de la structure et des données de la version 1 à la version 2 de l’application
  • Créer un filtre pour vérifier qu’un administrateur a la permission requise pour effectuer certaines tâches. Chaque contrôleur et action peut choisir sa permission avec une annotation
Technologies: , , , , , , , , , ,