The core fundamentals of distributed systems. Learn how some of these fundamentals can be used in other areas of your IT infrastructure. Learn how NGINX follows some of these characteristics and how it can help you in your Infrastructure.
1. Bringing Together the Core Fundamentals
of Distributed Systems
Kevin Jones @webopsx
11-5-2015
2. A Little about me
2
• My name is Kevin Jones
• Currently working as Sales Engineer for NGINX, Inc
• Previously worked as an SRE for YP - yellowpages.com
• Experience with production operations, large scale infrastructure and
automation
• Enjoy meeting new people, music and learning new technology
3. Objectives
3
• What is a Distributed System?
• What makes a Distributed System efficient and reliable?
• What are some of the core fundamentals of Distributed Systems and what
makes them great characteristics to implement in other areas of your IT
infrastructure?
• What qualities does NGINX have that reflect some of these core fundamentals
and how can NGINX help strengthen and improve your existing IT
infrastructure?
• Q&A
5. 5
• A program… is the code you write.
• A process… is what you get when you run it.
• A message… is used to communicate between processes.
• A packet… is a fragment of a message on a wire.
• A protocol… is a formal description of a message and its rules it must follow
in order to exchange those messages.
• A network… is the infrastructure that links computers, workstations, terminals
etc together.
• A component… can be a process or any piece of hardware required to run a
process.
Lets go back to the basics…
6. 6
Therefore…
• A distributed system… is an application that executes a
collection of protocols to coordinate the actions of multiple
processes on a network, such that all components cooperate
together to perform a single or small set of related tasks.
7. What Makes a Distributed System Efficient and Reliable?
7
• Scalable
• High Performing
• Highly Available
• Transparent
• Open
• Secure
It should be…
9. 9
• Plan for the future
• Think about user experience
• Start with thinking about SCALE!
Distributed Geometric Availability When Needed
10. 10
• Number of machines
• Number of users
• Number of tasks
• Connections or concurrency
Dealing with the Size of Your Infrastructure
11. 11
• Cost of maintenance
• Efficiency of maintenance
Administration and Dealing with
Maintenance of Systems
12. 12
Characterized by the amount of useful work accomplished by a computer system compared to
the time and resources that are used.
Performance
13. 13
Latency is the state of being latent; delay, a period between the initiation of
something and the occurrence.
14. 14
Latent in latin terms means “hidden”. Existing or present but concealed or
inactive.
15. 15
What Are the Characteristics of High Performance?
• Short response time or low latency
• High throughput or rate of processing work
• Low utilization of computing resources
16. 16
The proportion of time a system is in a functioning condition. If a user cannot access the
system, it is said to be down.
Availability
17. 17
• Designing for failure
• Identifying weak points
• Implementing redundancy
High Availability Is All about Being Fault Tolerant
18. 18
• Network outages across the wire or inside your own private network
• Outages of other third party services or dependencies
• Anything that is out of control of the designer
Some Things Are out of Your Control
19. 19
Any form of a distributed system should hide its distributed nature from its users, appearing
and functioning as a normal centralized system.
Transparency
20. There Are Many Types of Transparencies in Distributed Systems
20
• Access - one single way to access
• Location - no matter where the user is
• Migration - physical location
• Relocation - moving of resources
• Replication - appear as a single resource
• Concurrent - competing for resources
• Failure - try to hide failure to the user
• Persistence - whether volatile or permanent
• Security - minimum user intervention
21. 21
This determines whether the system can be extended in various ways without disrupting
existing systems or services and be able to easily interact with other open services.
Openness
22. 22
• Conform to well-defined interfaces
• Support portability of applications
• Easily interoperate with other services
To Keep Your Distributed System Open It Must…
23. 23
The system should authenticate access to data and services,
be invulnerable to know threats and follow industry standard security guidelines.
Secureness
24. 24
• Security Audits
• Software patching maintenance or vulnerability management
• Try to use a security framework
• Encryption everywhere
• Integrity checking (Auth)
• Confidentiality through authorization (Resource Access)
• Monitoring of traffic, logins and requests
Common Measures to Help with Security
25. 25
ALL of them!
Which of These Core Fundamentals Can Be Implemented
in Other Areas of Your IT infrastructure?
26. 26
Many of these characteristics can be found in NGINX and can even help you
strengthen your existing IT infrastructure.
27. 27
Quick Intro to NGINX
• Open source version created in 2004
• NGINX, Inc. founded in 2011
• 140 million + known instances running
today on the internet
• #1 web server of choice on the top 100,000
busiest sites
Igor Sysoev, NGINX creator and founder
29. 29
Scalability
NGINX - Open Source
Layer 7 Software Load Balancer for HTTP(S) / TCP
Application Delivery Platform
API Gateway
10,000+ Virtual Servers Multi-tenancy
NGINX Plus - Commercial
Real Time Activity Monitoring API (status)
Dynamic Upstream Reconfiguration API (upstream_conf)
32. 32
Performance
NGINX - Open Source
High Throughput
High Number of Concurrent Connections (1 Million+)
Content Caching at Edge
Low CPU/Memory Utilization
Fine Tunable Configuration
HTTP2!!!
34. 34
Availability
NGINX - Open Source
HA Configurable with keepalived
(IP Syncronization over VRRP)
NGINX Plus - Commercial
NGINX HA Package for Easy Configuration
Application Aware Health Checks for Upstreams
35. 35
Transparency
NGINX - Open Source
Combined with Global DNS Can Handle
Global Load Balancing (Route53, Google, GoDaddy etc)
Reverse Proxy - Single Entry Point
NGINX Plus - Commercial
Session Persistence (Cookie, Session, Route)
36. 36
Openness
NGINX - Open Source
Open Source / Third Party Modules
nginScript - JavaScript Inside NGINX Configurations
Dynamic Loadable Modules COMING SOON!
NGINX Plus - Commercial
Simple HTTP Based APIs
API with JSON Interface
38. 38
Secureness
NGINX - Open Source
Authentication via auth_request Module
SSL Support
Client Certificate Based Authentication Support
Bandwidth Limiting
Connection Limiting
Access Control Lists (ACLs)
LDAP Support
Reverse Proxy - Easily ACL Backend Resources
NGINX Plus - Commercial
NTLM Support
39. 39
Thank you all again for coming!
Twitter @webopsx
Kevin Jones
http://www.slideshare.net/KevinJones62
Q&A?