SlideShare a Scribd company logo
1 of 18
Building Data Environments
For Production Microservices with Geode
By Ryan Hunt
Health Care Service Corporation
ryan_hunt@hcsc.net
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 2
#6on Diversity MBA’s
50 Out Front for Diversity Leadership Best Places
to Work for Women & Diverse Managers
Operating Blue Cross and
Blue Shield plans in FIVE
states: IL, MT,
NM, OK, TX
Health Care Service Corporation
OUR PURPOSE
To do everything in our power to stand with our
members in sickness and in health®
1936
year founded
+$1billion
in IT spend
Over
21,000
employees
15million
members
2,100
IT employees
208.3million
claims processed
annually
LARGESTcustomer-owned
health insurer in the U.S. and
4th largest overall
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 3
The Digital Portfolio
Products
• RESTful APIs
• Web Applications
• Native Mobile
• Data Services
Methodology
• Engineering + Product + Design
• Extreme Programming
• Test Driven Development
• Pair Programming
3
Creating new digital products and rebuilding legacy ones across the enterprise
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 4
The Digital APIs
API Consumers
MOBILE APIWEB
MS MS
MS
MS
API API
SERVICES
API GATEWAY
Information APIs
• data + business rules
• source of truth
• read only
• microservices
• high performance
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 5
Microservice Architecture
SOURCE DATA
API Consumers
MOBILE APIWEB
MS MS
MS
MS
API API
?
SERVICES
API GATEWAY
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 6
Microservice Architecture
SOURCE DATA
SERVICES
API GATEWAY
API Consumers
MOBILE APIWEB
MS MS
MS
MS
API API
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 7
Microservice Architecture
SOURCE DATA
SERVICES
API GATEWAY
MS MS
MS
MS
API Consumers
MOBILE APIWEB
API API
TRANSFORM
READ-ONLY
DATASTORES
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
More databases, more ...
8
Operational Challenges
• Distributed infrastructure gets complicated.
• Data stores are a mix of configuration and code.
• Distributed monitoring and analytics.
• Developers own it all.
Approaches
• Automate things aggressively.
• Use pipelines for all changes.
• Treat configuration like code.
• Do versioning.
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Tools
9
Concourse Ansible Jinja2
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Ansible
10
prepare_filesystem.yml
- name: create geode base
file:
state: directory
path: /opt/geode
owner: geode-service
mode: 0644
An automation tool for IT infrastructure with a host of built-in commands.
Also YAML.
start_services.yml
- name: enable locator service
systemd:
name: geode-locator
state: started
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Concourse the “continuous thing-doer”
11
jobs:
- name: job-hello-world
public: true
plan:
- task: hello-world
config:
platform: linux
image_resource:
type: docker-image
source: {repository: busybox}
run:
path: echo
args:
- hello world
Simple YAML configuration And a web UI
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Jinja2
12
A configuration is passed through template code to generate content. Available as a
python library and cli.
config.yml
greeting: hello
people:
- name: alice
- name: bob
template.yml
messages:
{% for p in people %}
- {{ greeting }} {{p.name }}
{% endfor %}
output.yml
messages:
- hello alice
- hello bob
$ jinja2 config.yml template.yml > output.yml
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Concourse + Jinja2
13
name: build things
plan:
{% for thing in things %}
-get: {{thing.name}}
resource: {{thing.name}}-s3
{% endfor %}
Iterators can cut down on code and keep things consistent.
name: build things
plan:
-get: thing1-s3
resource: thing1-s3
-get: thing2-s3
resource: thing2-s3
-get: thing3-s3
resource: thing3-s3
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Flow control
14
- get: geode-build-version
trigger: true
{% if serial == true %}
passed:
- test-cluster-{{environments[loop.index0-1].name }}
{% endif %}
Basic logic adds some flexibility
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Variables all the way down
15
params:
ENVIRONMENT: {{env.name}}
LIB_RESOURCES:
{% for resource in lib_resources -%}
- {{ resource.name }}
{% endfor %}
Pass dynamic data down into tasks and shell scripts
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
A Demonstration
16
Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons
Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
In Conclusion
• Give your microservices their own data
• Automate everything about the data stores
• Treat configuration and provisioning like code
• Use pipelines for operational tasks
• Create templates and generate pipelines for reuse
17
> Stay Connected.
Reach me at ryan_hunt@hcsc.net
Related Talks
9/24 @ 1:45p – Cloud Native Architecture – Anupama Pradhan and Jeff Cherng
9/26 @ 2:30p - Teaching TDD to Different Learning Styles – Tiffany Larson
#springon
e
@s1
p

More Related Content

Similar to Building Data Environments for Production Microservices with Geode

Similar to Building Data Environments for Production Microservices with Geode (20)

Data Modernization for Spring-Based Microservices on Pivotal Platform
Data Modernization for Spring-Based Microservices on Pivotal PlatformData Modernization for Spring-Based Microservices on Pivotal Platform
Data Modernization for Spring-Based Microservices on Pivotal Platform
 
