SlideShare uma empresa Scribd logo
1 de 73
Baixar para ler offline
The Glue is the Hard Part:
Making a Production-Ready PaaS
Evan Krall
Site Reliability Engineer @ Yelp
Agenda
PaaSTA
What parts does PaaSTA
have?
How did we glue them
together?
Wrap-up
Intro
Context: Yelp before
PaaSTA
What's in a PaaS?
Production-Ready
What makes a PaaS
production-ready?
Lessons learned
Next steps
Intro
Yelp’s Mission:
Connecting people with great
local businesses.
4
5
Yelp Stats:
As of Q3 2015
89M 3271%90M
Context: Yelp before PaaSTA
6
Service Oriented Architecture
Scale our engineering team by splitting our
codebase into many smaller parts
7
Dependency Hell
As services gain adoption, shared libraries
become difficult to upgrade. Not all services
are Python anymore.
8
Too Many Services
We can no longer fit all services on each
service host. How do we split them up?
9
“I wonder how many
organizations that say they're
"doing DevOps" are actually
building a bespoke PaaS. And
how many of those realize it.”
— @markimbriaco
1
0
Basic PaaS Components
11
Scheduling
Decide which hosts run a service
12
Delivery
Put the code on the host and run it
13
Discovery
Tell clients where your service is running
14
What makes a PaaS trustworthy enough to run our
website?
Production-Ready
16
Production-ready systems
minimize impact of failures
impact =
frequency
×
severity
×
duration
A production-ready PaaS
should minimize the impact
of both application failures
and PaaS failures
17
Use stable components (software, hardware)
You will always have failures.
Reduce failure frequency
18
Reduce failure severity
19
No SPOFs
Keep working when a box dies
20
Graceful Degradation
Avoid full outages when components break
21
Painless upgrades
Upgrades should be easy, without downtime
22
Reduce failure duration
23
Self-healing
Recover from common failures automatically
24
Alerting
Tell humans when things are still broken
25
Visibility
Make it easy for humans to diagnose issues
26
PaaSTA
Yelp's Open-Source
Docker-based PaaS
PaaSTA
28
● Delivery: Docker
● Scheduling: Mesos + Marathon
● Discovery: Smartstack
● Alerting: Sensu
Delivery in PaaSTA: Docker
29
● Self-contained artifacts
● Provides software flexibility
● Reproducible builds
● Resource limits make scheduling
easier
● Mesos is an "SDK for distributed
systems", batteries not included.
● Requires a framework
○ Marathon (like ASG for Mesos)
○ Chronos (Periodic tasks)
● Supports Docker as task executor
Scheduling in PaaSTA:
Mesos and Marathon
30
Marathon
● Run N copies of Docker image
● Works with Mesos to find space on
cluster
● Replaces dead instances
31
32
from http://mesos.apache.org/documentation/latest/mesos-architecture/
from http://mesos.apache.org/documentation/latest/mesos-architecture/
33
from http://mesos.apache.org/documentation/latest/mesos-architecture/
from http://mesos.apache.org/documentation/latest/mesos-architecture/
34
from http://mesos.apache.org/documentation/latest/mesos-architecture/
(Marathon)
(Docker)
from http://mesos.apache.org/documentation/latest/mesos-architecture/
35
from http://mesos.apache.org/documentation/latest/mesos-architecture/
(Marathon)
(Docker)
from http://mesos.apache.org/documentation/latest/mesos-architecture/
36
from http://mesos.apache.org/documentation/latest/mesos-architecture/
(Marathon)
(Docker)
from http://mesos.apache.org/documentation/latest/mesos-architecture/
37
from http://mesos.apache.org/documentation/latest/mesos-architecture/
(Marathon)
(Docker)
How do we build &
distribute Docker images?
38
Building Docker images
39
● Jenkins builds and tests images
● Bless images by creating git tags
○ 1:1 git commit <-> docker image
● Pushes to registry
Shipping Docker images
40
● Distribution via private registry
● S3 bucket shared among all
environments
from http://mesos.apache.org/documentation/latest/mesos-architecture/
code
metadata
stagebuild prod
41
How do we configure
Marathon?
42
Aside: Declarative Control
43
● Describe end goal, not path
● Helps achieve fault tolerance
"Deploy 12abcd34 to prod"
vs.
"Commit 12abcd34 should be running in prod"
Gas pedal vs. Cruise Control
Configuring Marathon
44
● Need a wall around Marathon: it has root
on your entire cluster.
● Cron job
● Combines per-service config and
currently-blessed docker image
marathon-$cluster.yaml
45
● # tasks
● CPU, memory
● How to healthcheck your service
● Bounce strategy
● Command / args
Demo: Deploys
46
How do services talk to each
other?
47
Discovery in PaaSTA:
SmartStack
● Registration agent on each box
writes to ZooKeeper
● Discovery agent on each box reads
from ZK, configures HAProxy
48
Registration
49
Registering with SmartStack
50
● configure_nerve.py queries local
mesos-slave API
● Keeping it local means registration
works even if Mesos master or
Marathon is down.
● We can register non-PaaSTA
services as well
from http://mesos.apache.org/documentation/latest/mesos-architecture/
hacheck
service_1
service_2
service_3
Service host
ZK configure_nerve.py
nerve
metadata
healthcheck
Architecture: Registration
51
Nerve registers service instance in ZooKeeper:
/nerve/region:myregion
├── service_1
│ └── server_1_0000013614
├── service_2
│ └── server_1_0000000959
├── service_3
│ ├── server_1_0000002468
│ └── server_2_0000002467
[...]
from http://mesos.apache.org/documentation/latest/mesos-architecture/
{
"host":"10.0.0.123",
"port":31337,
"name":"server_1",
"weight":10,
}
ZooKeeper Data
52
Normally hacheck acts as a
transparent proxy for healthchecks:
$ curl -s yocalhost:6666/http/service_1/1234/status
{
"uptime": 5693819.315988064,
"pid": 2595160,
"host": "server_1",
"version": "b6309e09d71da8f1e28213d251f7c",
}
$
hacheck
53
Can also force healthchecks to fail
before we shut down a service
$ hadown service_1
$ curl -s yocalhost:6666/http/service_1/1234/status
Service service_1 in down state since 1443217910: krall
$
hacheck
54
Discovery
55
synapse
haproxy
ZK
client
configure_synapse.py
nerve
metadata
traffic
Architecture: Discovery
56
HAProxy
● By default, bind to 0.0.0.0
● Bind only to yocalhost on public-
facing servers
● Gives us goodies for all clients:
○ Redispatch on conn failure
○ Easy request logging
○ Rock-solid load balancing
57
yocalhost
58
● One HAProxy per host
● What address to bind HAProxy to?
● 127.0.0.1 is per-container
● Add loopback address to host:
169.254.255.254
● This also works on servers without
Docker
docker container 2
lo 127.0.0.1
eth0 169.254.14.18
docker container 1
yocalhost
59
lo 127.0.0.1
eth0 169.254.14.17
docker0 169.254.1.1
eth0 10.1.2.3
haproxy
lo 127.0.0.1
lo:0 169.254.255.244
smartstack.yaml
60
● port that HAProxy binds to
● mode (TCP/HTTP)
● Timeouts
● Healthcheck URI
Demo: Discovery
61
Monitoring
62
Monitoring a PaaS is different
63
● Things can change frequently
○ Which boxes run which services?
○ What services even exist?
● Traditional "host X runs service Y"
checks don't work anymore.
Monitor the invariants
64
● N copies of a service are running
● Marathon running on X,Y,Z
● All nodes are running mesos-slave,
synapse, nerve, docker
● Cron jobs have succeeded recently
Sensu monitoring
65
● Decentralized checking
● Client executes checks, puts
results on a message queue
● Sensu servers handle results from
the queue, route them to email,
PagerDuty, JIRA, etc.
try:
something that might fail
except:
send failure event
else:
send success event
We can send our own events
66
Lessons Learned
What has PaaSTA taught us?
Interfaces are important
68
App-Infra boundary
Permissive enough for developers to do their
job, strict enough to prevent infrastructure
from ballooning
69
The right abstractions can save you a lot of
work if you need to swap components
Between infra components
70
Iterative improvements find
local optima
Sometimes you need to take bigger risks to
get bigger rewards
"Evolution versus Revolution"
71
● It's open source now!
● More polish, docs, examples
● Support more technologies
○ Chronos in-progress
○ Docker Swarm?
○ Kubernetes?
What's next for PaaSTA?
72
Thank you!
Evan Krall
@meatmanek
krall@yelp.com

