SlideShare a Scribd company logo
ACCELERATE
AGILE DEVOPS / BUSINESS CASE FOR CI/CD, TDD,
Microservices, K8s, AUTOMATION, ETC.
Accelerate DevOps/Microservices and Kubernetes
The promise of CI/CD and Agile/DevOps culture
What we are after!
evOps, Continuous Deployment and Continuous Integration (CI/C
Why we care?

Recommended for you

Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...

Here is the version of my microservices talk that that I gave on September 17th at the SVforum Cloud SIG/Microservices meetup. To learn more see http://microservices.io and http://plainoldobjects.com

microservicesevent sourcingeventual consistency
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture

Introduction to Microservices Architecture, how it is differs from monolithic architecture, benefits, drawbacks and solutions.

microservicesapplication architecture
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture

This presentation outlines the benefits of implementing a Microservice over a monolithic architecture.

ABOUT RICK• Author of best-selling agile development book, early adopter of TDD, DevOps,
Agile, etc.
• Highest leadership scores of any senior director in a 2,000 person org (happiest,
most productive team). Highest performing team in a 1,000+ person group: Jenkins
pipelines, Event Hub/EEL, High-code coverage, PR process, Trunk based git like
GitHub flow, full automation, etc.
• Two awards from CIO at fortune 500, amazing results (G.O.A.T and Engineering
Excellence)
• Amazing results finishing projects deemed impossible under tight deadlines. Grew
team from 12 to 50+, Talent Magnet due to culture of excellence
• Written open source software used by millions
• Early adopter and proponent of MicroServices and streaming high-speed streaming,
12 factor deployment, container orchestration, in-memory compute and uService
architecture
• Speaker at conferences on microservice development, a Java Champion (chosen
from 10,000,000 Java Developers), parsers, distributed data grids, books, articles,
etc.
• Mentoring, consulting, papers, blogs, specifications, JSRs for distributed compute,
streaming
SLIDE DECK BASED ON
BOOK ACCELERATE AND
MORE• PAST
EXPERIENCE
• LATEST
TRENDS
OUTLINE
• How we got here
• History of MicroServices
• DevOps / Agile
• CI/CD
• Kubernetes
• Best practices
• Continuous delivery
• Continuous integration
• Lean management and
monitoring / KPIs
• SCM / Version Control
/ GitOps / Immutable
infrastructure
• Trunk-based
development
BRIEF HISTORY OF MICROSERVICES
AND AGILE,CI/CD
Brief history of time

Recommended for you

Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices

The introduction covers the following 1. What are Microservices and why should be use this paradigm? 2. 12 factor apps and how Microservices make it easier to create them 3. Characteristics of Microservices Note: Please download the slides to view animations.

javaspring bootsoa
Microservice Architecture 101
Microservice Architecture 101Microservice Architecture 101
Microservice Architecture 101

Microservice architecture is gaining popularity in the community, as large scale websites, such as Netflix and Amazon, adopted this paradigm and achieved better scalability. In this talk, we will cover issues with monolithic approach, how microservice architecture addresses those issues, and how it works in the real world.

microservice architecture
Designing microservices part2
Designing microservices part2Designing microservices part2
Designing microservices part2

This document discusses designing microservices. It covers identifying service boundaries by analyzing business domains. Key considerations for service design include granularity, managing dependencies, capturing domain knowledge, and exposing interfaces. Data modeling challenges with microservices like eventual consistency are also addressed. The document provides an overview of implementing microservices on platforms like Service Fabric and container technologies.

microservicesarchitecture
HOW WE GOT HERE
• Web pages that were brochures
• eCommerce
• Legacy integration
• Rush to Webify businesses
• SOA: Wrap legacy systems as services to use from web
• Virtualization, Virtualization2.0, Cloud, Containers, and now
Container orchestration
“Now you can run a JVM in a Docker image which is
just a process pretending to be an OS running in an
OS that is running in the cloud which is running inside
of a virtual machine which is running in Linux server
that you don’t own that you share with people who you
don’t know.”
Microservices Architecture
“The Java EE container is no longer needed because
servers are not giant refrigerator boxes that you order
from Sun and wait three months for (circa 2000). Don’t fight
classpath, classloader hell of Java EE. … your whole … OS is
now an ephemeral container (Docker). Deliver an image with all
the libs you need, don’t deploy to a Java EE server which has
to be versioned and configured. You are only running one
service in it anyway.… Let it go. …One issue with enterprise
components is they assume the use of hardware servers
which are large monoliths and you want to run a lot of
things on the same server. Well, turns out in (today), that
makes no sense. Operating systems and servers are
ephemeral, virtualized resources and can be shipped like a
component. We have EC2 images AMIs, OpenStack, Vagrant,
Kubernetes and Docker. The world changed. Move on….
Microservices just recognize this trend so you are not
developing like you did when the hardware, cloud
orchestration, multi-cores, and virtualization was not there.
You did not develop code in the 90s with punch cards did
you? So don’t use an EAR file or a WAR file (today).”
Microservices Architecture
MICROSERVICES
• Focus is building small, reusable, scalable services
• Adopt the Unix single purpose utility approach to service
development
• Small so they can be released more often and are written to be
malleable
• Easier to write
• Easier to change
• Go hand in hand with continuous integration and continuous
delivery
• Heavily REST based and messagingWhat is microservice architecture?Microservices Architecture

Recommended for you

[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native Architecture[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native Architecture

Enterprises are increasingly adopting DevOps. Docker adoption has surged to 35%, taking the lead over Chef and Puppet which at 28% each. To get the most out of the synergy between DevOps and containers you need to adopt container-native architecture for application development. This slide deck explores the importance of having container-native architecture in your enterprise and WSO2’s roadmap for it.

 
by WSO2
container-native architecturecontainersdevops
Modern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale ComputingModern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale Computing

The document provides an overview of modern cloud architecture. It discusses key cloud concepts like Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). It also covers architectural considerations for cloud applications like multi-tenancy, load balancing, scaling, security, monitoring, and metering. Microservices architecture and containerization are introduced as approaches for building applications for the cloud. Data-intensive architectures like lambda architecture are also summarized.

software architecture cloud bigdata scaling
Azure Application Architecture Guide
Azure Application Architecture GuideAzure Application Architecture Guide
Azure Application Architecture Guide

The document provides an overview of modern cloud application architecture compared to traditional on-premises architecture. It discusses key aspects of the software development process including analyzing business requirements, choosing an architecture style, and applying design patterns and best practices. Various architecture styles are described such as microservices, event-driven, and big data architectures. Common cloud design patterns are also discussed.

KEY INGREDIENT OF
MICROSERVICES
• independently deployable, small, domain-driven services
• Own their data (no shared databases)
• communication through a well-defined wire protocol
usually JSON over HTTP (curl-able interfaces)
• well defined interfaces and minimal functionality
• avoiding cascading failures and synchronous calls -
reactive designing for failure
What is microservice architecture?
SOA VS. MICROSERVICES
• SOA and Microservices have common goals and
purposes
• Refinement to meet goals of polyglot devices and
3rd generation virtualization (cloud, container,
container orchestration)
• Parts of SOA that worked well
• MS: Web technologies to provide scalability,
modular, domain-drive, small, and continuously
deployable cloud-based services
What is microservice architecture?
It’s not the daily
increase but daily
decrease. Hack away
at the unessential. --
Bruce Lee
SOA VS. MICROSERVICES
“Microservices Architecture is taking what perhaps started out as SOA and
applying lessons learned as well as pressure to support polyglot devices,
deploy more rapidly and the architecture liquidity that cloud computing and
virtualization/containerization provide. You mix all that together and you
can see where Microservices Architecture started. Microservices
Architecture is in general less vendor driven than SOA and more needs
driven by demands of application development and current cloud
infrastructure.” —Rick Hightower 2013 :)
UNIX PHILOSOPHY
• Microservices compares to Unix philosophy,
• Ken Thompson, Unix creator, said Unix has a
philosophy of:
one tool, one job
• “Unix philosophy emphasizes building short, simple,
clear, modular, and extendable code that can be
easily maintained and repurposed by developers
other than its creators” What is microservice architecture?

Recommended for you

[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises

Microservice architecture (MSA) is fast becoming a popular architecture pattern in today’s agile enterprises. Its iterative architecture and development methodologies are attracting the interest of architects who need continuous delivery to fulfill business needs. But, is every characteristic of MSA new or even pragmatic? Can MSA alone help you solve your enterprise challenges? This session will explore how middleware plays a key role in successful MSA-based implementations.

 
by WSO2
microservicesintegration
Merging micrservices architecture with SOA Practices
Merging micrservices architecture with SOA Practices Merging micrservices architecture with SOA Practices
Merging micrservices architecture with SOA Practices

The document discusses merging microservices architecture with SOA practices. It begins with background on the presenter and an agenda that includes defining and sizing microservices, DevOps practices for deployment, and avoiding fragility. Microservices are defined as small, independent, and process-isolated services. The document explores benefits and challenges of microservices, including proper sizing of services and managing dependencies. It provides examples of DevOps practices for loose coupling like service isolation and separate databases. The conclusion emphasizes starting small and reconciling SOA and microservices when sharing capabilities, APIs, and building applications.

 
by WSO2
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principles

- Microservices advocate creating a system from small, isolated services that each own their data and are independently scalable and resilient. They are inspired by biological cells that are small, single-purpose, and work together through messaging. - The system is divided using a divide and conquer approach, decomposing it into discrete subsystems that communicate over well-defined protocols. Each microservice focuses on a single business capability and owns its own data and behavior. - Microservices communicate asynchronously through APIs and events to maintain independence and isolation, which enables continuous delivery, failure resilience, and independent scaling of each service.

microservicearchitecture
COPING WITH FAILURE
• Avoid synchronous calls to avoid cascading
failures
• Microservices tend to embrace streams,
queues, actor systems, event loops and
other async calls
• Spend more time with distributed logging /
log aggregation w/ MDC and now distributed
tracing
MICROSERVICES
MONITORING
• User Experience KPIs
• Debugging (requests per second,
#threads, #connections, failed auth,
expired tokens, etc.)
• Circuit Breaker (monitor health, restarts,
act/react)
• Cloud Orchestration (monitor load, spin
up instances)
• Health checks and observable KPIs
"doveryai no proveryai"
(trust, but verify)
Microservice Monitoring
“Just remember Microservices are not a new
thing, and they are not cool or hip.
Microservices are obvious evolutionary
architecture to address the revolutionary things
that already happened: web, cloud, mobile,
server virtualization, OS containerization,
container orchestration, multi-core servers,
cheaper and cheaper RAM, 64 bit computing,
10GBE, 100GBE, etc.”
Microservices Architecture
MICROSERVICES ARE
CONTINUOUSLY DEPLOYABLE
SERVICES
• Microservices focus on business capability,
and a refocus on object oriented
programming roots and organizing code
around business domains with data and
business rules co-located in the same
process or set of processes

Recommended for you

Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...

Do microservices force us to look differently at the way we lay down and evolve our integration architecture, or are they purely about how we build applications? Are microservices a new concept, or an evolution of the many ideas that came before them? What is the relationship between microservices and other key initiatives such as APIs, SOA, and Agile. In this session, we will unpick what microservices really are, and indeed what they are not. We will consider whether there is something unique about this particular point time in technology that has enables microservice concepts to take hold. Finally, we will look at if, when, where and how an enterprise can take on the benefits of microservices, and what products and technologies are applicable for that journey.

microservicesarchitectureintegration
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...

This slide deck explores in-depth how enioka Haute Couture designed and built an integration platform around WSO2 ESB to expose internal services to external applications (SaaS, external partners); and how this became a central component of the collaboration between every actor of integration projects.

 
by WSO2
enioka haute coutureintegration
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture

Microservice architecture. Short intro into the world of microservices, the talk I gave in VilniusPHP meetup.

symfonymicroservicearchitecture
CONTINUOUSLY
DEPLOYABLE
MICROSERVICES• Focus of Microservices is on breaking up applications into
small (micro) reusable services which might be useful to
other services or other applications.
• Services can be deployed independently
• Each of these services to be tweaked, and then
redeployed independently
• This is where the "micro" part of microservices comes
into play
What is microservice architecture?
DEVOPS, AGILE, TDD,
CI/CDBrief history of time
XP, AGILE, SCRUM, TDD,
CI/CD
• TDD, CI and CI/CD
• Test Driven Development and Agile
• XP, Agile, Scrum
• CI/CD (Jenkins and the tools that came
before)
• CI/CD needs automated testing
DEVOPS
• DevOps aka DevSecOps
• Heroku and the birth of 12 factor deployment, DevOps, KPIs, SRE
• YBYOI vs. SRE vs. DevOps and where do you fit?
• SRE: Observability, Log aggregation, KPIs/Metrics, Distributed/Trace
logging
• Container Orchestration: Yarn, Mesos, Marathon, Nomad, Borg and
Kubernetes
• What is GitOps? What is immutable infrastructure?
• What is cloud native?

Recommended for you

Microservices for Enterprises
Microservices for Enterprises Microservices for Enterprises
Microservices for Enterprises

This document discusses microservices architecture and related concepts. It begins with an overview of microservices compared to earlier SOA approaches. Key aspects of microservices covered include developing single applications as independent services, common misconceptions, principles like single responsibility, and defining appropriate service boundaries. The document also discusses messaging approaches in microservices including REST, gRPC, and asynchronous messaging. Other sections cover organizing microservices, deployment, security, data management, governance, bridging monolithic and microservice systems, and implementing a service mesh.

microservicesmicroservicesoa
Citrix Day 2014: NetScaler 10.5
Citrix Day 2014: NetScaler 10.5Citrix Day 2014: NetScaler 10.5
Citrix Day 2014: NetScaler 10.5

Slides der Präsentation von Simeon Bosshard, Citrix, am Citrix Day 2014 von Digicomp. Das HTML 5 GUI im Release 10.5 des NetScaler ist eine Neuerung, aber nicht die einzige. Erfahren Sie mehr über die wichtigsten Änderungen wie etwa MobileStream, Cisco RISE und ACI Integration sowie die Erweiterungen im Authentication-Bereich. Natürlich kommen die Neuerungen in den Core-Bereichen Loadbalancing, SSL Offloading etc. ebenfalls nicht zu kurz.

citrixday 2014citrixday2014netscaler 10.5
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and MicroservicesAccelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices

The business case and ROI for MicroServices, DevOps / Agile, adopting CI/CD, and Kubernetes with best practices. (Draft 2)

#kubernetesdevopsroi
KUBERNETES / K8S
• Services, Stateful sets, Namespaces, Tags, Ingress, Egress
• Helm/Kustomize for packaging an app or set of related uServices and deploy to
K8s
• Multi-cloud support and just cloud support
• Monitoring built-in (or at least easily pluggable)
• Easy to ramp up (or easier)
• Supports flexible deployment models
• Integrates with Cloud providers services or runs standalone (on prem or cloud)
• What came before and now: Heroku/PaaS/IAAS/EC2, Docker, Docker Swarm,
Mesos/Marathon, Nomad, ECS, EKS, etc. K8s is the current mindshare champ.
Accelerate DevOps/Microservices and Kubernetes
WINNING THE RACE
Why we want to do it? Why it is important!
ACCELERATION IN
PRACTICE
• Make more money
• Deliver more
• Less Burnout
• Grow the value of the
company
• Make customers happy

Recommended for you

Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...

IT needs to run in production in order to generate business value. DevOps is among other things a way of thinking focusing on production software. A business application requires a tailor made platform to generate business value. The combination of application and its platform is a DevOps product. The DevOps team has full responsibility for that product through its entire lifecycle. The microservices architecture promises flexibility, scalability, and optimal use of compute resources. Via independent components with well-defined scope and responsibility, interface, and ownership that are evolved and managed in an automated DevOps process, this architecture leverages current technologies and hard-learned insights from past decades. This session defines the objectives of Business with IT, of microservices and DevOps and introduces Containers and the container platform Kubernetes as crucial ingredients for making DevOps happen.

devopsmicroservicescontainers
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith

Microservices-based architectures are in vogue. Over the last couple of years, we have learned how thought leaders implement them, and it seems like every other week we hear about how containers and platform-as-a-service offerings make them ultimately happen. Tech Talent Night Copenhagen 11/22/17 https://greenticket.dk/techtalentnightcph

microserviceslagomreactive
2013.07.05 [IBM] Cloud Ecosystem Forum - Atelier Directions Techniques
2013.07.05   [IBM] Cloud Ecosystem Forum - Atelier Directions Techniques2013.07.05   [IBM] Cloud Ecosystem Forum - Atelier Directions Techniques
2013.07.05 [IBM] Cloud Ecosystem Forum - Atelier Directions Techniques

- The document discusses IBM's strategy around open cloud, OpenStack, DevOps, and orchestration. It highlights several of IBM's offerings related to these areas including SmartCloud products, UrbanCode, and IBM's contributions to OpenStack. - IBM is a major contributor to OpenStack and bases much of its cloud software and services on an open cloud architecture centered around OpenStack. - DevOps, workload orchestration, service orchestration, and technical orchestration are discussed as ways to automate the lifecycle of applications and services across environments. - Patterns for deploying virtual applications from infrastructure-as-a-service to platform-as-a-service are described.

ORGANIZATIONAL
PERFORMANCE
• High performers 2x the rate will exceed organizational
performance goals as low performers:
• 2x profitability
• 2x productivity
• 2x market share
• 2x number of customers
ORGANIZATIONAL
PERFORMANCE PART II
• High performers twice as likely to exceed non-commercial
performance goals as low performers
• 2x better quantity of products and services
• 2x operating efficiency
• 2x customer satisfaction
• 2x quality of products/services
• 2x achieving organizational/mission goals
ORGANIZATIONAL
PERFORMANCE PART III
50% increase in market
capitalization compared to low
performers!
SOFTWARE DELIVERY
PERFORMANCE
• Deploy frequency, Lead time, mean time to restore (MTTR),
and change fail percentage do well to predict overall software
delivery performance
• Improving software delivery performance improves tempo and
stability
• Software delivery performance improves organizational
performance and quality/customer satisfaction
• Deploy frequency is highly correlated with continuous delivery
and use of version control best practices

Recommended for you

Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith

The document discusses strategies for evolving monolithic applications into microservice architectures. It notes that modern software needs to meet increasing demands around release frequency, developer velocity, and infrastructure costs. While classical architectures based on monoliths and service-oriented architectures were effective, they no longer address today's challenges. The document then introduces microservices as an alternative, describing characteristics like independent deployability, language/data agnosticism, and process isolation. It acknowledges that while building individual microservices is straightforward, the difficult part is designing the overall system architecture and operational capabilities required to manage many interconnected microservices. Lagom is presented as one framework that can help implement reactive microservices on the JVM.

lagommicroservices
Using Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through OperatorsUsing Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through Operators

Surush Samani of CloudNative Labs gives a demo on how to use Operators on Kubernetes to deploy a camunda engine and maintain it.

FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0 FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0

Presentation on the current state of cloud computing and the role that open source, containers and microservices are playing in the cloud. Presented to Florida Linux Users Exchange on April 9th, 2015

open sourceopenstackcloud computing
SOFTWARE DELIVERY
PERFORMANCE II
• Lead time is highly correlated with good version control
and automated testing
• MTTR is highly correlated with version control and
monitoring
• Software delivery performance is negatively correlated
with deployment pain
• Software delivery performance is correlated with
organizational investment in DevOps
QUALITY
Source, Forsgren PhD, Nicole. Jez Humble, Gene Kim, Accelerate . IT Revolution Press. Kindle Edition.
st amount of manual work across all practices - configuration m
CULTURE
• 5 factors most associated with burnout are
negatively impacted by bad software delivery
performance
• Deployment pain and poor software delivery
practices cause organizational burnout
IMPROVE CULTURE BY
IMPROVING PRACTICES• Technical practices predict continuous delivery
• Improve organizational culture, identity, job
satisfaction, software delivery performance, less
burnout, less deployment pain, and less time
spent on rework!
• High performers spend 50% less time
remediating security issues than low
performers

Recommended for you

Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...

**Featuring Aaron Williams, Head of Advocacy at Mesosphere, Inc. and Markus Eisele, Developer Advocate at Lightbend, Inc.** The traditional architecture that enterprises run their businesses on has typically been delivered as monolithic applications running in a virtualized, on-premise infrastructure. Public and private cloud technologies have changed everything, but if the applications are not designed, or re-designed, appropriately, then it is impossible to take advantage of the advances in both distributed application services and hybrid infrastructure. Consequently, enterprise architects are looking to microservices-based architectures as a means to modernize their legacy applications. This webinar with Lightbend and partner Mesosphere will introduce a new framework specifically designed to help developers modernize legacy Java EE applications into systems of microservices and then discuss exactly what is required to run these distributed systems at enterprise scale.

dc/osreactive-platformmesosphere
Kubernetes solutions
Kubernetes solutionsKubernetes solutions
Kubernetes solutions

This document provides an introduction and overview of containers, Kubernetes, IBM Container Service, and IBM Cloud Private. It discusses how microservices architectures break monolithic applications into smaller, independently developed services. Containers are presented as a standard way to package applications to move between environments. Kubernetes is introduced as an open-source system for automating deployment and management of containerized applications. IBM Cloud Container Service and IBM Cloud Private are then overviewed as platforms that combine Docker and Kubernetes to enable deployment of containerized applications on IBM Cloud infrastructure.

#kubernetes#k8s#ibm
Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and docker

Docker concepts and microservices architecture are discussed. Key points include: - Microservices architecture involves breaking applications into small, independent services that communicate over well-defined APIs. Each service runs in its own process and communicates through lightweight mechanisms like REST/HTTP. - Docker allows packaging and running applications securely isolated in lightweight containers from their dependencies and libraries. Docker images are used to launch containers which appear as isolated Linux systems running on the host. - Common Docker commands demonstrated include pulling public images, running interactive containers, building custom images with Dockerfiles, and publishing images to Docker Hub registry.

kitematicmicroservicesdocker
TRUNK BASED DEVELOPMENT
(LIKE GITHUB FLOW)
• ​High performers have shortest integration times
and branch lifetimes
• Branch life and integration typically lasting hours
or a day
• Low performers have longest integration times
and branch lifetimes
• Branch life and integration typically lasting days or
weeks
ARCHITECTURE
• Loosely coupled, well-encapsulated
architecture drives IT performance.
• 2017 dataset biggest contributor to
continuous delivery was loosely coupled,
well-encapsulated architecture
LEAN PRODUCT
MANAGEMENT
CAPABILITIES• Experimental approach to product
development highly correlates with
continuous delivery
• Lean product development capabilities
predict improvements in organizational
culture like reduced burnout higher software
delivery performance and overall
organizational performance
HOW WE GET THERE
Rules of the road

Recommended for you

Integration in the Age of DevOps
Integration in the Age of DevOpsIntegration in the Age of DevOps
Integration in the Age of DevOps

This document discusses cloud native architectures and microservices. It introduces the speaker and covers topics like how fast software delivery requires decoupling services, using containers and Kubernetes for deployment, and using Apache Camel for integration between microservices. It also discusses using OpenShift and Fuse Integration Services on OpenShift to develop and deploy microservices in a cloud native way.

openshiftdevopsintegration
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscape

Presentation for Dutch Microsoft TechDays 2015 with Marcel de Vries: During this session we will take a look at how to realize a Microservices architecture (MSA) using the latest Microsoft technologies available. We will discuss some fundamental theories behind MSA and show you how this can actually be realized with Microsoft technologies such as Azure Service Fabric. This session is a real must-see for any developer that wants to stay ahead of the curve in modern architectures.

azureservice fabricarchitecture
Architecture: When, how, and if to Adopt Microservices
Architecture: When, how, and if to Adopt MicroservicesArchitecture: When, how, and if to Adopt Microservices
Architecture: When, how, and if to Adopt Microservices

Microservices are not for everyone! If you're a small shop, a monolith provides a great amount of value and reduces the complexities involved. However as your company grows, this monolith becomes more difficult to maintain. We’ll look at how microservices allow you to easily deploy and debug atomic pieces of infrastructure which allows for increased velocity in reliable, tested, and consistent deploys. We’ll look into key metrics you can use to identify the right time to begin the transition from monolith to microservices.

awscloud computingamazon web services
ACCELERATE DEVOPS
• Continuous delivery
• Architecture
• Product and process
• Lean Management and monitoring
• Cultural
CONTINUOUS DELIVERY
CAPABILITIES
1. Implement continuous delivery / continuous deployment
2. Version control all production artifacts
3. Automate your deployment pipeline
4. Implement continuous integration
5. Use trunk-based development methods (like Github flow
instead of git flow)
6. Implement test automation
7. Shift left on security
PRODUCT AND PROCESS
CAPABILITIES
• Gather and implement customer feedback
• Make the flow of work through the system
visible
• Work in small batches
• Foster and enable team experimentation
CULTURE CAPABILITIES
• Support a generative culture
• Encourage and support learning
• Encourage collaboration
• Make work as meaningful as possible
• Support and encourage transformational
leadership

Recommended for you

Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure

This is the slide deck for the DFW Azure User Group meetup of 18 July 2017, presented by Doug Vanderweide and discussing Azure's services that support a microservices architecture.

paasmicroservicesmicrosoft
Java Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the CloudJava Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the Cloud

Java Agile ALM: OTAP and DevOps in the Cloud Bas Van Oudenaarde job Technical Manager at VX Company.

mongodbvx companynosql
node.js and Containers: Dispatches from the Frontier
node.js and Containers: Dispatches from the Frontiernode.js and Containers: Dispatches from the Frontier
node.js and Containers: Dispatches from the Frontier

This document discusses node.js and containers for microservices architectures. It describes how microservices architectures break large monolithic applications into many smaller independent services. Node.js is well-suited for microservices due to its lightweight footprint and asynchronous nature. Containers provide an efficient way to run many independent services on a single machine by virtualizing at the operating system level. The document outlines lessons learned from rewriting a cloud orchestration system called SmartDataCenter using a microservices and container-based architecture.

ACCELERATE DEVOPS
Source, Forsgren PhD, Nicole. Jez Humble, Gene Kim, Accelerate . IT Revolution Press. Kindle Edition.
ARCHITECTURAL
CAPABILITIES TO
ACCELERATE
• Use loosely coupled architecture
• Release new services on demand
without outages
• Empower the team to select tools; trust team
to pick the best tools
LEAN MANAGEMENT AND
MONITORING
CAPABILITIES• Have a light weight change approval process
• Monitor application and system KPIs to inform business
decisions
• Proactively check system health
• Preemptively detect and mitigate problems
• Improve process and work within WIP limits
• Set up visible dashboards to monitor/communicate WIP,
quality, applications and systems
EXAMPLE MONITORING
• Hygieia
• Productivity dashboards
• Jenkins dashboards
• Runtime KPIs
• Customer KPIs

Recommended for you

Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure

The document discusses microservices and how Azure supports the microservices architecture for modern applications. It defines microservices and service-oriented architecture as an approach to building applications as independent, interoperable services. It then describes the various Azure PaaS options for hosting microservices, such as App Service, Functions, and Service Fabric. It also covers supporting Azure services for state management, caching, storage, and monitoring microservices applications. Finally, it provides an example topology of a photo sharing solution built with multiple Azure microservices.

azurepassmicroservices
Microservices and serverless for MegaStartups - DLD TLV 2017
Microservices and serverless for MegaStartups - DLD TLV 2017Microservices and serverless for MegaStartups - DLD TLV 2017
Microservices and serverless for MegaStartups - DLD TLV 2017

Boaz Ziniman, a technical evangelist at AWS, presented on microservices and serverless architectures for mega startups. He discussed how monolithic architectures can limit agility and discussed how microservices help address these issues by decomposing applications into independently deployable services. He then explained how serverless computing removes the need to manage servers by allowing developers to run code without provisioning or managing servers. Examples of serverless offerings from AWS like AWS Lambda were provided. Common use cases for microservices and serverless architectures like web applications, backends, and data processing were also outlined.

microservicessoftwaresoftware testing
Serverless: The next major shift in cloud computing
Serverless: The next major shift in cloud computingServerless: The next major shift in cloud computing
Serverless: The next major shift in cloud computing

Describes why everyone is in love with containers today, and why the serverless pattern is the next logical step in public cloud computing.

azureawsserverless.
LEAN MANAGEMENT
• Process: Small Batches
• Decompose into features that allow for rapid development
• MVP - prototype with just enough features to proved business value or enable validated
learning
• Quickly gather customer requirements (A/B testing, customer satisfaction surveys, etc.)
• Team experimentation
• Lean Management: Change approval
• Lean Management: Proactive notification
• Lean Management: Monitoring and KPIs
• Lean Management: WIP limits, visualizing work
Companies with regulatory requirements or strict CCB
Can focus on Continuous Delivery
Continuous Deployment can be part of a workflow and
Based on the Continuous Delivery
VERSION CONTROL - SCM
• GitOps - keeping application code, system configuration,
application configuration, and scripts for automating
build and configuration in version control.
• Factors together predict IT performance
• Key component of continuous delivery
• GitOps - keeping system and application config in git
(versioned) correlates high with delivery performance
DEPLOYMENT
AUTOMATION
• Deployment automation
• Containers, config, immutable infrastructure
• Comprehensive configuration management
(automation scripts), continuous integration and
continuous testing
• Key metric of GitOps is how much diffs exists in
system config from git to deploy

Recommended for you

Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices

The document discusses microservices and provides information on: - The benefits of microservices including faster time to market, lower deployment costs, and more revenue opportunities. - What defines a microservice such as being independently deployable and scalable. - Differences between monolithic and microservice architectures. - Moving applications to the cloud and refactoring monolithic applications into microservices. - Tools for building microservices including Azure Service Fabric and serverless/Functions. - Best practices for developing, deploying, and managing microservices.

microservicesazure
JParse Fast JSON Parser
JParse Fast JSON ParserJParse Fast JSON Parser
JParse Fast JSON Parser

Just a JSON parser plus a small subset of JSONPath. Small (currently 4200 lines of code) Very fast, uses an index overlay from the ground up. Does not do JavaBean serialization but can serialize into basic Java types and can map to Java classes and Java records.

jsonjavafast
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum

This talk was done in Feb 2020. Sergey and I co-presented at CTO Forum on Microservices and Service Mesh (how they relate, requirements, goals, best practices and how DevOps and Agile has had convergence in the set of features for Service Mesh and gateways around observability, feature flags, etc.)

service meshcto forummicroservices
CONTINUOUS
INTEGRATION
• Continuous integration
• Relies on SCM and Deployment automation
• Relies on automated tests
• Unit
• Integration
• Acceptance
TRUNK-BASED
DEVELOPMENT
• Trunk-based development
• Like GitHub Flow but shorter lived branches
• Fewer active branches that never outlive a sprint
• Branch-off master per feature, bug fix, etc.
• More PRs more often
• No code freezes; integration periods less than a day
• Polar opposite of git flow
SHIFT LEFT ON SECURITY
• Integrating security into design and testing
phases
• Security reviews of applications, including
the infosec team in design and demo
process
• Using pre-approved security libraries and
packages, and testing security features as a
part of automated testing suite
CONTINUOUS DELIVERY
• The ability to deliver
• Build quality in
• Work in small batches
• Automate repetitive tasks including testing &
deployments
• Pursue continuous improvement
• Ownership
• Comprehensive configuration management
• Continuous integration
• Continuous testing
You can’t skip steps.
There is investment
up front.
Today’s speed up can
be tomorrows painted
yourself
In a corner.

Recommended for you

Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)

Early Draft: Service Mesh allows developers to focus on business logic while the crosscutting network data layer code is handled by the Service Mesh. This is a boon because this code can be tricky to implement and hard to test all of the edge cases. Service Mesh takes this a few steps further than AOP or Servlet Filters or custom language-specific frameworks because it works regardless of the underlying programming language being used which is great for polyglot development shops. Thus standardizing how these layers work, while allowing teams to pick the best tools or languages for the job at hand. Kubernetes and Istio Service Mesh automate best practices for DevSecOps needs like: failover, scale-out, scalability, health checks, circuit breakers, rate limiters, metrics, observability, avoiding cascading failure, disaster recovery, and traffic routing; supporting CI/CD and microservices architecture. Istio’s ability to automate and maintaining zero trust networks is its most important feature. In the age of high-profile data breaches, security is paramount. Companies want to avoid major brand issues that impact the bottom line and shrink market capitalization in an instant. Istio allows a standard way to do mTLS and auto certificate rotation which helps prevent a breach and limits the blast radius if a breach occurs. Istio also takes the concern of mTLS from microservices deployments and makes it easy to use taking the burden off of application developers.

service meshistiokubernetes
Accelerate using DevOps and CI/CD.
Accelerate using DevOps and CI/CD.Accelerate using DevOps and CI/CD.
Accelerate using DevOps and CI/CD.

This document summarizes key points from the book Accelerate about achieving high performance through DevOps practices. It discusses that high performing teams deploy code more frequently with shorter lead times and change fail rates. They use trunk-based development and loosely coupled architectures. Implementing continuous delivery, monitoring, and a lean approach improves software delivery, quality, and reduces burnout. Culture capabilities like learning and collaboration also impact performance. Overall, DevOps practices can double organizational metrics like profitability and productivity. The document advocates transforming through understanding these practices.

devopsdigital transformationagile
High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017

Covers how we built a set of high-speed reactive microservices and maximized cloud/hardware costs while meeting objectives in resilience and scalability. Talks about Akka, Kafka, QBit, in-memory computing, from a practitioners point of view. Based on the talks delivered by Geoff Chandler, Jason Daniel, and Rick Hightower at JavaOne 2016 and SF Fintech at Scale 2017, but updated.

reactive programmingakkareal-world
KNOWING THE ROAD
Best practices
PREFER MICROSERVICES
BUT…
• Know when to employ Monolith and when not to
• Can speed up MVP and prototypes but at a cost
• Why this makes CI/CD slower?
• Automated tests needed for CI/CD
• Smaller Monoliths and SOA is a move in the right
direction
PREFER MICROSERVICES
• Refactoring to Microservices is a journey
• Know when to employ Microservices
• Fits the CI/CD well
• Fits small batch well
• How Micro can mean different things as you get better at
Microservices
• Why today's micro could be tomorrows Monolith?
• Adoption is a Journey
EMBRACE OBSERVABILITY
FROM THE START
• Log aggregation
• Time series data base
• Log all KPIs for clusters
• Log all KPIs for applications and services
• Alerting
• Know when and how to employ distributed tracing
• Distributed/Trace logging

Recommended for you

Reactive Java: Promises and Streams with Reakt (JavaOne Talk 2016)
Reactive Java:  Promises and Streams with Reakt (JavaOne Talk 2016)Reactive Java:  Promises and Streams with Reakt (JavaOne Talk 2016)
Reactive Java: Promises and Streams with Reakt (JavaOne Talk 2016)

see labs at https://github.com/advantageous/j1-talks-2016 Import based on PPT so there is more notes. This is from our JavaOne Talk 2016 on Reakt, reactive Java programming with promises, circuit breakers, and streams. Reakt is a reactive Java lib that provides promises, streams, and a reactor to handle asynchronous call coordination. It was influenced by the design of promises in ES6. You want to async-call serviceA and then serviceB, take the results of serviceA and serviceB, and then call serviceC. Then, based on the results of call C, call D or E and then return the results to the original caller. Calls to A, B, C, D, and E are all async calls, and none should take longer than 10 seconds. If they do, then return a timeout to the original caller. The whole async call sequence should time out in 20 seconds if it does not complete and should also check for circuit breakers and provide back pressure feedback so the system does not have cascading failures. Learn more in this session.

kafkajavaone talkjavaone
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)