How to Manage Microservices and APIs with Apigee and Istio
How to Manage Microservices and APIs with Apigee and IstioHow to Manage Microservices and APIs with Apigee and Istio
How to Manage Microservices and APIs with Apigee and Istio
 
Security in the Hybrid Cloud at Liberty Mutual
Security in the Hybrid Cloud at Liberty MutualSecurity in the Hybrid Cloud at Liberty Mutual
Security in the Hybrid Cloud at Liberty Mutual
 
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
YugaByte DB—A Planet-Scale Database for Low Latency Transactional AppsYugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
 
Architectures That Bend but Don't Break
Architectures That Bend but Don't BreakArchitectures That Bend but Don't Break
Architectures That Bend but Don't Break
 
Monoliths, Microservices, Events, Functions: What It Takes to Go Through the ...
Monoliths, Microservices, Events, Functions: What It Takes to Go Through the ...Monoliths, Microservices, Events, Functions: What It Takes to Go Through the ...
Monoliths, Microservices, Events, Functions: What It Takes to Go Through the ...
 
Spring Cloud Gateway - Stéphane Maldini
Spring Cloud Gateway - Stéphane MaldiniSpring Cloud Gateway - Stéphane Maldini
Spring Cloud Gateway - Stéphane Maldini
 
Spring Cloud Gateway - Ryan Baxter
Spring Cloud Gateway - Ryan BaxterSpring Cloud Gateway - Ryan Baxter
Spring Cloud Gateway - Ryan Baxter
 
What’s Your App Pulse? How We Built Metrics Observability in Large Enterprise...
What’s Your App Pulse? How We Built Metrics Observability in Large Enterprise...What’s Your App Pulse? How We Built Metrics Observability in Large Enterprise...
What’s Your App Pulse? How We Built Metrics Observability in Large Enterprise...
 
Spring Cloud Gateway
Spring Cloud GatewaySpring Cloud Gateway
Spring Cloud Gateway
 
Tea Ceremonies: Steeping IT Ops in Your Developer's Hot Water
Tea Ceremonies: Steeping IT Ops in Your Developer's Hot WaterTea Ceremonies: Steeping IT Ops in Your Developer's Hot Water
Tea Ceremonies: Steeping IT Ops in Your Developer's Hot Water
 
The Cloud Challenge
The Cloud ChallengeThe Cloud Challenge
The Cloud Challenge
 
Simple Data Movement Patterns: Legacy Application to Cloud-Native Environment...
Simple Data Movement Patterns: Legacy Application to Cloud-Native Environment...Simple Data Movement Patterns: Legacy Application to Cloud-Native Environment...
Simple Data Movement Patterns: Legacy Application to Cloud-Native Environment...
 
A Tale of Transformation: Changing the Way We Deliver and Transform Product D...
A Tale of Transformation: Changing the Way We Deliver and Transform Product D...A Tale of Transformation: Changing the Way We Deliver and Transform Product D...
A Tale of Transformation: Changing the Way We Deliver and Transform Product D...
 
Building a Data Exchange with Spring Cloud Data Flow
Building a Data Exchange with Spring Cloud Data FlowBuilding a Data Exchange with Spring Cloud Data Flow
Building a Data Exchange with Spring Cloud Data Flow
 
Living on the Edge With Spring Cloud Gateway - Cora Iberkleid
Living on the Edge With Spring Cloud Gateway - Cora IberkleidLiving on the Edge With Spring Cloud Gateway - Cora Iberkleid
Living on the Edge With Spring Cloud Gateway - Cora Iberkleid
 
Living on the Edge With Spring Cloud Gateway - Cora Iberkleid
Living on the Edge With Spring Cloud Gateway - Cora IberkleidLiving on the Edge With Spring Cloud Gateway - Cora Iberkleid
Living on the Edge With Spring Cloud Gateway - Cora Iberkleid
 
Securing Pivotal Platform at Prime Therapeutics
Securing Pivotal Platform at Prime TherapeuticsSecuring Pivotal Platform at Prime Therapeutics
Securing Pivotal Platform at Prime Therapeutics
 
It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?
 
Spring Cloud Gateway - Ryan Baxter
Spring Cloud Gateway - Ryan BaxterSpring Cloud Gateway - Ryan Baxter
Spring Cloud Gateway - Ryan Baxter
 

More from VMware Tanzu

More from VMware Tanzu (20)

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 

Recently uploaded

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Recently uploaded (20)

8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 