Mais conteúdo relacionado

Mais procurados

Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelWeb scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannel
purpleocean
 
WKSctl: Gitops Management of Kubernetes Clusters
WKSctl: Gitops Management of Kubernetes ClustersWKSctl: Gitops Management of Kubernetes Clusters
WKSctl: Gitops Management of Kubernetes Clusters
Weaveworks
 

Mais procurados (20)

From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
 
Learning how AWS implement AWS VPC CNI
Learning how AWS implement AWS VPC CNILearning how AWS implement AWS VPC CNI
Learning how AWS implement AWS VPC CNI
 
Service discovery in Docker environments
Service discovery in Docker environmentsService discovery in Docker environments
Service discovery in Docker environments
 
From a cluster to the Cloud
From a cluster to the CloudFrom a cluster to the Cloud
From a cluster to the Cloud
 
Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelWeb scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannel
 
Kubernetes: Beyond Baby Steps
Kubernetes: Beyond Baby StepsKubernetes: Beyond Baby Steps
Kubernetes: Beyond Baby Steps
 
Containerizing Network Services - Alon Harel - OpenStack Day Israel 2016
Containerizing Network Services - Alon Harel - OpenStack Day Israel 2016Containerizing Network Services - Alon Harel - OpenStack Day Israel 2016
Containerizing Network Services - Alon Harel - OpenStack Day Israel 2016
 
