Slide 1

Slide 1 text

Building a Technology Stack for your Kubernetes-Based Platform Daniel Bryant Product Architect, Datawire

Slide 2

Slide 2 text

tl;dr ● Adopting a “cloud native” approach is the new norm ● This requires new technologies and new workflows ● Creating a supporting cloud platform is essential ○ Container orchestration ○ Progressive delivery ○ Edge management ○ Observability ● Consciously design your platform. Watch for antipatterns

Slide 3

Slide 3 text

@danielbryantuk

Slide 4

Slide 4 text

A quick recap... ● Going “cloud native” offers benefits, but requires changes ● Successful cloud native organisations have ○ Created a self-service application platform ○ Adopted new tools and (full cycle) developer workflows ● Recognised four core platform capabilities

Slide 5

Slide 5 text

1. Container management 2. Progressive delivery 3. Edge management 4. Observability A quick recap...

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

A quick recap... https://blog.getambassador.io/enabling-full-cycle-development-are-y ou-benefiting-from-your-move-to-kubernetes-d9eab2e94e7

Slide 8

Slide 8 text

Avoiding Platform Antipatterns

Slide 9

Slide 9 text

Avoiding Platform Antipatterns Centralized Design and Ownership: One Size Doesn’t Fit All Fragmented Platform Implementation Slow Development Loops: Less Time Coding, More Time Toiling

Slide 10

Slide 10 text

Antipattern: Centralized Design and Ownership ● Economies of scale ● Overzealous guardrails ● Modification is ticket-driven

Slide 11

Slide 11 text

Antipattern: Fragmented Platform Implementation https://speakerdeck.com/stilkov/microservice s-patterns-and-antipatterns-1?slide=12

Slide 12

Slide 12 text

Antipattern: Slow Development Loops https://mitchdenny.com/the-inner-loop/

Slide 13

Slide 13 text

Exploring the Platform Capabilities

Slide 14

Slide 14 text

1. Container management 2. Progressive delivery 3. Edge management 4. Observability Four Core Platform Capabilities

Slide 15

Slide 15 text

Container Management: Kubernetes

Slide 16

Slide 16 text

Manage and run container-based applications at scale and on a variety of infrastructures ● Developers ○ Self-service interactions: automated and observable ● Platform team ○ Set policies around access, control, and auditability Container Management

Slide 17

Slide 17 text

● Kubernetes is the de facto container orchestrator ● Cloud agnostic fabric(?) ○ Google Anthos, Azure Stack ● Kubernetes provides: ○ Declarative configuration and control loops ○ A shared abstraction Kubernetes

Slide 18

Slide 18 text

Kubernetes Decisions ● To self-host, or not to self-host? ● Which distro? ● Going all-in on a cloud?

Slide 19

Slide 19 text

Kubernetes Challenges ● Open for extension, closed for modification ○ Helm for deployment ○ Operators for automation ● Developer productivity ○ Local-to-remote dev and test

Slide 20

Slide 20 text

Progressive Delivery: Delivery Pipelines

Slide 21

Slide 21 text

Progressive Delivery Supporting the creation of pipelines that enable the automated build, verification, deployment, release, and observability ● Developers ○ Self-service interactions: automated and observable ● Platform team ○ Centralize verification of quality and security properties https://redmonk.com/jgovernor/2018/08/06/towards-progressive-delivery/

Slide 22

Slide 22 text

● Deliver any and all application changes into production as rapidly and as safely as the organisation requires ● Includes experiments, new features, configuration, and bug fixes ● Deployments should be routine and drama free Continuous/progressive delivery pipelines

Slide 23

Slide 23 text

Progressive Delivery Decisions ● Pipeline practices ● Pipeline technology https://www.infoq.com/news/2020/03/reimagining-cicd-pipelines/

Slide 24

Slide 24 text

Progressive Delivery Challenges ● Collaboration between dev, QA, and ops ● Balance one-size-fits-all vs chaos ● Make it easy to do the right thing

Slide 25

Slide 25 text

Edge Management: Ingress and API Gateways

Slide 26

Slide 26 text

Edge Management Enable the self-service release of new functionality by developers, while maintaining stability ● Developers ○ Decentralized traffic management ○ Support NFRs e.g. authn/z, retries, and circuit breaking ● Platform ○ Centralized configuration of sane defaults ○ TLS, authn/z, and rate limiting for DDoS protection

Slide 27

Slide 27 text

● First contact between users and biz services ● The edge stack is focused on: ○ Controlled release of new functionality; ○ Cross-functional edge requirements: security and reliability ○ Supporting developer onboarding ● Separate deploy and release The Edge Stack

Slide 28

Slide 28 text

Edge Stack Decisions ● Edge technologies ● Deploy/release workflows ○ Declarative ○ Self-service ○ Scalable (more microservices, more APIs)

Slide 29

Slide 29 text

Edge Stack Challenges ● Scaling edge management ● Supporting multiple protocols and NFRs https://www.getambassador.io/resources/challenges-api-gateway-kubernetes/

Slide 30

Slide 30 text

Observability: Metrics, Logging, Tracing

Slide 31

Slide 31 text

Observability Support the collection and analysis of end user and application feedback directly by developers and the platform team. ● Developers ○ Enable product teams to observe and iterate against business goals and KPIs ● Platform ○ Observe and managing infrastructure, and ensure their service level objectives (SLOs) are met

Slide 32

Slide 32 text

● Infer what is occurring within a software system ○ Gradually improving an SLI ○ Rapidly restoring an SLI ● Monitoring, logging, and tracing ○ UX Observability

Slide 33

Slide 33 text

Observability Decisions ● Adoption (monitor all-the-things?) ● Technology selection ○ Metrics ○ Logging ○ Distributed tracing ● Joining the dots (open standards)

Slide 34

Slide 34 text

Observability Challenges ● Self-service config and dashboards ● Increasing signal-to-noise ● Fault location https://medium.com/@copyconstruct/monitoring-and-observability-8417d1952e1c

Slide 35

Slide 35 text

Wrapping Up

Slide 36

Slide 36 text

In Summary ● Adopting a “cloud native” approach is the new norm ● This requires new technologies and new workflows ● Creating a supporting cloud platform is essential ○ Container orchestration ○ Progressive delivery ○ Edge management ○ Observability ● Consciously design your platform. Watch for antipatterns

Slide 37

Slide 37 text

Read “Building a Kubernetes Platform”: https://www.getambassador.io/learn/building-kubernetes-platform/ Subscribe to our podcasts: https://www.getambassador.io/resources?types=Podcast Follow us on Twitter: https://twitter.com/getambassadorio Learning More...