SlideShare a Scribd company logo
1 of 52
Download to read offline
practical microservices
Powering modern applications
Your favorite code
Container optimized infrastructure
Your favorite tools
Our data center or yours
Joyent Public Cloud
Joyent provides Container
Infrastructure as a Service.

We run our customer’s mission critical
applications across thousands of
containers in the Joyent Public Cloud.
Joyent SmartDataCenter
Joyent SmartDataCenter is an open source
on-premise container run-time
environment used by some of the world’s
most recognizable companies to run their
mission critical applications.
Node.js enterprise support
As the corporate steward of Node.js and
one of the largest-scale production
users, Joyent is uniquely equipped to
deliver the highest level of enterprise
support for this dynamic runtime.
Best
Practices
Performance

Analysis
Core File

Analysis
Debugging 

Support
Critical 

Incident

Support
⚠
Practical
microservices
Merging trends
12 factor app
Two pizza rule
Begrudging acceptance
of some SOA patterns
Lightweight, OS-based
virtualization
Infrastructure as code
Infrastructure Applications
Microservices: confusing?
from Jeppe Cramon
Microservices: a dirty word?
from @alvaro_sanchez
Joyent’s
embrace
of microservices
Our data center or yours
Joyent Public Cloud
Joyent provides Container
Infrastructure as a Service.

We run our customer’s mission critical
applications across thousands of
containers in the Joyent Public Cloud.
Joyent SmartDataCenter
Joyent SmartDataCenter is an open source
on-premise container run-time
environment used by some of the world’s
most recognizable companies to run their
mission critical applications.
SmartDataCenter 0
Human-driven spreadsheets
and Perl scripts
SmartDataCenter 0
Human-driven spreadsheets
and Perl scripts
• Message broker
• Scheduler
• State
• Distributed,

single purpose services

