SlideShare uma empresa Scribd logo
1 de 26
David Papp @pappdav
Chief Architect @ghostmonitor
Who we are?
• Established in May 2015
• The team headcount: 11
• Company profile: E-Commerce analytics
What technologies do we use?
Microservices from operational aspect
”
…the microservice architectural style is an approach
to developing a single application as a suite of small
services, each running in its own process and
communicating with lightweight mechanisms, often
an HTTP resource API.
- Martin Fowler
12factor application
1. Codebase
2. Dependencies
3. Config
4. Backing services
5. Build release run
6. Process
7. Port binding
8. Concurrency
9. Disposability
10.Dev/Prod parity
11.Logs
12.Admin process
Microservices patterns
•Service communication HTTP/AMQP or
asynchronous protocols
•API gateway
•Service discovery
•Multiple service instances per host
•Serverless deployment
•Database per Service
•Event-driven architecture
•Database triggers
Database per Service
Service discovery
The problems…
1. Framework
2. Local development
3. Testing
4. Build
5. Deploy
6. Infrastructure
7. Monitoring
8. Logging
Framework
•Koa.js
o gm-core-lib
o Modules
o SQS
o Service Discovery
o Redis
o API
o MongoDB
Local development
1. Docker
2. Docker-compose
3. Codeship jet
4. Minikube
5. Kube-Solo
Testing & Build
•Unit test
•E2e test
•Integration test
codeship-services.yml
codeship-steps.yml
Deploy – Ever Given
•Codeship2Kubernetes wrapper
•Written in Ruby
•Async
• Worker
•Message queue for Redis
•Notification
•Rollback ( soon )
•Template management
• Resource control
• Version control
• Environment variables
Infrastructure
Infrastructure
Monitoring
•NewRelic
•Trace by Risingstack
•Apex.sh
•Pingdom
Logging
•Airbrake/Errbit
•Logentries
•Trace by Risingstack
Service types
• API
•Service
•Mservice
•Worker
System statistics
• 50+ different services
• 550+ containers
• 100+ different builds
Microservices cobweb
Dashboard
Service communications
Stat communications
Thanks
Questions?

Mais conteúdo relacionado

Mais procurados

Monoliths vs microservices
Monoliths vs microservicesMonoliths vs microservices
Monoliths vs microservicesahmadezzeir
 
Kubernetes - training micro-dragons without getting burnt
Kubernetes -  training micro-dragons without getting burntKubernetes -  training micro-dragons without getting burnt
Kubernetes - training micro-dragons without getting burntAmir Moghimi
 
Zend con eu keynote (publish)
Zend con eu keynote (publish)Zend con eu keynote (publish)
Zend con eu keynote (publish)mkherlakian
 
Microservices with Spring Cloud, Netflix OSS and Kubernetes
Microservices with Spring Cloud, Netflix OSS and Kubernetes Microservices with Spring Cloud, Netflix OSS and Kubernetes
Microservices with Spring Cloud, Netflix OSS and Kubernetes Christian Posta
 
Atlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service MeshAtlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service MeshChristian Posta
 
Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud Fi...
Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud Fi...Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud Fi...
Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud Fi...VMware Tanzu
 
How to automate your BizTalk Installations and Deployments with Chef
How to automate your BizTalk Installations and Deployments with ChefHow to automate your BizTalk Installations and Deployments with Chef
How to automate your BizTalk Installations and Deployments with ChefBizTalk360
 
Microservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud FoundryMicroservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud FoundryEmilio Garcia
 
The Hardest Part of Microservices: Calling Your Services
The Hardest Part of Microservices: Calling Your ServicesThe Hardest Part of Microservices: Calling Your Services
The Hardest Part of Microservices: Calling Your ServicesChristian Posta
 
Alfresco DevCon 2019: Interaxo - A journey to Cloud Native
Alfresco DevCon 2019: Interaxo - A journey to Cloud NativeAlfresco DevCon 2019: Interaxo - A journey to Cloud Native
Alfresco DevCon 2019: Interaxo - A journey to Cloud NativeAsgeir Frimannsson
 
Selenium WebDriverを利用したサンプルアプリケーションのテスト
Selenium WebDriverを利用したサンプルアプリケーションのテストSelenium WebDriverを利用したサンプルアプリケーションのテスト
Selenium WebDriverを利用したサンプルアプリケーションのテストAtsushi Matsuo
 
