SlideShare a Scribd company logo
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

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

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

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 

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