see labs at https://github.com/advantageous/j1-talks-2016 Import based on PDF. This is from our JavaOne Talk 2016 on Reakt, reactive Java programming with promises, circuit breakers, and streams. Reakt is a reactive Java lib that provides promises, streams, and a reactor to handle asynchronous call coordination. It was influenced by the design of promises in ES6. You want to async-call serviceA and then serviceB, take the results of serviceA and serviceB, and then call serviceC. Then, based on the results of call C, call D or E and then return the results to the original caller. Calls to A, B, C, D, and E are all async calls, and none should take longer than 10 seconds. If they do, then return a timeout to the original caller. The whole async call sequence should time out in 20 seconds if it does not complete and should also check for circuit breakers and provide back pressure feedback so the system does not have cascading failures. Learn more in this session.

microservice developmentjavacall coordination
High-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulationsHigh-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulations

Covers how we built a set of high-speed reactive microservices and maximized cloud/hardware costs while meeting objectives in resilience and scalability. This has more notes attached as it is based on the ppt not the PDF.

javamicroservicesreactive programming
CI/CD
• CI/CD
• Deploy often (daily or more)
• Test often (after every checkin run all
automated tests)
• Block PRs from merging until they pass tests
TESTS TO CREATE: TDD
• Unit tests
• Perf testing JMH
• Functional tests
• At the HTTP
layer
• At the Spring
Boot layer
• Acceptance tests
• Smoke integration tests
• Full integration tests
• Synthetic testing
• Code Coverage (sonarqube)
• Security/Vulnerability dependency license
checks
• Aqua, Fortify
• Full integration perf testing
WHAT IS A PR? AND HOW
TO ENSURE QUALITY WITH
IT• A PR is a pull-request
• PR gives other developers a chance to review code before it
committed to master
• PR via small batch (why small? JIRA story or even a tasks or two)
• With GitHub and WebHooks you can block PRs from merging
• Code coverage met, build works, unit tests run, other checks via
Jenkins
• Review and approved by at least two people
TESTING IS A MUST!
• You can't do CI/CD without automated
testing
• Testing allows you to move quickly with
confidence

