[cs615asa] NYC DevOps Meetup Summary

Andrew Neurohr aneurohr at stevens.edu
Wed Mar 21 19:06:57 EDT 2018


Date: 3-20-2018

I attended a meetup organized by the nycdevops group which featured
two talks: "DevOps for Kubernetes" and "Operational Excellence in
April Fools’ Pranks: Being Funny Is Serious Work!". More info can be
found on the meetup page here:
https://www.meetup.com/nycdevops/events/246346445/

I chose to attend this meetup because I have been hearing about
Kubernetes more and more lately, but haven't put any time into
actually learning it, so I was hoping that the first talk would give
me enough information to determine whether I should pursue it further.
Additionally, the title of the second talk caught my interest because
April Fools' Day launches can definitely bring unexpected issues since
they can only be used for one day and it is difficult to properly
stress test the prank before launch.

The first talk was a very broad overview of how Kubernetes can be used
to make scalable deployment easier, presented by Paul Czarkowski. I
learned a lot from this talk even though it wasn't very detailed. Paul
described the different service types defined in Kubernetes, which are
as follows:
- ClusterIP: The service will only be reachable from within the
cluster, using an internal IP.
- NodePort: The service will be exposed on each node's IP at a
specified port. This will automatically create a ClusterIP service to
which the NodePort will route.
- LoadBalancer: The service will be exposed using an external cloud
provider's load balancer. This will automatically create ClusterIP and
NodePort services to which the LoadBalancer will route
- ExternalName: Simply returns a CNAME record containing a specified
externalName in order to map the service to that name.

Paul also showed some YAML files for configuration of basic
applications and showed that it was possible to combine multiple
applications into one API/site simply by adding endpoints to the
configuration file. One thing I found strange was that he discouraged
people from setting up their own Kubernetes services and instead
encouraged them to use one of Kubernetes certified service providers
because it can take many months to set up and a lot of people mess it
up, but he never actually explained any common pitfalls or points of
failure.

The second talk was more light-hearted/entertaining and contained some
tips for launching April Fools' pranks, presented by Tom Limoncelli.
He shared some humorous stories about past pranks he has been involved
in and also gave general tips for avoiding a failure at launch. Part
of the joke was that Tom got the audience to believe he was only
talking about April Fools' launches, but all of the tips he gave could
(and should) be applied to all launches. Two of the things I found
most interesting were:
- Feature flags: Rather than rolling out an entire new version just to
deploy a new feature (such as an April Fools' Prank), keep them hidden
behind a flag instead. This makes rolling out a new feature as easy as
toggling a flag and doesn't require a huge rollback if the feature
needs to be removed.
- Dark launches: This is used to stress test features that aren't
ready to be shown to the public, but are still likely to have a
massive impact on site performance. The idea is to have the feature
running in the browser, but hidden from users. Facebook used this
before launching their messenger by having the Javascript running for
users and randomly choosing a percentage of those users to send
messages to each other. They ramped up the percentage over time as the
launch day got closer and made improvements as necessary. This allowed
them to handle the hundreds of millions of users on launch day.

-Andrew Neurohr


More information about the cs615asa mailing list