Kim Clark
Integration Architect
IBM
Kyle Brown
IBM Fellow
CTO Cloud Architecture
What does
cloud native
really mean?
© 2020 IBM Corporation
http://ibm.biz/cloudnativedefined (article series)
http://ibm.biz/cloudnativedefined-slides (this slide deck)
http://ibm.biz/cloudnativedefined-webinar (webinar)
Cloud native – the bigger picture
Market
Growth
Risk
Mitigation
Cost
Reduction
Agility and
productivity
Resilience and
scalability
Optimization and
efficiency
Business
Outcomes
IT
Goals
People
and
Process
Architecture
and
Design
Infrastructure
and
Technology
“Cloud native” means
Agility and Productivity
– Enable rapid innovation that is guided
by business metrics.
– De-risk changes and maintenance
and keep environments current.
Resilience and Scalability
– Target continuous availability that is
self-healing and downtime-free.
– Provide elastic scaling and the
perception of limitless capacity.
Optimization and Efficiency
– Optimize the costs of infrastructural
and human resources.
– Enable free movement between
locations and providers.
© 2020 IBM Corporation 4
People
and
Process
Architecture
and
Design
Infrastructure
and
Technology
Platforms that abstract
complexities of infrastructure
Solutions that
leverage
infrastructure
abstractions
Automation
of full
component
lifecycle
Autonomy
and agility in
development
and operations
fully leveraging the
uniqueness of cloud
…through…
to achieve…
Definitions: What do the words “cloud native” mean in this context?
“cloud” relates to
an abstracted infrastructure platform
enabling for example
• Self-provisioning
• Elasticity
• Auto-recovery
that also provides an abstracted deployment platform
that offers for example
• Immutable deployment
• Declarative provisioning
• Runtime agnostic
• Component orchestration
“native” relates to
the architecture and design of solutions that that fully leverage
infrastructure abstractions that common (native) to all cloud
platforms.
For example, writing components which
• have minimize statefulness
• are lightweight and disposable
• have well defined interfaces
• …
Note: Native does not refer to vendor specific aspects of cloud
providers. That would be “cloud provider native”, which limits
portability.
© 2020 IBM Corporation
5
But to make all this hang together, we also need to change the way people and processes work
• Collaborative roles improve alignment between business and IT
• Refined processes ensure faster delivery and feedback
Ingredients of cloud native
Agile
methods
Lifecycle
automation
DevOps and
site reliability eng.
Team
autonomy
Fine-grained
components
Appropriate
decoupling
Minimal
state
Immutable
deployment
Zero
trust
Elastic, agnostic,
secure platform
Lightweight
runtimes
Operational
automation
Observability
and monitoring
People
and process
Architecture
and design
Technology
and infrastructure
Microservice
architecture
Ingredients of cloud native – hard lessons learned
Initial concepts Adoption hurdles Success factors
Agile
methods
Lifecycle
automation
DevOps and
site reliability eng.
Team
autonomy
Fine-grained
components
Appropriate
decoupling
Minimal
state
Immutable
deployment
Zero
trust
Elastic, agnostic,
secure platform
Lightweight
runtimes
Operational
automation
Observability
and monitoring
Container
technology
Ubiquitously
automated
Roles
and
responsibilities
Sustainably empowered
Secured by default
Managed in aggregate
People
Architecture
Technology
Ingredients of cloud native
People
and process
Architecture
and design
Technology
and infrastructure
Agile methods
• Short, regular iteration cycles.
• Intrinsic business collaboration
• Data driven feedback
Lifecycle automation
• Continuous Integration – Build/test pipelines
• Continuous Delivery/Deployment – Deploy, verify
• Continuous Adoption – Runtime currency
DevOps and site reliability engineering
• Collaboration and combination of dev. and ops. roles
• Shift left for operational concerns
• Rapid operational feedback and resolution
Team autonomy
• Decentralized ownership
• Technological freedom
• Self-provisioning
Fine-grained components
• Function driven granularity
• Self-contained components
• Independent lifecycles, scaling and resilience
Appropriate decoupling
• Clear ownership boundaries
• Formalised interfaces (API and event)
• Independent persistence
Minimal state
• Uncomplicated horizontal scaling
• No caller or session affinity
• No two phase commits
Immutable deployment
• Image based deployment
• No runtime administration
• Updates and rollbacks by replacement
Zero trust
• Minimized privileges
• Implicit data security
• Shift Left for security (DevSecOps)
Elastic, agnostic, secure platform
• Elastic resource capacity
• Agnostic deployment, and operations
• Secure by default
Lightweight runtimes
• Fast start up/shut down
• File-system based install and configuration
• File-system based code deployment
Operational automation
• Infrastructure as code
• Repository triggered operations (GitOps)
• Site reliability engineering
Observability and monitoring
• Easily accessible status
• Platform neutral logging and tracing
• Cross component correlation
What are the challenges of cloud-native?
•Just moving your current application into a container won't gain you the benefits of cloud native. Unless your application
behaves like a cloud native component, your pipelines are automated, and your methods are agile etc. then you will see little
benefit from the move. https://developer.ibm.com/technologies/containers/series/benefits-of-containers
Lift and shift to containers
•Breaking something up into fine grained components is largely pointless if they remain dependant on one another – just end up
with a distributed monolith. Reducing dependencies involves significant refactoring, it doesn’t just happen. The components
don’t have to all end up fine grained, some can be larger if that makes more sense. https://kylegenebrown.medium.com/whats-
the-right-size-for-a-microservice-bf1740370d47
Distributed monolith
•Diagnosing problems on a highly distributed system is fraught with challenges, and is even harder when the components are
ephemeral. Significant thought needs to be put into what information is captured and how it can be analysed.
What happened where?
•Some components are inherently stateful. Indeed for some it is their job to manage state (think databases, queues, event stores
etc.). Choices will have to be made around what aspects of cloud native deployment are highest priority. CAP theorem still
applies.
Something has to own the
state
•Not all components need the indefinite elastic scalability so often promised by cloud native. Very few applications will ever be hit
by extreme unplanned load. Designing for limitless horizontal scalability is complex and potentially expensive. For most, the
priority is horizontal stability, which will get you much of what you need for horizontal scaling should you need that later.
https://medium.com/swlh/a-cloud-native-coda-why-you-probably-dont-need-elastic-scaling-46b9315df635
Horizontal scalability or just
horizontal stability?
•Not everything suits short iteration cycles. Some things require and even benefit from an element of the less fashionable
waterfall approach. It doesn’t have to be a high level choice, it could be a component by component decision.
Some waterfalls are beautiful
Business outcomes
Market Growth
Reduced time to market
Innovation readiness
Risk Mitigation
Resilience and security
Deployment confidence
Cost Reduction
Optimized high value staff
Elastic cost models
IT goals
Agility and productivity
Faster delivery of business aligned components
Autonomous teams with freedom to innovate
Responsive to rapid feedback
Resilience and scalability
Fine-grained elastic scalability and resilience
Consistent environments and reversible deployments
Continuous adoption of software updates
Optimization and efficiency
Sharable skills on the underlying platform
Optimized infrastructure usage and licensing
Rapid self-provisioning of resources and capabilities
The benefits of a cloud-native approach
Cloud native summary
Business
Outcomes
Market Growth
Reduced time to market
Innovation readiness
Risk Mitigation
Resilience and security
Deployment confidence
Cost Reduction
Optimized high value staff
Elastic cost models
IT Goals
Agility and productivity
Faster delivery of business aligned components
Autonomous teams with freedom to innovate
Responsive to rapid feedback
Resilience and scalability
Fine-grained elastic scalability and resilience
Consistent environments and reversible deployments
Continuous adoption of software updates
Optimization and efficiency
Sharable skills on the underlying platform
Optimized infrastructure usage and licensing
Rapid self-provisioning of resources and capabilities
Architecture
and
Design
Infrastructure
and
Technology
People
and
Process
People
and process
• Agile methods
• Lifecycle automation
• DevOps and SRE
• Team Autonomy
Architecture
and design
• Fine-grained components
• Appropriate decoupling
• Minimal state
• Immutable deployment
• Zero trust
Technology
and infrastructure
• Elastic, agnostic, secure platform
• Lightweight runtimes
• Automated operations
• Observability and monitoring
http://ibm.biz/cloudnativedefined
More information
25
© 2021 IBM Corporation
Cloud native
http://ibm.biz/cloudnativedefined (article series)
http://ibm.biz/cloudnativedefined-slides (slides)
http://ibm.biz/cloudnativedefined-webinar (webinar)
Cloud native integration (“Agile Integration”)
https://ibm.biz/agile-integration-cloud-native (webinar)
https://www.slideshare.net/kimjclark/cloud-native-integration (slides)
http://ibm.biz/agile-integration (article)
http://ibm.biz/agile-integration-webinar (webinar)
http://ibm.biz/agile-integration-redbook (chapters 1-4)
http://ibm.biz/agile-integration-webcasts
Other key links on agile integration
http://ibm.biz/agile-integration-links
IBM Integration
https://developer.ibm.com/integration
Cloud Pak for Integration
https://www.ibm.com/cloud/cloud-pak-for-integration
Staying up to date:
26

