SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Taking the Helm - Ancestry’s
Journey to Kubernetes
Paul MacKay, Software Engineer
Our Journey
Where we come from.
What we have learned along the way.
Where we are in the journey.
Where we come from.
We’re a science and technology company with a very
human mission.
Data drives our business
• 20 billion historical records
• 90 million family trees
• 10 billion profiles
• 175 million shareable photos, documents and written stories
• 9 petabytes of data
• 4 million members in the AncestryDNA® network
• 37 million 3rd cousin or closer matches
Technologies
Microsoft Windows ®
C# .NET ®
SQL Server®, IIS, MSMQ, TFS, etc.
Java, Node.js, Python running on Linux
Private data center
1,000s of servers/VMs running 100s of services
REST-based macro to micro size services
Deployment Processes
Continuous integration/deployment
Deployment management tools
Virtual Machines
Typically one (macro/micro) service per VM
Long deployment times to roll services to production
20-50 minutes
How Our Journey Started to Change
Began experimenting with Docker.
Docker Compose
Created a “Docker agent” for remote deployment.
Demonstrated how easy it is to deploy and scale up services.
Deployment times drastically reduced from current methods.
Easier to deploy services of any size (macro to micro)
Showed greater density using current computing resources.
Created and deployed our own micro services using Docker.
What we learned along the way.
Adopting New Technologies is Hard
Developers are comfortable with how things are done today.
We think it is faster doing it the “old” way.
It is hard to see the advantages of changing to something new.
Change has real cost.
Change takes time away from developing new features.
Change is disruptive to schedules.
Early Discoveries
Many opinions about the appropriate size of a service.
Normal Linux distros are just too big.
Not specifically built for Docker.
Too large of a footprint.
Too many packages to keep updated.
Docker is best supported on newer Linux kernels.
Need to train Windows developers Linux concepts/tools.
The size of a service cannot be dictated
Container orchestration is hard to do it right.
Adopting New Technologies or Paradigms
Understand current technologies, processes and paradigms.
Need a “patron”.
Own something “to be real”.
Create a partnership with pilot teams and be agile.
Determining the Size of a Service
Be pragmatic; do not break up a service just to break up a service.
Remember the cost of managing many services.
Network latencies
Many things to worry about (e.g. monitoring, coordinated deployments, scaling)
Ask, “will this really be used independently by other services?”
Does it make sense for the service to exist by itself
Be pragmatic, not dogmatic.
Linux Built for Containers
Running containers is a first-class citizen
Updates are holistic
Can be automatically pushed to machines.
Can easily revert back to the previous version.
Less is more
Fewer packages means fewer vulnerabilities
Infrequent need for direct access to the machines
Kubernetes to the Rescue
Created a small ”sandbox” cluster.
Gathered “committed” pilot teams.
Daily standups
Address problems/concerns early
Provided Docker and Kubernetes training
Developed templates and scripts
Where we are in the journey.
Conventions/Standards
Developed deployment standards
Namespace for each service
Naming conventions (functionalGroup-serviceName)
One container per pod
Start with wide privileges and narrow as needed
Allow deployment all the way to production
Secrets are controlled by operations/security
Separate clusters for each environment (dev, stage, prod)
Use intra-cluster DNS for micro-services to reduce network latencies
Production Environment
Private Registry (Quay Enterprise)
Monitoring (Prometheus)
Logging
Custom cluster-wide log forwarder
Namespace Portal
Authorization (webhook)
Require soft resource quotas
Quick Start Tools
Created tool to help teams quickly deploy
Works across all cluster environments
Provide ”best practices” and conventions
Transparent – can generate standard resource files
Created scripts to insert secrets into namespaces
Labels are used to version secrets
Cluster backup/restore scripts
Scripts to easily create clusters in various environments
Allow easy deployment of any size of service
Our Journey So Far
Several clusters
Private data center and in the cloud
Hundreds of namespaces and services
Hundreds of pods
Macro to micro size services
Live production traffic
e.g. “We’re Related App”
Made up of 14 micro services
Easiest deployment path for developers
The Power of Kubernetes
Programmers have REPL (Read-Eval-Print-Loop)
Kubernetes now gives us CDEL (Compile-Deploy-Execute-Loop)
Unlock your past. Inspire your future
Questions

Más contenido relacionado

La actualidad más candente

