Depuis le temps qu’on fait des applications ce devrait être plus facile!

Ce matin, nous faisions le bilan d’un projet de développement d’une application web dans Azure et plusieurs commentaires autour de la table m’ont laissés perplexe. Celui dont je voudrais vous entretenir en particulier aujourd’hui est le suivant :

«  Depuis le temps qu’on fait des applications ce devrait être plus facile »

En effet, depuis plus 60 ans que l’on fait des programmes informatiques. Ça devrait être simple maintenant! Bien que la technologie ait beaucoup évolué depuis les premiers programmes Cobol, le principe de base d’un programme est sensiblement le même. On affiche une interface à l’utilisateur, on applique des règles d’affaires (validations, calculs, transformations) et on sauvegarde des données dans un support comme un fichier ou une base de données.

Ce qui a grandement changé est les outils avec lesquels nous travaillons. Il est vraiment loin derrière nous le temps où un développeur n’avait qu’à connaître un seul langage travaillait toute sa carrière à faire un seul type d’application. De plus le niveau de connaissance de la base des processeurs et des systèmes d’exploitation nécessaires pour programmer est de moins en moins élevé. Ceci est dû au haut niveau d’abstraction des nouveaux langages et frameworks que l’on utilise.

De plus, les applications de nos jours sont faites à l’aide de plusieurs technologies différentes et dans des styles architecturaux complexes et variés. Quand je suis sorti de l’école en 1997 et que j’ai décroché mon premier mandat, je me souviens de l’architecte logiciel du projet qui me demandait si je savais ce qu’était une application N-Tiers. Il a dû être bien découragé quand je lui ai répondu « N-Quoi ??? ». À l’époque, les principes d’architecture multitiers n’étaient pas du tout enseignés dans les écoles. Mais est-ce mieux aujourd’hui en 2017? Je n’en ai pas l’impression. Avec la pénurie de main-d’œuvre en informatique, nous engageons fréquemment des finissants collégiaux et universitaires. Lorsque je leur donne des formations en .net et en architecture, la plupart ne savent que vaguement ce qu’est une architecture N-Tiers. De plus ils ont vraiment du mal à saisir le pourquoi du comment dans ce genre d’architecture.

Dans les années 2000, lorsque Microsoft a accouché son nouvel environnement de développement qu’est Visual Studio.NET et le framework.NET, le niveau d’abstraction avait encore fait un bon vers l’avant, mais s’était une très bonne chose! Une même personne pouvait facilement faire une application Windows, une application web, des services web et bien plus. Visual Studio était un outil extrêmement rapide et efficace pour construire nos applications. Par contre avoir un outil fantastique ne garantit pas le succès. Imaginer que l’on invente un outil de menuiserie super technologique et performant qui peut faire l’équivalent d’un marteau, d’un tournevis, d’une scie, d’un galon à mesurer et d’autres fonctionnalités. Demandez-moi de vous construire une maison avec cet outil et je vais juste être en mesure de construire extrêmement rapidement une grosse maison tout croche… L’architecture du bâtiment sera certainement déficiente aussi (je ne suis évidemment pas menuisier). Cette analogie n’est malheureusement pas de moi. C’est comme ça que nos amis du Pattern and Practices de Microsoft expliquent leur raison d’être. Leur mission est de mettre de l’ordre dans le chaos en fournissant de la documentation et des guides pour bien utiliser cet outil qu’est Visual Studio.

