MORE INFORMATION AT NGINX.COM
MORE INFORMATION AT NGINX.COM
Who Are We?
Kief Morris
Cloud Practice Lead, Thoughtworks
Formerly:
• Sr. Technical Architect, Map of Medicine
• Hosting Operations Manager, Syzygy
• Technical Director, bitBull
Floyd Smith
Technical Marketing Writer
Formerly:
• Sr. Technical Writer, Apple
• Group Channel Manager, Altavista
• Business Site Manager, AOL Netscape
MORE INFORMATION AT NGINX.COM
• First OSS release in 2004
• Company founded in 2011
• VC-backed by industry leaders
• 500+ customers
• 75+ employees
160 milliontotal sites
running on NGINX
4Source: Netcraft June 2016 Web Server Survey
51%of the Top 10,000
most visited websites
5Source: W3Techs Web Technology Survey
36%of all sites on
Amazon Web Services
6Source: W3Techs December 2013 Web Server Survey
7
Where NGINX Fits
Internet
Webserver
Serve content from disk
Application Gateway
FastCGI, uWSGI, Passenger…
Reverse Proxy
Caching, Load Balancing…
HTTP traffic
MORE INFORMATION AT NGINX.COM
Modern Web, Modern Architecture
From Monolithic...
Three-tier, J2EE-style architectures
Complex protocols (HTML, SOAP)
Persistent deployments
Fixed, static Infrastructure
Big-bang releases
Silo’ed teams (Dev, Test, Ops)
...to Dynamic
Microservices
Lightweight (REST, Messaging)
Mutable; Containers, VMs
SDN, NFV, Cloud
Continuous delivery
DevOps Culture
Why DevOps + NGINX =
• Software load balancing goes hand-in-hand with cloud
deployments
• Variety of load balancing methods gives flexibility and
performance
• On-the-fly reconfiguration supports service discovery and
uptime
• Application health checks give early warning of problems
• Robust, customizable monitoring increases uptime
10
MORE INFORMATION AT NGINX.COM
OPEN SOURCE
PLUS
FEATURES
REQUEST ROUTING COMPRESSION LOAD BALANCING APP HEALTH MONITORING GUI VISUALIZATION
SSL EMBEDDED SCRIPT LANGUAGE EDGE CACHE MEDIA STREAMING MONITORING ANALYTICS CONFIGURATION RESTFUL API
What’s Inside NGINX Plus?
11
“NGINX Plus gives us the agility we need
to anticipate and meet customers’ needs as they arise –
without fear of compromising availability or performance.”
-Serge Leschinsky, DevOps engineer at MuleSoft
Results
 Fit right in to current infrastructure
 Simplified security
 Agility
 Around-the-Clock Support
The Challenge
 Wanted greater visibility into
customer traffic
 Needed more configuration
flexibility
 Too much redundant manual work
Solution
 Upgrade from NGINX
to NGINX Plus
 On-the-fly DNS-based
reconfiguration
 Enhanced monitoring and visibility
In Action: MuleSoft moves from open source
to NGINX Plus for greater visibility & control
kief@thoughtworks.com
Cloud Practice Lead (UK)
DevOps, Continuous Delivery, Agile Ops
Twitter: @kief
Book: http://oreil.ly/1JKIBVe
Site: http://infrastructure-as-code.com
SERVER SPRAWL
Creating new servers is the easy part
CONFIGURATION DRIFT
Servers start
out identical
But changes
accumulate
over time
AUTOMATION FEAR CYCLE
INFRASTRUCTURE
AS CODE
“Applying software engineering tools and practices to
infrastructure”
UNATTENDED AUTOMATION
Tools run on a
schedule to apply, re-
apply, and update
configuration
BENEFITS OF UNATTENDED:
●Discover problems quickly
●Force yourself to fix those
problems
●Force yourself to improve
your tools and processes
●Discourages “out of band”
changes
AUTOMATE SERVER UPDATES
Automation isn’t just for new servers!
Configuration
synchronization
Run Chef, Puppet, Ansible, etc. on a
schedule
Immutable servers Apply changes by rebuilding servers
Containerized
servers
Apply changes by deploying new
container instances
RE-USE & PROMOTE DEFINITIONS
Re-use the same definition files across environments for a
given application or service
DEV STAG
E
PROD
Playbooks,
Cookbooks,
Manifests,
templates, etc.
TEST INFRASTRUCTURE CHANGES
Preventing DevOops
INFRA
TEST
DEV
TEST
PROD
PIPELINES
Using Continuous Delivery pipelines to manage
infrastructure
WHAT?
Terraform,
Puppet, etc.
Changes are
made and
committed to
VCS
Tools are run on
agents to apply
changes to
environments
Changes are only
promoted after
passing tests &
authorization
WHY?
Validates changes to
infrastructure before
applying them to
production
Confidence for
frequent, small
improvements to
infrastructure
Limit direct
changes to
infrastructure
TESTING
Correctness
Security policies
Performance
Stability
GOVERNANCE
The process for applying changes is auditable
Changes can be traced back to commits
Automation ensures processes are followed
Authorization can be required as needed
VPC
Subnet
10.0.0.0/16
Security Group
1.1.1.0/16 -> :443
DEFINING A SIMPLE ENVIRONMENT
ANSIBLE PLAYBOOK
Server configuration
TERRAFORM FILE
Environment structure
APPLICATION
SOURCE
Deployable application
SIMPLE PIPELINE DESIGN
BUILD
STAGE
TEST
STAGE
QA
STAGE
PROD
STAGE
Application Ansible Terraform
Deploy application, configuration, and infrastructure
ALIGN INFRASTRUCTURE DESIGN
TO TEAMS
Ensure teams can
make the changes
they need easily
and safely
COMPLEX ENVIRONMENTS
Infrastructure involving multiple teams
FAN-IN PIPELINE
ServiceA
ServiceB
ServiceC
SYSTE
M TEST
QA PROD
BUILD
BUILD
BUILD
SERVIC
E
TEST
SERVIC
E
TEST
SERVIC
E
TEST
DECOUPLED PIPELINES
ServiceA
TESTBUILD
ServiceB
TESTBUILD
ServiceC
TESTBUILD
QA PROD
QA PROD
QA PROD
DEPENDENCIES
ServiceA
TESTBUILD
ServiceB
QA PROD
TESTBUILD QA PROD
Create test
instance of
provider
Implement
Consumer
Driven Contract
(CDC) Tests
Use mocks
and stubs
ISSUE: SHARED ELEMENTS
NGINX
ServiceA
vhost
ServiceB
vhost
Shared
infrastructure
definitions
Service-specific
infrastructure
definitions
SHARING ELEMENTS
Avoid monoliths - optimize to simplify making changes
NGINX
OUTCOMES ● Quickly provision and
evolve infrastructure
● Effortlessly roll out fixes
● Keep systems consistent
and up to date
● Spend time on high value
work
Book: http://oreil.ly/1JKIBVe
Site: http://infrastructure-as-code.com
Twitter: @kief
kief@thoughtworks.com
Cloud Practice Lead (UK)
, Continuous Delivery, Agile Ops
Links
38
NGINX
1. MuleSoft case study
2. Doing DevOps blog post
3. How to Manage Your Control
Issues
4. Reconfiguring NGINX on the
fly
5. nginx.conf 2016
6. All NGINX DevOps blog posts
ThoughtWorks
1. Infrastructure as Code – Amazon
2. Effective DevOps – Amazon
3. State of DevOps survey at
ThoughtWorks
4. “Infrastructure as Code” articles
at ThoughtWorks
MORE INFORMATION AT NGINX.COM
Questions?
Thank You
nginx.com | @nginx

