Skip to content

Latest commit

 

History

History
131 lines (82 loc) · 4.09 KB

20160202_Softeam_Go-et-Docker.adoc

File metadata and controls

131 lines (82 loc) · 4.09 KB

2016/02/02 - Softeam 12@13 - Go & Docker

Table of Contents

Notes

Présenté par Daniel CHAFFIOL

  • Présentation disponible sur le slideshare de Daniel

  • Tous les liens sont disponibles sur le blog de la communauté Git de Softeam.

  • Également disponible sur GitHub

Go (langage)

  • GoSublime : plugin pour Sublime Text

  • gofmt : permet de formater le code (en gros Go permet de formater Go)

Fonctions commençant par :

  • majuscule : fonction publique

  • minuscule : fonction privée

Go auto-génére sa doc (dans Godoc).
On a donc systématiquement la doc du langage en local, même sans le net.

  • go install : pour lancer la compilation

  • go xxx : exécute cette fonction de façon asynchrone.

  • Le résultat de la compilation est stocké dans 1 SEUL .exe, autonome, qui contient tout ce qui est nécessaire pour faire tourner l’application.

DOCKER

  • docker-machine : pour la création des machines virtuelles nécessaire à la gestion des containers (car Docker ne tourne QUE sur Linux, même si Windows est en train de l’implémenter)

⚠️

Un .exe compilé sur Windows sera, par défaut, incompatible avec Linux.
Il faut préciser set GOOS=linux%% set GOARCH=amd64 lors de la compilation (cross compilation depuis Windows)

  • Ni classe, ni héritage en Go

    • Ces fonctionnalités sont remplacées par celle de handler (possibilité de passer une fonction en paramètre)

    • On va donc agir en wrappant des fonctions (on agit avant et après, principe de middleware)

  • Partage de mémoire par COMMUNICATION
    20160202 Softeam Go et Docker 01

    • Une seule go routine manipule la mémoire à un moment donné.

    • Go routine = light thread

  • Fin de la fonction main = fin de TOUTES les go routines

⚠️
Ports non exposés par défaut avec Docker

Par défaut Docker n’expose pas ses ports :

  • Pour ce faire utiliser la commande EXPOSE dans le docker file

  • ET pour qu’ils soient visibles par autre chose qu’un container, il faut les publier lors du Docker run (mapping dans la ligne de commande -p port a:port b).

  • Plus port forwarding à configurer au niveau de la vm, pour rendre l’accès possible depuis Windows.

  • Service d’authentification pour Docker : PortUs

    • Car on veut pas forcément que tout le monde accède à tout type d’image.

  • Faire gaffe au repo de stockage des images Docker pour les projets sensibles (pas encore de réelle solution, autre que le cloud de Docker lui-même)

  • Voir l’installation de l’environnement de Dev avec display X11 sous linux et accéder depuis Windows.

    • Seul hic : l’installation d’une vm sur le poste de dev qui pose problème côté équipe sécurité.

  • Virtual box côté client : conf vtx à activer dans le BIOS (souvent désactivée)

    • Conf nat OK niveau sécurité, mais conf brigde permet de bypasser les contrôles du réseau.