SlideShare a Scribd company logo
1 of 65
Download to read offline
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 184Mahmoud 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 31Mahmoud 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 202Mahmoud 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 languagesNaresha 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 88Mahmoud 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 30Mahmoud Samir Fayed
 
PrashantSoni_exp_embeddedSwDevelopment_latest
PrashantSoni_exp_embeddedSwDevelopment_latestPrashantSoni_exp_embeddedSwDevelopment_latest
PrashantSoni_exp_embeddedSwDevelopment_latestPrashant Soni
 
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 189Mahmoud 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 toolsmreiterer
 
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 SourceDevOps.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 MarketScott Abel
 
Android ndk - Introduction
Android ndk  - IntroductionAndroid ndk  - Introduction
Android ndk - IntroductionRakesh Jha
 
Localization Project Management
Localization Project ManagementLocalization Project Management
Localization Project Managementbarakdanin
 
Scaling applications with go
Scaling applications with goScaling applications with go
Scaling applications with goVimlesh 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 GoSimon 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 PresentationAlice 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 worldRoc 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 SortingFalcon Autotech
 
Cloud Application Development Lifecycle
Cloud Application Development LifecycleCloud Application Development Lifecycle
Cloud Application Development LifecycleSuhas 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 modelsTauseef 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 Deploymentzeeg
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing FundamentalsChankey Pathak
 

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 FlutterAwok
 
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 sdkExpeed Software
 
Top Programming Languages of 2020
Top Programming Languages of 2020Top Programming Languages of 2020
Top Programming Languages of 2020Ikbal 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 IoTLinaro
 
Top 10 programming languages
Top 10 programming languagesTop 10 programming languages
Top 10 programming languagesAman 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 applicationsIhor 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 companiesKiran Patil
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected DevelopmentJim 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 HeroEPAM
 
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.pdfDianApps Technologies
 
Introduction to flutter's basic concepts
Introduction to flutter's basic conceptsIntroduction to flutter's basic concepts
Introduction to flutter's basic conceptsKumaresh Chandra Baruri
 
Android workshop material
Android workshop materialAndroid workshop material
Android workshop materialReza Yogaswara
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump StartConFoo
 
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 analysisMoonTechnolabsPvtLtd
 
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 pointBOSC Tech Labs
 
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 84Mahmoud 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

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 

Recently uploaded (20)

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 

Code, ci, infrastructure - the gophers way