Lorsque je donne de la formation, je conseille toujours fortement à mes étudiants de lire le Microsoft Application Architecture Guide, 2nd Edition  (https://msdn.microsoft.com/en-us/library/ff650706.aspx )

Microsoft définie ce guide comme étant : « Le guide destiné à aider les développeurs et les architectes de solutions à concevoir et à construire des applications efficaces et de haute qualité en utilisant la plateforme Microsoft et le .NET Framework plus rapidement et avec moins de risques; Il fournit des conseils sur l’utilisation des principes d’architecture, des principes de conception et des modèles éprouvés et fiables. »

Originalement paru en 2002, en 2009 une 2e édition de ce guide nous a été fournie pour prendre compte de nouveau concept comme l’infonuagique. Mais l’infonuagique apporte une autre belle couche d’abstraction qui nous éloigne encore de la machine de base… et encore une fois c’est une bonne chose. Il est maintenant plus facile que jamais de construire des applications disponibles mondialement, qui sont performantes et hautement disponibles, et ce à des coûts raisonnables. Malheureusement en 2009 lorsque ce guide a été révisé, Microsoft n’en était qu’au début de l’aventure avec Azure et ne couvrait que très peu les notions infonuagiques.

Lors d’une formation que j’ai donnée le mois dernier, nous avons passé un peu plus de 4 heures à parler de modélisation objet, d’architecture N-Tier et de notions d’architecture orientée service. Vous auriez dû voir la fasse des gens dans la salle lorsque je leur ai dit que ça, c’était de l’histoire ancienne! Oui tout ça est encore nécessaire et utile lorsqu’on construit des applications traditionnelles. Mais aujourd’hui avec l’infonuagique, on doit connaître la différence entre IaaS, PaaS, SaaS, FaaS et CaaS pour être en mesure de faire une bonne solution. Que ce soit pour une application en mode « Serverless », une approche « Microservices » ou du déploiement par « Container », les connaissances à acquérir sont nombreuses.

Le hasard fait drôlement les choses, mais un courriel de Microsoft ce matin annonçait la disponibilité d’un tout nouveau guide gratuit sur l’architecture des applications dans Azure. Le  Cloud Application Architecture Guide est un livre électronique de 300 pages qui se concentre sur l’architecture, la conception, la mise en œuvre et les considérations qui s’appliquent quelle que soit la plate-forme infonuagique choisie. Le livre est disponible ici :

https://azure.microsoft.com/en-us/campaigns/cloud-application-architecture-guide/?wt.mc_id=azurebg_ENAzureNewsletter_December&mkt_tok=eyJpIjoiWWpZd05XUXlNMkkwTW1SbSIsInQiOiJJSEdlQ3BZY0F5R2I2MzM3Nzh6R1pJMmxOZEJHc1BZeEwrVnV0SHVhbVZhM1J0RGYyTm9jMEl0bmoxUmg2R3ZwMEsxVGhFa0EzR2lxdzRHM3lcL3NtdWxZaXRSdTlzK1g5V1ZtQUFqZHZVS0x6TGRDK2RoSW82OHJib2swd1BYOXdZVlpkWnFqNHpoWExyczVCZWJqUjZNZllLUUxvNmFqaUpjMWhUa1c4N2M0PSJ9

Donc que pensez-vous maintenant du commentaire «  Depuis le temps qu’on fait des applications ce devrait être plus facile » … On fait tellement d’abstractions maintenant qu’un seul développeur peut à lui seul créer son infrastructure de développement, provisionner les services nécessaires dans Azure (Web App, Base de données SQL, Service d’authentification, processus de backup, etc.), programmer son application à l’aide de Visual Studio et déployer le tout lui-même en production (dans Azure). On demande donc à une personne d’être architecte techno, architecte logiciel, programmeur, expert en sécurité et en performance. Mon avis final sur la question « est-ce plus facile qu’avant ? »… oui c’est beaucoup plus facile et rapide qu’avant pour faire une belle grosse maison tout croche! Par contre, en prenant le temps de faire une bonne analyse, une bonne architecture et une bonne équipe sur un projet… Sky is the limit!

Comment créer un nouvel usager dans votre Azure Active Directory

Avec votre compte Azure, vous avez accès à Azure Active Directory (Azure AD) qui est la version infonuagique du service de gestion des identités et des répertoires de Microsoft. Je vous propose de faire un exemple simple d’ajout d’un usager dans votre Azure AD. Ça ne devrait prendre que quelques minutes à faire. (niveau débutant)

Pour avoir une explication sommaire de ce qu’est Azure Active Directory, je vous suggère le lien suivant: https://docs.microsoft.com/en-us/azure/active-directory/active-directory-whatis

Comme toujours, vous devez tout d’abord vous brancher sur votre portail Azure. (http://portal.azure.com ). Cliquez sur « Azure Active Directory » dans le menu de gauche.

Avant de créer un nouvel usager, une brève explication du domaine auto généré pour votre AD s’impose. Étant donné que le compte relié à ma souscription Azure est attaché au courriel agirard@cofomo.com, Azure AD a automatiquement ajouté un nom de domaine dans mon Azure AD qui est agirardcofomo.onmicrosoft.com. Si votre adresse de courriel est toto@patates.com votre domaine sera donc totopatates.onmicrosoft.com. À noter qu’il est possible d’acheter un nom de domaine spécifique et de l’associer à votre Azure AD via le panneau « Custom domain names »… mais c’est hors de la portée de cet article.

Pour créer un nouvel usager dans votre domaine @votrecompte.onmicrosoft.com, cliquez de nouveau sur « Azure Active Directory » dans le menu de gauche. Vous trouverez dans les « Quick tasks » l’option « Add a user ». Noter que vous pouvez aussi ajouter un usager qui utiliserait une adresse hotmail ou gmail en choisissant « Add a guest user ».

Vous n’avez qu’à donner le nom complet (dans mon exemple : Chuck Yeager). Son « User Name » sera structuré comme une adresse courriel. Étant donné que mon domaine est agirardcofomo.onmicrosoft.com l’adresse de Chuck sera ChuckYeager@ agirardcofomo.onmicrosoft.com. Dans le Profile vous pouvez entrer plus d’information sur Chuck comme son travail et à quel département il appartient.

Un mot de passe sera auto généré. Cliquer sur « Show Password » et copier le mot de passe. Vous en aurez besoin pour le communiquer à l’utilisateur. À sa première connexion, il devra le changer son mot de passe.

La façon la plus simple de tester votre usager est de s’en servir pour vous brancher dans le portail Azure (http://portal.azure.com). Vous verrez alors que cette personne a maintenant un accès à votre compte Azure mais avoir des droits très limités. Pour lui permettre de provisionner des services, vous allez devoir lui donner des droits supplémentaires, et ce préférablement via un groupe de ressource spécifique à un projet (mais ça, c’est un beau sujet pour un autre article).

Comment créer une base de données SQL sur Azure en quelques minute

Voici un court article qui explique comment créer une base de données SQL sur la plateforme infonuagique de Microsoft qu’est Azure. L’idée ici de faire un exemple simple et de base, facile à suivre.

Si vous n’avez pas de souscription Azure, vous pouvez facilement en avoir une via le lien suivant : https://azure.microsoft.com/fr-ca/free/services/sql-database/ . Vous aurez alors droit à un crédit $250 pour le premier mois.

Étape 1 : Branchez-vous sur votre portail Azure : http://portal.azure.com

Étape 2 : Création de la base de données SQL

  • Cliquez sur le symbole SQL dans la marge de gauche. Faire le « +Add »
  • Donner un nom à votre base de données… J’ai nommé la mienne « SQLExempleAzureAD » car cette BD servira pour mon futur article sur l’utilisation de Azure AD pour sécuriser un site web Azure.
  • Choisir votre souscription.
  • Associer votre BD à un « Resource group » . Un groupe de ressources sert à regrouper différents services Azure utilisés par une application. Cela sert aussi entre autres à gérer de façon commune l’accès à ces services via des groupes de sécurités créés dans votre Azure AD.
  • Laisser la source de base de donnée à « Blank database ». Vous pourriez aussi sélectionner « AdventureWorksLT » qui est une bd de démonstration utilisée dans le site web d’exemple bien connue du même nom.
  • Vous devez cliquer ensuite sur « Server, Configure required settings » et de façon à créer un nouveau serveur SQL. Lui donner un nom et configurer les infos de l’utilisateur administrateur. Ces infos vous serviront à vous connecter à la BD via un outil comme Microsoft SQL Server management Studio. (Dans mon exemple … sqlexempleazuread.database.windows.net)
  • Reste plus qu’à choisir le plan de prix (Pricing tier) selon vos besoins. Pour ma démo, j’ai choisi le plan le moins dispendieux (Basic pour 6.07 CAD par mois).
  • Cliquer sur « Create ». Un délai de quelques minutes est nécessaire pour créer la base de données. Une notification apparaîtra en haut à droite dans le portail Azure.

Étape 3 : Votre base de données est maintenant prête à être utilisée.

Une toute nouvelle fonctionnalité qui est présentement en « Preview » est le « Data Explorer » qui vous permet facilement de faire des requêtes et voir vos données sans être obligé de passer par Microsoft SQL Server management Studio. Dans votre cas, votre base de données est présentement vide… mais l’image suivante démontre à quoi ça ressemble quand il y a des tables de disponibles.

Il ne vous reste plus qu’à utiliser votre base de donnée dans votre application. Pour ce faire, vous aurez besoin de connaître la string de connexion à la base de données…

Vous n’avez plus qu’à copier la string de connexion et de remplacer le username et le password par des informations d’un user valide qui a accès à votre BD.

Un dernier petit détail avant de terminer… la BD est visible par les autres services Azure. Toutefois, elle ne l’est pas pour les services et applications en dehors d’Azure, ce qui inclut vos applications ou services web qui roulent dans votre infrastructure d’entreprise. Pour les rendre accessibles, vous devez ajouter les adresses IP des service/app externe dans le firewall de SQL Azure. Ceci est aussi vrai pour utiliser Microsoft SQL Server management Studio sur votre poste local.

Vous pouvez permettre une seule adresse (comme dans l’exemple ici) ou un range d’adresse IP.

Vous êtes en voiture maintenant !

À qui s’adresse le livre « Hit Refresh » de Satya Nadella ?

Ceux qui me connaissent savent que j’ai un petit fond de “fan boy” Microsoft. Vous ne serez donc pas surpris d’apprendre que je me suis intéressé au livre de Satya Nadella “Hit Refresh: The Quest to Rediscover Microsoft’s Soul and Imagine a Better Future for Everyone” publié chez HarperCollins qui est sorti en 2017.

Ça peut sembler tôt pour quelqu’un qui vient juste d’être nommé CEO de Microsoft d’écrire un livre sur son expérience personnelle. Par contre ce livre n’est pas une autobiographie mais plutôt une histoire de transformation organisationnelle. La curiosité de voir ce qui se passe en coulisses chez ce géant de l’informatique et mon intérêt à comprendre cette transformation m’a motivé à lire ce livre de prêt de 300 Pages.

Une partie du livre traite de l’histoire de Satya Nadella et de son parcours qu’il a amené à la tête de Microsoft. En 1992 il joint les rangs de Microsoft dans l’équipe des serveurs Windows. À cette époque Microsoft est encore très orientée sur le développement de produits propriétaires destinés à l’entreprise et au marché personnel. On ne pense pas encore à l’infonuagique. Les affaires de Microsoft vont bien, son action prend de plus en plus de valeur. L’entreprise est encore fidèle à sa mission originale qui était de mettre un ordinateur sur tous les bureaux de toutes les entreprises et de toutes les maisons. Mais l’avènement du téléphone intelligent et des tablettes va bouleverser les plans de Microsoft. En 2008 quand Steve Ballmer nomme Satya à la tête du moteur de recherche de Microsoft (qui deviendra Bing), les ventes de PC sont déjà en déclin et l’action du géant perd de plus en plus de valeur. Certaines compagnies comme Amazon sont déjà fortement engagées dans l’infonuagique et ont plus de 180 000 développeurs d’applications dans le monde qui utilisent leur plateforme. Bing était le premier pas de Microsoft dans le monde infonuagique… par compte Microsoft est encore très loin d’avoir une stratégie infonuagique claire et bien articulée. En 2011 Satya prend charge la division infonuagique de Microsoft qui s’appelait alors  Windows Azure. (Le nom sera éventuellement changé plus tard pour Microsoft Azure pour mieux représenter le fait que ce n’est pas seulement le système d’exploitation Windows ce qui est supporté).

Au début 2014 lorsque Satya est choisi pour succéder à Steve Balmer, Microsoft n’est toujours pas sortie du bois bien que son action soit maintenant en forte hausse. Un changement majeur doit s’effectuer chez Microsoft pour adresser la situation. Satya hérite d’une entreprise dont la culture est fortement orientée sur la compétition entre les employés et une mentalité de travail en silo dans les diverses branches de la compagnie. La hiérarchie est trop importante et la bureaucratie a pris le dessus sur l’innovation et la collaboration. Satya mentionne dans le livre une caricature qui est maintenant virale sur Internet qui démontre les diverses divisions de l’entreprise qui se menace l’une et l’autre avec un pistolet.

Illustration par Manu Cornet 

C’est selon lui une représentation très réaliste de la situation chez Microsoft à son arrivée à la tête de l’entreprise. D’un point de vue plus personnel, un esprit de compétition constante régnait parmi les employés. Satya mentionne que dans une réunion, chaque employé agissait comme s’il avait à prouver à tous les autres qu’il savait tout et qu’il était la personne la plus intelligente dans la pièce. Un autre problème type était qu’un gestionnaire ne pouvait pas inviter un employé d’une autre équipe à une réunion sans inviter aussi le gestionnaire immédiat de cet employé. Bref « Microsoft » semblait être le plus gros obstacle à la croissance de… Microsoft.

Le livre de Satya Nadella est donc l’histoire de ce changement de culture qui était nécessaire de faire pour que Microsoft redevienne l’entreprise innovante et prospère qu’elle avait déjà été. La culture que Satya propose pour Microsoft s’articule en trois éléments : premièrement les employés Microsoft doivent être tout d’abord obsédés à propos des besoins de leurs clients,  en particulier ceux dont les clients ne sont même pas conscients eux-mêmes. Deuxièmement il est important de favoriser la diversité des personnes autant pour leurs talents que pour leurs opinions. Finalement tous les employés doivent être en mesure de transcender les barrières organisationnelles et ne plus travailler en silo.

Nadella estime que tout est possible pour une compagnie quand sa culture est centrée sur  l’écoute, l’apprentissage et l’empathie. Il est convaincu que la compagnie va grossir si tout le monde, individuellement, peut grandir dans son travail et dans sa vie personnelle.

Loin de moi l’idée de vous raconter le livre au complet. Je vous recommande fortement cette lecture si vous êtes curieux d’en savoir plus sur comment Satya entend s’y prendre pour faire sa transformation organisationnelle. Comme il le mentionne lui-même, il n’en est qu’au début de cette transformation et elle est loin d’être terminée. À mon humble avis et de par la lecture de ce livre, j’ai l’impression qu’il risque fort d’y arriver et que Microsoft n’a pas fini de nous surprendre.

Cofomo présent à la conférence Microsoft Ignite 2017 !

La conférence Microsoft Ignite est la grand-messe annuelle pour les experts techniques de l’univers Microsoft. C’est l’occasion idéale pour se tenir à jour dans les technologies de l’écosystème et pour bien comprendre les grandes orientations de Microsoft.

Pour cette édition 2017 qui se déroule à Orlando, j’ai le privilège d’y être accompagné de Tidjani Belmansour, conseiller en architecture logicielle de Cofomo. Depuis les 20 dernières années, j’ai eu la chance d’assister presque chaque année à ce genre d’événement. C’est une expérience que j’apprécie énormément, mais que je trouve de plus en plus difficile d’année en année (malheureusement je ne rajeunis pas). Par contre, pour Tidjani, c’est sa première expérience à la conférence Ignite. Il est comme un enfant dans un magasin de bonbons.

Chaque jour, notre journée commence à 6h, déjeuner à 7h et ensuite conférence de 8h à 18h.  Ce sont en majorité des sessions de 45 min avec 15 minutes entre chaque session. Dans les environs de 18h30, nous faisons la captation des images pour notre retour vidéo. Nous pouvons enfin aller souper vers 19h. Au retour du souper vers 20h, nous en avons pour 2 heures de montages vidéo et s’il reste du temps nous testons quelques concepts appris dans la journée. Si tout va bien, on est couché avant minuit! Héhé !

Le Ignite c’est bien plus que d’assister à des présentations PowerPoint… C’est l’occasion de rencontrer les acteurs principaux de l’industrie. Tidjani a eu le plaisir de croiser Donovan Brown (expert DEVOPS de Microsoft) et même Julia White (Vice-présidente de Microsoft). J’ai pour ma part eu temps d’aller discuter avec les experts de Microsoft dans le « Partner expo ». De se faire expliquer une technologie est une chose, mais discuter avec les gens qui ont travaillés à créer le produit est tout autre.  C’est la raison pour laquelle je continue à aller en personne à ce genre d’événement.

Pour ce qui est du contenu du Ignite, tout est articulé à l’entour de la mission de Microsoft « empower every person and every organization on the planet to achieve more ». De par sa présence mondiale grâce aux nombreux centres de donnée Azure, Microsoft permet à toutes les personnes/organisations de déployer des solutions partout sur la planète. Microsoft a toujours aidé les organisations à en faire plus… par contre l’emphase est fortement mise sur les personnes. Que ce soit via Office 365 ou via les outils de développement tels que PowerApp et Microsoft Flow, Microsoft vise tout particulièrement les utilisateurs dans vos lignes d’affaires afin de leur permettre d’automatiser eux-mêmes leur travail. Cela permet aux ressources TI dans votre entreprise de se concentrer sur les programmes plus complexes afin de livrer plus de valeur pour l’organisation.

Cet article a été originalement publié sur le blogue de Cofomo le 27 septembre 2017.