(Perl scripts)
SmartDataCenter 6.5
• Two monolithic Ruby pieces:
• Machine API
• Customer API
• Some edge pieces in Node.js
SmartDataCenter 7
Booter
AMQP
broker
Public
API
Customer
portal
ZFS-based multi-tenant filesystem
VirtualNIC
VirtualNIC
Virtual
SmartOS
(OS virt.)
...
VirtualNIC
VirtualNIC
Linux
Guest
(HW virt.)
...
VirtualNIC
VirtualNIC
Windows
Guest
(HW virt.)
...
VirtualNIC
VirtualNIC
Virtual OS
or Machine
...
SmartOS kernel
(network booted)
SmartOS kernel
(flash booted)
Provisioner
Instrumenter
Heartbeater
DHCP/TFTP
AMQP
AMQP agents
Public HTTP
Head-node
Compute node
Tens/hundreds per
head-node
. . .
SDC 7 core services
BinderDNS
Operator
portal
. . .
Firewall
SmartDataCenter 7 core services
Analytics
aggregator
Key/Value
Service
(Moray)
Firewall
API
(FWAPI)
Virtual
Machine
API
(VMAPI)
Directory
Service
(UFDS)
Designation
API
(DAPI)
Workflow
API
Network
API
(NAPI)
Compute-
Node API
(CNAPI)
Image
API
Alerts &
Monitoring
(Amon)
Packaging
API
(PAPI)
Service
API
(SAPI)
DHCP/
TFTP
AMQP
DNS
Booter
AMQP
broker
Binder
Public
API
Customer
portal
Public HTTP
Operator
portal
Operator
Services Manta
Other DCs
Note: Service
interdependencies not
shown for readability
Head-node
Other core services
may be provisioned on
compute nodes
SDC7 Core Services
25
containers
By the numbers
The SmartDataCenter application uses 25 containers for its
services. That’s without HA enabled!
Memory Count
128MB 2
256MB 2
512MB 1
768MB 2
1024MB 10
2048MB 3
4096MB 2
8192MB 3
Microservices frustrations
1. Messaging
2. Interfacing
3. State
4. Discovery
5. Debugging
Discovery
Moving from monolithic to microservices architecture means
moving from tightly coupled to loosely federated system
necessitates service discovery
We built Binder, a node.js-based DNS + ZooKepper system. It
works, but this is a complicated space.
Thorny issues without clear solutions:
• Upgrades
• Rollbacks
• Maintenance windows
State
Stateless microservices are easy, but stateful services require
more thought. Decentralization of services is good, but
decentralized state is insane.
Answer: statefulness is itself a service made up of a set of
microservices:
• Moray: key value store
• JSON over TCP messaging using node-fast
• Manatee: automated fault monitoring for PostgreSQL
• Automatically spins up new Postgres instances as needed
to maintain DB quorum
• PostgreSQL: reliable, performant
Messaging
• The principles of AMQP are very attractive…
• …but in practice, implementation and operational issues have
made message brokers a single point of failure
• Still using AMQP for some broadcast messages
• Now mostly using point-to-point HTTP for performance and
reliability
Interfacing
• More interfaces = more problems interfacing
• JSON’s loose structure multiplies the risk of interfacing
problems
• We use JSON Schema to add rigor without sacrificing
agility
• Interface versioning is required for sanity
• We use Restify for HTTP routing with built-in versioning
Debugging
Systems break, distributed systems have more breakable
surface area. Our diagnostic tools are as critical as any other in
the box:
• DTrace profiling of node.js
• Bunyan node.js logging facility with DTrace support
• JS heap analysis from core files
• “core files are the ultimate REPL”
Also see @dapsays’ Node 0.12 debugging improvements and
Node Summit slides.
Microservices Cloud Club 2015-02-26
SmartDataCenter is open
On Github: https://github.com/joyent/sdc
Test it in VMware on your laptop or install on dedicated
hardware. Try the Docker support preview!
Connect:
• Mail list: sdc-discuss@lists.smartdatacenter.org
• IRC: #smartos on Freenode
SDC is easy to install
Deploy SmartDataCenter in hours, not days (or minutes, not
months) and get to work building value faster
infrastructure for microservices
Infrastructurefor microservices?
Virtualizationvs. microservices?
Microservices memory utilization
CC BY ZeptoBars
Microservices memory utilization
1 GB 1 GB 1 GB 1 GB 1 GB 1 GB 1 GB 1 GB
Microservices memory utilization
GuestOS
GuestOS
GuestOS
GuestOS
GuestOS
GuestOS
GuestOS
GuestOS
Service1
Service2
Service3
Service4
Service5
Service6
Service7
Service8
Hardware virtualization limits memory utilization and is
inefficient for microservices architectures
75%
efficiency
for 1GB services
Butmost microservices
are smaller than
1GB
50%
efficiency
for 512MB services
Impractical
for 256MB services
Impractical
for 256MB services
Impossible
Microservices memory utilization
Service1
Service2
Service3
Service4
Service5
Service6
Service7
Service8
Service9
Service10
Service11
Service12
Service13
Service14
Service15
Service16
OS-based virtualization optimizes memory utilization
for microservices
CPU scheduling
This is not about core/thread assignment vs. time slicing
CPU scheduling
It’s about competing guest OS kernels and stolen CPU ticks
CPU scheduling
1. Under hardware virtualization, the guest OS is a
hard realtime app
2. Hard realtime apps freak out when they don’t get
their expected CPU cycles
3. Oversubscribed CPU + hardware virtualization is a
recipe for disaster
I/O latency
Virtualized I/O and conflicts among competing schedulers
increase I/O latency, sapping performance
20xmore containers
Up to
than HVMs
20x more containers!
256GB DRAM / 24 core / 48 thread
960 256MB containers
The Joyent difference
• Bare metal container performance
Eliminate the hardware hypervisor tax
• Proven container security
Run containers securely on bare metal in multi-tenant environments
• Simplified container networking
Each container has its own IP(s) in a user-defined network (SDN)
• Simplified host management
One API endpoint (including Docker API) fronts the whole data center
Security: solved
General Challenge
Buggy or malicious code can escape Linux containers, execute
unexpected processes, and read or write files in harmful ways.

