SlideShare a Scribd company logo
Golang Skills
What we know so far…
Sofiane Imadali, Ayoub Bousselmi
21/02/2018
Agenda
 When, Why and How ?
 Golang Projects
 Play-with-Docker (open source project)
 VNF API (open source project from scratch)
 Wall and Wall API (open source project, api from scratch)
 Clutch (open source project, from scratch)
 Prometheus Integration (exporters development)
 Next steps…
 Kubernetes and CRD
2/21/2019 Golang Skills 2
When, Why and How ?
2/21/2019 Golang Skills 3
When, Why and How ?
2/21/2019 Golang Skills 4
When
 2016
 Go version: 1.7
Why
 Docker
 RANaaS project: beego based Swagger API (OpenAPI)
 integrations with MangoDB
 fake data generator like Joke2k/faker in Python:

Recommended for you

Migrating python.org to buildbot 9 and python 3
Migrating python.org to buildbot 9 and python 3Migrating python.org to buildbot 9 and python 3
Migrating python.org to buildbot 9 and python 3

Craig Rodrigues presented on migrating Python.org's build system from Buildbot 8 to Buildbot 9 and from Python 2 to Python 3. Buildbot is open source build automation software used by Python.org to build and test Python (CPython). The migration involved porting Buildbot and its dependencies like Twisted to be compatible with Python 3, porting Python.org's Buildbot configuration, and working with an ops team to complete the migration. This updated Python.org's infrastructure to a newer, actively supported version of Buildbot that enables new features and works with both Python 2 and Python 3.

buildbotpythoncontinuous integration
C language in our world 2016
C language in our world 2016C language in our world 2016
C language in our world 2016

Development in C language in context of year 2016. Reference to new tooling and productivity tools. Update about Gradle 2.13 and new tools like Clion or Visual Studio Code

fimunibrnogradle
Advantages of Python Learning | Why Python
Advantages of Python Learning | Why PythonAdvantages of Python Learning | Why Python
Advantages of Python Learning | Why Python

This document provides an overview of the Python programming language. It discusses what Python is, how it compares to other languages like Java and C++, common uses of Python, job opportunities in Python, and the future of Python. It also advertises training in Python offered by Evolet Technologies, which aims to teach students to use Python professionally and gain expertise through hands-on learning and practice problems.

python learningpython trainingpython course
When, Why and How ?
2/21/2019 Golang Skills 5
When
 2017
 Go version: 1.7, 1.8, 1.9
Why
 Docker with Play-with-Docker project
 Wall and Wall API
 VNF API to integrate Dockerized OpenAirInterface
 AccessPoint API to integrate with hostapd and dhcpd
When, Why and How ?
2/21/2019 Golang Skills 6
When
 2018
 Go version: 1.8, 1.9, 1.10
Why
 Docker with Play-with-Docker project
 Docker-machine driver for the PlayGround (PWD)
 Clutch: metrics exporter from PCP to Kafka
 All exporters with Prometheus (Web, Postgres),
Alertmanager
 GitTar: git clone from a repo (for CI)
Golang Projects
2/21/2019 Golang Skills 7
Play-with-Docker
2/21/2019 Golang Skills 8
Goal
 Ephemeral environment to play with docker
 Part of the Plug’in sandbox
Implementation
 Gorilla Mux: API routes and handlers
 Docker SDK (official API from github)
 HTML/CSS/JavaScript/WebSockets
connected to golang backend
Main libraries
 gorilla/mux
 docker/docker/api
 prometheus/promhttp
Links
 https://gitlab.forge.orange-labs.fr/lucy/playground

Recommended for you

Building Beautiful Apps using Google Flutter
Building Beautiful Apps using Google FlutterBuilding Beautiful Apps using Google Flutter
Building Beautiful Apps using Google Flutter

This document discusses Google Flutter, a mobile app development framework. It provides background on FlutterEgypt, a community group focused on helping Arab and Egyptian developers learn Flutter. The founder, Ahmed Abu Eldahab, is introduced. Key topics covered include the history of programming, an overview of mobile platforms and development approaches, and details on what Flutter is and how it works. Flutter is described as a cross-platform approach that compiles to native code, allowing apps to have native performance without relying on mobile OS widgets.

