IST346: Scalability.

Slides:



Advertisements
Similar presentations
Database Architectures and the Web
Advertisements

Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
Business Continuity and DR, A Practical Implementation Mich Talebzadeh, Consultant, Deutsche Bank
Technical Architectures
Distributed Systems and the WWW Extending the Capability of Massively Multiplayer Online Games by Introducing Distributed Systems as World Servers Jason.
12 Chapter 12 Client/Server Systems Database Systems: Design, Implementation, and Management, Fifth Edition, Rob and Coronel.
Client/Server Architecture
Dynamics AX Technical Overview Application Architecture Dynamics AX Technical Overview.
Take An Internal Look at Hadoop Hairong Kuang Grid Team, Yahoo! Inc
Distributed Data Stores – Facebook Presented by Ben Gooding University of Arkansas – April 21, 2015.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Application Layer CHAPTER 2. Announcements and Outline  Administrative Items  Questions? Recap 1.Introduction to Networks 1.Network Type 2.N etwork.
#devshark welcome to #devshark. #devshark HELLO! I’M Ville Rauma Fingersoft Product Owner Web
(C) 2008 Clusterpoint(C) 2008 ClusterPoint Ltd. Empowering You to Manage and Drive Down Database Costs April 17, 2009 Gints Ernestsons, CEO © 2009 Clusterpoint.
Personal Computer - Stand- Alone Database  Database (or files) reside on a PC - on the hard disk.  Applications run on the same PC and directly access.
Department of Computing, School of Electrical Engineering and Computer Sciences, NUST - Islamabad KTH Applied Information Security Lab Secure Sharding.
Data Communications and Networks Chapter 9 – Distributed Systems ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
Hiearchial Caching in Traffic Server. Hiearchial Caching  A set of techniques and mechanisms to increase the size and performance of network caches.
(re)-Architecting cloud applications on the windows Azure platform CLAEYS Kurt Technology Solution Professional Microsoft EMEA.
Fault – Tolerant Distributed Multimedia Streaming Web Application By Nirvan Sagar – Srishti Ganjoo – Syed Shahbaaz Safir
High Availability Clusters in Linux Sulamita Garcia EDS Unix Specialist
Chapter 12: Architecture
Business System Development
Scaling Network Load Balancing Clusters
REPLICATION & LOAD BALANCING
System Architecture Issues
The Client/Server Database Environment
Principles of Network Applications
Module 8: Concepts of a Network Load Balancing Cluster
Some bits on how it works
The Client/Server Database Environment
CHAPTER 2 Application Layer.
Working at a Small-to-Medium Business or ISP – Chapter 7
LECTURE 34: WEB PROGRAMMING FOR SCALE
Connecting to the Internet
#01 Client/Server Computing
Client-Server Interaction
Working at a Small-to-Medium Business or ISP – Chapter 7
LECTURE 32: WEB PROGRAMMING FOR SCALE
Working at a Small-to-Medium Business or ISP – Chapter 7
LECTURE 33: WEB PROGRAMMING FOR SCALE
Introducing Qwory, a Business-to-Business Search Engine That’s Powered by Microsoft Azure and Detects Vital Contact Information for Businesses MICROSOFT.
Partner Logo Azure Provides a Secure, Scalable Platform for ScheduleMe, an App That Enables Easy Meeting Scheduling with People Outside of Your Company.
Lecture 1: Multi-tier Architecture Overview
Appcelerator Arrow: Build APIs in Minutes. Connect to Any Data Source
Chapter 12: Physical Architecture Layer Design
Software models - Software Architecture Design Patterns
CPEG514 Advanced Computer Networkst
IST346: Services: Monitoring and Logging
IST346: Internet of Things
IST346: Managing IT.
IST346: Data and Database Management, Backupa
IST346: Debugging and Troubleshooting
IST346: Servers and Data Centers
IST346: Services: Application Architecture
IST346: Mobile Services.
IST346: Ethics.
IST346: Information Security & Risk Management
IST346: Workstations & Clients
Agenda Discussion Content Other Messaging Services Wrap-Up.
IST346: Web Services and API’s
IST346: Networking Fundamentals
IST346: Operating Systems / Command Line Interfaces
IST346: Virtualization and Containerization
IST346: Storage and File Systems
LOAD BALANCING INSTANCE GROUP APPLICATION #1 INSTANCE GROUP Overview
IST346: Cloud Computing and DevOps
LECTURE 33: WEB PROGRAMMING FOR SCALE
#01 Client/Server Computing
Network programming Lecture 1 Prepared by: Dr. Osama Mokhtar.
Presentation transcript:

