SlideShare a Scribd company logo
Code, CI, Infrastructure -
the gophers way
Alex Baitov
Senior backend developer
2gis.com
About 2GIS
International tech company, developing software for convenient city living
2GIS City Information Service (most successful product)
● combines a map with a city directory
● used by over 40 million people
● covers over 300 cities in 9 different countries
info.2gis.com/index_en.html
Content
1. Application written in golang
2. Ordinary infrastructure
3. Unified infrastructure
4. Gitlab CI as a glue
5. Benefits of using one language
How did we come
to golang in production?
Problem of losing packages
Application
backend server
Main
statistics
server
Asynchronous reverse proxy with buffer
Application
backend server
Main
statistics
server
Asynchronous
reverse proxy
with buffer
on golang
What infrastructure
to choose?
Team infrastructures
Monolith
Microservice
Team infrastructures
Monolith
Microservice
Team infrastructures
Ordinary infrastructure
Monolith
Microservice
Team infrastructures
Ordinary infrastructure
Monolith
Microservice
Team infrastructures
Ordinary infrastructure
Monolith
Microservice
Team infrastructures
Ordinary infrastructure
Unified infrastructure
Monolith
Microservice
Team infrastructures
Ordinary infrastructure
Unified infrastructure
Monolith
Microservice
Microservice
(other teams)
Why did we switch
to another infrastructure?
Software development life cycle
SDLC
PlanningPlanning
Develop-
ment
Develop-
ment
TestingTesting
DeliveryDelivery
Mainte-
nance
Mainte-
nance
Infrastructure
is the core
of SDLC
SDLC: substages
PlanningPlanning
Develop-
ment
Develop-
ment
TestingTesting
DeliveryDelivery
Mainte-
nance
Mainte-
nance
Application
SDLC
SDLC: substages
PlanningPlanning
Develop-
ment
Develop-
ment
TestingTesting
DeliveryDelivery
Mainte-
nance
Mainte-
nance
Application
Unit
Functional
SDLC
SDLC: substages
PlanningPlanning
Develop-
ment
Develop-
ment
TestingTesting
DeliveryDelivery
Mainte-
nance
Mainte-
nance
Application
UnitDeploy
Configuring Functional
SDLC
SDLC: substages
PlanningPlanning
Develop-
ment
Develop-
ment
TestingTesting
DeliveryDelivery
Mainte-
nance
Mainte-
nance
Application
UnitDeploy
Configuring Functional
Metrics and
Alerting
Logging
Monitoring
Init and
keeping alive
SDLC
SDLC: substage tools
PlanningPlanning
Develop-
ment
Develop-
ment
TestingTesting
DeliveryDelivery
Mainte-
nance
Mainte-
nance
Application
UnitDeploy
Configuring Functional
Metrics and
Alerting
Logging
Monitoring
Init and
keeping alive
SDLC
jenkins / rundeck /
heat templates in
openstack
chef / ansible
zabbix / sensu
application sends by
protocol / beaver
kibana
upstart /
systemd / monit
openstack /
own testing
frameworks
test modules
framework /
package
manager /
standards
Disadvantages of lots of tools
● High entry barrier
Disadvantages of lots of tools
● High entry barrier
● Simultaneous studying of all this tools takes a long time
Disadvantages of lots of tools
● High entry barrier
● Simultaneous studying of all this tools takes a long time
● Difficult integration
Disadvantages of lots of tools
● High entry barrier
● Simultaneous studying of all this tools takes a long time
● Difficult integration
● Specific debugging of each tool
Disadvantages of lots of tools
● High entry barrier
● Simultaneous studying of all this tools takes a long time
● Difficult integration
● Specific debugging of each tool
● Human factor (sometimes forget something)
What if you need
to look inside a tools or
write a custom module for it?
You need to know tool’s language
SDLC: substage tools languages
PlanningPlanning
Develop-
ment
Develop-
ment
TestingTesting
DeliveryDelivery
Mainte-
nance
Mainte-
nance
Application
UnitDeploy
Configuring Functional
Metrics and
Alerting
Logging
Monitoring
Init and
keeping alive
SDLC
java /
heat templates yaml
ruby / python
c, php / ruby
application language /
python
javascript
c
php / scala
php /
scala /
go
php / scala
Disadvantages of different languages of lots of tools
● Different error reporting for each language
Disadvantages of different languages of lots of tools
● Different error reporting for each language
● Harder understanding of how the tool works
Disadvantages of different languages of lots of tools
● Different error reporting for each language
● Harder understanding of how the tool works
● Studying different languages to write custom modules
Advantages of this approach
● Wider knowledge about familiar tools
● Familiar tools help to fast build of minimum viable product
(MVP)
Disadvantages of this approach
● Too much support for one team
● Too much tools for building microservices
● Long everyday releases
● Expensive development process
How to improve it?
Unified infrastructure
● DEIS - platform as a service that deploys and scales containers
● Docker - pack, ship and run any application as a lightweight, portable,
self-sufficient container
● Prometheus - metrics and alerting system
● Grafana - metrics visualization
Unified infrastructure
● DEIS - platform as a service that deploys and scales containers
● Docker - pack, ship and run any application as a lightweight, portable,
self-sufficient container
● Prometheus - metrics and alerting system
● Grafana - metrics visualization
All of them are:
● open-source
● written on go
Unified infrastructure
● DEIS -> DEIS 2 ( Workflow / Kubernetes )
● Docker - pack, ship and run any application as a lightweight, portable,
self-sufficient container
● Prometheus - metrics and alerting system
● Grafana - metrics visualization
All of them are:
● open-source
● written on go
How do we use mostly golang
infrastructure in production?
SDLC: substage tools
PlanningPlanning
Develop-
ment
Develop-
ment
TestingTesting
DeliveryDelivery
Mainte-
nance
Mainte-
nance
Application
SDLC
native /
framework /
vendoring /
standards
SDLC: substage tools
PlanningPlanning
Develop-
ment
Develop-
ment
TestingTesting
DeliveryDelivery
Mainte-
nance
Mainte-
nance
Application
Unit
Functional
SDLC
docker-compose
/ test library
test library
native /
framework /
vendoring /
standards
SDLC: substage tools
PlanningPlanning
Develop-
ment
Develop-
ment
TestingTesting
DeliveryDelivery
Mainte-
nance
Mainte-
nance
Application
UnitDeploy
Configuring Functional
SDLC
gitlab-ci / deis
gitlab-ci / deis (via
environment variables)
docker-compose
/ test library
test library
native /
framework /
vendoring /
standards
SDLC: substage tools
PlanningPlanning
Develop-
ment
Develop-
ment
TestingTesting
DeliveryDelivery
Mainte-
nance
Mainte-
nance
Application
UnitDeploy
Configuring Functional
Metrics and
Alerting
Logging
Monitoring
Init and
keeping alive
SDLC
gitlab-ci / deis
gitlab-ci / deis (via
environment variables)
prometheus
deis captures application
output
deis (via checking
health)
kibana / grafana
docker-compose
/ test library
test library
native /
framework /
vendoring /
standards
SDLC: substage tools languages
PlanningPlanning
Develop-
ment
Develop-
ment
TestingTesting
DeliveryDelivery
Mainte-
nance
Mainte-
nance
Application
UnitDeploy
Configuring Functional
Metrics and
Alerting
Logging
Monitoring
Init and
keeping alive
SDLC
go / gitlab-ci yaml
go / gitlab-ci yaml
go
go
go / javascript
go
go
go
go
This infrastructure
is also used for
Scala, Node.js and C#
applications
Comparison of SDLCs
Ordinary
infrastructure
Tools (quantity)
Golang
infrastructure
Languages (quantity)
15 + 8
7 3
How do we use it together?
Gitlab workflow
● 2 shared runners with docker: 16 GB, 32 CPU
● Gitlab-ci job isolation with docker or docker-compose
● Latest branch docker images of application - in entire
docker registry
● That allows to rollback
● Job parallelisation
Gitlab pipeline
Everything in code
● Application
● Tests
Everything in code
● Application
● Tests
● Deploy
● Configuration
Everything in code
● Application
● Tests
● Deploy
● Configuration
● Metrics
● Alerts rules
Everything in code
● Application
● Tests
● Deploy
● Configuration
● Metrics
● Alerts rules
Review everything via merge requests
Easy to resolve problem
What are benefits
from using golang
in application and infrastructure?
Benefits of language coincidence
First official tool client goes on its native language: go
Benefits of language coincidence
First official tool client goes on its native language: go
Easy to read and understand tools logic
Benefits of language coincidence
First official tool client goes on its native language: go
Easy to read and understand tools logic
Easy to contribute in infrastructure
Benefits of language coincidence
First official tool client goes on its native language: go
Easy to read and understand tools logic
Easy to contribute in infrastructure
Concentrate on one language
Benefits of language coincidence
First official tool client goes on its native language: go
Easy to read and understand tools logic
Easy to contribute in infrastructure
Concentrate on one language
Fast maintenance reaction
Benefits of language coincidence
First official tool client goes on its native language: go
Easy to read and understand tools logic
Easy to contribute in infrastructure
Concentrate on one language
Fast maintenance reaction
Fast mvp
Conclusion
Everything in code
Mostly one language
Golang is good for infrastructure tools
Golang is production proved
Alex Baitov
al.baitov@2gis.ru
alex.baitov@gmail.com
slides & links : goo.gl / LKPmvi
2gis.ru
Thank you!
Extras
Docker
An open-source project that automates the deployment of Linux applications
inside software containers
Also use:
● Docker-compose
● Docker registry
Deis
An open-source platform as a service (PaaS) that makes it easy to deploy and
manage applications on your own servers.
Deis builds upon Docker and CoreOS to provide a lightweight PaaS with a
Heroku-inspired workflow.
Built-in:
● Logging
● Scaling
● Routing
● Fault-tolerance
Prometheus
An open-source metrics and alerting system:
● Implements a highly dimensional model data
● Flexible querying language
● Built-in visualisation
● Federation system
● Push or pull data mining
● Alert manager
● Many client libraries