fluttergdgflutteregypt
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)

Aimed at students of Universidade do Minho, in Portugal, this talk focused on answering the following questions: • What's GitLab and how did it came to be? • What's our tech stack? • How does it enhance tech education around the world? • What are the advantages of GitLab for students? GitLab is a product that covers the entire software development lifecycle. We gave a demo and showed how easy is it for students to start using the tools, workflow, and best practices that they'll be using at their future job. Event: SEIUM 2018 (https://www.facebook.com/events/276872629501903/) Date: February 6, 2018 Location: Universidade do Minho, Braga, Portugal Thanks to Filipa Lacerda, André Luís, and Job van der Voort

cicontinuous integrationdevops
C++ and Software Engineering 2015
C++ and Software Engineering 2015C++ and Software Engineering 2015
C++ and Software Engineering 2015

Talk at FI MUNI about C++ and important skills that should developer know. Talking about soft skills and communication with architects and product owners.

jenkinssoft skillsbrno
Docker Machine Driver
2/21/2019 Golang Skills 9
Goal
 Use docker-machine to interact with
PlayGround
 Create containers (DINDs) in the PlayGround
Implementation
 Docker-machine SDK
Main libraries
 docker/machine
Links
 https://gitlab.forge.orange-labs.fr/lucy/playground-driver
VNF API
2/21/2019 Golang Skills 10
Goal
 Wrap binaries and make them HTTP
attainable
 Inspired by Ligato project
Implementation
 Gin-gonik for swagger API
 Logrus for logging
 Templating for different configurations
Main libraries
 sirupsen/logrus
 gin-gonic/gin
 savaki/swag
Links
 https://www.sdxcentral.com/products/ligato/
Wall and Wall API
2/21/2019 Golang Skills 11
Goal
 Make something like Gist (Github) for the
Sandbox users
Implementation
 Jekyll + Nginx
 Golang based API + Templating for posts
Main libraries
 gorilla/mux + gorilla/handlers
 urfave/negroni
Links
 https://gitlab.forge.orange-labs.fr/lucy/wall-api
 https://gitlab.forge.orange-labs.fr/lucy/wall
Clutch
2/21/2019 Golang Skills 12
Goal
 Create small probe to extract metrics from
PCP to Kafka
Implementation
 Kafka and PCP integration
 Logrus for logging
 Viper for configuration management
Main libraries
 Shopify/sarama
 sirupsen/logrus
 spf13/viper
Links
 https://gitlab.forge.orange-labs.fr/tqwt7730/clutch

Recommended for you

Intro to Flutter
Intro to FlutterIntro to Flutter
Intro to Flutter

Intro to Google Flutter, its difference with other mobile cross programming languages, with some samples, conducted for the Flutter Study Jam, as a GDG Helwan activity, by Shady Selim

flutterandroidgoogle
How to approach building GUIs using PyQT
How to approach building GUIs using PyQTHow to approach building GUIs using PyQT
How to approach building GUIs using PyQT

This document discusses how to build GUIs using PyQt by drawing the problem, choosing appropriate widgets, building a simple form using PyQt's class hierarchy and signals/slots, adding CSS for aesthetics, and distributing the application by packaging it into an .exe file. It covers understanding PyQt's classes for UI elements and behaviors, connecting widgets to functions via signals and slots, using QtDesigner for a WYSIWYG editor, and libraries for freezing Python into executables.

pyqtpythondesktopapps
C language in our world 2015
C language in our world 2015C language in our world 2015
C language in our world 2015

This document discusses several programming languages and tools, including C, NuGet, Gradle, Jenkins, SDL, Allegro, Go, and others. It provides information on platforms supported, initialization, graphics, input handling, timers, and extensions for these languages and frameworks. It also mentions IDEs like Qt Creator, C9.io, and Sublime Text. Towards the end, it advertises YSofters and provides contact information.

cbrnogradle
Prometheus Integration
2/21/2019 Golang Skills 13
Goal
 Export metrics from PlayGround to
Prometheus
 Create an observable deployment on
OpenWatt
Implementation
 Using official golang Http client
 Rebuild Docker images from source code
Main libraries
 prometheus/promhttp