Recommended for you

High-Speed Reactive Microservices
High-Speed Reactive MicroservicesHigh-Speed Reactive Microservices
High-Speed Reactive Microservices

High-speed reactive microservices (HSRM) are microservices that are in-memory, non-blocking, own their data through leasing, and use streams and batching. They provide advantages like lower costs, ability to handle more traffic with fewer resources, and cohesive codebases. The example service described handles 30k recommendations/second on a single thread through batching, streaming, and data faulting. The document discusses attributes of HSRM like single writer rules and service stores, and related concepts like reactive programming, streams, and service sharding.

reactiveqbitcloud
Netty Notes Part 3 - Channel Pipeline and EventLoops
Netty Notes Part 3 - Channel Pipeline and EventLoopsNetty Notes Part 3 - Channel Pipeline and EventLoops
Netty Notes Part 3 - Channel Pipeline and EventLoops

Learning more about Netty helps me understand Vert.x better. Netty in Action is a great book. The threading model of Netty is very important to understanding event loops and reactive programming.

vert.xnettyjava
Netty Notes Part 2 - Transports and Buffers
Netty Notes Part 2 - Transports and BuffersNetty Notes Part 2 - Transports and Buffers
Netty Notes Part 2 - Transports and Buffers

This document provides notes on Netty Part 2 focusing on transports and buffers. It discusses the different Netty transport options including NIO, epoll, and OIO. It explains that Netty provides a common interface for different implementations. The document also covers Netty buffers including ByteBuf, direct vs array-backed buffers, composite buffers, and buffer pooling. It emphasizes that performance gains come from reducing byte copies and buffer allocation.