More Related Content

What's hot

The Ring programming language version 1.5.3 book - Part 5 of 184
The Ring programming language version 1.5.3 book - Part 5 of 184The Ring programming language version 1.5.3 book - Part 5 of 184
The Ring programming language version 1.5.3 book - Part 5 of 184
Mahmoud Samir Fayed
 
The Ring programming language version 1.4.1 book - Part 2 of 31
The Ring programming language version 1.4.1 book - Part 2 of 31The Ring programming language version 1.4.1 book - Part 2 of 31
The Ring programming language version 1.4.1 book - Part 2 of 31
Mahmoud Samir Fayed
 
The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202
Mahmoud Samir Fayed
 
Think beyond frameworks, The real gems are in the languages
Think beyond frameworks, The real gems are in the languagesThink beyond frameworks, The real gems are in the languages
Think beyond frameworks, The real gems are in the languages
Naresha K
 
The Ring programming language version 1.3 book - Part 4 of 88
The Ring programming language version 1.3 book - Part 4 of 88The Ring programming language version 1.3 book - Part 4 of 88
The Ring programming language version 1.3 book - Part 4 of 88
Mahmoud Samir Fayed
 
The Ring programming language version 1.4 book - Part 2 of 30
The Ring programming language version 1.4 book - Part 2 of 30The Ring programming language version 1.4 book - Part 2 of 30
The Ring programming language version 1.4 book - Part 2 of 30
Mahmoud Samir Fayed
 