Links
 https://gitlab.forge.orange-labs.fr/tqwt7730/prom-bbe
GitTar
2/21/2019 Golang Skills 14
Goal
 Clone a git project from remote repo
 Use BasicAuth credentials
Implementation
 Swagger REST API
 Combine with AtomDocs (Sandbox) for
documentation CI/CD
Main libraries
 gopkg.in/src-d/go-git.v4
 gin-gonic/gin
 savaki/swag
Links
 https://gitlab.forge.orange-labs.fr/tqwt7730/gittar
Beego
2/21/2019 Golang Skills 15
Goal
 Create an API for integration for the Radio
Access Network as a Service (RANaaS) project
Implementation
 Generate basic REST API micro-service
skeleton
Main libraries
 astaxie/beego
Links
 https://beego.me/
Next steps…
2/21/2019 Golang Skills 16

Recommended for you

Besut Kode Challenge 1
Besut Kode Challenge 1Besut Kode Challenge 1
Besut Kode Challenge 1

A 30 minute talk about the first challenge for Besut Kode. http://wikimedia-id.github.io/besutkode/beranda.html

gitcompetitionhtml5lib
Kotlin multiplataforma
Kotlin multiplataformaKotlin multiplataforma
Kotlin multiplataforma

Respondendo as principais dúvidas sobre essa tecnologia que promete permitir o compartilhamento da lógica de negócios para seus aplicativos iOS, Android, Web e Desktop.

kotliniosandroid
Go dla elektronika
Go dla elektronikaGo dla elektronika
Go dla elektronika

This document discusses the Go programming language and some of its uses. It provides an introduction to Go, noting that it is statically typed, scalable, productive, and supports networking and multiprocessing. It then gives examples of how Go is used for web applications, standalone applications, parallel applications, and interfacing with hardware like RFID and GPIO devices on Raspberry Pi. Code examples and demos are provided for OpenCL and RFID implementations in Go.

rpi raspberrypi rfid
Kubernetes and CRD
2/21/2019 Golang Skills 17
 Play with Kubernetes
 https://github.com/play-with-docker/play-with-docker/tree/k8s
 Deploy K8S using Vagrant
 https://github.com/sofianinho/vagrant-kube
 CRD: we can collaborate !
 Operator Framework:
https://github.com/operator-framework
Thanks
sofiane.imadali@orange.com
ayoub.bousselmi@orange.com

More Related Content

What's hot

Golang, Future of Programming Language.
Golang, Future of Programming Language.Golang, Future of Programming Language.
Golang, Future of Programming Language.
Sunil Yadav
 
Why companies like Google, Alibaba and UOL choose Flutter
Why companies like Google, Alibaba and UOL choose FlutterWhy companies like Google, Alibaba and UOL choose Flutter
Why companies like Google, Alibaba and UOL choose Flutter
Geison Goes
 
Flutter beers and pizza
Flutter beers and pizzaFlutter beers and pizza
Flutter beers and pizza
Jon Durán
 
Migrating python.org to buildbot 9 and python 3
Migrating python.org to buildbot 9 and python 3Migrating python.org to buildbot 9 and python 3
Migrating python.org to buildbot 9 and python 3
Craig Rodrigues
 
C language in our world 2016
C language in our world 2016C language in our world 2016
C language in our world 2016
Juraj Michálek
 
Advantages of Python Learning | Why Python
Advantages of Python Learning | Why PythonAdvantages of Python Learning | Why Python
Advantages of Python Learning | Why Python
EvoletTechnologiesCo
 
Building Beautiful Apps using Google Flutter
Building Beautiful Apps using Google FlutterBuilding Beautiful Apps using Google Flutter
Building Beautiful Apps using Google Flutter
Ahmed Abu Eldahab
 
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
Pedro Moreira da Silva
 
C++ and Software Engineering 2015
C++ and Software Engineering 2015C++ and Software Engineering 2015
C++ and Software Engineering 2015
Juraj Michálek
 
Intro to Flutter
Intro to FlutterIntro to Flutter
Intro to Flutter
Shady Selim
 
How to approach building GUIs using PyQT
How to approach building GUIs using PyQTHow to approach building GUIs using PyQT
How to approach building GUIs using PyQT
Jerlyn Manohar
 