DockerCon SF 2015: Interconnecting Containers at Scale w/ NGINX
DockerCon SF 2015: Interconnecting Containers at Scale w/ NGINXDockerCon SF 2015: Interconnecting Containers at Scale w/ NGINX
DockerCon SF 2015: Interconnecting Containers at Scale w/ NGINX
Docker, Inc.
 

La actualidad más candente (20)

Jenkins in the real world - DevOpsCon 2017
Jenkins in the real world - DevOpsCon 2017Jenkins in the real world - DevOpsCon 2017
Jenkins in the real world - DevOpsCon 2017
 
Desplegar en la nube y no morir en el intento - Plain Concepts Dev Day
Desplegar en la nube y no morir en el intento - Plain Concepts Dev DayDesplegar en la nube y no morir en el intento - Plain Concepts Dev Day
Desplegar en la nube y no morir en el intento - Plain Concepts Dev Day
 
Faster safer and 100 user centric application at equifax with docker
Faster safer and 100 user centric application at equifax with dockerFaster safer and 100 user centric application at equifax with docker
Faster safer and 100 user centric application at equifax with docker
 
Embracing Observability in CI/CD with OpenTelemetry
Embracing Observability in CI/CD with OpenTelemetryEmbracing Observability in CI/CD with OpenTelemetry
Embracing Observability in CI/CD with OpenTelemetry
 
Open Source and Secure Coding Practices
Open Source and Secure Coding PracticesOpen Source and Secure Coding Practices
Open Source and Secure Coding Practices
 
OSMC 2017 | How is Zabbix doing – an outside look by Rihards Olups
OSMC 2017 | How is Zabbix doing – an outside look by Rihards OlupsOSMC 2017 | How is Zabbix doing – an outside look by Rihards Olups
OSMC 2017 | How is Zabbix doing – an outside look by Rihards Olups
 
Cleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven DevelopmentCleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven Development
 
Meetup Microservices Commandments
Meetup Microservices CommandmentsMeetup Microservices Commandments
Meetup Microservices Commandments
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training ppt
 
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
 
DockerCon 2017 - General Session Day 1 - Ben Golub
DockerCon 2017 - General Session Day 1 - Ben GolubDockerCon 2017 - General Session Day 1 - Ben Golub
DockerCon 2017 - General Session Day 1 - Ben Golub
 
Adopting Kubernetes with Puppet
Adopting Kubernetes with PuppetAdopting Kubernetes with Puppet
Adopting Kubernetes with Puppet
 
Securing Your Resources with Short-Lived Certificates!
Securing Your Resources with Short-Lived Certificates!Securing Your Resources with Short-Lived Certificates!
Securing Your Resources with Short-Lived Certificates!
 
DockerCon SF 2015: Interconnecting Containers at Scale w/ NGINX
DockerCon SF 2015: Interconnecting Containers at Scale w/ NGINXDockerCon SF 2015: Interconnecting Containers at Scale w/ NGINX
DockerCon SF 2015: Interconnecting Containers at Scale w/ NGINX
 
Communication Operations: Lift off with Docker! - Jesse White
Communication Operations: Lift off with Docker! - Jesse WhiteCommunication Operations: Lift off with Docker! - Jesse White
Communication Operations: Lift off with Docker! - Jesse White
 
Modernizing Traditional Applications
Modernizing Traditional ApplicationsModernizing Traditional Applications
Modernizing Traditional Applications
 
Webinar: Introduction to CloudBees Jenkins Platform
Webinar: Introduction to CloudBees Jenkins PlatformWebinar: Introduction to CloudBees Jenkins Platform
Webinar: Introduction to CloudBees Jenkins Platform
 
Cloud-Native Progressive Delivery
Cloud-Native Progressive DeliveryCloud-Native Progressive Delivery
Cloud-Native Progressive Delivery
 
Pulumi iac on gcp
Pulumi iac on gcpPulumi iac on gcp
Pulumi iac on gcp
 
Brian Ketelsen - Microservices in Go using Micro - Codemotion Milan 2017
Brian Ketelsen - Microservices in Go using Micro - Codemotion Milan 2017Brian Ketelsen - Microservices in Go using Micro - Codemotion Milan 2017
Brian Ketelsen - Microservices in Go using Micro - Codemotion Milan 2017
 

Similar a 2017 Microservices Practitioner Virtual Summit: Ancestry's Journey towards Microservices, Containerization, and Kubernetes - Paul MacKay, Ancestry

Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)
Jérôme Petazzoni
 