javanionetwork
EMBRACE SMALL BATCH
WORK
• Goal of three PRs per week
• Goal of one to two tasks from JIRA per PR
• Use JIRA # in commits and PR comments
AUTOMATED
DEPLOYMENT
• Merging into master triggers a deploy to integration and sends a Team message
• Approval from Product Manager pushes code to Prod or Demo
• Checking into main branch from PR
• Artifacts and scripts for deployment checked into git and should not be modified
• Puts code staging area to be checked by Product Manager
• into containers and deploys to cluster (some ephemeral some not)
• Once checked by Infosec and Product Manager: Canary Deploys to 3 to 5% of
traffic and is monitored (end goal)
• Then more and more as it is monitored and is ok
DEMO
Jenkins
Minikube
Spring Boot
THE RACE IS WON
Conclusion

Recommended for you

Notes on Netty baics
Notes on Netty baicsNotes on Netty baics
Notes on Netty baics

Some basic notes about Netty Fundamentals using Java. Focus on concepts and how they map to top level classes in the Netty API.

networkprogrammingjava
WebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST MicroserviceWebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST Microservice

Comparing the speed of RPC calls over WebScoket Microservices versus REST based microservices. Using wrk, QBit, and examples in Java we show how much faster WebSocket is for doing RPC service calls.

restjavamicroservices architecture
Consul: Microservice Enabling Microservices and Reactive Programming
Consul: Microservice Enabling Microservices and Reactive ProgrammingConsul: Microservice Enabling Microservices and Reactive Programming
Consul: Microservice Enabling Microservices and Reactive Programming

Consul is a service discovery system that provides a microservice style interface to services, service topology and service health. With service discovery you can look up services which are organized in the topology of your datacenters. Consul uses client agents and RAFT to provide a consistent view of services. Consul provides a consistent view of configuration as well also using RAFT. Consul provides a microservice interface to a replicated view of your service topology and its configuration. Consul can monitor and change services topology based on health of individual nodes. Consul provides scalable distributed health checks. Consul only does minimal datacenter to datacenter communication so each datacenter has its own Consul cluster. Consul provides a domain model for managing topology of datacenters, server nodes, and services running on server nodes along with their configuration and current health status. Consul is like combining the features of a DNS server plus Consistent Key/Value Store like etcd plus features of ZooKeeper for service discovery, and health monitoring like Nagios but all rolled up into a consistent system. Essentially, Consul is all the bits you need to have a coherent domain service model available to provide service discovery, health and replicated config, service topology and health status. Consul also provides a nice REST interface and Web UI to see your service topology and distributed service config. Consul organizes your services in a Catalog called the Service Catalog and then provides a DNS and REST/HTTP/JSON interface to it. To use Consul you start up an agent process. The Consul agent process is a long running daemon on every member of Consul cluster. The agent process can be run in server mode or client mode. Consul agent clients would run on every physical server or OS virtual machine (if that makes more sense). Client runs on server hosting services. The clients use gossip and RPC calls to stay in sync with Consul. A client, consul agent running in client mode, forwards request to a server, consul agent running in server mode. Clients are mostly stateless. The client does LAN gossip to the server nodes to communicate changes. A server, consul agent running in server mode, is like a client agent but with more tasks. The consul servers use the RAFT quorum mechanism to see who is the leader. The consul servers maintain cluster state like the Service Catalog. The leader manages a consistent view of config key/value pairs, and service health and topology. Consul servers also handle WAN gossip to other datacenters. Consul server nodes forwards queries to leader, and forward queries to other datacenters. A Datacenter is fairly obvious. It is anything that allows for fast communication between nodes, with as few or no hops, little or no routing, and in short: high speed communication. This could be an Amazon EC2 availability zone, a networking environment like a subnet, or any private, low latency, high

cloudservice discoveryconsul
TRANSFORMATION IS A
BUSINESS IMPERATIVE• You can’t afford not to transform
• Transformation requires a deep understanding of
practices
• Having a team called DevOps is not doing DevOps
per se
• Culture of DevOps, Agility, Lean, MVP, etc. is a
clear win
• There are guides, books, practices, and information
Read Accelerate by Forsgren PhD, Nicole. Jez Humble, Gene Kim.
Also read The Loop Approach: How to Transform your organization from
The inside out! By Sebastian Klein and Ben Hughes
Also read Cloud Native DevOps with Kubernetes by John Arundel and Justin Domingus

More Related Content

What's hot

[WSO2Con EU 2017] Writing Microservices Using MSF4J
[WSO2Con EU 2017] Writing Microservices Using MSF4J[WSO2Con EU 2017] Writing Microservices Using MSF4J
[WSO2Con EU 2017] Writing Microservices Using MSF4J
WSO2
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture
Chris Richardson
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
Lucian Neghina
 
Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...
Chris Richardson
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
Mohammad Dameer
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
Paul Mooney
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
Anil Allewar
 
Microservice Architecture 101
Microservice Architecture 101Microservice Architecture 101
Microservice Architecture 101
Kochih Wu
 
Designing microservices part2
Designing microservices part2Designing microservices part2
Designing microservices part2
Masashi Narumoto
 