C language in our world 2015
C language in our world 2015C language in our world 2015
C language in our world 2015
Juraj Michálek
 
Besut Kode Challenge 1
Besut Kode Challenge 1Besut Kode Challenge 1
Besut Kode Challenge 1
John Vandenberg
 
Kotlin multiplataforma
Kotlin multiplataformaKotlin multiplataforma
Kotlin multiplataforma
Geison Goes
 
Go dla elektronika
Go dla elektronikaGo dla elektronika
Go dla elektronika
Sebastian Pożoga
 
Flutter vs React Native
Flutter vs React NativeFlutter vs React Native
Flutter vs React Native
XongoLab Technologies LLP
 
Introduction to GoLang
Introduction to GoLangIntroduction to GoLang
Introduction to GoLang
NVISIA
 
Intro to Flutter SDK
Intro to Flutter SDKIntro to Flutter SDK
Intro to Flutter SDK
digitaljoni
 
Ready, set, go! An introduction to the Go programming language
Ready, set, go! An introduction to the Go programming languageReady, set, go! An introduction to the Go programming language
Ready, set, go! An introduction to the Go programming language
RTigger
 
Flutter bus 2018
Flutter bus 2018Flutter bus 2018
Flutter bus 2018
Ahmed Abu Eldahab
 

What's hot (20)

Golang, Future of Programming Language.
Golang, Future of Programming Language.Golang, Future of Programming Language.
Golang, Future of Programming Language.
 
Why companies like Google, Alibaba and UOL choose Flutter
Why companies like Google, Alibaba and UOL choose FlutterWhy companies like Google, Alibaba and UOL choose Flutter
Why companies like Google, Alibaba and UOL choose Flutter
 
Flutter beers and pizza
Flutter beers and pizzaFlutter beers and pizza
Flutter beers and pizza
 
Migrating python.org to buildbot 9 and python 3
Migrating python.org to buildbot 9 and python 3Migrating python.org to buildbot 9 and python 3
Migrating python.org to buildbot 9 and python 3
 
C language in our world 2016
C language in our world 2016C language in our world 2016
C language in our world 2016
 
Advantages of Python Learning | Why Python
Advantages of Python Learning | Why PythonAdvantages of Python Learning | Why Python
Advantages of Python Learning | Why Python
 
Building Beautiful Apps using Google Flutter
Building Beautiful Apps using Google FlutterBuilding Beautiful Apps using Google Flutter
Building Beautiful Apps using Google Flutter
 
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
 
C++ and Software Engineering 2015
C++ and Software Engineering 2015C++ and Software Engineering 2015
C++ and Software Engineering 2015
 
Intro to Flutter
Intro to FlutterIntro to Flutter
Intro to Flutter
 
How to approach building GUIs using PyQT
How to approach building GUIs using PyQTHow to approach building GUIs using PyQT
How to approach building GUIs using PyQT
 
C language in our world 2015
C language in our world 2015C language in our world 2015
C language in our world 2015
 
Besut Kode Challenge 1
Besut Kode Challenge 1Besut Kode Challenge 1
Besut Kode Challenge 1
 
Kotlin multiplataforma
Kotlin multiplataformaKotlin multiplataforma
Kotlin multiplataforma
 
Go dla elektronika
Go dla elektronikaGo dla elektronika
Go dla elektronika
 
Flutter vs React Native
Flutter vs React NativeFlutter vs React Native
Flutter vs React Native
 
Introduction to GoLang
Introduction to GoLangIntroduction to GoLang
Introduction to GoLang
 
Intro to Flutter SDK
Intro to Flutter SDKIntro to Flutter SDK
Intro to Flutter SDK
 
Ready, set, go! An introduction to the Go programming language
Ready, set, go! An introduction to the Go programming languageReady, set, go! An introduction to the Go programming language
Ready, set, go! An introduction to the Go programming language
 
Flutter bus 2018
Flutter bus 2018Flutter bus 2018
Flutter bus 2018
 

Similar to Golang skills pre-session

Go for Mobile Games
Go for Mobile GamesGo for Mobile Games
Go for Mobile Games
Takuya Ueda
 
Drone sdk showdown
Drone sdk showdownDrone sdk showdown
Drone sdk showdown
Godfrey Nolan
 