How to Adopt Infrastructure as Code

Editor's Notes

  • #6 Half of the top 10,000 We’re now the number one web server for the top 100,000 as well, and climbing fast in every category.
  • #9 NGINX Plus gives you all the tools you need to deliver your application reliably. Web Server NGINX is a fully featured web server that can directly serve static content. NGINX Plus can scale to handle hundreds of thousands of clients simultaneously, and serve hundreds of thousands of content resources per second. Application Gateway NGINX handles all HTTP traffic, and forwards requests in a smooth, controlled manner to PHP, Ruby, Java, and other application types, using FastCGI, uWSGI, and linux sockets. Reverse Proxy NGINX is a reverse proxy that you can put in front of your applications. NGINX can cache both static and dynamic content to improve overall performance, as well as load balance traffic enabling you to scale-out.
  • #11 “The secret heart of the modern web” Manage instances and services, not server hardware Technologies/workstyle include: Microservices CI/CD Cloud deployment Tools: Docker, Puppet, Chef, GitHub… … and NGINX and NGINX Plus Circuit Breaker pattern
  • #12 NGINX Plus extends NGINX with advanced features such as health monitoring, session persistence, and an advanced monitoring interface. NGINX Plus is a complete application delivery platform.
  • #13 Problem MuleSoft’s Anypoint Platform™ is a leading integration platform that enables enterprises to easily and securely connect apps, data, and devices.  Mulesoft was already using NGINX F/OSS as a reverse proxy and load balancer in their Anypoint Platform. What they needed was more monitoring capabilities and more configuration flexibility to better handle increasing customer demands. Solution NGINX Plus offered exactly what they needed.  Mulesoft now uses NGINX Plus as their application gateway.  When customers connect to customer.cloudhub.io, NGINX Plus queries Amazon Route 53 with a modified version of the original request to get the appropriate destination for the request. Benefits Fits right in - NGINX Plus easily integrated with their existing infrastructure. There was no need to add or replace hardware. Simplified Security - In the past they had to re-establish SSL at various points across the traffic path. NGINX Plus ensures end-to-end SSL encryption of customer traffic without human intervention. Agility - Using reconfigurable DNS on the backend, the Anypoint Platform can identify relevant characteristics of customer traffic on the fly and proxy it to the appropriate server. Superior support - With the help of NGINX support, MuleSoft was able to quickly implement NGINX Plus with its current infrastructure. AnyPoint Platform NGINX, NGINX Plus, MuleSoft all on AWS Started with NGINX open source Moved to NGINX Plus for monitoring and configuration Support for MuleSoft and customers SSL encryption Saving time and money Improved security Flexibility and performance
  • #15 The real challenge is keeping them consistent and up to date as changes are made
  • #24 (Sizing and other aspects may differ across environments)
  • #25 (Sizing and other aspects may differ across environments)
  • #26 (Sizing and other aspects may differ across environments)
  • #29 Build stage Compile, test, and package the application (serviceA) Validate the Terraform file (syntax) Validate the Ansible playbook (syntax) Deploy/test stage Run Terraform to build the server and infrastructure Run Ansible to deploy and configure the application Run a simple smoketest to prove deployment worked Run rspec to test the application and infrastructure QA stage Same as deploy/test Manually start the deployment Manually carry out testing Production stage Same as deploy/test and QA Manually start the deployment
  • #34 Teams want to change and deploy separately
  • #40 September 7th-9th – ***ADD EVENTS PAGE*** Austin, Texas – first time out of the Bay Area www.nginx.com/nginxconf Code: MEETUP 50% off 2-day and All-Access passes Final day is training