IPTABLES Introduction
IPTABLES IntroductionIPTABLES Introduction
IPTABLES Introduction
 
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
 
WKSctl: Gitops Management of Kubernetes Clusters
WKSctl: Gitops Management of Kubernetes ClustersWKSctl: Gitops Management of Kubernetes Clusters
WKSctl: Gitops Management of Kubernetes Clusters
 
OpenStack Magnum
OpenStack MagnumOpenStack Magnum
OpenStack Magnum
 
Enjoying k8s cluster with Minikube and Helm
Enjoying k8s cluster with Minikube and HelmEnjoying k8s cluster with Minikube and Helm
Enjoying k8s cluster with Minikube and Helm
 
Kubernetes Networking - Giragadurai Vallirajan
Kubernetes Networking - Giragadurai VallirajanKubernetes Networking - Giragadurai Vallirajan
Kubernetes Networking - Giragadurai Vallirajan
 
OpenShift Overview
OpenShift OverviewOpenShift Overview
OpenShift Overview
 
Trevor McDonald - Nagios XI Under The Hood
Trevor McDonald  - Nagios XI Under The HoodTrevor McDonald  - Nagios XI Under The Hood
Trevor McDonald - Nagios XI Under The Hood
 
Container (Docker) Orchestration Tools
Container (Docker) Orchestration ToolsContainer (Docker) Orchestration Tools
Container (Docker) Orchestration Tools
 
CNTUG x SDN Meetup #33 Talk 1: 從 Cilium 認識 cgroup ebpf - Ruian
CNTUG x SDN Meetup #33  Talk 1: 從 Cilium 認識 cgroup ebpf - RuianCNTUG x SDN Meetup #33  Talk 1: 從 Cilium 認識 cgroup ebpf - Ruian
CNTUG x SDN Meetup #33 Talk 1: 從 Cilium 認識 cgroup ebpf - Ruian
 
Load Balancing Applications with NGINX in a CoreOS Cluster
Load Balancing Applications with NGINX in a CoreOS ClusterLoad Balancing Applications with NGINX in a CoreOS Cluster
Load Balancing Applications with NGINX in a CoreOS Cluster
 
A user's perspective on SaltStack and other configuration management tools
A user's perspective on SaltStack and other configuration management toolsA user's perspective on SaltStack and other configuration management tools
A user's perspective on SaltStack and other configuration management tools
 
iptables 101- bottom-up
iptables 101- bottom-upiptables 101- bottom-up
iptables 101- bottom-up
 

Destaque

Imaginaction: Beyond Problem Solving
Imaginaction: Beyond Problem SolvingImaginaction: Beyond Problem Solving
Imaginaction: Beyond Problem Solving
Carlos Alonso Pascual
 
robert-bigan_resume_manger_director
robert-bigan_resume_manger_directorrobert-bigan_resume_manger_director
robert-bigan_resume_manger_director
Robert Bigan
 
Como hacer un negocio viable para siempre en #ideasLoyola
Como hacer un negocio viable para siempre en #ideasLoyolaComo hacer un negocio viable para siempre en #ideasLoyola
Como hacer un negocio viable para siempre en #ideasLoyola
Miguel Ángel Calero Fernández
 

Destaque (20)

Jon Skinner, Bulembu
Jon Skinner, BulembuJon Skinner, Bulembu
Jon Skinner, Bulembu
 
Explorador
ExploradorExplorador
Explorador
 
Jerry Marshall, Transcend Support
Jerry Marshall, Transcend SupportJerry Marshall, Transcend Support
Jerry Marshall, Transcend Support
 
Presentacion de prueba
Presentacion de pruebaPresentacion de prueba
Presentacion de prueba
 
Benj Street, Shift360
Benj Street, Shift360Benj Street, Shift360
Benj Street, Shift360
 
Rob Wilson, Ashoka – The View From The Ground
Rob Wilson, Ashoka – The View From The GroundRob Wilson, Ashoka – The View From The Ground
Rob Wilson, Ashoka – The View From The Ground
 
Los seres vivos
Los seres vivosLos seres vivos
Los seres vivos
 