Docker-N-Beyond
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyond
santosh007
 

Similar a 2017 Microservices Practitioner Virtual Summit: Ancestry's Journey towards Microservices, Containerization, and Kubernetes - Paul MacKay, Ancestry (20)

Cloud Native Dünyada CI/CD
Cloud Native Dünyada CI/CDCloud Native Dünyada CI/CD
Cloud Native Dünyada CI/CD
 
Choosing PaaS: Cisco and Open Source Options: an overview
Choosing PaaS:  Cisco and Open Source Options: an overviewChoosing PaaS:  Cisco and Open Source Options: an overview
Choosing PaaS: Cisco and Open Source Options: an overview
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes The world of Docker and Kubernetes
The world of Docker and Kubernetes
 
Webinar Docker Tri Series
Webinar Docker Tri SeriesWebinar Docker Tri Series
Webinar Docker Tri Series
 
Webinar : Docker in Production
Webinar : Docker in ProductionWebinar : Docker in Production
Webinar : Docker in Production
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and Kubernetes
 
Datacenter Computing with Apache Mesos - シリコンバレー日本人駐在員Meetup
Datacenter Computing with Apache Mesos - シリコンバレー日本人駐在員MeetupDatacenter Computing with Apache Mesos - シリコンバレー日本人駐在員Meetup
Datacenter Computing with Apache Mesos - シリコンバレー日本人駐在員Meetup
 
Enabling Business Agility with SUSE CaaS Platform
Enabling Business Agility with SUSE CaaS PlatformEnabling Business Agility with SUSE CaaS Platform
Enabling Business Agility with SUSE CaaS Platform
 
Containerization Principles Overview for app development and deployment
Containerization Principles Overview for app development and deploymentContainerization Principles Overview for app development and deployment
Containerization Principles Overview for app development and deployment
 
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
 
Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Source
 
Lessons learned from writing over 300,000 lines of infrastructure code
Lessons learned from writing over 300,000 lines of infrastructure codeLessons learned from writing over 300,000 lines of infrastructure code
Lessons learned from writing over 300,000 lines of infrastructure code
 
Kubernetes solutions
Kubernetes solutionsKubernetes solutions
Kubernetes solutions
 
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
Microsoft Ignite 2018 BRK3192 Container DevOps on AzureMicrosoft Ignite 2018 BRK3192 Container DevOps on Azure
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Devoxx 2016 - Docker Nuts and Bolts
Devoxx 2016 - Docker Nuts and BoltsDevoxx 2016 - Docker Nuts and Bolts
Devoxx 2016 - Docker Nuts and Bolts
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
 
Docker-N-Beyond
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyond
 

Más de Ambassador Labs

