Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Building a Microservices
Platform with Kubernetes
Matthew Mark Miller
@DataMiller
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese an...
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practi...
Cloud Native:
Microservices running inside
Containers on top of
Platforms on any infrastructure
Microservice
A software component of a system that is independently
releasable and independently scalable from other parts...
Container
A software process whose access has been reduced to the
point that it thinks it is the only thing running.
Platform
The parts of your service that you don't build yourself.
But wait...aren’t we supposed to be Full
Stack?!
A platform’s responsibility is to make
implicit the link between a service and
the resource it consumes.
Clouds operate because of workload orchestration
Don’t roll your own orchestration.
Integrating workloads requires tinkering at runtime
Token swapping
Modifications to the host container’s configuration
Swa...
Integrating this way isn’t easy
Takes time & testing to get it right
What you built and tested isn’t necessarily what
runs...
A big question for platform
engineers:
How can we spend more time building useful
services and less time maintaining the p...
Kubernetes
Borg meets Docker; Resistance is futile
(Obligatory architecture slide)
Kubernetes is popular, open and growing
To those of us building platforms, Kubernetes offers
Reliable cluster & workload management
A stack agnostic hosting abstr...
Kubernetes Fundamentals
Controllers
Loops that maintain state
Run continuously on Master
Each Kubernetes object gets
its own Controller
Controller...
The Pod
Many containers, working together as a single unit
Shared IP & localhost
Shared filesystem
Scale together
Separate...
Services
Permanent, logical addresses for internal services
Expose a name, port and stable IP for a
group of pods
Load bal...
Networking
Rules for all Kubernetes installations
Each Pod gets its own unique IP
address (which is the same outside and
i...
Ingress
Simplifies Layer 7 access to Kubernetes services
Works with load balancers, including
cloud load balancers & nginx...
Using the fundamentals to
build a platform
Pod patterns from Burns & Oppenheimer, USENIX 2016
How can my platform provide availability
during workload releases?
Rolling Deployments
Rolling Deployments
Rolling Deployments
Rolling Deployments
How can my platform non-destructively
add functionality to a workload?
Sidecars
How can my platform insulate workloads
from complexity and state of services?
Ambassador
How can my platform communicate with
a workload when I want a different
protocol than it was built with?
Adapter
How can my platform provide “singleton”
behaviors in a scaled-out service?
Leader Elector
How can my platform provide “work
queue” behavior without altering a
workload?
Work Queue
Kubernetes Tweet Bait
“Could this be POSIX of distributed systems?!”
How does it all come together?
Scalewhale: A troubled service
The output we want… … but we get overloaded
Initial rollout
Brute force scale-out
Metric-driven Autoscale
Swap in a work queue!
Questions
Get hip to the heptagon
A platform is a real developer advantage but must avoid reinvention and being
overly proscriptive....
Slides available at
https://is.gd/k8splatform
Bibliography
“Design Patterns for Container-base Distributed Systems” -- Burns, Oppenheimer
USENIX 2016
“Site Reliability ...
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
microservices-kubernetes
Building a Microservices Platform with Kubernetes
Building a Microservices Platform with Kubernetes
Building a Microservices Platform with Kubernetes
Building a Microservices Platform with Kubernetes
Building a Microservices Platform with Kubernetes
Building a Microservices Platform with Kubernetes
Building a Microservices Platform with Kubernetes
Building a Microservices Platform with Kubernetes
Building a Microservices Platform with Kubernetes
Building a Microservices Platform with Kubernetes
Building a Microservices Platform with Kubernetes
Prochain SlideShare
Chargement dans…5
×

Building a Microservices Platform with Kubernetes

2 523 vues

Publié le

Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2j8U4Du.

Matthew Mark Miller discusses Kubernetes’ primitives and microservices patterns on top of them, including rolling deployments, stateful services and adding behaviors via sidecars. Filmed at qconsf.com.

Matthew Mark Miller is an engineer with 17 years experience designing scalable back-end systems. He is on the Kismatic team at Apprenda of Troy, New York, bringing Kubernetes to the enterprise. He loves helping engineers solve system problems, wrangle migrations, test the untestable, work with legacy code and anything else that’s truly hard in software.

Publié dans : Technologie
  • Soyez le premier à commenter

Building a Microservices Platform with Kubernetes

  1. 1. Building a Microservices Platform with Kubernetes Matthew Mark Miller @DataMiller
  2. 2. InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month Watch the video with slide synchronization on InfoQ.com! https://www.infoq.com/presentations/ microservices-kubernetes
  3. 3. Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide Presented at QCon San Francisco www.qconsf.com
  4. 4. Cloud Native: Microservices running inside Containers on top of Platforms on any infrastructure
  5. 5. Microservice A software component of a system that is independently releasable and independently scalable from other parts of the system.
  6. 6. Container A software process whose access has been reduced to the point that it thinks it is the only thing running.
  7. 7. Platform The parts of your service that you don't build yourself.
  8. 8. But wait...aren’t we supposed to be Full Stack?!
  9. 9. A platform’s responsibility is to make implicit the link between a service and the resource it consumes.
  10. 10. Clouds operate because of workload orchestration
  11. 11. Don’t roll your own orchestration.
  12. 12. Integrating workloads requires tinkering at runtime Token swapping Modifications to the host container’s configuration Swapping in binaries
  13. 13. Integrating this way isn’t easy Takes time & testing to get it right What you built and tested isn’t necessarily what runs in production. Leads to providers offering fewer, more highly opinionated stacks
  14. 14. A big question for platform engineers: How can we spend more time building useful services and less time maintaining the platform?
  15. 15. Kubernetes Borg meets Docker; Resistance is futile
  16. 16. (Obligatory architecture slide)
  17. 17. Kubernetes is popular, open and growing
  18. 18. To those of us building platforms, Kubernetes offers Reliable cluster & workload management A stack agnostic hosting abstraction (Docker) Battle-tested fundamental abstractions that give rise to powerful deployment patterns
  19. 19. Kubernetes Fundamentals
  20. 20. Controllers Loops that maintain state Run continuously on Master Each Kubernetes object gets its own Controller Controllers are pluggable & lightweight Rely on declarative manifests to determine intent
  21. 21. The Pod Many containers, working together as a single unit Shared IP & localhost Shared filesystem Scale together Separate hardware limits Can be tagged with a label, providing scheduling advice
  22. 22. Services Permanent, logical addresses for internal services Expose a name, port and stable IP for a group of pods Load balance between individual pods Provided to pods via DNS or environment variable Constructed using a selector onto pod labels (sort of like a database query)
  23. 23. Networking Rules for all Kubernetes installations Each Pod gets its own unique IP address (which is the same outside and in) All Pods must be able to communicate with each other without NAT All Pods must be able to communicate with and participate in Services
  24. 24. Ingress Simplifies Layer 7 access to Kubernetes services Works with load balancers, including cloud load balancers & nginx Presents a single root URL mapping to multiple services Publicly expose private networks Terminates TLS/SSL
  25. 25. Using the fundamentals to build a platform Pod patterns from Burns & Oppenheimer, USENIX 2016
  26. 26. How can my platform provide availability during workload releases?
  27. 27. Rolling Deployments
  28. 28. Rolling Deployments
  29. 29. Rolling Deployments
  30. 30. Rolling Deployments
  31. 31. How can my platform non-destructively add functionality to a workload?
  32. 32. Sidecars
  33. 33. How can my platform insulate workloads from complexity and state of services?
  34. 34. Ambassador
  35. 35. How can my platform communicate with a workload when I want a different protocol than it was built with?
  36. 36. Adapter
  37. 37. How can my platform provide “singleton” behaviors in a scaled-out service?
  38. 38. Leader Elector
  39. 39. How can my platform provide “work queue” behavior without altering a workload?
  40. 40. Work Queue
  41. 41. Kubernetes Tweet Bait “Could this be POSIX of distributed systems?!”
  42. 42. How does it all come together?
  43. 43. Scalewhale: A troubled service The output we want… … but we get overloaded
  44. 44. Initial rollout
  45. 45. Brute force scale-out
  46. 46. Metric-driven Autoscale
  47. 47. Swap in a work queue!
  48. 48. Questions
  49. 49. Get hip to the heptagon A platform is a real developer advantage but must avoid reinvention and being overly proscriptive. Kubernetes was built to bring independence from hardware choices. Kubernetes also brings separation of concerns to dev teams. It’s built from simple rules and objects that improve the usefulness and portability of containers.
  50. 50. Slides available at https://is.gd/k8splatform
  51. 51. Bibliography “Design Patterns for Container-base Distributed Systems” -- Burns, Oppenheimer USENIX 2016 “Site Reliability Engineering” -- Beyer, Jones, Petoff, Murphy. O’Reilly 2016 “From Google to the World: The Kubernetes Origin Story” -- McLuckie, 2016
  52. 52. Watch the video with slide synchronization on InfoQ.com! https://www.infoq.com/presentations/ microservices-kubernetes

×