Rethink of PaaS
Rethink of PaaSRethink of PaaS
Rethink of PaaSXu Wang
 
Managing your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CDManaging your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CDChristian Posta
 
The 7 deadly sins of micro services
The 7 deadly sins of micro servicesThe 7 deadly sins of micro services
The 7 deadly sins of micro servicesAidan Casey
 
Docker in the Enterprise
Docker in the EnterpriseDocker in the Enterprise
Docker in the EnterpriseSaul Caganoff
 
BizTalk Server Extensibility
BizTalk Server ExtensibilityBizTalk Server Extensibility
BizTalk Server ExtensibilityBizTalk360
 
Brendon Foxen (Channel 4) - Speeding up Software Delivery at Channel 4
Brendon Foxen (Channel 4) - Speeding up Software Delivery at Channel 4Brendon Foxen (Channel 4) - Speeding up Software Delivery at Channel 4
Brendon Foxen (Channel 4) - Speeding up Software Delivery at Channel 4Outlyer
 
Kudu voodoo slideshare
Kudu voodoo   slideshareKudu voodoo   slideshare
Kudu voodoo slideshareAidan Casey
 

Mais procurados (20)

Monoliths vs microservices
Monoliths vs microservicesMonoliths vs microservices
Monoliths vs microservices
 
Kubernetes - training micro-dragons without getting burnt
Kubernetes -  training micro-dragons without getting burntKubernetes -  training micro-dragons without getting burnt
Kubernetes - training micro-dragons without getting burnt
 
Zend con eu keynote (publish)
Zend con eu keynote (publish)Zend con eu keynote (publish)
Zend con eu keynote (publish)
 
Microservices with Spring Cloud, Netflix OSS and Kubernetes
Microservices with Spring Cloud, Netflix OSS and Kubernetes Microservices with Spring Cloud, Netflix OSS and Kubernetes
Microservices with Spring Cloud, Netflix OSS and Kubernetes
 
Atlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service MeshAtlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service Mesh
 
Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud Fi...
Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud Fi...Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud Fi...
Modernizing the Legacy - How Dish is Adapting its SOA Services for a Cloud Fi...
 
How to automate your BizTalk Installations and Deployments with Chef
How to automate your BizTalk Installations and Deployments with ChefHow to automate your BizTalk Installations and Deployments with Chef
How to automate your BizTalk Installations and Deployments with Chef
 
Microservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud FoundryMicroservices, Spring Cloud & Cloud Foundry
Microservices, Spring Cloud & Cloud Foundry
 
The Hardest Part of Microservices: Calling Your Services
The Hardest Part of Microservices: Calling Your ServicesThe Hardest Part of Microservices: Calling Your Services
The Hardest Part of Microservices: Calling Your Services
 
Alfresco DevCon 2019: Interaxo - A journey to Cloud Native
Alfresco DevCon 2019: Interaxo - A journey to Cloud NativeAlfresco DevCon 2019: Interaxo - A journey to Cloud Native
Alfresco DevCon 2019: Interaxo - A journey to Cloud Native
 
Selenium WebDriverを利用したサンプルアプリケーションのテスト
Selenium WebDriverを利用したサンプルアプリケーションのテストSelenium WebDriverを利用したサンプルアプリケーションのテスト
Selenium WebDriverを利用したサンプルアプリケーションのテスト
 
Rethink of PaaS
Rethink of PaaSRethink of PaaS
Rethink of PaaS
 
Managing your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CDManaging your camels in the cloud with CI/CD
Managing your camels in the cloud with CI/CD
 
Microservices with Spring
Microservices with SpringMicroservices with Spring
Microservices with Spring
 
The 7 deadly sins of micro services
The 7 deadly sins of micro servicesThe 7 deadly sins of micro services
The 7 deadly sins of micro services
 
Docker in the Enterprise
Docker in the EnterpriseDocker in the Enterprise
Docker in the Enterprise
 
BizTalk Server Extensibility
BizTalk Server ExtensibilityBizTalk Server Extensibility
BizTalk Server Extensibility
 
Brendon Foxen (Channel 4) - Speeding up Software Delivery at Channel 4
Brendon Foxen (Channel 4) - Speeding up Software Delivery at Channel 4Brendon Foxen (Channel 4) - Speeding up Software Delivery at Channel 4
Brendon Foxen (Channel 4) - Speeding up Software Delivery at Channel 4
 