Building Data Environments for Production Microservices with Geode

  • 1. Building Data Environments For Production Microservices with Geode By Ryan Hunt Health Care Service Corporation ryan_hunt@hcsc.net
  • 2. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 2 #6on Diversity MBA’s 50 Out Front for Diversity Leadership Best Places to Work for Women & Diverse Managers Operating Blue Cross and Blue Shield plans in FIVE states: IL, MT, NM, OK, TX Health Care Service Corporation OUR PURPOSE To do everything in our power to stand with our members in sickness and in health® 1936 year founded +$1billion in IT spend Over 21,000 employees 15million members 2,100 IT employees 208.3million claims processed annually LARGESTcustomer-owned health insurer in the U.S. and 4th largest overall
  • 3. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 3 The Digital Portfolio Products • RESTful APIs • Web Applications • Native Mobile • Data Services Methodology • Engineering + Product + Design • Extreme Programming • Test Driven Development • Pair Programming 3 Creating new digital products and rebuilding legacy ones across the enterprise
  • 4. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 4 The Digital APIs API Consumers MOBILE APIWEB MS MS MS MS API API SERVICES API GATEWAY Information APIs • data + business rules • source of truth • read only • microservices • high performance
  • 5. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 5 Microservice Architecture SOURCE DATA API Consumers MOBILE APIWEB MS MS MS MS API API ? SERVICES API GATEWAY
  • 6. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 6 Microservice Architecture SOURCE DATA SERVICES API GATEWAY API Consumers MOBILE APIWEB MS MS MS MS API API
  • 7. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 7 Microservice Architecture SOURCE DATA SERVICES API GATEWAY MS MS MS MS API Consumers MOBILE APIWEB API API TRANSFORM READ-ONLY DATASTORES
  • 8. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ More databases, more ... 8 Operational Challenges • Distributed infrastructure gets complicated. • Data stores are a mix of configuration and code. • Distributed monitoring and analytics. • Developers own it all. Approaches • Automate things aggressively. • Use pipelines for all changes. • Treat configuration like code. • Do versioning.
  • 9. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Tools 9 Concourse Ansible Jinja2
  • 10. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Ansible 10 prepare_filesystem.yml - name: create geode base file: state: directory path: /opt/geode owner: geode-service mode: 0644 An automation tool for IT infrastructure with a host of built-in commands. Also YAML. start_services.yml - name: enable locator service systemd: name: geode-locator state: started
  • 11. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Concourse the “continuous thing-doer” 11 jobs: - name: job-hello-world public: true plan: - task: hello-world config: platform: linux image_resource: type: docker-image source: {repository: busybox} run: path: echo args: - hello world Simple YAML configuration And a web UI
  • 12. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Jinja2 12 A configuration is passed through template code to generate content. Available as a python library and cli. config.yml greeting: hello people: - name: alice - name: bob template.yml messages: {% for p in people %} - {{ greeting }} {{p.name }} {% endfor %} output.yml messages: - hello alice - hello bob $ jinja2 config.yml template.yml > output.yml
  • 13. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Concourse + Jinja2 13 name: build things plan: {% for thing in things %} -get: {{thing.name}} resource: {{thing.name}}-s3 {% endfor %} Iterators can cut down on code and keep things consistent. name: build things plan: -get: thing1-s3 resource: thing1-s3 -get: thing2-s3 resource: thing2-s3 -get: thing3-s3 resource: thing3-s3
  • 14. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Flow control 14 - get: geode-build-version trigger: true {% if serial == true %} passed: - test-cluster-{{environments[loop.index0-1].name }} {% endif %} Basic logic adds some flexibility
  • 15. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Variables all the way down 15 params: ENVIRONMENT: {{env.name}} LIB_RESOURCES: {% for resource in lib_resources -%} - {{ resource.name }} {% endfor %} Pass dynamic data down into tasks and shell scripts
  • 16. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ A Demonstration 16
  • 17. Unless otherwise indicated, these slides are © 2013 -2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ In Conclusion • Give your microservices their own data • Automate everything about the data stores • Treat configuration and provisioning like code • Use pipelines for operational tasks • Create templates and generate pipelines for reuse 17
  • 18. > Stay Connected. Reach me at ryan_hunt@hcsc.net Related Talks 9/24 @ 1:45p – Cloud Native Architecture – Anupama Pradhan and Jeff Cherng 9/26 @ 2:30p - Teaching TDD to Different Learning Styles – Tiffany Larson #springon e @s1 p

Editor's Notes

  1. continuation of cloud native architecture talk
  2. Founded in 1936 ... seen some transformation through technology
  3. Answering queries with "information" from data and business rules no writing
  4. About the data ... Everybody needs lots of it Everybody's answering different questions
  5. About the data ... Works but does not scale Just try changing something Will not perform Everybody needs lots of data Everybody's answering different questions
  6. Single responsibility Modelled based on service access patterns Internals can change independently Microservices are stateless But ... now you have more databases And an ETL process
  7. Comes with baggage provisioning day 2 ops 2 members 600k records kill and fill nightly 24 members 70M records streaming near real time 125 members 4B records streaming near real time (future) changes need to be done consistently computers are good at that, let them do it
  8. briefly introduce and explain why they get along so well
  9. enabler
  10. How these tools and ideas come together to let you create reusable pipelines for building complex things