PrashantSoni_exp_embeddedSwDevelopment_latest
PrashantSoni_exp_embeddedSwDevelopment_latestPrashantSoni_exp_embeddedSwDevelopment_latest
PrashantSoni_exp_embeddedSwDevelopment_latest
Prashant Soni
 
Mannu_Kumar_CV
Mannu_Kumar_CVMannu_Kumar_CV
Mannu_Kumar_CV
Mannu Kumar
 
Bridge to r
Bridge to rBridge to r
Bridge to r
Dmitry Makarchuk
 
The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189
Mahmoud Samir Fayed
 
Smart Internationalization assistance and resource translation tools
Smart Internationalization assistance and resource translation toolsSmart Internationalization assistance and resource translation tools
Smart Internationalization assistance and resource translation tools
mreiterer
 
Vijay_Teekinavar_Kallesh
Vijay_Teekinavar_KalleshVijay_Teekinavar_Kallesh
Vijay_Teekinavar_Kallesh
Vijay Teekinavar
 
The Evolving Role of Build Engineering in Managing Open Source
The Evolving Role of Build Engineering in Managing Open SourceThe Evolving Role of Build Engineering in Managing Open Source
The Evolving Role of Build Engineering in Managing Open Source
DevOps.com
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
Maarten Balliauw
 
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
APIs and SDKs: Breaking Into and Succeeding in a Specialty MarketAPIs and SDKs: Breaking Into and Succeeding in a Specialty Market
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
Scott Abel
 
