SlideShare a Scribd company logo
1 of 18
Download to read offline
Microservices and javascript on the
server-side
Libor Vilímek
Switching to Node.js
Easy to learn
Easy to use
Easy to become Node.js wizard
Hypetrain is real
Node.js quick summary
One thread – no deadlocks, not expensive thread creation
Npm install – as easy as possible
Javascript – allows almost anything
Public modules – always open source, huge community
Asynchronous – no worker threads
No more copy-paste solutions
Advantages of small projects
Smaller codebase – easier to maintain
Change-requests are much more efficient
Easy to understand – join and understand new project fast
Less bugs – due to lower complexity
Microservices!!
Build your application as multiple independent projects
Use lightweight communication (i.e. REST API)
Create its own database for each microservice
Microservices in 2017
Automated deploy – programmer does not have to manually compile and
upload to server
Healthchecks – admin does not have „watch“ and repair failing service
Docker – admin/programmer does not have to configure each service
Cloud hosting – cheap, almost no maintance
Advantages of Microservices
Modularity – you can easily deploy one microservice in more applications
Development – more developers can work on the same application
Small codebase – it has all the advantages of small projects
Scalability – different number of instances for each microservice
App4Fest architecture
Pitfalls of Microservice Architecture
Stateless – never ever do transactions through microservices
Data – more databases = count on desynchronized data
„Microservices are great, lets split everything into them“
Have active communication between teams
exports.createPayment = function(object, cb) {
var rand = Math.abs((Math.random() * (9999999999 - 1) + 1) | 0).toString();
// console.log(rand);
Payment.findOne({vs: rand}, function(err, obj) {
if (obj) {
rand = Math.abs((Math.random() * (9999999999 - 1) + 1) | 0).toString();
// console.log(rand);
Payment.findOne({vs: rand}, function(err, obj) {
if (obj) {
rand = Math.abs((Math.random() * (9999999999 - 1) + 1) | 0).toString();
// console.log(rand);
Payment.findOne({vs: rand}, function(err, obj) {
if (obj) {
rand = Math.abs((Math.random() * (9999999999 - 1) + 1) | 0).toString();
// console.log(rand);
Payment.findOne({vs: rand}, function(err, obj) {
if (obj) {
rand = Math.abs((Math.random() * (9999999999 - 1) + 1) | 0).toString();
// console.log(rand);
Payment.findOne({vs: rand}, function(err, obj) {
if (obj) {
cb(1, null);
} else {
object.vs = rand;
var create = new Payment(object);
create.save(function(err, payment) {
cb(err, payment);
});
}
});
Bad code destroys even great design
What you get with CI, Node.js and
Microservices
Quick development
Easy maintance
You can fire admin team (finally)
No server downtime
Special slide for business inteligence
sitting here
www.ackee.cz
Krásní lidé, krásné appky

More Related Content

What's hot

Make your animations perform well - Anna Migas - Codemotion Rome 2017
Make your animations perform well - Anna Migas - Codemotion Rome 2017Make your animations perform well - Anna Migas - Codemotion Rome 2017
Make your animations perform well - Anna Migas - Codemotion Rome 2017Codemotion
 
Demand driven applications with om.next and react native
Demand driven applications with om.next and react nativeDemand driven applications with om.next and react native
Demand driven applications with om.next and react nativedvcrn
 
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...Windows Developer
 
Build a Chatbot in Ten Minutes - Dave Kerr - Serverless Summit
Build a Chatbot in Ten Minutes - Dave Kerr - Serverless SummitBuild a Chatbot in Ten Minutes - Dave Kerr - Serverless Summit
Build a Chatbot in Ten Minutes - Dave Kerr - Serverless SummitCodeOps Technologies LLP
 
Serverless in azure
Serverless in azureServerless in azure
Serverless in azureVeresh Jain
 
Blazor and Azure Functions - a serverless approach
Blazor and Azure Functions - a serverless approachBlazor and Azure Functions - a serverless approach
Blazor and Azure Functions - a serverless approachAlex Pshul
 
Azure Static Web Apps 入門
Azure Static Web Apps 入門Azure Static Web Apps 入門
Azure Static Web Apps 入門Tsubasa Yoshino
 
Serverless Machine Learning Workshop
Serverless Machine Learning WorkshopServerless Machine Learning Workshop
Serverless Machine Learning WorkshopAlex Casalboni
 
Alex Pshul: What We Learned by Testing Execution of 300K Messages/Min in a Se...
Alex Pshul: What We Learned by Testing Execution of 300K Messages/Min in a Se...Alex Pshul: What We Learned by Testing Execution of 300K Messages/Min in a Se...
Alex Pshul: What We Learned by Testing Execution of 300K Messages/Min in a Se...CodeValue
 
Serverless + Machine Learning – Bringing the best of two worlds together
Serverless + Machine Learning – Bringing the best of two worlds togetherServerless + Machine Learning – Bringing the best of two worlds together
Serverless + Machine Learning – Bringing the best of two worlds togetherVidyasagar Machupalli
 
Building Tools for the Hadoop Developer
Building Tools for the Hadoop DeveloperBuilding Tools for the Hadoop Developer
Building Tools for the Hadoop DeveloperDataWorks Summit
 
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & More
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & MoreCreating Island Tracker - Xamarin, Azure Functions, Table Storage, & More
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & MoreJames Montemagno
 
Asp.net visual studio 2013
Asp.net   visual studio 2013Asp.net   visual studio 2013
Asp.net visual studio 2013Tyrone Moodley
 
Unlimited Frameworks
Unlimited FrameworksUnlimited Frameworks
Unlimited FrameworksTerui Masashi
 
Node.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontendsNode.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontendsEugene Fidelin
 
TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015DotNetCampus
 
Web And Cloud Tour 2015 - ASP.NET 5
Web And Cloud Tour 2015 -  ASP.NET 5 Web And Cloud Tour 2015 -  ASP.NET 5
Web And Cloud Tour 2015 - ASP.NET 5 Marc Rubiño
 
Going Serverless with Azure Functions
Going Serverless with Azure FunctionsGoing Serverless with Azure Functions
Going Serverless with Azure FunctionsChristos Matskas
 
Simpler Web Architectures Now! (At The Frontend 2016)
Simpler Web Architectures Now! (At The Frontend 2016)Simpler Web Architectures Now! (At The Frontend 2016)
Simpler Web Architectures Now! (At The Frontend 2016)Gustaf Nilsson Kotte
 

What's hot (20)

Make your animations perform well - Anna Migas - Codemotion Rome 2017
Make your animations perform well - Anna Migas - Codemotion Rome 2017Make your animations perform well - Anna Migas - Codemotion Rome 2017
Make your animations perform well - Anna Migas - Codemotion Rome 2017
 
Demand driven applications with om.next and react native
Demand driven applications with om.next and react nativeDemand driven applications with om.next and react native
Demand driven applications with om.next and react native
 
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...
 
Build a Chatbot in Ten Minutes - Dave Kerr - Serverless Summit
Build a Chatbot in Ten Minutes - Dave Kerr - Serverless SummitBuild a Chatbot in Ten Minutes - Dave Kerr - Serverless Summit
Build a Chatbot in Ten Minutes - Dave Kerr - Serverless Summit
 
Serverless in azure
Serverless in azureServerless in azure
Serverless in azure
 
Blazor and Azure Functions - a serverless approach
Blazor and Azure Functions - a serverless approachBlazor and Azure Functions - a serverless approach
Blazor and Azure Functions - a serverless approach
 
Azure Static Web Apps 入門
Azure Static Web Apps 入門Azure Static Web Apps 入門
Azure Static Web Apps 入門
 
Serverless Machine Learning Workshop
Serverless Machine Learning WorkshopServerless Machine Learning Workshop
Serverless Machine Learning Workshop
 
Alex Pshul: What We Learned by Testing Execution of 300K Messages/Min in a Se...
Alex Pshul: What We Learned by Testing Execution of 300K Messages/Min in a Se...Alex Pshul: What We Learned by Testing Execution of 300K Messages/Min in a Se...
Alex Pshul: What We Learned by Testing Execution of 300K Messages/Min in a Se...
 
Serverless + Machine Learning – Bringing the best of two worlds together
Serverless + Machine Learning – Bringing the best of two worlds togetherServerless + Machine Learning – Bringing the best of two worlds together
Serverless + Machine Learning – Bringing the best of two worlds together
 
Building Tools for the Hadoop Developer
Building Tools for the Hadoop DeveloperBuilding Tools for the Hadoop Developer
Building Tools for the Hadoop Developer
 
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & More
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & MoreCreating Island Tracker - Xamarin, Azure Functions, Table Storage, & More
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & More
 
Asp.net visual studio 2013
Asp.net   visual studio 2013Asp.net   visual studio 2013
Asp.net visual studio 2013
 
Unlimited Frameworks
Unlimited FrameworksUnlimited Frameworks
Unlimited Frameworks
 
Meteor meetup
Meteor meetupMeteor meetup
Meteor meetup
 
Node.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontendsNode.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontends
 
TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015
 
Web And Cloud Tour 2015 - ASP.NET 5
Web And Cloud Tour 2015 -  ASP.NET 5 Web And Cloud Tour 2015 -  ASP.NET 5
Web And Cloud Tour 2015 - ASP.NET 5
 
Going Serverless with Azure Functions
Going Serverless with Azure FunctionsGoing Serverless with Azure Functions
Going Serverless with Azure Functions
 
Simpler Web Architectures Now! (At The Frontend 2016)
Simpler Web Architectures Now! (At The Frontend 2016)Simpler Web Architectures Now! (At The Frontend 2016)
Simpler Web Architectures Now! (At The Frontend 2016)
 

Similar to Get your mobile app in production in 3 months: Backend

High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017Rick Hightower
 
Docebo: history of a journey from legacy to serverless
Docebo: history of a journey from legacy to serverlessDocebo: history of a journey from legacy to serverless
Docebo: history of a journey from legacy to serverlessAWS User Group Italy
 
Rutgers Cloud Seminar 2017
Rutgers Cloud Seminar 2017Rutgers Cloud Seminar 2017
Rutgers Cloud Seminar 2017Canturk Isci
 
How to CQRS in node: Eventually Consistent, Distributed Microservice Systems..
How to CQRS in node: Eventually Consistent, Distributed Microservice Systems..How to CQRS in node: Eventually Consistent, Distributed Microservice Systems..
How to CQRS in node: Eventually Consistent, Distributed Microservice Systems..Matt Walters
 
Serverless solutions - AWS Summit SG 2017
Serverless solutions - AWS Summit SG 2017 Serverless solutions - AWS Summit SG 2017
Serverless solutions - AWS Summit SG 2017 Amazon Web Services
 
NodeJS guide for beginners
NodeJS guide for beginnersNodeJS guide for beginners
NodeJS guide for beginnersEnoch Joshua
 
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)Matthias Noback
 
Serverless is FaaS-tastic - All Things Open Meet-up
Serverless is FaaS-tastic - All Things Open Meet-upServerless is FaaS-tastic - All Things Open Meet-up
Serverless is FaaS-tastic - All Things Open Meet-upMark Hinkle
 
Microservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applicationsMicroservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applicationsStijn Van Den Enden
 
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...Matthias Noback
 
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)Matthias Noback
 
Develop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverlessDevelop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverlessLalit Kale
 
Bee brief-intro-q42016
Bee brief-intro-q42016Bee brief-intro-q42016
Bee brief-intro-q42016wahyu prayudo
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .NetRichard Banks
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
 
Comet with node.js and V8
Comet with node.js and V8Comet with node.js and V8
Comet with node.js and V8amix3k
 

Similar to Get your mobile app in production in 3 months: Backend (20)

High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017
 
agile microservices @scaibo
agile microservices @scaiboagile microservices @scaibo
agile microservices @scaibo
 
Node js
Node jsNode js
Node js
 
Docebo: history of a journey from legacy to serverless
Docebo: history of a journey from legacy to serverlessDocebo: history of a journey from legacy to serverless
Docebo: history of a journey from legacy to serverless
 
Rutgers Cloud Seminar 2017
Rutgers Cloud Seminar 2017Rutgers Cloud Seminar 2017
Rutgers Cloud Seminar 2017
 
Rutgers Cloud Seminar 2017
Rutgers Cloud Seminar 2017Rutgers Cloud Seminar 2017
Rutgers Cloud Seminar 2017
 
How to CQRS in node: Eventually Consistent, Distributed Microservice Systems..
How to CQRS in node: Eventually Consistent, Distributed Microservice Systems..How to CQRS in node: Eventually Consistent, Distributed Microservice Systems..
How to CQRS in node: Eventually Consistent, Distributed Microservice Systems..
 
Serverless solutions - AWS Summit SG 2017
Serverless solutions - AWS Summit SG 2017 Serverless solutions - AWS Summit SG 2017
Serverless solutions - AWS Summit SG 2017
 
NodeJS guide for beginners
NodeJS guide for beginnersNodeJS guide for beginners
NodeJS guide for beginners
 
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
 
Serverless is FaaS-tastic - All Things Open Meet-up
Serverless is FaaS-tastic - All Things Open Meet-upServerless is FaaS-tastic - All Things Open Meet-up
Serverless is FaaS-tastic - All Things Open Meet-up
 
Microservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applicationsMicroservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applications
 
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
 
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
 
Develop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverlessDevelop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverless
 
Bee brief-intro-q42016
Bee brief-intro-q42016Bee brief-intro-q42016
Bee brief-intro-q42016
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .Net
 
Future prediction-ds
Future prediction-dsFuture prediction-ds
Future prediction-ds
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
Comet with node.js and V8
Comet with node.js and V8Comet with node.js and V8
Comet with node.js and V8
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
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
 
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
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
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
 
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
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
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)
 
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
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
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!
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
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
 

Get your mobile app in production in 3 months: Backend

  • 1. Microservices and javascript on the server-side Libor Vilímek
  • 2. Switching to Node.js Easy to learn Easy to use Easy to become Node.js wizard
  • 4. Node.js quick summary One thread – no deadlocks, not expensive thread creation Npm install – as easy as possible Javascript – allows almost anything Public modules – always open source, huge community Asynchronous – no worker threads
  • 5. No more copy-paste solutions
  • 6. Advantages of small projects Smaller codebase – easier to maintain Change-requests are much more efficient Easy to understand – join and understand new project fast Less bugs – due to lower complexity
  • 7. Microservices!! Build your application as multiple independent projects Use lightweight communication (i.e. REST API) Create its own database for each microservice
  • 8.
  • 9. Microservices in 2017 Automated deploy – programmer does not have to manually compile and upload to server Healthchecks – admin does not have „watch“ and repair failing service Docker – admin/programmer does not have to configure each service Cloud hosting – cheap, almost no maintance
  • 10. Advantages of Microservices Modularity – you can easily deploy one microservice in more applications Development – more developers can work on the same application Small codebase – it has all the advantages of small projects Scalability – different number of instances for each microservice
  • 12.
  • 13. Pitfalls of Microservice Architecture Stateless – never ever do transactions through microservices Data – more databases = count on desynchronized data „Microservices are great, lets split everything into them“ Have active communication between teams
  • 14. exports.createPayment = function(object, cb) { var rand = Math.abs((Math.random() * (9999999999 - 1) + 1) | 0).toString(); // console.log(rand); Payment.findOne({vs: rand}, function(err, obj) { if (obj) { rand = Math.abs((Math.random() * (9999999999 - 1) + 1) | 0).toString(); // console.log(rand); Payment.findOne({vs: rand}, function(err, obj) { if (obj) { rand = Math.abs((Math.random() * (9999999999 - 1) + 1) | 0).toString(); // console.log(rand); Payment.findOne({vs: rand}, function(err, obj) { if (obj) { rand = Math.abs((Math.random() * (9999999999 - 1) + 1) | 0).toString(); // console.log(rand); Payment.findOne({vs: rand}, function(err, obj) { if (obj) { rand = Math.abs((Math.random() * (9999999999 - 1) + 1) | 0).toString(); // console.log(rand); Payment.findOne({vs: rand}, function(err, obj) { if (obj) { cb(1, null); } else { object.vs = rand; var create = new Payment(object); create.save(function(err, payment) { cb(err, payment); }); } });
  • 15. Bad code destroys even great design
  • 16. What you get with CI, Node.js and Microservices Quick development Easy maintance You can fire admin team (finally) No server downtime
  • 17. Special slide for business inteligence sitting here