WAM: An embedded web runtime history for LG webOS and Automotive Grade Linux
WAM: An embedded web runtime history for LG webOS and Automotive Grade LinuxWAM: An embedded web runtime history for LG webOS and Automotive Grade Linux
WAM: An embedded web runtime history for LG webOS and Automotive Grade Linux
Igalia
 
Develop Android app using Golang
Develop Android app using GolangDevelop Android app using Golang
Develop Android app using Golang
SeongJae Park
 
GDGSCL - Docker a jeho provoz v Heroku a AWS
GDGSCL - Docker a jeho provoz v Heroku a AWSGDGSCL - Docker a jeho provoz v Heroku a AWS
GDGSCL - Docker a jeho provoz v Heroku a AWS
Ladislav Prskavec
 
Docker opens the Doors for IoT
Docker opens the Doors for IoTDocker opens the Doors for IoT
Docker opens the Doors for IoT
Dieter Reuter
 
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingMobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse Binding
Takuya Ueda
 
2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko
Martin de Keijzer
 
Comparing C and Go
Comparing C and GoComparing C and Go
Comparing C and Go
Marcin Pasinski
 
Android Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - IntroductionAndroid Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - Introduction
Andreas Jakl
 
When, how & why use golang in 2021 go benefits & use cases
When, how & why use golang in 2021  go benefits & use casesWhen, how & why use golang in 2021  go benefits & use cases
When, how & why use golang in 2021 go benefits & use cases
Katy Slemon
 
Efficient DevOps Tooling with Java and GraalVM
Efficient DevOps Tooling with Java and GraalVMEfficient DevOps Tooling with Java and GraalVM
Efficient DevOps Tooling with Java and GraalVM
QAware GmbH
 
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Radulescu Adina-Valentina
 
Blackberry_runtime_for_android_apps
Blackberry_runtime_for_android_appsBlackberry_runtime_for_android_apps
Blackberry_runtime_for_android_apps
Droidcon Berlin
 
Add the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitAdd the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKit
Igalia
 
Assisted code review with source{d} lookout
Assisted code review with source{d} lookoutAssisted code review with source{d} lookout
Assisted code review with source{d} lookout
source{d}
 
Devops indonesia - The Future Container
Devops indonesia - The Future ContainerDevops indonesia - The Future Container
Devops indonesia - The Future Container
Yusuf Hadiwinata Sutandar
 
DevOps Indonesia #5 - The Future of Containers
DevOps Indonesia #5 - The Future of ContainersDevOps Indonesia #5 - The Future of Containers
DevOps Indonesia #5 - The Future of Containers
DevOps Indonesia
 
Getting Your Hooks Into Cordova
Getting Your Hooks Into CordovaGetting Your Hooks Into Cordova
Getting Your Hooks Into Cordova
devObjective
 
Getting your Hooks into Cordova
Getting your Hooks into CordovaGetting your Hooks into Cordova
Getting your Hooks into Cordova
Gavin Pickin
 

Similar to Golang skills pre-session (20)

Go for Mobile Games
Go for Mobile GamesGo for Mobile Games
Go for Mobile Games
 
Drone sdk showdown
Drone sdk showdownDrone sdk showdown
Drone sdk showdown
 
WAM: An embedded web runtime history for LG webOS and Automotive Grade Linux
WAM: An embedded web runtime history for LG webOS and Automotive Grade LinuxWAM: An embedded web runtime history for LG webOS and Automotive Grade Linux
WAM: An embedded web runtime history for LG webOS and Automotive Grade Linux
 
Develop Android app using Golang
Develop Android app using GolangDevelop Android app using Golang
Develop Android app using Golang
 
GDGSCL - Docker a jeho provoz v Heroku a AWS
GDGSCL - Docker a jeho provoz v Heroku a AWSGDGSCL - Docker a jeho provoz v Heroku a AWS
GDGSCL - Docker a jeho provoz v Heroku a AWS
 
Docker opens the Doors for IoT
Docker opens the Doors for IoTDocker opens the Doors for IoT
Docker opens the Doors for IoT
 
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingMobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse Binding
 
2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko
 
Comparing C and Go
Comparing C and GoComparing C and Go
Comparing C and Go
 