Android ndk - Introduction
Android ndk  - IntroductionAndroid ndk  - Introduction
Android ndk - Introduction
Rakesh Jha
 
Localization Project Management
Localization Project ManagementLocalization Project Management
Localization Project Management
barakdanin
 
Scaling applications with go
Scaling applications with goScaling applications with go
Scaling applications with go
Vimlesh Sharma
 
Golang, Future of Programming Language.
Golang, Future of Programming Language.Golang, Future of Programming Language.
Golang, Future of Programming Language.
Sunil Yadav
 
Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Go
Simon Hewitt
 

What's hot (20)

The Ring programming language version 1.5.3 book - Part 5 of 184
The Ring programming language version 1.5.3 book - Part 5 of 184The Ring programming language version 1.5.3 book - Part 5 of 184
The Ring programming language version 1.5.3 book - Part 5 of 184
 
The Ring programming language version 1.4.1 book - Part 2 of 31
The Ring programming language version 1.4.1 book - Part 2 of 31The Ring programming language version 1.4.1 book - Part 2 of 31
The Ring programming language version 1.4.1 book - Part 2 of 31
 
The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202
 
Think beyond frameworks, The real gems are in the languages
Think beyond frameworks, The real gems are in the languagesThink beyond frameworks, The real gems are in the languages
Think beyond frameworks, The real gems are in the languages
 
The Ring programming language version 1.3 book - Part 4 of 88
The Ring programming language version 1.3 book - Part 4 of 88The Ring programming language version 1.3 book - Part 4 of 88
The Ring programming language version 1.3 book - Part 4 of 88
 
The Ring programming language version 1.4 book - Part 2 of 30
The Ring programming language version 1.4 book - Part 2 of 30The Ring programming language version 1.4 book - Part 2 of 30
The Ring programming language version 1.4 book - Part 2 of 30
 
PrashantSoni_exp_embeddedSwDevelopment_latest
PrashantSoni_exp_embeddedSwDevelopment_latestPrashantSoni_exp_embeddedSwDevelopment_latest
PrashantSoni_exp_embeddedSwDevelopment_latest
 
Mannu_Kumar_CV
Mannu_Kumar_CVMannu_Kumar_CV
Mannu_Kumar_CV
 
Bridge to r
Bridge to rBridge to r
Bridge to r
 
The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189
 
Smart Internationalization assistance and resource translation tools
Smart Internationalization assistance and resource translation toolsSmart Internationalization assistance and resource translation tools
Smart Internationalization assistance and resource translation tools
 
Vijay_Teekinavar_Kallesh
Vijay_Teekinavar_KalleshVijay_Teekinavar_Kallesh
Vijay_Teekinavar_Kallesh
 
The Evolving Role of Build Engineering in Managing Open Source
The Evolving Role of Build Engineering in Managing Open SourceThe Evolving Role of Build Engineering in Managing Open Source
The Evolving Role of Build Engineering in Managing Open Source
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
 
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
APIs and SDKs: Breaking Into and Succeeding in a Specialty MarketAPIs and SDKs: Breaking Into and Succeeding in a Specialty Market
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
 
Android ndk - Introduction
Android ndk  - IntroductionAndroid ndk  - Introduction
Android ndk - Introduction
 
Localization Project Management
Localization Project ManagementLocalization Project Management
Localization Project Management
 
Scaling applications with go
Scaling applications with goScaling applications with go
Scaling applications with go
 
Golang, Future of Programming Language.
Golang, Future of Programming Language.Golang, Future of Programming Language.
Golang, Future of Programming Language.
 
Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Go
 

Viewers also liked

Agile Design - Chicago IXDA Presentation
Agile Design - Chicago IXDA PresentationAgile Design - Chicago IXDA Presentation
Agile Design - Chicago IXDA Presentation
Alice Toth
 
Testing, CI and CD in the real world
Testing, CI and CD in the real worldTesting, CI and CD in the real world
Testing, CI and CD in the real world
Roc Boronat
 