Joyent Solution
Joyent’s container runtime was built for security isolation first, and we have
nearly ten years of experience without incident. We are now extending this
container runtime to work with native Linux binaries and Docker.
Joyent Value
Multi-tenant deployments enable cloud-scale economics and density.
Networking: solved
General Challenge:
Connecting containers between hosts, or with sophisticated network
topologies, is difficult and performs poorly.

Joyent Solution:
Joyent’s software defined networking solution brings full network
connectivity to each container (including a unique IP and wire-speed access)
and VxLANs across containers.

Joyent Value:
Lower costs of administration with simplified network management and
by leveraging leveraging commodity hardware for networking.
Containers…

you mean Docker?
Preview access to our next generation Docker
container service is launching “soon.”
Joyent’s infrastructure containers form the basis
of our Docker service.
Are containers 

limited to Microservices?
Containerization does not dictate application architecture.
Joyent’s container technology scales from single-process
Docker containers to infrastructure containers supporting the
full suite of services expected from a unix host.
Infrastructure containers can be used as a persistent,
durable, and faster alternative to VMs.
…And, we can run KVM inside infrastructure containers to
support full hardware virtualized environments necessary to
host Windows and other OSs.
Thank you!
Tweet questions to

@misterbisson
Remember Joyent for
• Container tech that scales from fat apps that expect a full
host down to tiny single-process microservices
Better efficiency performance advantages for all application
• Bare metal performance
Eliminate the hardware hypervisor tax
• Proven container security
Run containers securely on bare metal in multi-tenant environments
• Simplified container networking
Each container has its own IP(s) in a user-defined network (SDN)
• Simplified host management
One API endpoint (including Docker API) fronts the whole data center

More Related Content

What's hot

Microcontainers, Microservices, Microservers? Less [Linux] is more!
Microcontainers, Microservices, Microservers? Less [Linux] is more!Microcontainers, Microservices, Microservers? Less [Linux] is more!
Microcontainers, Microservices, Microservers? Less [Linux] is more!Dermot Bradley
 
Building microservices with docker
Building microservices with dockerBuilding microservices with docker
Building microservices with dockerRoman Melnyk
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deploymentjavaonfly
 
Docker and kernel security
Docker and kernel securityDocker and kernel security
Docker and kernel securitysmart_bit
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapPatrick Chanezon
 
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...Cynthia Thomas
 
DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...
DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...
DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...Guillaume Morini
 
Docker and containerization
Docker and containerizationDocker and containerization
Docker and containerizationAmulya Saxena
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service ArchitectureLinjith Kunnon
 
Dockercon EU 2015 Recap
Dockercon EU 2015 RecapDockercon EU 2015 Recap
Dockercon EU 2015 RecapLee Calcote
 
Meetup Docker : From Zero to Hero
Meetup Docker : From Zero to HeroMeetup Docker : From Zero to Hero
Meetup Docker : From Zero to HeroLaurent Grangeau
 
Container Security
Container SecurityContainer Security
Container SecuritySalman Baset
 
Cloudstack at Spotify
Cloudstack at SpotifyCloudstack at Spotify
Cloudstack at SpotifyNoa Resare
 
Linux VDI with OpenStack – How to Deliver Linux Virtual Desktops on Demand
Linux VDI with OpenStack – How to Deliver Linux Virtual Desktops on DemandLinux VDI with OpenStack – How to Deliver Linux Virtual Desktops on Demand
Linux VDI with OpenStack – How to Deliver Linux Virtual Desktops on DemandLeostream
 
Ten layers of container security for CloudCamp Nov 2017
Ten layers of container security  for CloudCamp Nov 2017Ten layers of container security  for CloudCamp Nov 2017
Ten layers of container security for CloudCamp Nov 2017Gordon Haff
 

What's hot (20)

