SlideShare uma empresa Scribd logo
1 de 54
Baixar para ler offline
Drabina Ekspertów
Ścisły przewodnik po aspektach miękkich – część II
Enterprise makeover
Making sense of agile requirements
Przejrzysty i testowalny kod na Androidzie?
REST w praktyce - tej dobrej i tej złej
Skalowanie i integracja systemów w asynchronicznym stylu
Do you think you're doing microservice architecture?
CQRS dla każdego
Kiedy, jak i po co migrować na NoSQL
www.bottega.com.pl facebook.com/BottegaITSolutions
About us
ŁUKASZ SZCZĘSNY
Systems engineer at
Co-organizer of the Warsaw Linux User Group
Fan of automation and DevOps
Twitter: @wybczu
Blog: http://wybcz.pl
Homepage: http://wybcz.pl
About us
MARCIN GRZEJSZCZAK
Software Architect at
Author of "Mockito Instant", "Mockito Cookbook" books
Co-author of the Groovy core’s @Builder AST
Co-founder of the Warsaw Groovy User Group
Co-author of "micro-infra-spring" lib
Twitter: @MGrzejszczak
Blog: http://toomuchcoding.blogspot.com
Homepage: http://marcin.grzejszczak.pl
Agenda
short intro to microservices
how to deploy your first microservice
microservice pitfalls
Agenda
short intro to microservices
how to deploy your first microservice
microservice pitfalls
Conway’s Law
Conway, Melvin E. (April 1968), How do Committees Invent?,
Datamation 14 (5): 28–31, retrieved 2009-04-05
Organizations which design systems ... are constrained
to produce designs which are copies of the
communication structures of these organizations
— M. Conway
A single codebase
Conway’s Law in practice
A single codebase
Conway’s Law in practice
Conway’s Law in practice
Concept:
one team
two countries
one codebase
Conway’s Law in practice
Reality:
two teams
two countries
one codebase
Conway’s Law in practice
Effect:
two different solutions
solving same stuff
one codebase
Conway’s Law - siloed teams
extract from http://martinfowler.com/articles/microservices.html
Conway’s Law - cross functional teams
extract from http://martinfowler.com/articles/microservices.html
Business flow
AccountingBack officeFront office
Common problematic code flow
Dto Service
Impl Entity
Accounting Accounting
Accounting Accounting
Front office Front office
Front office Front office
Back office Back office
Back office Back office
monolith
many programmers
big organization
Common problematic code flow
Looks familiar?
http://www.foodnetwork.com/topics/spaghetti-recipes.html
Code flow
REST REST
Autonomous
Business
oriented
PolyglotLightweight
Front office
bounded context
JARS
Back office
bounded context
JARS
Accounting
bounded context
JARS
Microservices vs ESB
http://www.banzaj.pl/pictures/sport/boks/Haye_Walujew/haye_vs.walujew_2.jpg
Microservices vs ESB
Enterprise Service Bus
intelligent communication layer between services
provides routing, transformations etc
Microservices vs ESB
Microservices approach favors
smart endpoints (services)
dumb pipes (means of communication)
Microservices vs SOA
SOA - Service Oriented Architecture - a very broad topic
Typically understood as
XML and SOAP based with WSDL
ESB based solution
Microservice may be called “more thoroughly described
SOA”
Agenda
short intro to microservices
how to deploy your first microservice
microservice pitfalls
Write code
As a developer
I want my microservice codebase to be small
I want to be fully responsible for supporting that
service
I don’t want people from outside my team to push
changes to my codebase
Write code
introduce code review / working via Pull Requests
dev team responsible for CD pipeline
dev team receives all alerts
Build it
As a developer
I’d like all services to be built alike
it’s easier to comprehend and support
I’d like to have fast feedback if my code works
Build it
Build it
Jenkins as a Code
Jenkins master and slaves deployment
Jenkins’ jobs creation
one CD pipeline template to rule them all
Build it
def project = 'quidryan/aws-sdk-test'
def branchApi = new URL("https://api.github.com/repos/${project}/branches")
def branches = new groovy.json.JsonSlurper().parse(branchApi.newReader())
branches.each {
def branchName = it.name
job {
name "${project}-${branchName}".replaceAll('/','-')
scm {
git("git://github.com/${project}.git", branchName)
}
steps {
maven("test -Dproject.name=${project}/${branchName}")
}
}
}
Test it
As a developer
I don’t want to hardcode service’s IPs and ports
I don’t want to set up whole environment for tests
I’d like to test my application in isolation
I’d like to ensure that others can talk to my service
Service Discovery
Find your collaborator’s address and port with
Zookeeper
Consul
Eureka
Etcd
...
Consumer Driven Contracts
HTTP REQUEST
HTTP RESPONSE
HTTP REQUEST
HTTP RESPONSE
version 1 version 2
Consumer Driven Contracts
REQ
RESP
REQ
RESP
REQ
RESP
REQ
RESP
REQ
RESP
REQ
RESP
REQ
RESP
REQ
RESP
v1 v2 v8
v4 v2 v3
Consumer Driven Contracts
Consumer Driven Contracts
Consumer Driven Contracts
REQ
RESP
REQ
RESP
REQ
RESP
v1 v8
v2 v3
STUB
STUB
Consumer Driven Contracts
REQ
RESP
REQ
RESP
REQ
RESP
v1
STUB
STUB
Consumer Driven Contracts
Consumer Driven Contracts:
test your stub against server
your consumers call your stubs
Deploy it
As a developer
I’d like my feature to be on production ASAP
I’d like to have application properties
in one place
auditable
secure
Deploy it
Deploy it
Environment provisioning
Puppet
Chef
Salt
Ansible
...
Deploy it
Application deployment
Rundeck
Capistrano
Fabric
Ansible
Freight
...
Deploy it
Application configuration
Version it!
Encrypt it!
Spring Cloud Config Server
micro-infra-spring-config
Monitor it
As a developer
I don’t want to grep my logs from different servers
I’d like to have application data in one place
logs
metrics
health status
Monitor it
Logs
Unify logging patterns!
Collect logs in one place
syslog,
ELK stack, graylog2,
Splunk, Loggly
...
CorrelationID
FIRST
SERVICE
REQUEST
No
correlationId
CorrelationId
set to X
CorrelationId
set to X
RESPONSE
SECOND
SERVICE
REQUEST
CorrelationId
set to X
CorrelationId
set to X
RESPONSE
ANOTHER
SERVICE
REQUEST
CorrelationId
set to XCorrelationId
set to X
RESPONSE
CorrelationId
set to X
YET
ANOTHER
SERVICE
REQUEST
CorrelationId
set to XCorrelationId
set to X
RESPONSE
CorrelationID
Monitor it
Metrics
graphite + grafana / tessera
collectd / munin
statsd
Monitor it
Alters
nagios / zabbix
cabot
logstash!
Agenda
short intro to microservices
how to deploy your first microservice
microservice pitfalls
Code reuse
do not abstract everything
sometimes copy paste gives you code decoupling
no - copy paste is not a solution to all problems ;)
do not write nanoservices - who will support it?
Too many technology stacks
pick a right tool for the job but don’t exaggerate
why would you ever want to code in Brainfuck or
Whitespace?
someone will support it afterwards - want to do it? ;)
Management issues
have to invest time and effort to build foundations
have to invest in infrastructure and devops
feature delivery pace will decrease for some time
Questions?
Links
https://github.com/microservice-hackathon
Accurest - Consumer Driven Contracts implementation