IST346: Scalability

Agenda Discussion Content Scalability Wrap-Up

Discussion Questions Explain Master / Slave architecture for redundancy. What is a hot spare? Cold Spare? What is a load balancer? Define scaling for performance vs scaling for resilience? What is the difference between latency and bandwidth? What are the two ways one can test that a service can scale? Give students 1-2 minutes for each question. Its important to provide them with the opportunity to answer the questions based on the reading, labs, and assigned homework. 6. Load testing (black box) and dataflow analysis (white box)

Lab Debrief Lab G

What is Scalability? The capability of a system to handle an increased amount of work. We see this all the time: Doing laundry at home versus the laundromat Cooking for friends versus catering a party for 500 people Walking to work versus riding a bike versus driving a car Having friends help you with your wedding invitations versus doing them yourself.

Scaling Services: How do you address growth? Vertical “Scale Up” Horizontal “Scale Out” Add more resources to an existing system running the service or split across layers. Easier, but limited scale. Single point of failure Run the service over multiple systems, and orchestrate communication between them. Harder, but massive scale. Overhead to manage nodes. The last thing to discuss before we get into devops is how services are scaled. [CLICK, READ] To be compatible with the devOps universe we need to build apps that scale out. More on this as we cover devOps next.

Trivial Vertical Scaling Buy your way out of the problem. Buy a faster computer Invest in a faster internet connection We do this all the time with our phones, etc… Limited based on available technology.

Vertical Scale Through Layering We re-design / program the application to support multiple users by breaking up / splitting the layers. Presentation Business Logic Clients Presentation Business Logic Data Access Data Network + Middleware Scale Up Monolithic We scale up data-oriented applications by separating the layers of the application into their own independent services which communicate over the network. This allows more users to access the application, yet introduces some design complexity. ADVANCE SLIDE When an application’s layers are segmented we must introduce middleware between the applications of each layer in order for them to communicate. For example we might use ODBC middleware so that the data access layer can communicate with the database itself. Or in the case of the diagram you see an ODATA REST API so that the business logic can communicate with the data access layer. Data Access Data Server

Example Wordpress We ran the Wordpress Blog/CMS in the lab as an N-tier application. This was scaled Vertically across 3 containers. We could have run the entire application from within a single container with all three services competing for resources! Clients Single System Three Systems NGINX + WORDPRESS + MYSQL NGINX WORDPRESS MYSQL

Redundancy != Scalability Redundancy is not scalability. Scalability addresses performance of a system to do work Redundancy addresses availability of a system to do work Clients Three Systems NGINX WORDPRESS MYSQL MYSQL (Replica)

Horizontal Scalability Horizontal Scalability or Scaling out always involves sharing load among multiple instances of the same service. Systems must be designed to scale this way They also require a system to direct traffic to a specific instance (load balancer) Clients Load Balancer Instance Instance Instance

Balancing Load Who does it? How it is done? A Master service of the system to orchestrates load distribution (Hadoop, and most noSQL database systems work this way). Another service orchestrates distribution. HAProxy, DNS, Zookeeper, etc. Round Robin / Ring Request-Based Location-Based Based on existing instance load. Custom / Hybrid

Performance vs Scalability Is the system slow for a single user? You have a performance problem. Is the system fast for an individual user, but slow under high load? You have a scalability problem.

Check Yourself: Scaling SMTP Brainstorm ways you can scale the SMTP (Simple mail transport Protocol – the service that sends email) at your large organization. What might be a strategy to scale this service out and balance the load across 10 SMTP servers?

Group Activity Scaling your life

Details of Group Activity Divide into groups of 3 Come up with 3 activities you do every day then include solutions for how you can scale those activities to improve output. Improvements can be time-saving or increasing volume / throughput. For each solution, identify if it is scale up or scale out? Make sure you can explain / justify.

Your To-Do List What to work on for next class ALWAYS CONSULT THE SYLLABUS What to work on for next class

Exit Ticket Share one thing you learned today that you didn’t know before class!

Questions?