Microcontainers, Microservices, Microservers? Less [Linux] is more!
Microcontainers, Microservices, Microservers? Less [Linux] is more!Microcontainers, Microservices, Microservers? Less [Linux] is more!
Microcontainers, Microservices, Microservers? Less [Linux] is more!
 
Building microservices with docker
Building microservices with dockerBuilding microservices with docker
Building microservices with docker
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
 
Docker and kernel security
Docker and kernel securityDocker and kernel security
Docker and kernel security
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
 
DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...
DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...
DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...
 
Docker and containerization
Docker and containerizationDocker and containerization
Docker and containerization
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
 
Webinar : Microservices and Containerization
Webinar : Microservices and ContainerizationWebinar : Microservices and Containerization
Webinar : Microservices and Containerization
 
Container Security
Container SecurityContainer Security
Container Security
 
Csa container-security-in-aws-dw
Csa container-security-in-aws-dwCsa container-security-in-aws-dw
Csa container-security-in-aws-dw
 
Dockercon EU 2015 Recap
Dockercon EU 2015 RecapDockercon EU 2015 Recap
Dockercon EU 2015 Recap
 
Meetup Docker : From Zero to Hero
Meetup Docker : From Zero to HeroMeetup Docker : From Zero to Hero
Meetup Docker : From Zero to Hero
 
Container Security
Container SecurityContainer Security
Container Security
 
Cloudstack at Spotify
Cloudstack at SpotifyCloudstack at Spotify
Cloudstack at Spotify
 
Linux VDI with OpenStack – How to Deliver Linux Virtual Desktops on Demand
Linux VDI with OpenStack – How to Deliver Linux Virtual Desktops on DemandLinux VDI with OpenStack – How to Deliver Linux Virtual Desktops on Demand
Linux VDI with OpenStack – How to Deliver Linux Virtual Desktops on Demand
 
Ten layers of container security for CloudCamp Nov 2017
Ten layers of container security  for CloudCamp Nov 2017Ten layers of container security  for CloudCamp Nov 2017
Ten layers of container security for CloudCamp Nov 2017
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Containers & Kubernetes
Containers & KubernetesContainers & Kubernetes
Containers & Kubernetes
 

Viewers also liked

WordCamp NYC Scriblio 2009-11-13
WordCamp NYC Scriblio 2009-11-13WordCamp NYC Scriblio 2009-11-13
WordCamp NYC Scriblio 2009-11-13Casey Bisson
 
code4lib 2006-02-17
code4lib 2006-02-17code4lib 2006-02-17
code4lib 2006-02-17Casey Bisson
 
WordCamp NYC Authentication 2009-11-13
WordCamp NYC Authentication 2009-11-13WordCamp NYC Authentication 2009-11-13
WordCamp NYC Authentication 2009-11-13Casey Bisson
 
The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)Casey Bisson
 
186 Ellesmere
186 Ellesmere186 Ellesmere
186 Ellesmereleeekim
 
Tofino - Social Media Workshop - August 12
Tofino - Social Media Workshop - August 12Tofino - Social Media Workshop - August 12
Tofino - Social Media Workshop - August 12BWEST Interactive
 
Edtc6340 Shiggs Project2 Partb
Edtc6340 Shiggs Project2 PartbEdtc6340 Shiggs Project2 Partb
Edtc6340 Shiggs Project2 Partbsciencechair
 
Shekel July 2009
Shekel July 2009Shekel July 2009
Shekel July 2009tamardrach
 
Stress Release
Stress ReleaseStress Release
Stress ReleaseHao_ha
 
Presentación Loni Stark, Director of Product & Industry Marketing, Adobe
Presentación Loni Stark, Director of Product & Industry Marketing, AdobePresentación Loni Stark, Director of Product & Industry Marketing, Adobe
Presentación Loni Stark, Director of Product & Industry Marketing, AdobeIAB México
 
The American Revolution
The American RevolutionThe American Revolution
The American Revolutionprestonade
 
