The document discusses eBay's architecture and strategies for maintaining scalability and agility. It describes eBay's large scale, including billions of daily interactions. It also outlines eBay's transition to more automated, cloud-based infrastructure and a next generation service-oriented platform. This is intended to improve development productivity while allowing faster innovation and time-to-market through increased infrastructure and platform services.
The eBay Architecture: Striking a Balance between Site Stability, Feature Ve...Randy Shoup
eBay architects Randy Shoup and Dan Pritchett give a guided tour of the eBay architecture. They cover the evolution of the technology stack from Perl to C++ to Java. And they discuss scaling strategies for the data tier, application tier, search, and operations.
Pros and Cons of a MicroServices Architecture talk at AWS ReInventSudhir Tonse
Netflix morphed from a private datacenter based monolithic application into a cloud based Microservices architecture. This talk highlights the pros and cons of building software applications as suites of independently deployable services, as well as practical approaches for overcoming challenges - especially in the context of an elastic but ephemeral cloud ecosystem. What were the lessons learned while building and managing these services? What are the best practices and anti-patterns?
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailogjuljo
Full day workshop about Microservices Architectures, from the basis to advanced topics like Service Discovery, Load Balancing, Fault Tolerance and Centralized Logging.
Many technologies are involved, like Spring Cloud Netflix, Docker, Cloud Foundry and ELK.
A separate deck describes all the lab exercises.
Any team that has made the jump from building monoliths to building microservices knows the complexities you must overcome to build a system that is functional and maintainable. Building a microservice architecture that is low latency and only communicates using REST APIs is even more tricky, with high latency for requests being a common concern. This talk explains how you can use events as the backbone of your microservice architecture and build an efficient, event-driven system. It covers how to get started with designing your microservice architecture and the key requirements any system needs to fulfil. It also introduces the different patterns you will encounter in event-driven architectures and the advantages and disadvantages of these choices. Finally it explains why Apache Kafka is a great choice for event-driven microservices.
The eBay Architecture: Striking a Balance between Site Stability, Feature Ve...Randy Shoup
eBay architects Randy Shoup and Dan Pritchett give a guided tour of the eBay architecture. They cover the evolution of the technology stack from Perl to C++ to Java. And they discuss scaling strategies for the data tier, application tier, search, and operations.
Pros and Cons of a MicroServices Architecture talk at AWS ReInventSudhir Tonse
Netflix morphed from a private datacenter based monolithic application into a cloud based Microservices architecture. This talk highlights the pros and cons of building software applications as suites of independently deployable services, as well as practical approaches for overcoming challenges - especially in the context of an elastic but ephemeral cloud ecosystem. What were the lessons learned while building and managing these services? What are the best practices and anti-patterns?
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailogjuljo
Full day workshop about Microservices Architectures, from the basis to advanced topics like Service Discovery, Load Balancing, Fault Tolerance and Centralized Logging.
Many technologies are involved, like Spring Cloud Netflix, Docker, Cloud Foundry and ELK.
A separate deck describes all the lab exercises.
Any team that has made the jump from building monoliths to building microservices knows the complexities you must overcome to build a system that is functional and maintainable. Building a microservice architecture that is low latency and only communicates using REST APIs is even more tricky, with high latency for requests being a common concern. This talk explains how you can use events as the backbone of your microservice architecture and build an efficient, event-driven system. It covers how to get started with designing your microservice architecture and the key requirements any system needs to fulfil. It also introduces the different patterns you will encounter in event-driven architectures and the advantages and disadvantages of these choices. Finally it explains why Apache Kafka is a great choice for event-driven microservices.
Kevin Huang: AWS San Francisco Startup Day, 9/7/17
Architecture: When, how, and if to adopt microservices - Microservices are not for everyone! If you're a small shop, a monolith provides a great amount of value and reduces the complexities involved. However as your company grows, this monolith becomes more difficult to maintain. We’ll look at how microservices allow you to easily deploy and debug atomic pieces of infrastructure which allows for increased velocity in reliable, tested, and consistent deploys. We’ll look into key metrics you can use to identify the right time to begin the transition from monolith to microservices.
This presentation explains the three layer API design which organisations can use to get most out of there systems with less development and maintenance time spent on fixing issues as a whole in org.
API Gateways are the well suited service for microservices architecture. It provides many security and performance related features along with reliability of the system. These slides explains what is API Gateway. What is microservices architecture, its benefits and how API Gateway empower this architecture. Further more API Gateway aggregation is explained with an example.
This is the video capture of the meetup described at https://www.meetup.com/lifemichael/events/287981390/ This video includes the two talks the meetup included. The first one is an introductory talk for the topic. The second one covers the SAGA design pattern.
SCS 4120 - Software Engineering IV
BACHELOR OF SCIENCE HONOURS IN COMPUTER SCIENCE
BACHELOR OF SCIENCE HONOURS IN SOFTWARE ENGINEERING
All in One Place Lecture Notes
Distribution Among Friends Only
All copyrights belong to their respective owners
Viraj Brian Wijesuriya
vbw@ucsc.cmb.ac.lk
Microservices Pattern Language
Microservices Software Architecture Governance, Best Practices and Design Pattern
Decomposition Patterns
Decompose by Business Capability
Decompose by Subdomain
CSI – IT2020, IIT Mumbai, October 6th 2017
Computer Society of India, Mumbai Chapter
The presentation focuses on Microservices architecture and the comparison between MicroService with Standard Monolithic Apps and SOA based Apps. It also gives a quick outline of Domain Driven Design, Event Sourcing and CQRS, Functional Reactive Programming and comparison of SAGA pattern with 2 Phase Commit.
http://www.csimumbai.org/it2020-17/index.html
C. Sotiriou, Vodafone Greece: Adopting Quarkus for the digital experience layerUni Systems S.M.S.A.
Christos Sotiriou, Backend Chapter Lead in Digital Engineering at Vodafone Greece, delivers a thorough presentation on how Vodafone Greece moved from Spring to Quarkus and the journey towards a cleaner & faster stack. The webinar was delivered on June 25, 2020.
APIsecure 2023 - Approaching Multicloud API Security USing Metacloud, David L...apidays
APIsecure 2023 - The world's first and only API security conference
March 14 & 15, 2023
Approaching Multicloud API Security USing Metacloud
David Linthicum, Chief Cloud Strategy Officer at Deloitte Consulting
------
Check out our conferences at https://www.apidays.global/
Do you want to sponsor or talk at one of our conferences?
https://apidays.typeform.com/to/ILJeAaV8
Learn more on APIscene, the global media made by the community for the community:
https://www.apiscene.io
Explore the API ecosystem with the API Landscape:
https://apilandscape.apiscene.io/
A proper Microservice is designed for fast failure.
Like other architectural style, microservices bring costs and benefits. Some development teams have found microservices architectural style to be a superior approach to a monolithic architecture. Other teams have found them to be a productivity-sapping burden.
This material start with the basic what and why microservice, follow with the Felix example and the the successful strategies to develop microservice application.
Kevin Huang: AWS San Francisco Startup Day, 9/7/17
Architecture: When, how, and if to adopt microservices - Microservices are not for everyone! If you're a small shop, a monolith provides a great amount of value and reduces the complexities involved. However as your company grows, this monolith becomes more difficult to maintain. We’ll look at how microservices allow you to easily deploy and debug atomic pieces of infrastructure which allows for increased velocity in reliable, tested, and consistent deploys. We’ll look into key metrics you can use to identify the right time to begin the transition from monolith to microservices.
This presentation explains the three layer API design which organisations can use to get most out of there systems with less development and maintenance time spent on fixing issues as a whole in org.
API Gateways are the well suited service for microservices architecture. It provides many security and performance related features along with reliability of the system. These slides explains what is API Gateway. What is microservices architecture, its benefits and how API Gateway empower this architecture. Further more API Gateway aggregation is explained with an example.
This is the video capture of the meetup described at https://www.meetup.com/lifemichael/events/287981390/ This video includes the two talks the meetup included. The first one is an introductory talk for the topic. The second one covers the SAGA design pattern.
SCS 4120 - Software Engineering IV
BACHELOR OF SCIENCE HONOURS IN COMPUTER SCIENCE
BACHELOR OF SCIENCE HONOURS IN SOFTWARE ENGINEERING
All in One Place Lecture Notes
Distribution Among Friends Only
All copyrights belong to their respective owners
Viraj Brian Wijesuriya
vbw@ucsc.cmb.ac.lk
Microservices Pattern Language
Microservices Software Architecture Governance, Best Practices and Design Pattern
Decomposition Patterns
Decompose by Business Capability
Decompose by Subdomain
CSI – IT2020, IIT Mumbai, October 6th 2017
Computer Society of India, Mumbai Chapter
The presentation focuses on Microservices architecture and the comparison between MicroService with Standard Monolithic Apps and SOA based Apps. It also gives a quick outline of Domain Driven Design, Event Sourcing and CQRS, Functional Reactive Programming and comparison of SAGA pattern with 2 Phase Commit.
http://www.csimumbai.org/it2020-17/index.html
C. Sotiriou, Vodafone Greece: Adopting Quarkus for the digital experience layerUni Systems S.M.S.A.
Christos Sotiriou, Backend Chapter Lead in Digital Engineering at Vodafone Greece, delivers a thorough presentation on how Vodafone Greece moved from Spring to Quarkus and the journey towards a cleaner & faster stack. The webinar was delivered on June 25, 2020.
APIsecure 2023 - Approaching Multicloud API Security USing Metacloud, David L...apidays
APIsecure 2023 - The world's first and only API security conference
March 14 & 15, 2023
Approaching Multicloud API Security USing Metacloud
David Linthicum, Chief Cloud Strategy Officer at Deloitte Consulting
------
Check out our conferences at https://www.apidays.global/
Do you want to sponsor or talk at one of our conferences?
https://apidays.typeform.com/to/ILJeAaV8
Learn more on APIscene, the global media made by the community for the community:
https://www.apiscene.io
Explore the API ecosystem with the API Landscape:
https://apilandscape.apiscene.io/
A proper Microservice is designed for fast failure.
Like other architectural style, microservices bring costs and benefits. Some development teams have found microservices architectural style to be a superior approach to a monolithic architecture. Other teams have found them to be a productivity-sapping burden.
This material start with the basic what and why microservice, follow with the Felix example and the the successful strategies to develop microservice application.
Developing polyglot applications on Cloud Foundry (#oredev 2012)Chris Richardson
Developing web applications used to be simple. Your single war-file web application served up HTML to a desktop browser and used a relational database. Today however, web applications are much more complex: the front-end uses HTML5 and NodeJS, the middle tier is decomposed into multiple services, and the back-end uses a mix of SQL and NoSQL databases. Developing these kind of applications can be challenging since there are so many moving parts that need to be correctly installed and configured. Deployment is even more difficult.
In this talk, you will learn why we need to build applications with this architectural style and how Cloud Foundry, which is modern, multi-lingual, multi-service, extensible open-source PaaS, can help. We will talk about how to develop modern applications that run on Cloud Foundry and cover what’s new and different about the cloud environment. You will learn how your application can consume the various services that are provided by Cloud Foundry. We will discuss the various ways of using Cloud Foundry including the Micro Cloud that runs on a laptop as well as the hosted CloudFoundry.com.
How real-time computing will transform supply chain decision-making
This presentation will provide a plain-English account of how real-time computing will transform supply chain decision-making and control. Peter Evans-Greenwood will illustrate the emerging leading practices with lessons learned from case studies, featuring clients across the globe.
The biggest challenge for today's supply chains is to be adaptive. While tremendous gains have been made over the last thirty years, today's applications are not as flexible as promised. New tools and techniques are required to capture and automate the non-linear, exception-rich, business logic that we currently rely on employees to deliver. Extending the technology stack will allow us to leverage the higher capacity of technology to deliver globally optimal solutions and to introduce innovations such as the moving warehouse into all our supply chains.
5 Cloud Commandments - Why Cloud Management Makes SenseRightScale
RightScale Conference Santa Clara 2011: What is the cloud and how do you manage it? Uri Budnik will discuss the cloud technology landscape and where RightScale fits in to drive agility, cost, and time savings above cloud infrastructure. RightScale has been investing heavily for the past four years to make cloud infrastructure easy to leverage. This session will clarify elements that are straightforward, what continues to be difficult, and the impact on your schedule and budget.
Axway Managed Services for Exchange and Integration PlatformJean-Claude Bellando
Methods, tooling, highly skilled and experimented staff help Axway customers to increase productivity and maximize quality of service of the interaction layer.
Virtualizing Latency Sensitive Workloads and vFabric GemFireCarter Shanklin
This presentation was made by Emad Benjamin of VMware Technical Marketing. Normally I wouldn't upload someone else's preso but I really insisted this get posted and he asked me to help him out.
This deck covers tips and best practices for virtualizing latency sensitive apps on vSphere in general, and takes a deep dive into virtualizing vFabric GemFire, which is a high-performance distributed and memory-optimized key/value store.
Best practices include how to configure the virtual machines and how to tune them appropriately to the hardware the application runs on.
Experimentation plays a vital role in business growth at eBay by providing valuable insights and prediction on how users will reach to changes made to the eBay website and applications. On a given day, eBay has several hundred experiments running at the same time. Our experimentation data processing pipeline handles billions of rows user behavioral and transactional data per day to generate detailed reports covering 100+ metrics over 50 dimensions.
In this session, we will share our journey of how we moved this complex process from Data warehouse to Hadoop. We will give an overview of the experimentation platform and data processing pipeline. We will highlight the challenges and learnings we faced implementing this platform in Hadoop and how this transformation led us to build a scalable, flexible and reliable data processing workflow in Hadoop. We will cover our work done on performance optimizations, methods to establish resilience and configurability, efficient storage formats and choices of different frameworks used in the pipeline.
Enterprises are Increasingly demanding realtime analytics and insights to power use cases like personalization, monitoring and marketing. We will present Pulsar, a realtime streaming system used at eBay which can scale to millions of events per second with high availability and SQL-like language support, enabling realtime data enrichment, filtering and multi-dimensional metrics aggregation.
We will discuss how Pulsar integrates with a number of open source Apache technologies like Kafka, Hadoop and Kylin (Apache incubator) to achieve the high scalability, availability and flexibility. We use Kafka to replay unprocessed events to avoid data loss and to stream realtime events into Hadoop enabling reconciliation of data between realtime and batch. We use Kylin to provide multi-dimensional OLAP capabilities.
Yahoo! Application Platform Technical Deep DiveTony Ng
Learn how to build applications for a platform that can reach 330M+ worldwide users! This session gives a technical overview of the Yahoo! Application Platform (YAP), which enables third-party applications to be embedded within popular Yahoo! destinations such as My Yahoo! and the Yahoo! home page. The session will cover key features of YAP, including Yahoo Markup Language (YML), Caja, Open Social, image cache and application editor. Next the talk will explain how to build an application for this platform as well as best practices to deliver great user experience from your application.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
2. About
Me
• eBay
–
Systems
Architecture
and
Engineering
• Yahoo!
–
Social,
Developer
PlaEorms,
YQL
• Sun
Microsystems
–
J2EE,
GlassFish,
JSRs
• Author
of
books
on
J2EE,
SOA
2
3. eBay
Stats
• 97
million
acQve
users
• 62B
Gross
Merchandise
Volume
in
2010
• 200
million
items
for
sale
in
50,000
categories
• A
cell
phone
is
sold
every
5
seconds
in
US
• An
iPad
sold
every
2.2
minutes
in
US
• A
pair
of
shoes
sold
every
9
seconds
in
US
• A
passenger
vehicle
sold
every
2
minutes
• A
motorcycle
sold
every
6
minutes
http://www.ebayinc.com/factsheets
3
4. eBay
Scale
• 9
Petabytes
of
data
storage
• 10,000
applicaQon
servers
• 44
million
lines
of
code
• 2
billion
pictures
• A
typical
day
– 75B
database
calls
– 4B
page
views
– 250B
search
queries
– Billions
of
service
calls
– Hundreds
of
millions
of
internal
asynchronous
events
4
6. eBay
Scalable
Architecture
• ParQQon
everything
– Databases,
applicaQon
Qer,
search
engine
• Stateless
preference
– No
session
state
in
app
Qer
• Asynchronous
processing
– Event
streams,
batch
• Manage
failures
– Central
applicaQon
logging
– Mark
downs
6
7. Next
Challenges
• To
stay
compeQQve,
we
need
to
deliver
quality
features
and
innovaQons
at
acceleraQng
paces
• Complexity
as
our
codebase
grows
• Improve
developer
producQvity
• Enable
faster
Qme-‐to-‐market
while
maintaining
site
stability
7
8. Scalability
with
Agility
• Strategy
1:
AutomaQon
with
Cloud
• Strategy
2:
Next
Gen
Service
OrientaQon
• Strategy
3:
Modularity
8
10. Hardware
Acquisi=on
request order receive & deliver
{ servers, rack & wire
model, app } Label (app)
“several”
weeks
2-3 w 1w
repurpose
request order Receive deliver to request deliver
{servers, pre-racked cache {servers,
model } Pre-wired model, app }
quarterly
minutes
2-3 w 1 day
repurpose
10
11. Improving
U=liza=on
DR
Number of servers required based on utilization for 8 pools
11
12. Infrastructure
Virtualiza=on
Application App App App
Application App App App
Spare spare spare spare
Global resource pool
Infra Infra Infra Infra
Shared infrastructure
13. eBay
Cloud
Self Service Automation Capacity Management
Portal
Resource Allocation
Virtualization
Spare Capacity
pool Hardware Acquisition
provisioning
in minutes
Improved Time to Market
15. Infrastructure
&
PlaIorm
as
a
service
Higher developer
productivity
Full application level
automation
Enables innovation
on new platforms
Platform As A Service
Infrastructure Automated Life Cycle Management
level automation
Front End, Search Back End, Generic Platform
Infrastructure As A Service
Automated Operations
Virtualized & Common Infrastructure
15
16. Model
Driven
Deployment
Automa=on
LB Pool LB Pool • Desired configuration is
specified in the expected state
and persisted in CMS
Server Server Server Server Server Server • Upon approval, the
orchestration will configure the
site to reflect the desired
configuration.
Reconciliation
Expected Current
State State • Updated site configuration is
discovered based on
Comparison detection of configuration
events
• Reconciliation between the
Orchestration Discovery expected and current state
allows to verify the proper
configuration.
• On going validation allows the
detection of out of band
changes.
Site
16
17. Open
Source
Integra=on
IaaS/PaaS API IaaS/PaaS API
Distribute Distribute
orchestrat Resource orchestrat Resource
d d
ion Allocation ion Allocation
State State
Applicatio Access Applicatio Access
AuthN/ AuthN/
n Point n Point
AuthZ AuthZ
Controller Controller Controller Controller
Compute Cluster Pool Compute Cluster Pool
Controller Controller Controller Controller Controller Controller
Compute
Mgt.
DNS
Mgt.
LB
Mgt.
Monitor
ing
Open
Source
Network Image/Pkg Software
SoluQon
Prov Repo Dist. (openstack
/
Cloudstack)
20. Services
@
eBay
• It’s a journey !
• History
• One of the first to expose APIs /Services
• In early 2007, embarked on service orienting our entire
ecommerce platform, whether the functionality is internal
or external
• Support REST style as well as SOA style
• Have close to 300 services now and more on the way
• Early adopter of SOA governance automation (Discovery
vs. control)
20
21. Architecture
Vision
Customer Experience
Core
Experience
Custom
Experiences
Channels
Application Platform Services
Login
Iden=ty
Catalog
Search
List
Pricing
Offer
ADs
Messages
Cart
Coupons
Payment
Shipping
CS
Technology Platform
App
Data
Access
Dev
Tools
Presenta Messaging
SOA
Cloud
Stack
Layer
=on
Operations Infrastructure Layer
Power
Data
Center
Hardware
Network
Database
Tools
Opera=ons
22. Challenges
• MulQple
data
formats
• Latency
• Service
consumer
producQvity
22
23. Challenge
1:
Mul=ple
Data
Formats
• Mix
of
user
preferences
– SOAP
– XML
/
HTTP
– JSON
– Name-‐Value
Pair
(NV)
• Service
developers
don’t
want
to
write
extra
code
to
do
conversions;
too
much
maintenance
impact
• Key
observaQons:
– Users
ask
for
whatever
data
format
they
want.
– Anything
you
can
express
in
XML,
you
can
express
in
other
formats
– Complete
mapping
from
XML
structures
to
NV
and
JSON
23
24. Solu=on:
Pluggable
Data
Formats
Using
JAXB
Uniform interface
XML
Pluggable formats
A single
Instance of
JSON XML Directly Service Impl
Ser/Deser module
NV deserialized
into
pipeline
JAXB Passed to
JSON Java
objects
others
NV
SOA framework
Other
formats
No intermediate format,
24
Avoids extra conversion
25. Challenge
2:
Latency
• For
large
datasets,
there
can
be
nasty
latencies.
– Not
fixed
by
compressing
or
using
Fast
Infoset
2MB structured response payload
350
300
250
200
150
100
50
0 Wire Time (msec)
25
26. Solu=on:
Binary
Formats
• Evaluated
binary
formats:
• Google
Protocol
Buffers,
Avro,
ThriY
• Numbers
look
promising
(serializaQon,
deserializaQon)
• New
challenges
with
these:
• Each
has
its
own
schema
(type
definiQon
language)
to
model
types
and
messages
• Each
has
its
own
code
genera=on
for
language
bindings
• NOT
directly
compaQble
with
JAXB
beans
• eBay
SOA
plaEorm
uses
WSDL/XML
Schema
(XSD)
data
modeling,
and
JAXB
language
bindings
26
27. Compare
Popular
Binary
Formats
Protobuf Avro Thrift
• Own IDL/schema • JSON based Schema • Own IDL/schema
• Sequence numbers for each • Schema prepended to the message • Sequence numbers for each
element on the wire element
• Compact binary representation on • Compact binary representation on • Compact binary representation on
the wire the wire the wire
• Most XML schema elements are • Most XML schema elements are • Most XML schema elements are
mappable to equivalents, except mappable to equivalent, except mappable to equivalents, except
polymorphic constructs polymorphic constructs polymorphic constructs
• Versioning is similar to XML, a bit • Versioning is easier • Versioning is similar to XML, a bit
more complex in implementing due more complex in implementing due
to sequence numbers to sequence numbers
Inheritance
Self-‐ /
Complex
Unions
References
Polymorph
Types
(Choice
Type)
(Trees)
Enums
ism
Inline
A`achment
Protobuf
Yes
No
Yes
Yes
No
No
Yes
(with
Avro
Yes
Yes
workaround)
Yes
No
No
ThriY
Yes
No
No
No
No
No
XML
27
Yes
Yes
Yes
Yes
Yes
Yes
(MIME-‐TYPE)
28. Comparison
of
Data
Formats
Response data: 50 items x 75 fields (about 8000 objects)
200
180
160
140
120
100 Size (KB)
80 Wire time (msec)
60
40
20
0
JSON XML Fast Infoset Protobuf
28
29. Latency
Improvements
200
180
160
140
120
100
80 Wire Time(msec)
60
40
20
0
XML XML no XML flat PB no PB flat
poly poly
29
30. Challenge
3:
Service
Consumer
Produc=vity
• Large,
complex
requests
and
responses
• Get
exactly
what
they
want
in
data
returned
from
services
• Lack
of
consistency
in
service
interface
convenQons
and
data
access
pajerns
• Real
client
applicaQons
make
calls
to
mulQple
services
at
a
Qme
– Serial
calls
increase
latency.
Managing
parallel
calls
is
complex
• Impedance
mismatch
between
service
interface
and
client
needs
– Too
much
data
is
returned
– 1
+
n
calls
to
get
detailed
data
30
31. Sneak
Preview:
• New
technology
from
eBay
• Plan
to
open
source
soon
• SQL
+
JSON
based
scripQng
language
for
aggregaQon
and
orchestraQon
of
service
calls
• Filtering
and
projecQons
of
responses
• Async
orchestraQon
engine
– AutomaQc
parallelizaQon,
fork
/
join
31
32. What
ql.io
Enables
• Create
consumer-‐controlled
interfaces
- fix/patch
APIs
on
the
fly
• Filter
and
project
responses
- use
a
declaraQve
language
• Bring
in
consistency
- offer
RESTful
shims
with
simpler
syntax
• Aggregate
mul=ple
APIs
- such
as
batching
• Orchestrate
requests
- without
worrying
about
async
forks
and
joins
32
33. ql.io
Examples
• Simple
Select
– select
*
from
ebay.finding.items
where
keywords=‘ipad’
• Field
ProjecQons
– select
Qtle,
itemId
from
ebay.finding.items
where
keywords=‘ipad’
• Sub-‐Select
– select
e.Title,
e.ItemID
from
ebay.item.details
as
e
where
e.itemId
in
(select
itemId
from
ebay.finding.items
where
keywords
=
‘ipad’)
33
34. ql.io
Batch
Example
itemId
=
select
itemId
from
ebay.finding.items
where
keywords
=
'ferrari'
limit
1;
item
=
select
*
from
ebay.shopping.singleitem
where
itemId
=
'{itemId}';
user
=
select
*
from
ebay.shopping.userprofile
where
userId
=
'sallamar';
tradingItem
=
select
*
from
ebay.trading.geQtem
where
itemId
=
'{itemId}';
bestOffers
=
select
*
from
ebay.trading.bestoffers
where
itemId
=
'{itemId}';
bidders
=
select
*
from
ebay.trading.getallbidders
where
itemId
=
'{itemId}';
return
{
"user"
:
"{user}",
"item"
:
"{item}”,
"tradingItem"
:
"{tradingItem}",
"bidders"
:
"{bidders}",
"bestOffers"
:
"{bestOffers}"
};
34
38. Challenges
for
Large
Enterprises
• Some
stats
on
the
eBay
code
base
– ~
44
million
of
lines
of
code
and
growing
– Hundreds
of
thousands
of
classes
– Tens
of
thousands
of
packages
– ~
4,000+
jars
• We
have
too
many
dependencies
and
Qght
coupling
in
our
code
– Everyone
sees
everyone
else
– Everyone
affects
everyone
else
38
39. Challenges
for
Large
Enterprises
• Developer
producQvity/agility
suffers
as
the
knowledge
goes
down
– Changes
ripple
throughout
the
system
– Fallouts
from
changes/features
are
difficult
to
resolve
– Developers
slow
down
and
become
risk
averse
knowledge complexity
code size
39
40. Our
Goals
with
Modularity
Efforts
• Tame
complexity
• Organize
our
code
base
in
loose
coupling
fashion
– Coarse-‐grained
modules:
number
majers!
– DeclaraQve
coupling
contract
– Ability
to
hide
internals
• Establish
clear
code
ownership,
boundaries
and
dependencies
• Allow
different
components
(and
teams)
evolve
at
different
speeds
• Increase
development
agility
40
42. OSGi
@
eBay
• Modularize
plaEorm
into
OSGi
bundles
with
well-‐defined
imports
and
exports
• Challenges:
split
packages,
Classloader
contructs
• Source
to
binary
dependencies
• Refresh
end-‐to-‐end
development
life
cycle
pull/push SCM pull
Command line
IDE
build (CI)
consume publish/consume
Deployment Server runtime
Repository
packaging deploy
42
43. Lessons
Learned
• OSGi
learning
curve
is
sQll
fairly
steep
– large
group
of
developers
with
varying
skill
levels
• End-‐to-‐end
development
lifecycle
– Tools
may
not
work
well
together.
Leverage
OSGi
tools
like
bnd
• Conversion/migraQon
of
exisQng
code
base
– Not
starQng
from
vacuum
– Cost
to
rewrite
/
refactor
code
– We
cannot
afford
disrupQon
to
business
meanwhile:
“change
parts
while
the
car
is
running”
• SemanQc
versioning
adopQon
is
important
43
44. Overall
Summary
• Strategies
– Deployment
Agility:
AutomaQon
with
Cloud
– Development
Agility:
Next
gen
Service
OrientaQon
– Taming
complexity:
Modularity
• Systems
quality
&
scalable
architecture
as
key
foundaQon
• Complexity
management
and
developer
producQvity
becomes
increasingly
important
• Strike
balance
between
agility
and
stability
44
45. eBay Open Source
• eBay has been a strong supporter of Open
Source model and community
• Check out http://eBayOpenSource.org
• Mission is to open source some of the best of breed
technologies that were developed originally within eBay
Inc.
• Under a liberal open source license.
• These projects are generic technology projects and
several years of development effort has gone into them
to mature them.
(Coming soon)
45