Mais conteúdo relacionado

Mais procurados

マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
Toshiaki Maki
 
JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011
Shreedhar Ganapathy
 

Mais procurados (20)

マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
 
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
 
Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019
 
Cloud Foundy Java Client V 2.0 #cf_tokyo
Cloud Foundy Java Client V 2.0 #cf_tokyoCloud Foundy Java Client V 2.0 #cf_tokyo
Cloud Foundy Java Client V 2.0 #cf_tokyo
 
Running Java Applications on Cloud Foundry
Running Java Applications on Cloud FoundryRunning Java Applications on Cloud Foundry
Running Java Applications on Cloud Foundry
 
Reactive frontends with RxJS and Angular
Reactive frontends with RxJS and AngularReactive frontends with RxJS and Angular
Reactive frontends with RxJS and Angular
 
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
 
Choosing a Java Web Framework
Choosing a Java Web FrameworkChoosing a Java Web Framework
Choosing a Java Web Framework
 
What's New in Spring for Apache Kafka 2.0
What's New in Spring for Apache Kafka 2.0What's New in Spring for Apache Kafka 2.0
What's New in Spring for Apache Kafka 2.0
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuse
 
Spring Cloud Netflixを使おう #jsug
Spring Cloud Netflixを使おう #jsugSpring Cloud Netflixを使おう #jsug
Spring Cloud Netflixを使おう #jsug
 
Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010
 
HATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API StyleHATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API Style
 
From Zero to Hero with REST and OAuth2 #jjug
From Zero to Hero with REST and OAuth2 #jjugFrom Zero to Hero with REST and OAuth2 #jjug
From Zero to Hero with REST and OAuth2 #jjug
 
Spark IT 2011 - Developing RESTful Web services with JAX-RS
Spark IT 2011 - Developing RESTful Web services with JAX-RSSpark IT 2011 - Developing RESTful Web services with JAX-RS
Spark IT 2011 - Developing RESTful Web services with JAX-RS
 
JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021
 
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
 
Front End Development for Back End Developers - Devoxx UK 2017
 Front End Development for Back End Developers - Devoxx UK 2017 Front End Development for Back End Developers - Devoxx UK 2017
Front End Development for Back End Developers - Devoxx UK 2017
 
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
 

Destaque

An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to Maven
Vadym Lotar
 
How to Deal with an Overbearing Mother w/o Audio
How to Deal with an Overbearing Mother w/o AudioHow to Deal with an Overbearing Mother w/o Audio
How to Deal with an Overbearing Mother w/o Audio
sheppar1
 
Helsinki book launch jenn lim delivering happiness_45_16.9
Helsinki book launch jenn lim delivering happiness_45_16.9Helsinki book launch jenn lim delivering happiness_45_16.9
Helsinki book launch jenn lim delivering happiness_45_16.9
Delivering Happiness
 

Destaque (20)

JVM Dive for mere mortals
JVM Dive for mere mortalsJVM Dive for mere mortals
JVM Dive for mere mortals
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to Maven
 
Atlassian User Group, AUG Wiesbaden, 25 October 2012
Atlassian User Group, AUG Wiesbaden, 25 October 2012Atlassian User Group, AUG Wiesbaden, 25 October 2012
Atlassian User Group, AUG Wiesbaden, 25 October 2012
 
Локальная_система_позиционирования
Локальная_система_позиционированияЛокальная_система_позиционирования
Локальная_система_позиционирования
 
LinkedIn for education: An Implementation Aid
LinkedIn for education: An Implementation AidLinkedIn for education: An Implementation Aid
LinkedIn for education: An Implementation Aid
 
How to Deal with an Overbearing Mother w/o Audio
How to Deal with an Overbearing Mother w/o AudioHow to Deal with an Overbearing Mother w/o Audio
How to Deal with an Overbearing Mother w/o Audio
 
Network Security Expert and Risk Analyst
Network Security Expert and Risk AnalystNetwork Security Expert and Risk Analyst
Network Security Expert and Risk Analyst
 
MEC / CES - January 6, 2015
MEC / CES - January 6, 2015MEC / CES - January 6, 2015
MEC / CES - January 6, 2015
 
Evaluation question 1res
Evaluation question 1resEvaluation question 1res
Evaluation question 1res
 
BGP Loop Prevention
BGP Loop Prevention BGP Loop Prevention
BGP Loop Prevention
 
Test driven infrastructure development
Test driven infrastructure developmentTest driven infrastructure development
Test driven infrastructure development
 