Hosting rails apps
Hosting rails appsHosting rails apps
Hosting rails apps
 
Kudu voodoo slideshare
Kudu voodoo   slideshareKudu voodoo   slideshare
Kudu voodoo slideshare
 

Semelhante a Microservices from operations aspect

Microservices environment in production
Microservices environment in productionMicroservices environment in production
Microservices environment in productionDavid Papp
 
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...Jack-Junjie Cai
 
IBM Lightning Talk
IBM Lightning TalkIBM Lightning Talk
IBM Lightning TalkMongoDB
 
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceMigrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceDavid Currie
 
Cloud Foundry and MongoDB
Cloud Foundry and MongoDBCloud Foundry and MongoDB
Cloud Foundry and MongoDBJake Peyser
 
Integrating MongoDB into Cloud Foundry App
Integrating MongoDB into Cloud Foundry AppIntegrating MongoDB into Cloud Foundry App
Integrating MongoDB into Cloud Foundry AppIBM
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los AngelesVMware Tanzu
 
[WSO2 Summit Americas 2020] Creating Smart Endpoints Using Integration Micros...
[WSO2 Summit Americas 2020] Creating Smart Endpoints Using Integration Micros...[WSO2 Summit Americas 2020] Creating Smart Endpoints Using Integration Micros...
[WSO2 Summit Americas 2020] Creating Smart Endpoints Using Integration Micros...WSO2
 
Mulesoftanypointplatformintro
MulesoftanypointplatformintroMulesoftanypointplatformintro
Mulesoftanypointplatformintroppts123456
 
Open Source Approach to Design and Deployment of Microservices-based VNF
Open Source Approach to Design and Deployment of Microservices-based VNFOpen Source Approach to Design and Deployment of Microservices-based VNF
Open Source Approach to Design and Deployment of Microservices-based VNFOpen Networking Summit
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitectureAshwini Kuntamukkala
 
Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17Vidyasagar Machupalli
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application DevelopmentWaveMaker, Inc.
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition3scale
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionSteven Willmott
 
Mulesoft Anypoint platform introduction
Mulesoft Anypoint platform introductionMulesoft Anypoint platform introduction
Mulesoft Anypoint platform introductiongijish
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern LaunguageInho Kang
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB
 
Microservices Architecture: Building 'SMART' & 'Agile' Software
Microservices Architecture: Building 'SMART' & 'Agile' SoftwareMicroservices Architecture: Building 'SMART' & 'Agile' Software
Microservices Architecture: Building 'SMART' & 'Agile' SoftwareSmartBear
 

Semelhante a Microservices from operations aspect (20)

Microservices environment in production
Microservices environment in productionMicroservices environment in production
Microservices environment in production
 
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
 
IBM Lightning Talk
IBM Lightning TalkIBM Lightning Talk
IBM Lightning Talk
 
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceMigrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
 
Cloud Foundry and MongoDB
Cloud Foundry and MongoDBCloud Foundry and MongoDB
Cloud Foundry and MongoDB
 
Integrating MongoDB into Cloud Foundry App
Integrating MongoDB into Cloud Foundry AppIntegrating MongoDB into Cloud Foundry App
Integrating MongoDB into Cloud Foundry App
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
 
[WSO2 Summit Americas 2020] Creating Smart Endpoints Using Integration Micros...
[WSO2 Summit Americas 2020] Creating Smart Endpoints Using Integration Micros...[WSO2 Summit Americas 2020] Creating Smart Endpoints Using Integration Micros...
[WSO2 Summit Americas 2020] Creating Smart Endpoints Using Integration Micros...
 
Mulesoftanypointplatformintro
MulesoftanypointplatformintroMulesoftanypointplatformintro
Mulesoftanypointplatformintro
 
Open Source Approach to Design and Deployment of Microservices-based VNF
Open Source Approach to Design and Deployment of Microservices-based VNFOpen Source Approach to Design and Deployment of Microservices-based VNF
Open Source Approach to Design and Deployment of Microservices-based VNF
 
Microservices based VNF
Microservices based VNFMicroservices based VNF
Microservices based VNF
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 
Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application Development
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition
 