Android Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - IntroductionAndroid Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - Introduction
 
When, how & why use golang in 2021 go benefits & use cases
When, how & why use golang in 2021  go benefits & use casesWhen, how & why use golang in 2021  go benefits & use cases
When, how & why use golang in 2021 go benefits & use cases
 
Efficient DevOps Tooling with Java and GraalVM
Efficient DevOps Tooling with Java and GraalVMEfficient DevOps Tooling with Java and GraalVM
Efficient DevOps Tooling with Java and GraalVM
 
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
 
Blackberry_runtime_for_android_apps
Blackberry_runtime_for_android_appsBlackberry_runtime_for_android_apps
Blackberry_runtime_for_android_apps
 
Add the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitAdd the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKit
 
Assisted code review with source{d} lookout
Assisted code review with source{d} lookoutAssisted code review with source{d} lookout
Assisted code review with source{d} lookout
 
Devops indonesia - The Future Container
Devops indonesia - The Future ContainerDevops indonesia - The Future Container
Devops indonesia - The Future Container
 
DevOps Indonesia #5 - The Future of Containers
DevOps Indonesia #5 - The Future of ContainersDevOps Indonesia #5 - The Future of Containers
DevOps Indonesia #5 - The Future of Containers
 
Getting Your Hooks Into Cordova
Getting Your Hooks Into CordovaGetting Your Hooks Into Cordova
Getting Your Hooks Into Cordova
 
Getting your Hooks into Cordova
Getting your Hooks into CordovaGetting your Hooks into Cordova
Getting your Hooks into Cordova
 

Recently uploaded

AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
karim wahed
 
Overview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptxOverview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptx
Mitchell Marsh
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
miso_uam
 
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf
AUGNYC
 
Break data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud ConnectorsBreak data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud Connectors
confluent
 
Leading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptxLeading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptx
taskroupseo
 
ANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdfANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdf
sachin chaurasia
 
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple StepsSeamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Estuary Flow
 
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours
Ortus Solutions, Corp
 
Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
908dutch
 
一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理
一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理
一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理
avufu
 
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
Roshan Dwivedi
 
React Native vs Flutter - SSTech System
React Native vs Flutter  - SSTech SystemReact Native vs Flutter  - SSTech System
React Native vs Flutter - SSTech System
SSTech System
 
Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud
Ortus Solutions, Corp
 
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Asher Sterkin
 
Intro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AIIntro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AI
Ortus Solutions, Corp
 
Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.
shivamt017
 
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
onemonitarsoftware
 
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
Semiosis Software Private Limited
 

Recently uploaded (20)

AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) Course Introducti...
 
Overview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptxOverview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptx
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
 
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
Abortion pills in Fujairah *((+971588192166*)☎️)¥) **Effective Abortion Pills...
 
NYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdfNYC 26-Jun-2024 Combined Presentations.pdf
NYC 26-Jun-2024 Combined Presentations.pdf
 
Break data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud ConnectorsBreak data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud Connectors
 
Leading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptxLeading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptx
 
ANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdfANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdf
 
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple StepsSeamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
Seamless PostgreSQL to Snowflake Data Transfer in 8 Simple Steps
 
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours
 
Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
 
一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理
一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理
一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理
 
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
 
React Native vs Flutter - SSTech System
React Native vs Flutter  - SSTech SystemReact Native vs Flutter  - SSTech System
React Native vs Flutter - SSTech System
 
Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud
 
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
 
Intro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AIIntro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AI
 
Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.
 
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
 
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
 

