Success Factors for a Mature Microservices Implementation
You're likely working actively to modernize application workloads to take advantage of public and private cloud, or at least developing a strategy to do so. Many CIOs, faced with large portfolios of existing applications, are wrestling with finding the right approach to increase innovation and update the cloud-native skills of their existing teams while continuing to provide good service for existing applications.
As longstanding partners, ECS Team and Pivotal are collaborating once again to provide insights into cloud-native development and application modernization.
The workshop addresses:
Keys to a successful cloud-native application replatforming strategy
Considerations for adopting a multi-cloud strategy
The role that microservices have in driving this adoption
Best practices for application replatforming and application modernization
At the conclusion of this workshop, you will have a better understanding of the importance of cloud-native development, hear considerations for how to adopt it moving forward, and see how Pivotal and ECS Team can support your company with this journey.
Speakers include:
Mark Carlson, Chief Technology Officer, ECS Team
Dustin Ruehle, Senior Cloud Architect, ECS Team
John Funk, Advisory Platform Architect, Pivotal
Please note that registration and breakfast will take place at Pivotal Labs Santa Monica at 8:45am with the main session starting at 10:30am at ROC Santa Monica. We hope to see you on Tuesday, April 11th in Santa Monica!
3. About me...
•My cloud-native journey began 2+ years ago
•Working with Pivotal as a trusted partner
•Pairing with large customers enabling transformation using Pivotal
Cloud Foundry
•Platform, operations, application migration/modernization
•For who:
• a very large private company,
• a near Fortune 100 company,
• and several others with a Fortune 500 average of 24
9. What is the problem?
“Taking to long to offer new features”
“We get a lot of users at once during a promotion and we crash”
What are some of your problems?
18. What is Cloud Native?
• 12 factor applications
• Microservices
• Self-service architecture
• API-Based collaboration
• Antifragility
- Matt Stine
Migrating to Cloud-Native Application Architectures
19. Why Cloud Native?
Faster, easier, safer
”Cloud Native describes the patterns of high
performing organizations delivering software faster,
consistently and reliably at scale.”
- Pivotal
20. Cloud Native why?
”Cloud Native describes the patterns of high
performing organizations delivering software faster,
consistently and reliably at scale.”
- Pivotal
Faster, easier, safer
AND IT SOLVES A BUSINESS PROBLEM
30. Why containers aren’t enough?
To go to prod…
• Setup non-prod env
• Develop my business capability
• Determine
• logging
• monitoring (app and where it runs)
• security
• Integrate with other services to test
• Performance test my new business capability
• Setup my prod env
• Scale up and down based on user demand
• Troubleshoot my application working with other business
capabilities
• Patch my environment – CVEs for example
31. Problems I have yet to solve…
To go to prod…
• Setup non-prod env
• Develop my business capability
• Determine
• logging
• monitoring (app and where it runs)
• security
• Integrate with other services to test
• Performance test my new business capability
• Setup my prod env
• Scale up and down based on user demand
• Troubleshoot my application working with other business
capabilities
• Patch my environment – CVEs for example
37. Somebody really smart said…
“A cloud-native application is an application
that has been designed and implemented to run
on a Platform-as-a-Service installation and to
embrace horizontal elastic scaling.”
- Kevin Hoffman
Beyond the Twelve-Factor App
38. Somebody really smart said…
Hint: This is another success factor
“A cloud-native application is an application
that has been designed and implemented to run
on a Platform-as-a-Service installation and to
embrace horizontal elastic scaling.”
- Kevin Hoffman
Beyond the Twelve-Factor App
41. What are the problems we are solving again?
We inherited…
• Setup non-prod env
• Determine
• logging
• monitoring (app and where it runs)
• security
• Integrate with other services to test
• Performance test my new business capability
• Setup my prod env
• Scale up and down based on user demand
• Troubleshoot my application working with other business
capabilities
• Patch my environment – CVEs for example
Helps me solve problems
We started with…
- Taking to long to offer new features
- We get a lot of users at once during a
promotion and we crash
Cloud Native
42. What are the problems we are solving again?
We inherited…
• Setup non-prod env
• Determine
• logging
• monitoring (app and where it runs)
• security
• Integrate with other services to test
• Performance test my new business capability
• Setup my prod env
• Scale up and down based on user demand
• Troubleshoot my application working with other business
capabilities
• Patch my environment – CVEs for example
We started with…
- Taking to long to offer new features
- We get a lot of users at once during a
promotion and we crash
Cloud Native
Helps me solve problems
43. A platform solved a lot…but some remain…
Problems that remain…
- How do I troubleshoot my application
working with other business
capabilities?
- How does my application know how to
connect to other applications?
- How do I manage configuration for my
application?
- How do I handle when an application I
consume behaves badly?
- How do I connect to my backing
services?
44. How can I solve these problems?
Problems that remain…
- How do I troubleshoot my application
working with other business
capabilities?
- How does my application know how to
connect to other applications?
- How do I manage configuration for my
application?
- How do I handle when an application I
consume behaves badly?
- How do I connect to my backing
services?
45. How can I solve these problems?
Hint: This is another success factor
Problems that remain…
- How do I troubleshoot my application
working with other business
capabilities?
- How does my application know how to
connect to other applications?
- How do I manage configuration for my
application?
- How do I handle when an application I
consume behaves badly?
- How do I connect to my backing
services?
50. What magic is this?
Service Discovery - Eureka
Circuit Breaker - Hystrix
Distributed tracing – Spring Cloud Slueth
Centralized external configuration management – Spring Cloud Config
51. What magic is this?
Service Discovery - Eureka
Circuit Breaker - Hystrix
Distributed tracing – Spring Cloud Slueth
Connect to backend services like databases and message brokers – Spring Cloud Connectors
Centralized external configuration management – Spring Cloud Config