Social Media For Emergency Response Communications
Social Media For Emergency Response CommunicationsSocial Media For Emergency Response Communications
Social Media For Emergency Response CommunicationsBWEST Interactive
 
Innervate Event June 2009
Innervate Event June 2009Innervate Event June 2009
Innervate Event June 2009guestca81b41
 
Century Council Plans Book 2008/2009 - U of M
Century Council Plans Book 2008/2009 - U of MCentury Council Plans Book 2008/2009 - U of M
Century Council Plans Book 2008/2009 - U of MLaurenCSudbrink
 

Viewers also liked (19)

WordCamp NYC Scriblio 2009-11-13
WordCamp NYC Scriblio 2009-11-13WordCamp NYC Scriblio 2009-11-13
WordCamp NYC Scriblio 2009-11-13
 
code4lib 2006-02-17
code4lib 2006-02-17code4lib 2006-02-17
code4lib 2006-02-17
 
WordCamp NYC Authentication 2009-11-13
WordCamp NYC Authentication 2009-11-13WordCamp NYC Authentication 2009-11-13
WordCamp NYC Authentication 2009-11-13
 
The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)
 
186 Ellesmere
186 Ellesmere186 Ellesmere
186 Ellesmere
 
Tofino - Social Media Workshop - August 12
Tofino - Social Media Workshop - August 12Tofino - Social Media Workshop - August 12
Tofino - Social Media Workshop - August 12
 
Ur-Energy April 2012 Corporate Presentation
Ur-Energy April 2012 Corporate PresentationUr-Energy April 2012 Corporate Presentation
Ur-Energy April 2012 Corporate Presentation
 
F I L E
F I L EF I L E
F I L E
 
Edtc6340 Shiggs Project2 Partb
Edtc6340 Shiggs Project2 PartbEdtc6340 Shiggs Project2 Partb
Edtc6340 Shiggs Project2 Partb
 
Shekel July 2009
Shekel July 2009Shekel July 2009
Shekel July 2009
 
Relationship philosophy presentation
Relationship philosophy presentationRelationship philosophy presentation
Relationship philosophy presentation
 
Writing In Science
Writing In ScienceWriting In Science
Writing In Science
 
Stress Release
Stress ReleaseStress Release
Stress Release
 
2007 Electrical Regions
2007 Electrical Regions2007 Electrical Regions
2007 Electrical Regions
 
Presentación Loni Stark, Director of Product & Industry Marketing, Adobe
Presentación Loni Stark, Director of Product & Industry Marketing, AdobePresentación Loni Stark, Director of Product & Industry Marketing, Adobe
Presentación Loni Stark, Director of Product & Industry Marketing, Adobe
 
The American Revolution
The American RevolutionThe American Revolution
The American Revolution
 
Social Media For Emergency Response Communications
Social Media For Emergency Response CommunicationsSocial Media For Emergency Response Communications
Social Media For Emergency Response Communications
 
Innervate Event June 2009
Innervate Event June 2009Innervate Event June 2009
Innervate Event June 2009
 
Century Council Plans Book 2008/2009 - U of M
Century Council Plans Book 2008/2009 - U of MCentury Council Plans Book 2008/2009 - U of M
Century Council Plans Book 2008/2009 - U of M
 

Similar to Microservices Cloud Club 2015-02-26

The Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkThe Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkMassimo Bonanni
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices ArchitectureVin Dahake
 
Executive Briefing: The Why, What, and Where of Containers
Executive Briefing: The Why, What, and Where of ContainersExecutive Briefing: The Why, What, and Where of Containers
Executive Briefing: The Why, What, and Where of ContainersNVISIA
 
TransitioningToMicroServonDocker_MS
TransitioningToMicroServonDocker_MSTransitioningToMicroServonDocker_MS
TransitioningToMicroServonDocker_MSLana Kalashnyk
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesRick Hightower
 
Docker - HieuHoang
Docker - HieuHoangDocker - HieuHoang
Docker - HieuHoangHieu Hoang
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivRon Perlmuter
 
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateAccelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateMichael Elder
 