Cloud native defined

  • 1.
    Kim Clark Integration Architect IBM KyleBrown IBM Fellow CTO Cloud Architecture What does cloud native really mean? © 2020 IBM Corporation http://ibm.biz/cloudnativedefined (article series) http://ibm.biz/cloudnativedefined-slides (this slide deck) http://ibm.biz/cloudnativedefined-webinar (webinar)
  • 2.
    Cloud native –the bigger picture Market Growth Risk Mitigation Cost Reduction Agility and productivity Resilience and scalability Optimization and efficiency Business Outcomes IT Goals People and Process Architecture and Design Infrastructure and Technology
  • 3.
    “Cloud native” means Agilityand Productivity – Enable rapid innovation that is guided by business metrics. – De-risk changes and maintenance and keep environments current. Resilience and Scalability – Target continuous availability that is self-healing and downtime-free. – Provide elastic scaling and the perception of limitless capacity. Optimization and Efficiency – Optimize the costs of infrastructural and human resources. – Enable free movement between locations and providers. © 2020 IBM Corporation 4 People and Process Architecture and Design Infrastructure and Technology Platforms that abstract complexities of infrastructure Solutions that leverage infrastructure abstractions Automation of full component lifecycle Autonomy and agility in development and operations fully leveraging the uniqueness of cloud …through… to achieve…
  • 4.
    Definitions: What dothe words “cloud native” mean in this context? “cloud” relates to an abstracted infrastructure platform enabling for example • Self-provisioning • Elasticity • Auto-recovery that also provides an abstracted deployment platform that offers for example • Immutable deployment • Declarative provisioning • Runtime agnostic • Component orchestration “native” relates to the architecture and design of solutions that that fully leverage infrastructure abstractions that common (native) to all cloud platforms. For example, writing components which • have minimize statefulness • are lightweight and disposable • have well defined interfaces • … Note: Native does not refer to vendor specific aspects of cloud providers. That would be “cloud provider native”, which limits portability. © 2020 IBM Corporation 5 But to make all this hang together, we also need to change the way people and processes work • Collaborative roles improve alignment between business and IT • Refined processes ensure faster delivery and feedback
  • 5.
    Ingredients of cloudnative Agile methods Lifecycle automation DevOps and site reliability eng. Team autonomy Fine-grained components Appropriate decoupling Minimal state Immutable deployment Zero trust Elastic, agnostic, secure platform Lightweight runtimes Operational automation Observability and monitoring People and process Architecture and design Technology and infrastructure
  • 6.
    Microservice architecture Ingredients of cloudnative – hard lessons learned Initial concepts Adoption hurdles Success factors Agile methods Lifecycle automation DevOps and site reliability eng. Team autonomy Fine-grained components Appropriate decoupling Minimal state Immutable deployment Zero trust Elastic, agnostic, secure platform Lightweight runtimes Operational automation Observability and monitoring Container technology Ubiquitously automated Roles and responsibilities Sustainably empowered Secured by default Managed in aggregate People Architecture Technology
  • 7.
    Ingredients of cloudnative People and process Architecture and design Technology and infrastructure Agile methods • Short, regular iteration cycles. • Intrinsic business collaboration • Data driven feedback Lifecycle automation • Continuous Integration – Build/test pipelines • Continuous Delivery/Deployment – Deploy, verify • Continuous Adoption – Runtime currency DevOps and site reliability engineering • Collaboration and combination of dev. and ops. roles • Shift left for operational concerns • Rapid operational feedback and resolution Team autonomy • Decentralized ownership • Technological freedom • Self-provisioning Fine-grained components • Function driven granularity • Self-contained components • Independent lifecycles, scaling and resilience Appropriate decoupling • Clear ownership boundaries • Formalised interfaces (API and event) • Independent persistence Minimal state • Uncomplicated horizontal scaling • No caller or session affinity • No two phase commits Immutable deployment • Image based deployment • No runtime administration • Updates and rollbacks by replacement Zero trust • Minimized privileges • Implicit data security • Shift Left for security (DevSecOps) Elastic, agnostic, secure platform • Elastic resource capacity • Agnostic deployment, and operations • Secure by default Lightweight runtimes • Fast start up/shut down • File-system based install and configuration • File-system based code deployment Operational automation • Infrastructure as code • Repository triggered operations (GitOps) • Site reliability engineering Observability and monitoring • Easily accessible status • Platform neutral logging and tracing • Cross component correlation
  • 8.
    What are thechallenges of cloud-native? •Just moving your current application into a container won't gain you the benefits of cloud native. Unless your application behaves like a cloud native component, your pipelines are automated, and your methods are agile etc. then you will see little benefit from the move. https://developer.ibm.com/technologies/containers/series/benefits-of-containers Lift and shift to containers •Breaking something up into fine grained components is largely pointless if they remain dependant on one another – just end up with a distributed monolith. Reducing dependencies involves significant refactoring, it doesn’t just happen. The components don’t have to all end up fine grained, some can be larger if that makes more sense. https://kylegenebrown.medium.com/whats- the-right-size-for-a-microservice-bf1740370d47 Distributed monolith •Diagnosing problems on a highly distributed system is fraught with challenges, and is even harder when the components are ephemeral. Significant thought needs to be put into what information is captured and how it can be analysed. What happened where? •Some components are inherently stateful. Indeed for some it is their job to manage state (think databases, queues, event stores etc.). Choices will have to be made around what aspects of cloud native deployment are highest priority. CAP theorem still applies. Something has to own the state •Not all components need the indefinite elastic scalability so often promised by cloud native. Very few applications will ever be hit by extreme unplanned load. Designing for limitless horizontal scalability is complex and potentially expensive. For most, the priority is horizontal stability, which will get you much of what you need for horizontal scaling should you need that later. https://medium.com/swlh/a-cloud-native-coda-why-you-probably-dont-need-elastic-scaling-46b9315df635 Horizontal scalability or just horizontal stability? •Not everything suits short iteration cycles. Some things require and even benefit from an element of the less fashionable waterfall approach. It doesn’t have to be a high level choice, it could be a component by component decision. Some waterfalls are beautiful
  • 9.
    Business outcomes Market Growth Reducedtime to market Innovation readiness Risk Mitigation Resilience and security Deployment confidence Cost Reduction Optimized high value staff Elastic cost models IT goals Agility and productivity Faster delivery of business aligned components Autonomous teams with freedom to innovate Responsive to rapid feedback Resilience and scalability Fine-grained elastic scalability and resilience Consistent environments and reversible deployments Continuous adoption of software updates Optimization and efficiency Sharable skills on the underlying platform Optimized infrastructure usage and licensing Rapid self-provisioning of resources and capabilities The benefits of a cloud-native approach
  • 10.
    Cloud native summary Business Outcomes MarketGrowth Reduced time to market Innovation readiness Risk Mitigation Resilience and security Deployment confidence Cost Reduction Optimized high value staff Elastic cost models IT Goals Agility and productivity Faster delivery of business aligned components Autonomous teams with freedom to innovate Responsive to rapid feedback Resilience and scalability Fine-grained elastic scalability and resilience Consistent environments and reversible deployments Continuous adoption of software updates Optimization and efficiency Sharable skills on the underlying platform Optimized infrastructure usage and licensing Rapid self-provisioning of resources and capabilities Architecture and Design Infrastructure and Technology People and Process People and process • Agile methods • Lifecycle automation • DevOps and SRE • Team Autonomy Architecture and design • Fine-grained components • Appropriate decoupling • Minimal state • Immutable deployment • Zero trust Technology and infrastructure • Elastic, agnostic, secure platform • Lightweight runtimes • Automated operations • Observability and monitoring http://ibm.biz/cloudnativedefined
  • 11.
    More information 25 © 2021IBM Corporation Cloud native http://ibm.biz/cloudnativedefined (article series) http://ibm.biz/cloudnativedefined-slides (slides) http://ibm.biz/cloudnativedefined-webinar (webinar) Cloud native integration (“Agile Integration”) https://ibm.biz/agile-integration-cloud-native (webinar) https://www.slideshare.net/kimjclark/cloud-native-integration (slides) http://ibm.biz/agile-integration (article) http://ibm.biz/agile-integration-webinar (webinar) http://ibm.biz/agile-integration-redbook (chapters 1-4) http://ibm.biz/agile-integration-webcasts Other key links on agile integration http://ibm.biz/agile-integration-links IBM Integration https://developer.ibm.com/integration Cloud Pak for Integration https://www.ibm.com/cloud/cloud-pak-for-integration Staying up to date:
  • 12.