[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native Architecture[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native Architecture
WSO2
 
Modern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale ComputingModern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale Computing
Giragadurai Vallirajan
 
Azure Application Architecture Guide
Azure Application Architecture GuideAzure Application Architecture Guide
Azure Application Architecture Guide
Masashi Narumoto
 
[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises
WSO2
 
Merging micrservices architecture with SOA Practices
Merging micrservices architecture with SOA Practices Merging micrservices architecture with SOA Practices
Merging micrservices architecture with SOA Practices
WSO2
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principles
Sanjoy Kumar Roy
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...
Kim Clark
 
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
WSO2
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
Žilvinas Kuusas
 
Microservices for Enterprises
Microservices for Enterprises Microservices for Enterprises
Microservices for Enterprises
Kasun Indrasiri
 
Citrix Day 2014: NetScaler 10.5
Citrix Day 2014: NetScaler 10.5Citrix Day 2014: NetScaler 10.5
Citrix Day 2014: NetScaler 10.5
Digicomp Academy AG
 

What's hot (20)

[WSO2Con EU 2017] Writing Microservices Using MSF4J
[WSO2Con EU 2017] Writing Microservices Using MSF4J[WSO2Con EU 2017] Writing Microservices Using MSF4J
[WSO2Con EU 2017] Writing Microservices Using MSF4J
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Microservice Architecture 101
Microservice Architecture 101Microservice Architecture 101
Microservice Architecture 101
 
Designing microservices part2
Designing microservices part2Designing microservices part2
Designing microservices part2
 
[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native Architecture[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native Architecture
 
Modern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale ComputingModern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale Computing
 
Azure Application Architecture Guide
Azure Application Architecture GuideAzure Application Architecture Guide
Azure Application Architecture Guide
 
[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises
 
Merging micrservices architecture with SOA Practices
Merging micrservices architecture with SOA Practices Merging micrservices architecture with SOA Practices
Merging micrservices architecture with SOA Practices
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principles
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...
 
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Microservices for Enterprises
Microservices for Enterprises Microservices for Enterprises
Microservices for Enterprises
 
Citrix Day 2014: NetScaler 10.5
Citrix Day 2014: NetScaler 10.5Citrix Day 2014: NetScaler 10.5
Citrix Day 2014: NetScaler 10.5
 

Similar to Accelerate DevOps/Microservices and Kubernetes

Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and MicroservicesAccelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Rick Hightower
 
Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...
Lucas Jellema
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
Markus Eisele
 
2013.07.05 [IBM] Cloud Ecosystem Forum - Atelier Directions Techniques
2013.07.05   [IBM] Cloud Ecosystem Forum - Atelier Directions Techniques2013.07.05   [IBM] Cloud Ecosystem Forum - Atelier Directions Techniques
2013.07.05 [IBM] Cloud Ecosystem Forum - Atelier Directions Techniques
Club Cloud des Partenaires
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
Markus Eisele
 
Using Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through OperatorsUsing Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through Operators
camunda services GmbH
 
FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0 FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0
Mark Hinkle
 
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Lightbend
 
Kubernetes solutions
Kubernetes solutionsKubernetes solutions
Kubernetes solutions
Eric Cattoir
 
Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and docker
Alex Ivy
 
Integration in the Age of DevOps
Integration in the Age of DevOpsIntegration in the Age of DevOps
Integration in the Age of DevOps
Brian Ashburn
 
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscape
Alex Thissen
 
Architecture: When, how, and if to Adopt Microservices
Architecture: When, how, and if to Adopt MicroservicesArchitecture: When, how, and if to Adopt Microservices
Architecture: When, how, and if to Adopt Microservices
Amazon Web Services
 
Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure
Doug Vanderweide
 
Java Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the CloudJava Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the Cloud
MongoDB
 
node.js and Containers: Dispatches from the Frontier
node.js and Containers: Dispatches from the Frontiernode.js and Containers: Dispatches from the Frontier
node.js and Containers: Dispatches from the Frontier
bcantrill
 
Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure
Doug Vanderweide
 
Microservices and serverless for MegaStartups - DLD TLV 2017
Microservices and serverless for MegaStartups - DLD TLV 2017Microservices and serverless for MegaStartups - DLD TLV 2017
Microservices and serverless for MegaStartups - DLD TLV 2017
Boaz Ziniman
 
Serverless: The next major shift in cloud computing
Serverless: The next major shift in cloud computingServerless: The next major shift in cloud computing
Serverless: The next major shift in cloud computing
Doug Vanderweide
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
David Chou
 

Similar to Accelerate DevOps/Microservices and Kubernetes (20)

Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and MicroservicesAccelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
 
Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
2013.07.05 [IBM] Cloud Ecosystem Forum - Atelier Directions Techniques
2013.07.05   [IBM] Cloud Ecosystem Forum - Atelier Directions Techniques2013.07.05   [IBM] Cloud Ecosystem Forum - Atelier Directions Techniques
2013.07.05 [IBM] Cloud Ecosystem Forum - Atelier Directions Techniques
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Using Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through OperatorsUsing Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through Operators
 
FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0 FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0
 
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
 
Kubernetes solutions
Kubernetes solutionsKubernetes solutions
Kubernetes solutions
 
Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and docker
 
Integration in the Age of DevOps
Integration in the Age of DevOpsIntegration in the Age of DevOps
Integration in the Age of DevOps
 
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscape
 
Architecture: When, how, and if to Adopt Microservices
Architecture: When, how, and if to Adopt MicroservicesArchitecture: When, how, and if to Adopt Microservices
Architecture: When, how, and if to Adopt Microservices
 
Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure
 
Java Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the CloudJava Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the Cloud
 
node.js and Containers: Dispatches from the Frontier
node.js and Containers: Dispatches from the Frontiernode.js and Containers: Dispatches from the Frontier
node.js and Containers: Dispatches from the Frontier
 
Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure
 
Microservices and serverless for MegaStartups - DLD TLV 2017
Microservices and serverless for MegaStartups - DLD TLV 2017Microservices and serverless for MegaStartups - DLD TLV 2017
Microservices and serverless for MegaStartups - DLD TLV 2017
 
Serverless: The next major shift in cloud computing
Serverless: The next major shift in cloud computingServerless: The next major shift in cloud computing
Serverless: The next major shift in cloud computing
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 

More from Rick Hightower

JParse Fast JSON Parser
JParse Fast JSON ParserJParse Fast JSON Parser
JParse Fast JSON Parser
Rick Hightower
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum
Rick Hightower
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
Rick Hightower
 
Accelerate using DevOps and CI/CD.
Accelerate using DevOps and CI/CD.Accelerate using DevOps and CI/CD.
Accelerate using DevOps and CI/CD.
Rick Hightower
 
High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017
Rick Hightower
 
Reactive Java: Promises and Streams with Reakt (JavaOne Talk 2016)
Reactive Java:  Promises and Streams with Reakt (JavaOne Talk 2016)Reactive Java:  Promises and Streams with Reakt (JavaOne Talk 2016)
Reactive Java: Promises and Streams with Reakt (JavaOne Talk 2016)
Rick Hightower
 
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
Rick Hightower
 
High-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulationsHigh-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulations
Rick Hightower
 
High-Speed Reactive Microservices
High-Speed Reactive MicroservicesHigh-Speed Reactive Microservices
High-Speed Reactive Microservices
Rick Hightower
 
Netty Notes Part 3 - Channel Pipeline and EventLoops
Netty Notes Part 3 - Channel Pipeline and EventLoopsNetty Notes Part 3 - Channel Pipeline and EventLoops
Netty Notes Part 3 - Channel Pipeline and EventLoops
Rick Hightower
 
Netty Notes Part 2 - Transports and Buffers
Netty Notes Part 2 - Transports and BuffersNetty Notes Part 2 - Transports and Buffers
Netty Notes Part 2 - Transports and Buffers
Rick Hightower
 
Notes on Netty baics
Notes on Netty baicsNotes on Netty baics
Notes on Netty baics
Rick Hightower
 
WebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST MicroserviceWebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST Microservice
Rick Hightower
 
Consul: Microservice Enabling Microservices and Reactive Programming
Consul: Microservice Enabling Microservices and Reactive ProgrammingConsul: Microservice Enabling Microservices and Reactive Programming
Consul: Microservice Enabling Microservices and Reactive Programming
Rick Hightower
 
The Java Microservice Library
The Java Microservice LibraryThe Java Microservice Library
The Java Microservice Library
Rick Hightower
 
Java JSON Benchmark
Java JSON BenchmarkJava JSON Benchmark
Java JSON Benchmark
Rick Hightower
 
MongoDB quickstart for Java, PHP, and Python developers
MongoDB quickstart for Java, PHP, and Python developersMongoDB quickstart for Java, PHP, and Python developers
MongoDB quickstart for Java, PHP, and Python developers
Rick Hightower
 
Mongo DB for Java, Python and PHP Developers
Mongo DB for Java, Python and PHP DevelopersMongo DB for Java, Python and PHP Developers
Mongo DB for Java, Python and PHP Developers
Rick Hightower
 

More from Rick Hightower (18)

JParse Fast JSON Parser
JParse Fast JSON ParserJParse Fast JSON Parser
JParse Fast JSON Parser
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
 
Accelerate using DevOps and CI/CD.
Accelerate using DevOps and CI/CD.Accelerate using DevOps and CI/CD.
Accelerate using DevOps and CI/CD.
 
High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017
 
Reactive Java: Promises and Streams with Reakt (JavaOne Talk 2016)
Reactive Java:  Promises and Streams with Reakt (JavaOne Talk 2016)Reactive Java:  Promises and Streams with Reakt (JavaOne Talk 2016)
Reactive Java: Promises and Streams with Reakt (JavaOne Talk 2016)
 
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
 
High-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulationsHigh-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulations
 
High-Speed Reactive Microservices
High-Speed Reactive MicroservicesHigh-Speed Reactive Microservices
High-Speed Reactive Microservices
 
Netty Notes Part 3 - Channel Pipeline and EventLoops
Netty Notes Part 3 - Channel Pipeline and EventLoopsNetty Notes Part 3 - Channel Pipeline and EventLoops
Netty Notes Part 3 - Channel Pipeline and EventLoops
 
Netty Notes Part 2 - Transports and Buffers
Netty Notes Part 2 - Transports and BuffersNetty Notes Part 2 - Transports and Buffers
Netty Notes Part 2 - Transports and Buffers
 
Notes on Netty baics
Notes on Netty baicsNotes on Netty baics
Notes on Netty baics
 
WebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST MicroserviceWebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST Microservice
 
Consul: Microservice Enabling Microservices and Reactive Programming
Consul: Microservice Enabling Microservices and Reactive ProgrammingConsul: Microservice Enabling Microservices and Reactive Programming
Consul: Microservice Enabling Microservices and Reactive Programming
 
The Java Microservice Library
The Java Microservice LibraryThe Java Microservice Library
The Java Microservice Library
 
Java JSON Benchmark
Java JSON BenchmarkJava JSON Benchmark
Java JSON Benchmark
 
MongoDB quickstart for Java, PHP, and Python developers
MongoDB quickstart for Java, PHP, and Python developersMongoDB quickstart for Java, PHP, and Python developers
MongoDB quickstart for Java, PHP, and Python developers
 
Mongo DB for Java, Python and PHP Developers
Mongo DB for Java, Python and PHP DevelopersMongo DB for Java, Python and PHP Developers
Mongo DB for Java, Python and PHP Developers
 

Recently uploaded

BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 

Recently uploaded (20)

BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 

Accelerate DevOps/Microservices and Kubernetes

  • 1. ACCELERATE AGILE DEVOPS / BUSINESS CASE FOR CI/CD, TDD, Microservices, K8s, AUTOMATION, ETC.
  • 3. The promise of CI/CD and Agile/DevOps culture What we are after!
  • 4. evOps, Continuous Deployment and Continuous Integration (CI/C Why we care?
  • 5. ABOUT RICK• Author of best-selling agile development book, early adopter of TDD, DevOps, Agile, etc. • Highest leadership scores of any senior director in a 2,000 person org (happiest, most productive team). Highest performing team in a 1,000+ person group: Jenkins pipelines, Event Hub/EEL, High-code coverage, PR process, Trunk based git like GitHub flow, full automation, etc. • Two awards from CIO at fortune 500, amazing results (G.O.A.T and Engineering Excellence) • Amazing results finishing projects deemed impossible under tight deadlines. Grew team from 12 to 50+, Talent Magnet due to culture of excellence • Written open source software used by millions • Early adopter and proponent of MicroServices and streaming high-speed streaming, 12 factor deployment, container orchestration, in-memory compute and uService architecture • Speaker at conferences on microservice development, a Java Champion (chosen from 10,000,000 Java Developers), parsers, distributed data grids, books, articles, etc. • Mentoring, consulting, papers, blogs, specifications, JSRs for distributed compute, streaming
  • 6. SLIDE DECK BASED ON BOOK ACCELERATE AND MORE• PAST EXPERIENCE • LATEST TRENDS
  • 7. OUTLINE • How we got here • History of MicroServices • DevOps / Agile • CI/CD • Kubernetes • Best practices • Continuous delivery • Continuous integration • Lean management and monitoring / KPIs • SCM / Version Control / GitOps / Immutable infrastructure • Trunk-based development
  • 8. BRIEF HISTORY OF MICROSERVICES AND AGILE,CI/CD Brief history of time
  • 9. HOW WE GOT HERE • Web pages that were brochures • eCommerce • Legacy integration • Rush to Webify businesses • SOA: Wrap legacy systems as services to use from web • Virtualization, Virtualization2.0, Cloud, Containers, and now Container orchestration
  • 10. “Now you can run a JVM in a Docker image which is just a process pretending to be an OS running in an OS that is running in the cloud which is running inside of a virtual machine which is running in Linux server that you don’t own that you share with people who you don’t know.” Microservices Architecture
  • 11. “The Java EE container is no longer needed because servers are not giant refrigerator boxes that you order from Sun and wait three months for (circa 2000). Don’t fight classpath, classloader hell of Java EE. … your whole … OS is now an ephemeral container (Docker). Deliver an image with all the libs you need, don’t deploy to a Java EE server which has to be versioned and configured. You are only running one service in it anyway.… Let it go. …One issue with enterprise components is they assume the use of hardware servers which are large monoliths and you want to run a lot of things on the same server. Well, turns out in (today), that makes no sense. Operating systems and servers are ephemeral, virtualized resources and can be shipped like a component. We have EC2 images AMIs, OpenStack, Vagrant, Kubernetes and Docker. The world changed. Move on…. Microservices just recognize this trend so you are not developing like you did when the hardware, cloud orchestration, multi-cores, and virtualization was not there. You did not develop code in the 90s with punch cards did you? So don’t use an EAR file or a WAR file (today).” Microservices Architecture
  • 12. MICROSERVICES • Focus is building small, reusable, scalable services • Adopt the Unix single purpose utility approach to service development • Small so they can be released more often and are written to be malleable • Easier to write • Easier to change • Go hand in hand with continuous integration and continuous delivery • Heavily REST based and messagingWhat is microservice architecture?Microservices Architecture
  • 13. KEY INGREDIENT OF MICROSERVICES • independently deployable, small, domain-driven services • Own their data (no shared databases) • communication through a well-defined wire protocol usually JSON over HTTP (curl-able interfaces) • well defined interfaces and minimal functionality • avoiding cascading failures and synchronous calls - reactive designing for failure What is microservice architecture?
  • 14. SOA VS. MICROSERVICES • SOA and Microservices have common goals and purposes • Refinement to meet goals of polyglot devices and 3rd generation virtualization (cloud, container, container orchestration) • Parts of SOA that worked well • MS: Web technologies to provide scalability, modular, domain-drive, small, and continuously deployable cloud-based services What is microservice architecture? It’s not the daily increase but daily decrease. Hack away at the unessential. -- Bruce Lee
  • 15. SOA VS. MICROSERVICES “Microservices Architecture is taking what perhaps started out as SOA and applying lessons learned as well as pressure to support polyglot devices, deploy more rapidly and the architecture liquidity that cloud computing and virtualization/containerization provide. You mix all that together and you can see where Microservices Architecture started. Microservices Architecture is in general less vendor driven than SOA and more needs driven by demands of application development and current cloud infrastructure.” —Rick Hightower 2013 :)
  • 16. UNIX PHILOSOPHY • Microservices compares to Unix philosophy, • Ken Thompson, Unix creator, said Unix has a philosophy of: one tool, one job • “Unix philosophy emphasizes building short, simple, clear, modular, and extendable code that can be easily maintained and repurposed by developers other than its creators” What is microservice architecture?
  • 17. COPING WITH FAILURE • Avoid synchronous calls to avoid cascading failures • Microservices tend to embrace streams, queues, actor systems, event loops and other async calls • Spend more time with distributed logging / log aggregation w/ MDC and now distributed tracing
  • 18. MICROSERVICES MONITORING • User Experience KPIs • Debugging (requests per second, #threads, #connections, failed auth, expired tokens, etc.) • Circuit Breaker (monitor health, restarts, act/react) • Cloud Orchestration (monitor load, spin up instances) • Health checks and observable KPIs "doveryai no proveryai" (trust, but verify) Microservice Monitoring
  • 19. “Just remember Microservices are not a new thing, and they are not cool or hip. Microservices are obvious evolutionary architecture to address the revolutionary things that already happened: web, cloud, mobile, server virtualization, OS containerization, container orchestration, multi-core servers, cheaper and cheaper RAM, 64 bit computing, 10GBE, 100GBE, etc.” Microservices Architecture
  • 20. MICROSERVICES ARE CONTINUOUSLY DEPLOYABLE SERVICES • Microservices focus on business capability, and a refocus on object oriented programming roots and organizing code around business domains with data and business rules co-located in the same process or set of processes
  • 21. CONTINUOUSLY DEPLOYABLE MICROSERVICES• Focus of Microservices is on breaking up applications into small (micro) reusable services which might be useful to other services or other applications. • Services can be deployed independently • Each of these services to be tweaked, and then redeployed independently • This is where the "micro" part of microservices comes into play What is microservice architecture?
  • 23. XP, AGILE, SCRUM, TDD, CI/CD • TDD, CI and CI/CD • Test Driven Development and Agile • XP, Agile, Scrum • CI/CD (Jenkins and the tools that came before) • CI/CD needs automated testing
  • 24. DEVOPS • DevOps aka DevSecOps • Heroku and the birth of 12 factor deployment, DevOps, KPIs, SRE • YBYOI vs. SRE vs. DevOps and where do you fit? • SRE: Observability, Log aggregation, KPIs/Metrics, Distributed/Trace logging • Container Orchestration: Yarn, Mesos, Marathon, Nomad, Borg and Kubernetes • What is GitOps? What is immutable infrastructure? • What is cloud native?
  • 25. KUBERNETES / K8S • Services, Stateful sets, Namespaces, Tags, Ingress, Egress • Helm/Kustomize for packaging an app or set of related uServices and deploy to K8s • Multi-cloud support and just cloud support • Monitoring built-in (or at least easily pluggable) • Easy to ramp up (or easier) • Supports flexible deployment models • Integrates with Cloud providers services or runs standalone (on prem or cloud) • What came before and now: Heroku/PaaS/IAAS/EC2, Docker, Docker Swarm, Mesos/Marathon, Nomad, ECS, EKS, etc. K8s is the current mindshare champ.
  • 27. WINNING THE RACE Why we want to do it? Why it is important!
  • 28. ACCELERATION IN PRACTICE • Make more money • Deliver more • Less Burnout • Grow the value of the company • Make customers happy
  • 29. ORGANIZATIONAL PERFORMANCE • High performers 2x the rate will exceed organizational performance goals as low performers: • 2x profitability • 2x productivity • 2x market share • 2x number of customers
  • 30. ORGANIZATIONAL PERFORMANCE PART II • High performers twice as likely to exceed non-commercial performance goals as low performers • 2x better quantity of products and services • 2x operating efficiency • 2x customer satisfaction • 2x quality of products/services • 2x achieving organizational/mission goals
  • 31. ORGANIZATIONAL PERFORMANCE PART III 50% increase in market capitalization compared to low performers!
  • 32. SOFTWARE DELIVERY PERFORMANCE • Deploy frequency, Lead time, mean time to restore (MTTR), and change fail percentage do well to predict overall software delivery performance • Improving software delivery performance improves tempo and stability • Software delivery performance improves organizational performance and quality/customer satisfaction • Deploy frequency is highly correlated with continuous delivery and use of version control best practices
  • 33. SOFTWARE DELIVERY PERFORMANCE II • Lead time is highly correlated with good version control and automated testing • MTTR is highly correlated with version control and monitoring • Software delivery performance is negatively correlated with deployment pain • Software delivery performance is correlated with organizational investment in DevOps
  • 34. QUALITY Source, Forsgren PhD, Nicole. Jez Humble, Gene Kim, Accelerate . IT Revolution Press. Kindle Edition. st amount of manual work across all practices - configuration m
  • 35. CULTURE • 5 factors most associated with burnout are negatively impacted by bad software delivery performance • Deployment pain and poor software delivery practices cause organizational burnout
  • 36. IMPROVE CULTURE BY IMPROVING PRACTICES• Technical practices predict continuous delivery • Improve organizational culture, identity, job satisfaction, software delivery performance, less burnout, less deployment pain, and less time spent on rework! • High performers spend 50% less time remediating security issues than low performers
  • 37. TRUNK BASED DEVELOPMENT (LIKE GITHUB FLOW) • ​High performers have shortest integration times and branch lifetimes • Branch life and integration typically lasting hours or a day • Low performers have longest integration times and branch lifetimes • Branch life and integration typically lasting days or weeks
  • 38. ARCHITECTURE • Loosely coupled, well-encapsulated architecture drives IT performance. • 2017 dataset biggest contributor to continuous delivery was loosely coupled, well-encapsulated architecture
  • 39. LEAN PRODUCT MANAGEMENT CAPABILITIES• Experimental approach to product development highly correlates with continuous delivery • Lean product development capabilities predict improvements in organizational culture like reduced burnout higher software delivery performance and overall organizational performance
  • 40. HOW WE GET THERE Rules of the road
  • 41. ACCELERATE DEVOPS • Continuous delivery • Architecture • Product and process • Lean Management and monitoring • Cultural
  • 42. CONTINUOUS DELIVERY CAPABILITIES 1. Implement continuous delivery / continuous deployment 2. Version control all production artifacts 3. Automate your deployment pipeline 4. Implement continuous integration 5. Use trunk-based development methods (like Github flow instead of git flow) 6. Implement test automation 7. Shift left on security
  • 43. PRODUCT AND PROCESS CAPABILITIES • Gather and implement customer feedback • Make the flow of work through the system visible • Work in small batches • Foster and enable team experimentation
  • 44. CULTURE CAPABILITIES • Support a generative culture • Encourage and support learning • Encourage collaboration • Make work as meaningful as possible • Support and encourage transformational leadership
  • 45. ACCELERATE DEVOPS Source, Forsgren PhD, Nicole. Jez Humble, Gene Kim, Accelerate . IT Revolution Press. Kindle Edition.
  • 46. ARCHITECTURAL CAPABILITIES TO ACCELERATE • Use loosely coupled architecture • Release new services on demand without outages • Empower the team to select tools; trust team to pick the best tools
  • 47. LEAN MANAGEMENT AND MONITORING CAPABILITIES• Have a light weight change approval process • Monitor application and system KPIs to inform business decisions • Proactively check system health • Preemptively detect and mitigate problems • Improve process and work within WIP limits • Set up visible dashboards to monitor/communicate WIP, quality, applications and systems
  • 48. EXAMPLE MONITORING • Hygieia • Productivity dashboards • Jenkins dashboards • Runtime KPIs • Customer KPIs
  • 49. LEAN MANAGEMENT • Process: Small Batches • Decompose into features that allow for rapid development • MVP - prototype with just enough features to proved business value or enable validated learning • Quickly gather customer requirements (A/B testing, customer satisfaction surveys, etc.) • Team experimentation • Lean Management: Change approval • Lean Management: Proactive notification • Lean Management: Monitoring and KPIs • Lean Management: WIP limits, visualizing work
  • 50. Companies with regulatory requirements or strict CCB Can focus on Continuous Delivery Continuous Deployment can be part of a workflow and Based on the Continuous Delivery
  • 51. VERSION CONTROL - SCM • GitOps - keeping application code, system configuration, application configuration, and scripts for automating build and configuration in version control. • Factors together predict IT performance • Key component of continuous delivery • GitOps - keeping system and application config in git (versioned) correlates high with delivery performance
  • 52. DEPLOYMENT AUTOMATION • Deployment automation • Containers, config, immutable infrastructure • Comprehensive configuration management (automation scripts), continuous integration and continuous testing • Key metric of GitOps is how much diffs exists in system config from git to deploy
  • 53. CONTINUOUS INTEGRATION • Continuous integration • Relies on SCM and Deployment automation • Relies on automated tests • Unit • Integration • Acceptance
  • 54. TRUNK-BASED DEVELOPMENT • Trunk-based development • Like GitHub Flow but shorter lived branches • Fewer active branches that never outlive a sprint • Branch-off master per feature, bug fix, etc. • More PRs more often • No code freezes; integration periods less than a day • Polar opposite of git flow
  • 55. SHIFT LEFT ON SECURITY • Integrating security into design and testing phases • Security reviews of applications, including the infosec team in design and demo process • Using pre-approved security libraries and packages, and testing security features as a part of automated testing suite
  • 56. CONTINUOUS DELIVERY • The ability to deliver • Build quality in • Work in small batches • Automate repetitive tasks including testing & deployments • Pursue continuous improvement • Ownership • Comprehensive configuration management • Continuous integration • Continuous testing You can’t skip steps. There is investment up front. Today’s speed up can be tomorrows painted yourself In a corner.
  • 58. PREFER MICROSERVICES BUT… • Know when to employ Monolith and when not to • Can speed up MVP and prototypes but at a cost • Why this makes CI/CD slower? • Automated tests needed for CI/CD • Smaller Monoliths and SOA is a move in the right direction
  • 59. PREFER MICROSERVICES • Refactoring to Microservices is a journey • Know when to employ Microservices • Fits the CI/CD well • Fits small batch well • How Micro can mean different things as you get better at Microservices • Why today's micro could be tomorrows Monolith? • Adoption is a Journey
  • 60. EMBRACE OBSERVABILITY FROM THE START • Log aggregation • Time series data base • Log all KPIs for clusters • Log all KPIs for applications and services • Alerting • Know when and how to employ distributed tracing • Distributed/Trace logging
  • 61. CI/CD • CI/CD • Deploy often (daily or more) • Test often (after every checkin run all automated tests) • Block PRs from merging until they pass tests
  • 62. TESTS TO CREATE: TDD • Unit tests • Perf testing JMH • Functional tests • At the HTTP layer • At the Spring Boot layer • Acceptance tests • Smoke integration tests • Full integration tests • Synthetic testing • Code Coverage (sonarqube) • Security/Vulnerability dependency license checks • Aqua, Fortify • Full integration perf testing
  • 63. WHAT IS A PR? AND HOW TO ENSURE QUALITY WITH IT• A PR is a pull-request • PR gives other developers a chance to review code before it committed to master • PR via small batch (why small? JIRA story or even a tasks or two) • With GitHub and WebHooks you can block PRs from merging • Code coverage met, build works, unit tests run, other checks via Jenkins • Review and approved by at least two people
  • 64. TESTING IS A MUST! • You can't do CI/CD without automated testing • Testing allows you to move quickly with confidence
  • 65. EMBRACE SMALL BATCH WORK • Goal of three PRs per week • Goal of one to two tasks from JIRA per PR • Use JIRA # in commits and PR comments
  • 66. AUTOMATED DEPLOYMENT • Merging into master triggers a deploy to integration and sends a Team message • Approval from Product Manager pushes code to Prod or Demo • Checking into main branch from PR • Artifacts and scripts for deployment checked into git and should not be modified • Puts code staging area to be checked by Product Manager • into containers and deploys to cluster (some ephemeral some not) • Once checked by Infosec and Product Manager: Canary Deploys to 3 to 5% of traffic and is monitored (end goal) • Then more and more as it is monitored and is ok
  • 68. THE RACE IS WON Conclusion
  • 69. TRANSFORMATION IS A BUSINESS IMPERATIVE• You can’t afford not to transform • Transformation requires a deep understanding of practices • Having a team called DevOps is not doing DevOps per se • Culture of DevOps, Agility, Lean, MVP, etc. is a clear win • There are guides, books, practices, and information
  • 70. Read Accelerate by Forsgren PhD, Nicole. Jez Humble, Gene Kim. Also read The Loop Approach: How to Transform your organization from The inside out! By Sebastian Klein and Ben Hughes Also read Cloud Native DevOps with Kubernetes by John Arundel and Justin Domingus

Editor's Notes

  1. Rick Hightower Rick consults and does contract development for high-speed computing, Java-based uServices, Apache Spark, Apache Kafka, and Apache Cassandra. He also writes about microservice development and reactive streaming. Rick is a frequent speaker regarding high-speed, reactive microservice development and has spoken recently at JavaOne as well at FinTech at scale in SF. He specializes in high-speed, in-memory, non-blocking, microservices development which often includes Java EE, QBit, Reakt, Akka, Vert.x, Cassandra, Kafka, and cloud deployments. He has architected and implemented 100 million-users, in-memory content preference engines using Java reactive, streaming, and actor-based system as well as architected and implemented OAuth rate limiter (API gateway) for streaming music service to rate limit all backend services per partner/vendor/mobile app. Rick also contributed to the reference implementations enterprise caches as well as being a member of several spec. committees (JSR-347, JSR-107, etc.). He also is the author of the Boon JSON parser and parsing utilities which ships with Groovy.
  2. Enterprise Applications flashback While it is true Enterprise Applications are often built with a three tier architecture: backend code, database code and a GUI written in HTML/JavaScript. This has more to do with the world changing than an active choice. The real drivers for Microservices Architecture are cloud/virtualization/OS containerization, EC2, proliferation of mobile devices, cheaper memory, more virtualization, more cores, SSD, trend towards fatter clients, 10 GBE, 100 GBE, etc. The big enterprise web app is becoming obsolete to a certain extent at least for large applications. It is not like we one day came up with a better idea, and then one day we were like hey what if we could make our code more modular. The ground changed under our collective feet. The way we build, deploy, and consume has changed. Hardware evolved. Virtualization evolved. Containerization happened. Cloud computing became a real thing, and so compelling that it is hard to ignore. The smart phone / tablet / mobile revolution happened. Microservice is the response to these external events. Microservices and NoSQL are two trends that are more focused on how to address software development where deployments are increasingly cloud based and clients are increasingly mobile based. Just like you can’t compare client / server development of the mid-90s to mainframe development from the 70s, you can’t compare enterprise applications from 2001 to microservice development targeting mobile and web clients and other microservices in 2015. The world changes. We adjust. Microservice trend is course correction not a new religion. History of Enterprise Applications Remember 1990s, the reason why Enterprise Applications are written with three tiers was was to avoid DLL hell, and the monolith. We just did it with the tools available at the time. Back in the day, we used to build apps that were two tiered. You had to actually go to each users machine and help them install the app. There was a damn good chance they downloaded some shareware that installed a DLL that screwed up the install, and you were in hell. It was not like we were, “Hey James!” .. “What Martin?” “Do you want to build a huge monolith?” “Sure Martin!”. We tried Applets but Java GUI development back then sucked (1999). I don't think it sucks so bad now, but it lost its window of opportunity for adoption. Then we were left with HTML/JavaScript clients and forcing everyone to use the same browser in the corporation at least for the corporate apps. I worked at many corporations (2003) that banned JavaScript due to incompatibilities of browsers. You were left with screen painting with HTML. It was a like a colorful green screen of yesteryear, but way slower, but pretty. There are many reasons why this style of “Enterprise Development” does not work in the cloud and for mobile devices. The server-side applications no longer need to handle HTTP requests, get data from a database and execute all domain logic, and draw pretty pictures in HTML. Much pain, and great expense has been incurred trying get this three tier architecture to scale in the cloud for various devices written in a polyglot of languages. Microservices exists because mobile, cloud, cheaper RAM, cheaper disks, and improved virtualization. It is really just taking the world where it is. It is not revolutionary at all. Server components, EAR files and WAR files.. may they rest in peace If you have lived through COM, DCOM, CORBA, EJBs, OSGi, J2EE, SOAP, SOA, DCE, etc. then you know the idea of services and components is not a new thing, but they are a date expired concept for the most part. One issue with enterprise components is they assume the use of hardware servers which are large monoliths and you want to run a lot of things on the same server. That is why we have WAR files and EAR files, and all sorts of nifty components and archives. Well turns out in 2015 (and less so in 2019), that makes no sense. Operating systems and servers are ephemeral, virtualized resources and can be shipped like a component. We have EC2 images AMIs, OpenStack, Vagrant and Docker. The world changed. Move on. Microservices just recognize this trend so you are not developing like you did when the hardware, cloud orchestration, multi-cores, and virtualization was not there. You did not develop code in the 90s with punch cards did you? So don’t use an EAR file or a WAR file in 2015. Now you can run a JVM in a Docker image which is just a process pretending to be an OS running in an OS that is running in the cloud which is running inside of a virtual machine which is running in Linux server that you don’t own that you share with people who you don’t know. Got a busy season? Well then, spin up 100 more server instances for a few weeks or hours. This is why you run Java microservices as standalone processes and not running inside of a Java EE container. The Java EE container is no longer needed because servers are not giant refrigerator boxes that you order from Sun and wait three months for (circa 2000). Don’t fight classpath, classloader hell of Java EE. Hell your whole damn OS is now an ephemeral container (Docker). Deliver an image with all the libs you need, don’t deploy to a Java EE server which has to be versioned and configured. You are only running one service in it anyway. Turns out you don’t have five war files running in the same Java EE container since oh about 2007. Let it go. If you are deploying a WAR file to a Java EE container then you are probably not doing microservice development. If you have more than one WAR file in the container or an EAR file, then you are definitely not doing microservice development. If you are deploying your service as an AMI or docker container and your microservice has a main method, then you might be writing a microservice. Microservices architectures opt to break software not into components but into reusable, independently release-able services which run as one or more processes. Application and other services communicate with each other. So where we might have used a server side component, we use a microservice running in independent processes. Where we might have had WAR files or EAR files now we have a Docker container or a Amazon AMI that has the entire app preloaded and configure with exactly the libraries it needs (Java and otherwise). JSON, HTTP, WebSocket … NO WSDL! Now you just have to document the Microservices HTTP/JSON interface so other developers can call into it. We could say REST, and certainly you can use concepts from REST, but hey HTTP calls are enough to be considered a Microservice. Keep this in mind: No XML. No SOAP. No WSDL. No WADL. JSON! Ok you can add some meta data and document how to talk to your service, but the idea is the docs should be documented with curl. If you are only using SOAP or XML then you are not producing a microservice. JSON is a must. Documents should sound more like: I give you this request with these headers, params and JSON body and you respond with this JSON. Keep it simple. You can provide things in addition to JSON, but JSON is the minimum requirement. If you are not delivering up JSON and consuming JSON over HTTP or HTTP WebSocket then what you wrote is not probably not a microservice.
  3. Introduction To Microservices Microservice architecture is a method of developing software systems. Its focus is building small, reusable, scalable services. Applying Microservices becomes very important when you have to create services for polyglot devices: wearables, Internet of Things (IOT), mobile, desktop, and web. The trend towards providing services for rich, native mobile application and web applications started the trend towards Microservices adoption. This is one reason why microservices lean heavily on web technologies like HTTP/REST/WebSocket with JSON,Message Pack, and their ilk. The web technologies provide a low barrier to entry and least common denominator to communication. The closest to a standard definition of microservices is Microservices by James Lewis and Martin Fowler. … Continuous delivery: The microservices architectural approach is to create smaller services that are focused on a small business domain or crosscutting concern. Microservices adopt the Unix single purpose utility approach to service development. They are small so they can be released more often and are written to be malleable. They are easier to write. They are easier to change. Microservices go hand in hand with continuous integration and continuous delivery. The services are independent enough not to need a gigantic release train to release improvements or new features. In the Java world, this means you will be using other microservice like Jenkins to provide frequent releases.
  4. Key ingredients to microservices architecture are: independently deployable, small, domain-driven services communication through a well-defined wire protocol usually JSON over HTTP (curl-able interfaces) well defined interfaces and minimal functionality avoiding cascading failures and synchronous calls - reactive designing for failure
  5. This comes up a lot so let's address this now. It is very common for some to confuse Service-Oriented Architecture (SOA) and Microservice Architecture. In a sense, SOA and Microservice Architecture are related in some goals and purposes. Microservices is a refocus and refinement of some of the original goals of SOA to meet the demands of a polyglot device environment that can scale and support continuous deployments in a cloud / third generation virtualization environment. Since SOA was later muddled with BPEL, ESBs, SOAP, WSDL, and their ilk, it is easier to drop the SOA moniker and just focus on the parts that worked well. Keep the parts that work. Get rid of the rest. The focus on Microservices Architecture is web technologies to provide scalability, modular, domain-drive, small, and continuously deployable cloud-based services. Microservices Architecture is taking what perhaps started out as SOA and applying lessons learned as well as pressure to support polyglot devices, deploy more rapidly and the architecture liquidity that cloud computing and virtualization/containerization provide. You mix all that together and you can see where Microservices Architecture started. Microservices Architecture is in general less vendor driven than SOA and more needs driven by demands of application development and current cloud infrastructure. For more thoughts on SOA vs. Microservices read Microservices Architecture.
  6. Microservices Architecture is taking what perhaps started out as SOA and applying lessons learned as well as pressure to support polyglot devices, deploy more rapidly and the architecture liquidity that cloud computing and virtualization/containerization provide. You mix all that together and you can see where Microservices Architecture started. Microservices Architecture is in general less vendor driven than SOA and more needs driven by demands of application development and current cloud infrastructure.
  7. Cope with failure Microservices are designed to cope with failure. Since microservices tend to call each other, a downstream service that fails should not block upstream services and clients. Synchronous communication is avoided to avoid cascading failures. Thus Microservices tend to embrace async calls, streams, queues and actor systems. To handle failure, it is easier to embrace Queue theory so you can detect failure and provide alternatives or just fail gracefully without blocking clients. The ability to react to failure is a key characteristic of Microservices. In order to learn about downstream failure or learn about other functioning nodes and implement some sort of circuit breaker, one needs Service Discovery. Tools like consul, etcd and SkyDNSare perfect for Service Discovery. Adopting Microservices is not a free lunch. Steps to mitigate inherent complexity include distributed logging and MDC, microservices monitoring and stats, and reactive programming to coordinate async calls. The reactive call coordination would encompass what to do if there is a failure and what to do if a downstream service does not fail, but just times out or worse hangs.
  8. User Experience and Microservices Monitoring With Microservices which are released more often, you can try new features and see how they impact user usage patterns. With this feedback, you can improve your application. It is not uncommon to employ A/B testing and multi-variant testing to try out new combinations of features. Monitoring is more than just watching for failure. With big data, data science, and microservices, monitoring microservices runtime stats is required to know your application users. You want to know what your users like and dislike and react. Debugging and Microservices Monitoring Runtime statistics and metrics are critical for distributed systems. Since microservices architecture use a lot of remote calls. Monitoring microservices metrics can include request per second, available memory, #threads, #connections, failed authentication, expired tokens, etc. These parameters are important for understanding and debugging your code. Working with distributed systems is hard. Working with distributed systems without reactive monitoring is crazy. Reactive monitoring allows you to react to failure conditions and ramp of services for higher loads. Circuit Breaker and Microservices Monitoring You can employ the Circuit Breaker pattern to prevent a catastrophic cascade, and reactive microservices monitoring can be the trigger. Downstream services can be registered in a service discovery so that you can mark nodes as unhealthy as well react by reroute in the case of outages. The reaction can be serving up a deprecated version of the data or service, but the key is to avoid cascading failure. You don't want your services falling over like dominoes. Cloud Orchestration and Microservices Monitoring Reactive microservices monitoring would enable you to detect heavy load, and spin up new instances with the cloud orchestration platform of your choice (EC2, CloudStack, OpenStack, Rackspace, boto, etc.).
  9. Continuously deployable services The focus on Microservices is a focus on business capability, and a refocus on object oriented programming roots and organizing code around business domains with data and business rules co-located in the same process or set of processes. The focus is on breaking up applications into small reusable services which might be useful to other services or other applications. The services can be deployed independently. This allows each of these services to be tweaked, and then redeployed independently. This is where the "micro" part of microservices comes into play. The services are small and independent. This is where microservices have been compared to Unix philosophy, they provide services that handle requests and give responses. Ken Thompson, Unix creator, said Unix has a philosophy of one tool, one job. The Unix philosophy emphasizes building short, simple, clear, modular, and extendable code that can be easily maintained and repurposed by developers other than its creators.
  10. Forsgren PhD, Nicole. Accelerate . IT Revolution Press. Kindle Edition.
  11. High performers are twice as likely to exceed organizational performance goals as low performers: profitability, productivity, market share, number of customers. Forsgren PhD, Nicole. Accelerate . IT Revolution Press. Kindle Edition.
  12. High performers are twice as likely to exceed noncommercial performance goals as low performers: quantity of products/ services, operating efficiency, customer satisfaction, quality of products/services, achieving organizational/mission goals. Forsgren PhD, Nicole. Accelerate . IT Revolution Press. Kindle Edition.
  13. In a follow-up survey to the initial 2014 data collection effort, we gathered stock ticker data and performed additional analysis on responses from just over 1,000 respondents across 355 companies who volunteered the organization they worked for. For those who worked for publicly traded companies, we found the following (this analysis was not replicated in later years because our dataset was not large enough): ​–​High performers had 50% higher market capitalization growth over three years compared to low performers. Forsgren PhD, Nicole. Accelerate . IT Revolution Press. Kindle Edition.
  14. The four measures of software delivery performance (deploy frequency, lead time, mean time to restore, change fail percentage) are good classifiers for the software delivery performance profile. The groups we identified—high, medium, and low performers—are all significantly different across all four measures each year. Our analysis of high, medium, and low performers provides evidence that there are no trade-offs between improving performance and achieving higher levels of tempo and stability: they move in tandem. Software delivery performance predicts organizational performance and noncommercial performance. Forsgren PhD, Nicole. Accelerate . IT Revolution Press. Kindle Edition.
  15. Lead time is highly correlated with version control and automated testing. MTTR is highly correlated with version control and monitoring. Software delivery performance is correlated with organizational investment in DevOps. Software delivery performance is negatively correlated with deployment pain. The more painful code deployments are, the poorer the software delivery performance and culture. Forsgren PhD, Nicole. Accelerate . IT Revolution Press. Kindle Edition.
  16. Unplanned work and rework: ​–​High performers reported spending 49% of their time on new work and 21% on unplanned work or rework. ​–​Low performers spend 38% of their time on new work and 27% on unplanned work or rework. ​–​There is evidence of the J-curve in our rework data. Medium performers spend more time on unplanned rework than low performers, with 32% of their time spent on unplanned work or rework. Manual work: ​–​High performers report the lowest amount of manual work across all practices (configuration management, testing, deployments, change approval process) at statistically significant levels. ​–​There is evidence of the J-curve again. Medium performers do more manual work than low performers when it comes to deployment and change approval processes, and these differences are statistically significant. Forsgren PhD, Nicole. Accelerate . IT Revolution Press. Kindle Edition.
  17. BURNOUT AND DEPLOYMENT PAIN: Deployment pain is negatively correlated with software delivery performance and Westrum organizational culture. The five factors most highly correlated with burnout are Westrum organizational culture (negative), leaders (negative), organizational investment (negative), organizational performance (negative), and deployment pain (positive). Forsgren PhD, Nicole. Accelerate . IT Revolution Press. Kindle Edition.
  18. Trunk-based development: ​–​High performers have the shortest integration times and branch lifetimes, with branch life and integration typically lasting hours or a day. ​–​Low performers have the longest integration times and branch lifetimes, with branch life and integration typically lasting days or weeks. Technical practices predict continuous delivery, Westrum organizational culture, identity, job satisfaction, software delivery performance, less burnout, less deployment pain, and less time spent on rework. High performers spend 50% less time remediating security issues than low performers. Forsgren PhD, Nicole. Accelerate . IT Revolution Press. Kindle Edition.
  19. A loosely coupled, well-encapsulated architecture drives IT performance. In the 2017 dataset, this was the biggest contributor to continuous delivery. Forsgren PhD, Nicole. Accelerate . IT Revolution Press. Kindle Edition.
  20. LEAN PRODUCT MANAGEMENT CAPABILITIES The ability to take an experimental approach to product development is highly correlated with the technical practices that contribute to continuous delivery. Lean product development capabilities predict Westrum organizational culture, software delivery performance, organizational performance, and less burnout. Forsgren PhD, Nicole. Accelerate . IT Revolution Press. Kindle Edition. Forsgren PhD, Nicole. Accelerate . IT Revolution Press. Kindle Edition.
  21. Forsgren PhD, Nicole. Accelerate . IT Revolution Press. Kindle Edition.
  22. Forsgren PhD, Nicole. Accelerate . IT Revolution Press. Kindle Edition.