Java Microservices HJUG
Java Microservices HJUGJava Microservices HJUG
Java Microservices HJUGLana Kalashnyk
 
Clearing the air on Cloud Computing
Clearing the air on Cloud ComputingClearing the air on Cloud Computing
Clearing the air on Cloud ComputingKarthik Sankar
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterAlexander Arda
 
Meteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container EngineMeteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container EngineKit Merker
 
Dcs cloud architecture-high-level-design
Dcs cloud architecture-high-level-designDcs cloud architecture-high-level-design
Dcs cloud architecture-high-level-designIsaac Chiang
 
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and ContainersYour Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and ContainersAtlassian
 
MidoNet Differentiation and Overview
MidoNet Differentiation and OverviewMidoNet Differentiation and Overview
MidoNet Differentiation and OverviewMidokura
 
Integration in the Cloud
Integration in the CloudIntegration in the Cloud
Integration in the CloudRob Davies
 
08 sdn system intelligence short public beijing sdn conference - 130828
08 sdn system intelligence   short public beijing sdn conference - 13082808 sdn system intelligence   short public beijing sdn conference - 130828
08 sdn system intelligence short public beijing sdn conference - 130828Mason Mei
 
DockerCon - The missing piece : when Docker networking unleashes software arc...
DockerCon - The missing piece : when Docker networking unleashes software arc...DockerCon - The missing piece : when Docker networking unleashes software arc...
DockerCon - The missing piece : when Docker networking unleashes software arc...Laurent Grangeau
 

Similar to Microservices Cloud Club 2015-02-26 (20)

The Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkThe Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET framework
 
Cont0519
Cont0519Cont0519
Cont0519
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices Architecture
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
Executive Briefing: The Why, What, and Where of Containers
Executive Briefing: The Why, What, and Where of ContainersExecutive Briefing: The Why, What, and Where of Containers
Executive Briefing: The Why, What, and Where of Containers
 
TransitioningToMicroServonDocker_MS
TransitioningToMicroServonDocker_MSTransitioningToMicroServonDocker_MS
TransitioningToMicroServonDocker_MS
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and Kubernetes
 
Docker - HieuHoang
Docker - HieuHoangDocker - HieuHoang
Docker - HieuHoang
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel Aviv
 
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateAccelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud Private
 
Java Microservices HJUG
Java Microservices HJUGJava Microservices HJUG
Java Microservices HJUG
 
Clearing the air on Cloud Computing
Clearing the air on Cloud ComputingClearing the air on Cloud Computing
Clearing the air on Cloud Computing
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They Matter
 
Meteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container EngineMeteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container Engine
 
Dcs cloud architecture-high-level-design
Dcs cloud architecture-high-level-designDcs cloud architecture-high-level-design
Dcs cloud architecture-high-level-design
 
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and ContainersYour Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
 
MidoNet Differentiation and Overview
MidoNet Differentiation and OverviewMidoNet Differentiation and Overview
MidoNet Differentiation and Overview
 
Integration in the Cloud
Integration in the CloudIntegration in the Cloud
Integration in the Cloud
 
08 sdn system intelligence short public beijing sdn conference - 130828
08 sdn system intelligence   short public beijing sdn conference - 13082808 sdn system intelligence   short public beijing sdn conference - 130828
08 sdn system intelligence short public beijing sdn conference - 130828
 
DockerCon - The missing piece : when Docker networking unleashes software arc...
DockerCon - The missing piece : when Docker networking unleashes software arc...DockerCon - The missing piece : when Docker networking unleashes software arc...
DockerCon - The missing piece : when Docker networking unleashes software arc...
 

Recently uploaded

AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 

Recently uploaded (20)

AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 