MySQL
MySQLMySQL
MySQL
 
Big ideas 2015
Big ideas 2015Big ideas 2015
Big ideas 2015
 
iDRUG - intelligent drug discovery
iDRUG - intelligent drug discoveryiDRUG - intelligent drug discovery
iDRUG - intelligent drug discovery
 
Helsinki book launch jenn lim delivering happiness_45_16.9
Helsinki book launch jenn lim delivering happiness_45_16.9Helsinki book launch jenn lim delivering happiness_45_16.9
Helsinki book launch jenn lim delivering happiness_45_16.9
 
6th lesson
6th lesson6th lesson
6th lesson
 
Resume milind patil
Resume milind patilResume milind patil
Resume milind patil
 
Secrets of e marketing success 2016 presentation
Secrets of e marketing success 2016 presentationSecrets of e marketing success 2016 presentation
Secrets of e marketing success 2016 presentation
 
Acs towards a gold standard database
Acs   towards a gold standard  database Acs   towards a gold standard  database
Acs towards a gold standard database
 

Semelhante a 4Developers 2015: Do you think you're doing microservice architecture? - Marcin Grzejszczak, Łukasz Szczęsny

Semelhante a 4Developers 2015: Do you think you're doing microservice architecture? - Marcin Grzejszczak, Łukasz Szczęsny (20)

Atmosphere Conference 2015: Do you think you're doing microservices?
Atmosphere Conference 2015: Do you think you're doing microservices?Atmosphere Conference 2015: Do you think you're doing microservices?
Atmosphere Conference 2015: Do you think you're doing microservices?
 
今Serverlessが面白いわけ
今Serverlessが面白いわけ今Serverlessが面白いわけ
今Serverlessが面白いわけ
 
Full lifecycle of a microservice
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microservice
 
Container Days: Architecting Modern Apps on AWS
Container Days: Architecting Modern Apps on AWSContainer Days: Architecting Modern Apps on AWS
Container Days: Architecting Modern Apps on AWS
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 
Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?
 
Wso2 tutorial
Wso2 tutorialWso2 tutorial
Wso2 tutorial
 
Overview of azure microservices and the impact on integration
Overview of azure microservices and the impact on integrationOverview of azure microservices and the impact on integration
Overview of azure microservices and the impact on integration
 
Microservices with Kafka Ecosystem
Microservices with Kafka EcosystemMicroservices with Kafka Ecosystem
Microservices with Kafka Ecosystem
 
Introduction Into Docker Ecosystem
Introduction Into Docker EcosystemIntroduction Into Docker Ecosystem
Introduction Into Docker Ecosystem
 
Micro services may not be the best idea
Micro services may not be the best ideaMicro services may not be the best idea
Micro services may not be the best idea
 
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFMigrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
 
Azure Day Rome 2019 Reloaded - Strangle(r pattern) your legacy application ru...
Azure Day Rome 2019 Reloaded - Strangle(r pattern) your legacy application ru...Azure Day Rome 2019 Reloaded - Strangle(r pattern) your legacy application ru...
Azure Day Rome 2019 Reloaded - Strangle(r pattern) your legacy application ru...
 
Akka.Net & .Net Core - .Net Inside 4° MeetUp
Akka.Net & .Net Core - .Net Inside 4° MeetUpAkka.Net & .Net Core - .Net Inside 4° MeetUp
Akka.Net & .Net Core - .Net Inside 4° MeetUp
 
agile microservices @scaibo
agile microservices @scaiboagile microservices @scaibo
agile microservices @scaibo
 
The Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.jsThe Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.js
 
Introducing MartianBank - a microservice demo application for cloud-native pr...
Introducing MartianBank - a microservice demo application for cloud-native pr...Introducing MartianBank - a microservice demo application for cloud-native pr...
Introducing MartianBank - a microservice demo application for cloud-native pr...
 

Último

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Último (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 

4Developers 2015: Do you think you're doing microservice architecture? - Marcin Grzejszczak, Łukasz Szczęsny