[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
Ambassador Labs
 

Más de Ambassador Labs (20)

Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
 
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
 
Cloud native development without the toil
Cloud native development without the toilCloud native development without the toil
Cloud native development without the toil
 
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
 
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
 
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
 
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
 
What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0? What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0?
 
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
 
Ambassador: Building a Control Plane for Envoy
Ambassador: Building a Control Plane for Envoy Ambassador: Building a Control Plane for Envoy
Ambassador: Building a Control Plane for Envoy
 
Telepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for KubernetesTelepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for Kubernetes
 
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
 
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
 
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
 
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYCThe Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
 
Ambassador Kubernetes-Native API Gateway
Ambassador Kubernetes-Native API GatewayAmbassador Kubernetes-Native API Gateway
Ambassador Kubernetes-Native API Gateway
 
Micro xchg 2018 - What is a Service Mesh?
Micro xchg 2018 - What is a Service Mesh? Micro xchg 2018 - What is a Service Mesh?
Micro xchg 2018 - What is a Service Mesh?
 
KubeCon NA 2017: Ambassador and Envoy (Envoy Salon)
KubeCon NA 2017: Ambassador and Envoy (Envoy Salon)KubeCon NA 2017: Ambassador and Envoy (Envoy Salon)
KubeCon NA 2017: Ambassador and Envoy (Envoy Salon)
 
Webinar: Code Faster on Kubernetes
Webinar: Code Faster on KubernetesWebinar: Code Faster on Kubernetes
Webinar: Code Faster on Kubernetes
 
QCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented DevelopmentQCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented Development
 

Último

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Último (20)

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
 
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
 
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
 
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
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
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
 
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 🔝✔️✔️
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
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
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
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
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.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 🔝✔️✔️
 

2017 Microservices Practitioner Virtual Summit: Ancestry's Journey towards Microservices, Containerization, and Kubernetes - Paul MacKay, Ancestry

  • 1. Taking the Helm - Ancestry’s Journey to Kubernetes Paul MacKay, Software Engineer
  • 2. Our Journey Where we come from. What we have learned along the way. Where we are in the journey.
  • 4. We’re a science and technology company with a very human mission.
  • 5. Data drives our business • 20 billion historical records • 90 million family trees • 10 billion profiles • 175 million shareable photos, documents and written stories • 9 petabytes of data • 4 million members in the AncestryDNA® network • 37 million 3rd cousin or closer matches
  • 6. Technologies Microsoft Windows ® C# .NET ® SQL Server®, IIS, MSMQ, TFS, etc. Java, Node.js, Python running on Linux Private data center 1,000s of servers/VMs running 100s of services REST-based macro to micro size services
  • 7. Deployment Processes Continuous integration/deployment Deployment management tools Virtual Machines Typically one (macro/micro) service per VM Long deployment times to roll services to production 20-50 minutes
  • 8. How Our Journey Started to Change Began experimenting with Docker. Docker Compose Created a “Docker agent” for remote deployment. Demonstrated how easy it is to deploy and scale up services. Deployment times drastically reduced from current methods. Easier to deploy services of any size (macro to micro) Showed greater density using current computing resources. Created and deployed our own micro services using Docker.
  • 9. What we learned along the way.
  • 10. Adopting New Technologies is Hard Developers are comfortable with how things are done today. We think it is faster doing it the “old” way. It is hard to see the advantages of changing to something new. Change has real cost. Change takes time away from developing new features. Change is disruptive to schedules.
  • 11. Early Discoveries Many opinions about the appropriate size of a service. Normal Linux distros are just too big. Not specifically built for Docker. Too large of a footprint. Too many packages to keep updated. Docker is best supported on newer Linux kernels. Need to train Windows developers Linux concepts/tools. The size of a service cannot be dictated Container orchestration is hard to do it right.
  • 12. Adopting New Technologies or Paradigms Understand current technologies, processes and paradigms. Need a “patron”. Own something “to be real”. Create a partnership with pilot teams and be agile.
  • 13. Determining the Size of a Service Be pragmatic; do not break up a service just to break up a service. Remember the cost of managing many services. Network latencies Many things to worry about (e.g. monitoring, coordinated deployments, scaling) Ask, “will this really be used independently by other services?” Does it make sense for the service to exist by itself Be pragmatic, not dogmatic.
  • 14. Linux Built for Containers Running containers is a first-class citizen Updates are holistic Can be automatically pushed to machines. Can easily revert back to the previous version. Less is more Fewer packages means fewer vulnerabilities Infrequent need for direct access to the machines
  • 15. Kubernetes to the Rescue Created a small ”sandbox” cluster. Gathered “committed” pilot teams. Daily standups Address problems/concerns early Provided Docker and Kubernetes training Developed templates and scripts
  • 16. Where we are in the journey.
  • 17. Conventions/Standards Developed deployment standards Namespace for each service Naming conventions (functionalGroup-serviceName) One container per pod Start with wide privileges and narrow as needed Allow deployment all the way to production Secrets are controlled by operations/security Separate clusters for each environment (dev, stage, prod) Use intra-cluster DNS for micro-services to reduce network latencies
  • 18. Production Environment Private Registry (Quay Enterprise) Monitoring (Prometheus) Logging Custom cluster-wide log forwarder Namespace Portal Authorization (webhook) Require soft resource quotas
  • 19. Quick Start Tools Created tool to help teams quickly deploy Works across all cluster environments Provide ”best practices” and conventions Transparent – can generate standard resource files Created scripts to insert secrets into namespaces Labels are used to version secrets Cluster backup/restore scripts Scripts to easily create clusters in various environments Allow easy deployment of any size of service
  • 20. Our Journey So Far Several clusters Private data center and in the cloud Hundreds of namespaces and services Hundreds of pods Macro to micro size services Live production traffic e.g. “We’re Related App” Made up of 14 micro services Easiest deployment path for developers
  • 21. The Power of Kubernetes Programmers have REPL (Read-Eval-Print-Loop) Kubernetes now gives us CDEL (Compile-Deploy-Execute-Loop)
  • 22. Unlock your past. Inspire your future