Mulesoft Anypoint platform introduction
Mulesoft Anypoint platform introductionMulesoft Anypoint platform introduction
Mulesoft Anypoint platform introduction
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
 
Microservices Architecture: Building 'SMART' & 'Agile' Software
Microservices Architecture: Building 'SMART' & 'Agile' SoftwareMicroservices Architecture: Building 'SMART' & 'Agile' Software
Microservices Architecture: Building 'SMART' & 'Agile' Software
 

Último

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Microservices from operations aspect

Notas do Editor

  1. Udvozlok mindenkit! Papp David vagyok a ghostmonitornal dolgozom mint Chief Architect. A feladatom az ,hogy a fejlesztes, infrastruktura es minden ami DevOps az hozzam tartozik a cegnel. 1 evvel ezelott is eloadtam ezen a koferencian koszonom ,hogy ujra itt lehetek akkor meg eleg kezdok voltunk a microservices dolgokban akkor meg csak arrol szolt a dolog ,hogy mit tervezunk most megnezzuk mit tanultunk es hova juttotunk. Az eloadas egy altalanos kepet fog festeni milyen problemakkal kell megkuzdeni ,hogy eljussunk egy mukodo rendszerhez es mi milyen problemakkal kuzdotunk meg es ezeket ,hogyan oldotuk fel.
  2. Kik is vagyunk mi? A cegunk 2015 majusaban jott letre de az otlet mar ennel korabban felvetotod az alaptiokban. A jelenlegi csapatletszam korulbelul 11 fobol all. Ezeknek a nagyresze fejleszot. A cegunket tenktive mi egy e-commerce analytics platform vagyunk. Az eredeti problema amiert letre jott maga a ceg az a kosar elhagyas(cart abdonment) Aki foglalkozik webshoppal az mindneki szembesul ezzal a problemaval ,hogy elkezdi az ugyfel vasarlast majd nem fejezi be. Ez a szam egy webshop eseten korulbelul 70-30%-ban oszlik meg. Szoval az emberek 70% el hagyja a kosarat mi ezen probalunk segiteni.
  3. Milyen technologiakat hasznalunk a cegnel? AWS – Amazon WebServices Docker NodeJS Codeship Terraform CoreOS MongoDB Elasticsearch
  4. Az elaodasom temaja ,hogy microservices uzemeltetoi szemmel… de eloszor is tisztazzuk ,hogy mi az a microservices es amugy miert jo ez az egesz azon kivul ,hogy jol megszivatjuk magunkat …. ,hogy tul bonyolitunk egy jo nagy rendszer sok kicsivel.
  5. Hagyj idot elolvasni. Egy martin flower nevu uriember szepen osszefoglalta nekunk ,hogy mi is az a microservices. Ez egy olyan architecturalis megoldas ami kulon allo applickaciokat kapcsol osszes egy egyszeru protokkolon keresztul pl. HTTP.
  6. Most ,hogy mar ismerjuk korulbelul a microservices fogalmat ismerkedjunk meg azzal a 12 alap szabalyal amit erdemes figyelembe venni az alkalmazas es az infrastruktura megtervezesenel. Ez a 12 szabaly segiteni fog nekunk abban ,hogy egy jol atgondolt rendszert kapjunk. 12 szabaly esetleg 12 megoldando problemat is hasznalhatnank erre. Gyorsan vegyunk parat vegig: Codebase -> Legyen egy kozponti taroloba tarolva a kodjaink. Ezt annyira nem nehez megugorni. Tudjunk depedenciakat kezelni -> Compose, NPM, GEM …stb Environmentbol konfigrulhatoak legyenek – kulonbozo konfig valtoztatasok -> Hogy ez miert jo? Hat mert nem kell ujra deployolni az alkalmazast eleg csak oket szep sorba ujra inditani. Backing services -> Itt arra gondolt a kolto ,hogy mivel nagyon sok hater szerveziunk van meg kell oldanunk azt a problemat ,hogy tudjanak beszelgetni ezaltal szuksegunk lesz valamilyen service discovery megoldasra. Elosztott rendszerekrol leven szo ez nem olyan elhanyagolhato problema de konnyen meg lehet csinalni. Itt igazabol arrol van szo ,hogy allitsunk elo egy olyan artifactot vagy imaget amit futtatni fogunk. A mi esetunkben ez a Docker image jelenti. Torekedjunk arra ,hogy minden szervizunk stateless legyen. Ez igazabol nem annyira fontos egy fix porton figyeljen a service de ezt a legtobb rendszer lekezelni nekunk. Gondoljunk az esetleges skalazasi problemakra. Eldobhatosag -> Ne taroljunk adatokat magaba a szervezikbe erre hasznaljunk valami object storage megoldast vagy barmilyen persistance storageot. Fontos ,hogy a szervizek indulas es lealassa gyors legyen. Pl. ha nagyobb request szam beesik a rendszerbe es a rendszernek reagalnia kell akkor nem mindegy mennyi ido alatt indul el egy szerviz. Ez a mi esetunkben egy viszonylag fontos dolog. Ugyan is mi nem ismerjuk az ugyfeleink latogatotsagat es ha nagyobb request szam beesik akkor arra nekunk reagalni kell a rendszer leallasa/kieses nelkul. A staging/prod kornyezetunk egyezzen meg igy elkerulhetok legyen esetleges az integracios hibak. Erre nekunk az a megoldasunk ,hogy Kubernetes egy clusterben fut mint ket kornyezet de ugyelve arra ,hogy a staging esetleges hiba eseten ne tudja bedonteni az eles oldalt igy eroforras korlatozas van bevezetve minden servicre. De az eles rendszerben ugyan ugy termeszetesen magasabb ertekkel. A logolas hat ez az a masik nagy problema amivel szembe kell nezni ha egy microservices architecturat kezdunk el epiteni. Ugyan is a logokat nem csak el kell tudnunk nyelni hanem ezeket fel is kell tudni dolgozni es mondjuk riasztasokat kell csinalni. Ugyan is a monitorozo rendszerrel egyutt nagyon jol ki tudjuk egesziteni a problemak feltarasat esetleg elore tudunk jelezni dolgokat. Kulonitsuk el az admin feladatokat az eredeti alkalmazastol. Adatbazis takartitas…analitkak
  7. Maga a microservices ugy-e egy elmelet egy megkozelites ezert nincs semmien szabvany ami leirana mikent is kellene egy ilyen rendszert megepiteni ezert is szep ez az egesz. Par ember viszont meg fogalmazott par hasznos patternt ami jo ha betartunk kulonben szivni fogtok mint mi . A szervizeink valamilyen aszinkron protokolon keresztul beszlegessnek pl. HTTP vagy AMQP vagy valamilyen aszinkron protokollon keresztul. Hasznaljunk API gateway-t amin keresztul bejonnek a keresek es tudjuk esetlegesen korlatozni a bejovo forgalmat es a megfelelo szervizhet iranyitani. Service discovery errol meg lesz ezt kicsit kesobb kifejetem. Tobb service fusson egy darab instancesen ezt kell tul magyarazni sokkal hatekonyabban ki tudjuk hasznalni az eroforrasokat. Serverless deployment ez ugy-e az uj trend mint pl. AWS lambda ,hogy feltoltunk egy zippet amibe minden be van csomagolva es fut valahol mi meg orulunk neki. Errol is lesz szo hamarosan. Event-driven architecture es Database triggers itt nem olyan adatbazis triggerekre kell gondolni mint ami mysql-be. Nemtudom ki mennyire ismermi a dynamodb-t abba van lehetoseg olyanra, hogy ha egy esemeny bekovetkezik pl. az adatbazisban modosult egy ertek ami ugy-e egy update akkor az generaljon egy eventet. Igy egy esemeny vezerelt arhitecturat tudunk epiteni.
  8. Egy service csak egy tablat irhat. Mivel elosztott rendszerekrol beszelunk eleg nagy problema lenne ,hogy ha minden egyes szerviz ami szeretne hozza ferni az adatbazishoz elkezdne irni. Ugyan is akkor minden szerviznek ismerni kellene az adatbazis semat. Gondolom eltudjatok kepzelni mi tortenne ha 1-nel tobb helyen kellene ugyan azt adatbazis semat modositani. Igy viszont az osszes szerviz egy REST API-t lat amit hivogat hat es ha szuksege van egy vagy tobb adatra akkor azt elkeri egy masik servicetol. Ez a model biztositja nekunk azt is ,hogy nem kell ugyan azt az adatbazis motort hasznalni minden szerviz alatt hanem ez viszonylag konnyen tudjuk modositani egyik nap mongodb van mogotte a masik nap meg mar mondjuk egy mysql.
  9. El is erkeztunk az eloszott rendszerek masik problemajahoz meg pedig ,hogy talaljunk meg egymast mikozben minden dinamikus es minden valtozik semminek sincs fix ip cime vagy fix portja. Ugy-e amikor a rendszerunk elejen vagyunk ebbe a problemaba bele se gondolunk amig mondjuk van 5-6 szerveziunk de amikor ez a szam elkezd drasztikusan novekedni akkor ez a problema hamar szembe fog velunk jonni. Az se szerencses ha ezeket beegetjunk szepen a konfigokba mert akkor egy esetleges valtoztatas eseten a szerviz osszes depedenciajat ujra kellene deployolni nem lenne tul szerencseses. !!!Plusz kep bejon… Erre nyujt nekunk megoldast a service discovery minden service ami elindul az beirja magat a service registry-be amikor pedig leall akkor a rendszer kiveszi ot a kiszolgalasbol. A service discoverynek ket legismertebb modja az DNS es az ENVIRONMENT alapu. Mi mind a kettot hasznaljunk amennyiben pl. DNS nem megy ez esetben fallbackelunk ENVIRONMENT-re.
  10. Felsoroltam eloszor ezt a 4 problemat ami egybol szembejott amikor ki talatuk ,hogy mi szeretnenk ilyen szep elosztott rendszer epiteni…hat igen ezt tok jo milyen jo lesz ez nekunk igen de mivel is valositsuk meg ezeket. Eloszor is szuksegunk volt valami frameworkre az elozo rendszer eleg vegyes volt tartalmazott Sails meg Express-t vegyesen valahogy ezt az alaptotott fel kellet oldani le lovom a poet a valasztas nem ezekre esett.  Ott volt a lokalis fejlesztes problema ez maig nem teljesen megoldott problema viszont mar van ra egy viszonylag jol bevalt megoldasunk. Hat valahogy tesztleni is kellene azokat a franya szerveziket es nem csak mockolt adatokkal. Igen am de itt is szembe jott par problema… Ezekbol a kodobol kellene csinalni valami Docker image-t is fabrikalni lovagoljuk mar meg a trendeket. Jojon a kovetkezo 4-s csoport… Ohh…hat ha mar le buildeltuk a docker imageket akkor azokat valahogy ki is kellene deplyolni valami infrastrukturara Ha mar van deployerunk akkor valamin futtasuk mar ezeket az imageket…. Igen…igen futnak csucsszuper meg is kellene nezni mit csinalnak ezeket a frana szervezinek biztos nem mukodik mindig jol…hat nem… Tok jo ,hogy monitorozzuk oket de azert jo lenne tudnunk mi tortenik a lelkukbe es valami informaciot kikopnek az eljutna hozzank valami strukturalt formaba.
  11. Nezzuk is az elso jatekost a framework problema. Alapvetoen hive vagyunk annak az elvnek ,hogy nekunk problemakat kell megoldani es nem programozunk kell viszont van amikor kompromisuzmokat kell kotni. A Koa framework egy eleg minimal dolog de azert ez mellet viszonylag sok mindent nyujt nekunk. Nem er fel mondjuk egy Express vagy Sails kepessegeivel viszont biztositja nekunk azt ,hogy a szervezinek ne legyenek tulsagosan eroforras igenyesek. Az atlag szervziek 128MB rammal nagyon szep elfutkaroznak. Szuksegunk volt egy kozponti LIB-re amit minden szerviz behuzz es tud hasznalni. Szukseg volt arra ,hogy modularis legyen nem minden szerviznek van szuksege minden funkciora pl. egy API-nek nincs szuksege MongoDB-re de szuksege van Service Discoveryre es mondjuk REDIS-re. Viszont ha kesobb szukseg van barmilyen extra dologra akkor csak be kapcsoljuk az adott szervizre es mar lehet is hasznalni.
  12. Most ,hogy mar van frameworkunk meg alkalmazasunk ezt akkor csomagoljuk mar be ,hogy hordozhato image-be ami a mi esetunkbe a Docker lett. A lokalis fejleszteshez szukseg van Docker-compose vagy dockerre ugyan is a kulonbozo dependeciakat valahogy futtatnunk kell magunknal de maga a fejlesztes nem dockeren belul csinaluk azt siman a megszokott modon tortenik. A dolog annyiban bonyolodik ,hogy ha a olyan szervizt fejlesztunk aminek sok a dependiciaja akkor akar 10-15 docker is futhat a gepukon ami azert a regebbi gepeknek eleg megterhelo lehet. Viszont mivel van environment alapu service-discoverynek ezert ezeket ugyan beallitjuk lokalba es megfogja talalni lokalisan futtatot szerviz a dockerben futokat. A Jet a codeship nevezetu CI-nak a termeke amivel localba lehet futtatni ugyan azokat a dolgokat mint fent. Igy localba is ki tudjuk probalni mi fog torteni CI kornyezetben. Minikube es Kube-Solo pedig abban segit ha van valami kubernetes specifikus problemank vagy big picture akarjuk latni localba akkor ezeket futtatjuk es ugyan azt vegre tudjuk hajtani mint fent az eles vagy staging rendszerbe.
  13. A rendszerben egyarant megtalalhato unit test – e2e test – integration test. Mi is figyeljuk a codecoveraget meg a code complexity-t erre a Codeclimate nevu termeket hasznaljuk. Szeretjuk a valosaghu teszteket ami az jelenti amennyire lehet nem mockolt teszteket hasznalunk hanem van lehetosegunk teszteles es buildeles kozben behivni mas szerveziket igy tudjuk tesztelni kozel azt az allaptot mint ami eles vagy staging kornyezetben megtortenik. Itt a buildelesnel fontos meg emeliteni meg egy fontos problemat ugyna is a dockernek van egy ”kis” hibaja ami nem is olyan kicsit es eleg gyorsan szembe fog velunk meg pedig nem tud kezelni inditasi sorrendeket szoval egy mas dependciai nem sorrendben fognak elindulni hanem ossze vissza szoval erre a problemara jobb ,hogy fel keszulunk. Mindenkinek a sajat rendszerben erre megoldast kell talalnia.
  14. A codeship services fileban tudjuk meghatarozni ,hogy az adott buildhez milyen szervizeket huzunk be a buildelesnel. Ebben az esetben mongodb de itt adhatjuk meg az elobb emlitett tobbi backend szervizt amit szuksegunk van. Codeship-steps Itt adahatjuk meg azokat a parancsokat amiket a kodon vegre kell hajtania buildeles kozben. A commandokat tudjuk kulonbozo branchrek korlatozni. Nezzuk gyorsan at a fajlt. Az elso sor servce: app ez minden build eseten lefut. Az npm install azert fut itt le mert ezek a buildek meg nem artifactory alapuakra ugyan is nodejsnel is szukseg volt a sok package miatt amire szukseg lett. Az atlag szerviz meret az 100-200MB volt az artifactes build utan pedig 37MB-t. Beszeltunk a 12 szabalynal ez a 9-es szabalyhoz tartozik ugyan is amikor le kell tolteni a szerverek minden egyes buildnel mondjuk 100-200MB-t ha ez leviszuk a 37MB mar is drasztikusan csokkeni fog a deployolasi ido. A push nekunk a deplyolas a commit_id tag-re epul igy sokkal konnyebben tudunk rollbackelni.
  15. Ez egy altalunk kifejlesztett sajat deployer. A feladata az ,hogy a codeship webhookokat feldolgozva elo allitatsa a template fileokat vagy veghez vigyen egy rolling-updatet. A kettot kozott annyi a kulonbseg mig az egyik eseten maga a template valtozik a masik eseten csak uj imaget rakunk ki a rendszerbe. A deployer maga ugy mukodik ,hogy van egy API resze az megkapja a hookot ezt feldolgozva berakja egy queue-ba ami jelen esetben REDIS majd innen a workerek kiveszik es feldolgozak az adott feladatot. Ha vegezetke akkor kuldenek rola egy notification-t slack channelbe. Rollback -> jelenleg ez meg terv de hamarossan megvalositasra kerul. Ennek van egy beepitett modja ,hogy ha a deployolas kozbe hiba csuszik pl. nem tud elindulni a szerviz akkor a deploy automatikusan megszakad. Template management Kezeli a kulonbozo szervizek eroforrasat A szervizek verzio kezelest Environment valtozok AWS kulcsok MONGO_URI REDIS_URI
  16. Igy nezki a jelenl