Microservices Cloud Club 2015-02-26

  • 2. Powering modern applications Your favorite code Container optimized infrastructure Your favorite tools
  • 3. Our data center or yours Joyent Public Cloud Joyent provides Container Infrastructure as a Service.
 We run our customer’s mission critical applications across thousands of containers in the Joyent Public Cloud. Joyent SmartDataCenter Joyent SmartDataCenter is an open source on-premise container run-time environment used by some of the world’s most recognizable companies to run their mission critical applications.
  • 4. Node.js enterprise support As the corporate steward of Node.js and one of the largest-scale production users, Joyent is uniquely equipped to deliver the highest level of enterprise support for this dynamic runtime. Best Practices Performance
 Analysis Core File
 Analysis Debugging 
 Support Critical 
 Incident
 Support ⚠
  • 6. Merging trends 12 factor app Two pizza rule Begrudging acceptance of some SOA patterns Lightweight, OS-based virtualization Infrastructure as code Infrastructure Applications
  • 8. Microservices: a dirty word? from @alvaro_sanchez
  • 10. Our data center or yours Joyent Public Cloud Joyent provides Container Infrastructure as a Service.
 We run our customer’s mission critical applications across thousands of containers in the Joyent Public Cloud. Joyent SmartDataCenter Joyent SmartDataCenter is an open source on-premise container run-time environment used by some of the world’s most recognizable companies to run their mission critical applications.
  • 12. SmartDataCenter 0 Human-driven spreadsheets and Perl scripts • Message broker • Scheduler • State • Distributed,
 single purpose services
 (Perl scripts)
  • 13. SmartDataCenter 6.5 • Two monolithic Ruby pieces: • Machine API • Customer API • Some edge pieces in Node.js
  • 14. SmartDataCenter 7 Booter AMQP broker Public API Customer portal ZFS-based multi-tenant filesystem VirtualNIC VirtualNIC Virtual SmartOS (OS virt.) ... VirtualNIC VirtualNIC Linux Guest (HW virt.) ... VirtualNIC VirtualNIC Windows Guest (HW virt.) ... VirtualNIC VirtualNIC Virtual OS or Machine ... SmartOS kernel (network booted) SmartOS kernel (flash booted) Provisioner Instrumenter Heartbeater DHCP/TFTP AMQP AMQP agents Public HTTP Head-node Compute node Tens/hundreds per head-node . . . SDC 7 core services BinderDNS Operator portal . . . Firewall
  • 15. SmartDataCenter 7 core services Analytics aggregator Key/Value Service (Moray) Firewall API (FWAPI) Virtual Machine API (VMAPI) Directory Service (UFDS) Designation API (DAPI) Workflow API Network API (NAPI) Compute- Node API (CNAPI) Image API Alerts & Monitoring (Amon) Packaging API (PAPI) Service API (SAPI) DHCP/ TFTP AMQP DNS Booter AMQP broker Binder Public API Customer portal Public HTTP Operator portal Operator Services Manta Other DCs Note: Service interdependencies not shown for readability Head-node Other core services may be provisioned on compute nodes SDC7 Core Services
  • 17. By the numbers The SmartDataCenter application uses 25 containers for its services. That’s without HA enabled! Memory Count 128MB 2 256MB 2 512MB 1 768MB 2 1024MB 10 2048MB 3 4096MB 2 8192MB 3
  • 18. Microservices frustrations 1. Messaging 2. Interfacing 3. State 4. Discovery 5. Debugging
  • 19. Discovery Moving from monolithic to microservices architecture means moving from tightly coupled to loosely federated system necessitates service discovery We built Binder, a node.js-based DNS + ZooKepper system. It works, but this is a complicated space. Thorny issues without clear solutions: • Upgrades • Rollbacks • Maintenance windows
  • 20. State Stateless microservices are easy, but stateful services require more thought. Decentralization of services is good, but decentralized state is insane. Answer: statefulness is itself a service made up of a set of microservices: • Moray: key value store • JSON over TCP messaging using node-fast • Manatee: automated fault monitoring for PostgreSQL • Automatically spins up new Postgres instances as needed to maintain DB quorum • PostgreSQL: reliable, performant
  • 21. Messaging • The principles of AMQP are very attractive… • …but in practice, implementation and operational issues have made message brokers a single point of failure • Still using AMQP for some broadcast messages • Now mostly using point-to-point HTTP for performance and reliability
  • 22. Interfacing • More interfaces = more problems interfacing • JSON’s loose structure multiplies the risk of interfacing problems • We use JSON Schema to add rigor without sacrificing agility • Interface versioning is required for sanity • We use Restify for HTTP routing with built-in versioning
  • 23. Debugging Systems break, distributed systems have more breakable surface area. Our diagnostic tools are as critical as any other in the box: • DTrace profiling of node.js • Bunyan node.js logging facility with DTrace support • JS heap analysis from core files • “core files are the ultimate REPL” Also see @dapsays’ Node 0.12 debugging improvements and Node Summit slides.
  • 25. SmartDataCenter is open On Github: https://github.com/joyent/sdc Test it in VMware on your laptop or install on dedicated hardware. Try the Docker support preview! Connect: • Mail list: sdc-discuss@lists.smartdatacenter.org • IRC: #smartos on Freenode
  • 26. SDC is easy to install Deploy SmartDataCenter in hours, not days (or minutes, not months) and get to work building value faster
  • 31. Microservices memory utilization 1 GB 1 GB 1 GB 1 GB 1 GB 1 GB 1 GB 1 GB
  • 39. CPU scheduling This is not about core/thread assignment vs. time slicing
  • 40. CPU scheduling It’s about competing guest OS kernels and stolen CPU ticks
  • 41. CPU scheduling 1. Under hardware virtualization, the guest OS is a hard realtime app 2. Hard realtime apps freak out when they don’t get their expected CPU cycles 3. Oversubscribed CPU + hardware virtualization is a recipe for disaster
  • 42. I/O latency Virtualized I/O and conflicts among competing schedulers increase I/O latency, sapping performance
  • 44. 20x more containers! 256GB DRAM / 24 core / 48 thread 960 256MB containers
  • 45. The Joyent difference • Bare metal container performance Eliminate the hardware hypervisor tax • Proven container security Run containers securely on bare metal in multi-tenant environments • Simplified container networking Each container has its own IP(s) in a user-defined network (SDN) • Simplified host management One API endpoint (including Docker API) fronts the whole data center
  • 46. Security: solved General Challenge Buggy or malicious code can escape Linux containers, execute unexpected processes, and read or write files in harmful ways. Joyent Solution Joyent’s container runtime was built for security isolation first, and we have nearly ten years of experience without incident. We are now extending this container runtime to work with native Linux binaries and Docker. Joyent Value Multi-tenant deployments enable cloud-scale economics and density.
  • 47. Networking: solved General Challenge: Connecting containers between hosts, or with sophisticated network topologies, is difficult and performs poorly. Joyent Solution: Joyent’s software defined networking solution brings full network connectivity to each container (including a unique IP and wire-speed access) and VxLANs across containers. Joyent Value: Lower costs of administration with simplified network management and by leveraging leveraging commodity hardware for networking.
  • 48. Containers…
 you mean Docker? Preview access to our next generation Docker container service is launching “soon.” Joyent’s infrastructure containers form the basis of our Docker service.
  • 49. Are containers 
 limited to Microservices? Containerization does not dictate application architecture. Joyent’s container technology scales from single-process Docker containers to infrastructure containers supporting the full suite of services expected from a unix host. Infrastructure containers can be used as a persistent, durable, and faster alternative to VMs. …And, we can run KVM inside infrastructure containers to support full hardware virtualized environments necessary to host Windows and other OSs.
  • 52. Remember Joyent for • Container tech that scales from fat apps that expect a full host down to tiny single-process microservices Better efficiency performance advantages for all application • Bare metal performance Eliminate the hardware hypervisor tax • Proven container security Run containers securely on bare metal in multi-tenant environments • Simplified container networking Each container has its own IP(s) in a user-defined network (SDN) • Simplified host management One API endpoint (including Docker API) fronts the whole data center