Golang skills pre-session

  • 1. Golang Skills What we know so far… Sofiane Imadali, Ayoub Bousselmi 21/02/2018
  • 2. Agenda  When, Why and How ?  Golang Projects  Play-with-Docker (open source project)  VNF API (open source project from scratch)  Wall and Wall API (open source project, api from scratch)  Clutch (open source project, from scratch)  Prometheus Integration (exporters development)  Next steps…  Kubernetes and CRD 2/21/2019 Golang Skills 2
  • 3. When, Why and How ? 2/21/2019 Golang Skills 3
  • 4. When, Why and How ? 2/21/2019 Golang Skills 4 When  2016  Go version: 1.7 Why  Docker  RANaaS project: beego based Swagger API (OpenAPI)  integrations with MangoDB  fake data generator like Joke2k/faker in Python:
  • 5. When, Why and How ? 2/21/2019 Golang Skills 5 When  2017  Go version: 1.7, 1.8, 1.9 Why  Docker with Play-with-Docker project  Wall and Wall API  VNF API to integrate Dockerized OpenAirInterface  AccessPoint API to integrate with hostapd and dhcpd
  • 6. When, Why and How ? 2/21/2019 Golang Skills 6 When  2018  Go version: 1.8, 1.9, 1.10 Why  Docker with Play-with-Docker project  Docker-machine driver for the PlayGround (PWD)  Clutch: metrics exporter from PCP to Kafka  All exporters with Prometheus (Web, Postgres), Alertmanager  GitTar: git clone from a repo (for CI)
  • 8. Play-with-Docker 2/21/2019 Golang Skills 8 Goal  Ephemeral environment to play with docker  Part of the Plug’in sandbox Implementation  Gorilla Mux: API routes and handlers  Docker SDK (official API from github)  HTML/CSS/JavaScript/WebSockets connected to golang backend Main libraries  gorilla/mux  docker/docker/api  prometheus/promhttp Links  https://gitlab.forge.orange-labs.fr/lucy/playground
  • 9. Docker Machine Driver 2/21/2019 Golang Skills 9 Goal  Use docker-machine to interact with PlayGround  Create containers (DINDs) in the PlayGround Implementation  Docker-machine SDK Main libraries  docker/machine Links  https://gitlab.forge.orange-labs.fr/lucy/playground-driver
  • 10. VNF API 2/21/2019 Golang Skills 10 Goal  Wrap binaries and make them HTTP attainable  Inspired by Ligato project Implementation  Gin-gonik for swagger API  Logrus for logging  Templating for different configurations Main libraries  sirupsen/logrus  gin-gonic/gin  savaki/swag Links  https://www.sdxcentral.com/products/ligato/
  • 11. Wall and Wall API 2/21/2019 Golang Skills 11 Goal  Make something like Gist (Github) for the Sandbox users Implementation  Jekyll + Nginx  Golang based API + Templating for posts Main libraries  gorilla/mux + gorilla/handlers  urfave/negroni Links  https://gitlab.forge.orange-labs.fr/lucy/wall-api  https://gitlab.forge.orange-labs.fr/lucy/wall
  • 12. Clutch 2/21/2019 Golang Skills 12 Goal  Create small probe to extract metrics from PCP to Kafka Implementation  Kafka and PCP integration  Logrus for logging  Viper for configuration management Main libraries  Shopify/sarama  sirupsen/logrus  spf13/viper Links  https://gitlab.forge.orange-labs.fr/tqwt7730/clutch
  • 13. Prometheus Integration 2/21/2019 Golang Skills 13 Goal  Export metrics from PlayGround to Prometheus  Create an observable deployment on OpenWatt Implementation  Using official golang Http client  Rebuild Docker images from source code Main libraries  prometheus/promhttp Links  https://gitlab.forge.orange-labs.fr/tqwt7730/prom-bbe
  • 14. GitTar 2/21/2019 Golang Skills 14 Goal  Clone a git project from remote repo  Use BasicAuth credentials Implementation  Swagger REST API  Combine with AtomDocs (Sandbox) for documentation CI/CD Main libraries  gopkg.in/src-d/go-git.v4  gin-gonic/gin  savaki/swag Links  https://gitlab.forge.orange-labs.fr/tqwt7730/gittar
  • 15. Beego 2/21/2019 Golang Skills 15 Goal  Create an API for integration for the Radio Access Network as a Service (RANaaS) project Implementation  Generate basic REST API micro-service skeleton Main libraries  astaxie/beego Links  https://beego.me/
  • 17. Kubernetes and CRD 2/21/2019 Golang Skills 17  Play with Kubernetes  https://github.com/play-with-docker/play-with-docker/tree/k8s  Deploy K8S using Vagrant  https://github.com/sofianinho/vagrant-kube  CRD: we can collaborate !  Operator Framework: https://github.com/operator-framework