FALCON's Tilt Tray Sorter: A new age in Packet Sorting
FALCON's Tilt Tray Sorter: A new age in Packet SortingFALCON's Tilt Tray Sorter: A new age in Packet Sorting
FALCON's Tilt Tray Sorter: A new age in Packet Sorting
Falcon Autotech
 
Cloud Application Development Lifecycle
Cloud Application Development LifecycleCloud Application Development Lifecycle
Cloud Application Development Lifecycle
Suhas Kelkar
 
Lviv PMDay: Дов Німрац Як зробити процес Continuous Integration ефективним
Lviv PMDay: Дов Німрац Як зробити процес Continuous Integration ефективнимLviv PMDay: Дов Німрац Як зробити процес Continuous Integration ефективним
Lviv PMDay: Дов Німрац Як зробити процес Continuous Integration ефективним
Lviv Startup Club
 
Software Engg. process models
Software Engg. process modelsSoftware Engg. process models
Software Engg. process models
Tauseef Ahmad
 
ALM (Application Lifecycle Management)
ALM (Application Lifecycle Management)ALM (Application Lifecycle Management)
ALM (Application Lifecycle Management)
Terry Cho
 
Pitfalls of Continuous Deployment
Pitfalls of Continuous DeploymentPitfalls of Continuous Deployment
Pitfalls of Continuous Deployment
zeeg
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing Fundamentals
Chankey Pathak
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
Heritage Institute Of Tech,India
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
Natasha Murashev
 

Viewers also liked (11)

Agile Design - Chicago IXDA Presentation
Agile Design - Chicago IXDA PresentationAgile Design - Chicago IXDA Presentation
Agile Design - Chicago IXDA Presentation
 
Testing, CI and CD in the real world
Testing, CI and CD in the real worldTesting, CI and CD in the real world
Testing, CI and CD in the real world
 
FALCON's Tilt Tray Sorter: A new age in Packet Sorting
FALCON's Tilt Tray Sorter: A new age in Packet SortingFALCON's Tilt Tray Sorter: A new age in Packet Sorting
FALCON's Tilt Tray Sorter: A new age in Packet Sorting
 
Cloud Application Development Lifecycle
Cloud Application Development LifecycleCloud Application Development Lifecycle
Cloud Application Development Lifecycle
 
Lviv PMDay: Дов Німрац Як зробити процес Continuous Integration ефективним
Lviv PMDay: Дов Німрац Як зробити процес Continuous Integration ефективнимLviv PMDay: Дов Німрац Як зробити процес Continuous Integration ефективним
Lviv PMDay: Дов Німрац Як зробити процес Continuous Integration ефективним
 
Software Engg. process models
Software Engg. process modelsSoftware Engg. process models
Software Engg. process models
 
ALM (Application Lifecycle Management)
ALM (Application Lifecycle Management)ALM (Application Lifecycle Management)
ALM (Application Lifecycle Management)
 
Pitfalls of Continuous Deployment
Pitfalls of Continuous DeploymentPitfalls of Continuous Deployment
Pitfalls of Continuous Deployment
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing Fundamentals
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Similar to Code, ci, infrastructure - the gophers way

Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
Awok
 
Mobile Application Development class 001
Mobile Application Development class 001Mobile Application Development class 001
Mobile Application Development class 001
Dr. Mazin Mohamed alkathiri
 
What makes Flutter the best cross platform sdk
What makes Flutter the best cross platform sdkWhat makes Flutter the best cross platform sdk
What makes Flutter the best cross platform sdk
Expeed Software
 
Top Programming Languages of 2020
Top Programming Languages of 2020Top Programming Languages of 2020
Top Programming Languages of 2020
Ikbal Ahmed
 
LAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoTLAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoT
Linaro
 
Flutter study jam 2019
Flutter study jam 2019Flutter study jam 2019
Flutter study jam 2019
Ahmed Abu Eldahab
 
Top 10 programming languages
Top 10 programming languagesTop 10 programming languages
Top 10 programming languages
Aman Kumar
 
Couch DB/PouchDB approach for hybrid mobile applications
Couch DB/PouchDB approach for hybrid mobile applicationsCouch DB/PouchDB approach for hybrid mobile applications
Couch DB/PouchDB approach for hybrid mobile applications
Ihor Malytskyi
 
Top programming Languages in software Industry companies
Top programming Languages in software Industry companiesTop programming Languages in software Industry companies
Top programming Languages in software Industry companies
Kiran Patil
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected Development
Jim McKeeth
 
Bootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroBootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to Hero
EPAM
 
6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf
6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf
6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf
DianApps Technologies
 
Introduction to flutter's basic concepts
Introduction to flutter's basic conceptsIntroduction to flutter's basic concepts
Introduction to flutter's basic concepts
Kumaresh Chandra Baruri
 
Android workshop material
Android workshop materialAndroid workshop material
Android workshop material
Reza Yogaswara
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump Start
ConFoo
 
Recover 30% of your day with IBM Development Tools (Smarter Mainframe Develop...
Recover 30% of your day with IBM Development Tools (Smarter Mainframe Develop...Recover 30% of your day with IBM Development Tools (Smarter Mainframe Develop...
Recover 30% of your day with IBM Development Tools (Smarter Mainframe Develop...
Susan Yoskin
 
React native vs. flutter a detailed analysis
React native vs. flutter  a detailed analysisReact native vs. flutter  a detailed analysis
React native vs. flutter a detailed analysis
MoonTechnolabsPvtLtd
 
Flutter vs react native – from developer point
Flutter vs react native – from developer pointFlutter vs react native – from developer point
Flutter vs react native – from developer point
BOSC Tech Labs
 
flutter intro.pptx
flutter intro.pptxflutter intro.pptx
flutter intro.pptx
HajerZitouni3
 
The Ring programming language version 1.2 book - Part 4 of 84
The Ring programming language version 1.2 book - Part 4 of 84The Ring programming language version 1.2 book - Part 4 of 84
The Ring programming language version 1.2 book - Part 4 of 84
Mahmoud Samir Fayed
 

Similar to Code, ci, infrastructure - the gophers way (20)

Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
 
Mobile Application Development class 001
Mobile Application Development class 001Mobile Application Development class 001
Mobile Application Development class 001
 
What makes Flutter the best cross platform sdk
What makes Flutter the best cross platform sdkWhat makes Flutter the best cross platform sdk
What makes Flutter the best cross platform sdk
 
Top Programming Languages of 2020
Top Programming Languages of 2020Top Programming Languages of 2020
Top Programming Languages of 2020
 
LAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoTLAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoT
 
Flutter study jam 2019
Flutter study jam 2019Flutter study jam 2019
Flutter study jam 2019
 
Top 10 programming languages
Top 10 programming languagesTop 10 programming languages
Top 10 programming languages
 
Couch DB/PouchDB approach for hybrid mobile applications
Couch DB/PouchDB approach for hybrid mobile applicationsCouch DB/PouchDB approach for hybrid mobile applications
Couch DB/PouchDB approach for hybrid mobile applications
 
Top programming Languages in software Industry companies
Top programming Languages in software Industry companiesTop programming Languages in software Industry companies
Top programming Languages in software Industry companies
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected Development
 
Bootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroBootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to Hero
 
6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf
6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf
6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf
 
Introduction to flutter's basic concepts
Introduction to flutter's basic conceptsIntroduction to flutter's basic concepts
Introduction to flutter's basic concepts
 
Android workshop material
Android workshop materialAndroid workshop material
Android workshop material
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump Start
 
Recover 30% of your day with IBM Development Tools (Smarter Mainframe Develop...
Recover 30% of your day with IBM Development Tools (Smarter Mainframe Develop...Recover 30% of your day with IBM Development Tools (Smarter Mainframe Develop...
Recover 30% of your day with IBM Development Tools (Smarter Mainframe Develop...
 
React native vs. flutter a detailed analysis
React native vs. flutter  a detailed analysisReact native vs. flutter  a detailed analysis
React native vs. flutter a detailed analysis
 
Flutter vs react native – from developer point
Flutter vs react native – from developer pointFlutter vs react native – from developer point
Flutter vs react native – from developer point
 
flutter intro.pptx
flutter intro.pptxflutter intro.pptx
flutter intro.pptx
 
The Ring programming language version 1.2 book - Part 4 of 84
The Ring programming language version 1.2 book - Part 4 of 84The Ring programming language version 1.2 book - Part 4 of 84
The Ring programming language version 1.2 book - Part 4 of 84
 

Recently uploaded

Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
Awais Yaseen
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 

Recently uploaded (20)

Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 

Code, ci, infrastructure - the gophers way