Imaginaction: Beyond Problem Solving
Imaginaction: Beyond Problem SolvingImaginaction: Beyond Problem Solving
Imaginaction: Beyond Problem Solving
 
robert-bigan_resume_manger_director
robert-bigan_resume_manger_directorrobert-bigan_resume_manger_director
robert-bigan_resume_manger_director
 
Yurihonjo 3 - Student life in Boronkay School
Yurihonjo 3 - Student life in Boronkay SchoolYurihonjo 3 - Student life in Boronkay School
Yurihonjo 3 - Student life in Boronkay School
 
頂新案判決書
頂新案判決書頂新案判決書
頂新案判決書
 
Emoción y Significado: La dimensión afectiva del diseño
Emoción y Significado: La dimensión afectiva del diseñoEmoción y Significado: La dimensión afectiva del diseño
Emoción y Significado: La dimensión afectiva del diseño
 
謝文定聲明
謝文定聲明謝文定聲明
謝文定聲明
 
Slow Speed marine Engine Liner Wear Online Monitoring
Slow Speed marine Engine Liner Wear Online MonitoringSlow Speed marine Engine Liner Wear Online Monitoring
Slow Speed marine Engine Liner Wear Online Monitoring
 
A fokhagyma két arca
A fokhagyma két arcaA fokhagyma két arca
A fokhagyma két arca
 
Emotion & Design
Emotion & DesignEmotion & Design
Emotion & Design
 
How to cook Ube Roll and Pancit Bihon
How to cook Ube Roll and Pancit BihonHow to cook Ube Roll and Pancit Bihon
How to cook Ube Roll and Pancit Bihon
 
Como hacer un negocio viable para siempre en #ideasLoyola
Como hacer un negocio viable para siempre en #ideasLoyolaComo hacer un negocio viable para siempre en #ideasLoyola
Como hacer un negocio viable para siempre en #ideasLoyola
 
Msa
MsaMsa
Msa
 
Incremental model presentation
Incremental model presentationIncremental model presentation
Incremental model presentation
 

Semelhante a The Glue is the Hard Part: Making a Production-Ready PaaS

Semelhante a The Glue is the Hard Part: Making a Production-Ready PaaS (20)

Docker Workshop - Orchestrating Docker Containers
Docker Workshop - Orchestrating Docker ContainersDocker Workshop - Orchestrating Docker Containers
Docker Workshop - Orchestrating Docker Containers
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloud
 
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e JavaCome costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
 
Dockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and NovaDockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and Nova
 
Introduction to containers a practical session using core os and docker
Introduction to containers  a practical session using core os and dockerIntroduction to containers  a practical session using core os and docker
Introduction to containers a practical session using core os and docker
 
Docker Dhahran November 2017 meetup
Docker Dhahran November 2017 meetupDocker Dhahran November 2017 meetup
Docker Dhahran November 2017 meetup
 
Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OS
 
Building a Messaging Solutions for OVHcloud with Apache Pulsar_Pierre Zemb
Building a Messaging Solutions for OVHcloud with Apache Pulsar_Pierre ZembBuilding a Messaging Solutions for OVHcloud with Apache Pulsar_Pierre Zemb
Building a Messaging Solutions for OVHcloud with Apache Pulsar_Pierre Zemb
 
Making Distributed Data Persistent Services Elastic (Without Losing All Your ...
Making Distributed Data Persistent Services Elastic (Without Losing All Your ...Making Distributed Data Persistent Services Elastic (Without Losing All Your ...
Making Distributed Data Persistent Services Elastic (Without Losing All Your ...
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
 
How to build an event-driven, polyglot serverless microservices framework on ...
How to build an event-driven, polyglot serverless microservices framework on ...How to build an event-driven, polyglot serverless microservices framework on ...
How to build an event-driven, polyglot serverless microservices framework on ...
 
From Monolith to Docker Distributed Applications
From Monolith to Docker Distributed ApplicationsFrom Monolith to Docker Distributed Applications
From Monolith to Docker Distributed Applications
 
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introduction
 
Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015
 
Docker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xDocker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12x
 
Containerize! Between Docker and Jube.
Containerize! Between Docker and Jube.Containerize! Between Docker and Jube.
Containerize! Between Docker and Jube.
 
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
 
Clustering with Docker Swarm - Dockerops 2016 @ Cento (FE) Italy
Clustering with Docker Swarm - Dockerops 2016 @ Cento (FE) ItalyClustering with Docker Swarm - Dockerops 2016 @ Cento (FE) Italy
Clustering with Docker Swarm - Dockerops 2016 @ Cento (FE) Italy
 
Deploying OpenStack with Ansible
Deploying OpenStack with AnsibleDeploying OpenStack with Ansible
Deploying OpenStack with Ansible
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

The Glue is the Hard Part: Making a Production-Ready PaaS