charity hound - serverless, noops, the tooth fairy

38
Charity Majors @mipsytipsy Serverlessness, NoOps, the Tooth Fairy (and other useful myths)

Upload: serverlessconf

Post on 11-Jan-2017

1.158 views

Category:

Internet


2 download

TRANSCRIPT

Charity Majors @mipsytipsy

Serverlessness, NoOps, the Tooth Fairy (and other useful myths)

Charity Majors @mipsytipsy

Serverlessness, NoOps, the Tooth Fairy (and other useful myths)

“In the Glorious Future, we will be Serverless, and there will be NoOps.”

http://thenewstack.io/serverless-computing-growing-quickly/

~thought leaders

skip #1 and #2, just #1

Haha

@mipsytipsy engineer, cofounder, CTO

“Doing serverless before it was cool”

Operations in a Serverless World: what does it mean, why should you care, when should you serverless?

Hosted over a million mobile apps

For hundreds of thousands of developers

Most of whom were shit at ops

Services are not magical pixie dust.

Services are not magical pixie dust.

In the Glorious Serverless Future, more responsibility for operational quality needs to come from application developers.

I’m a software engineer! I will use hosted services

and pay them to do all of my thinking

and caring about operations!!

Is my app down? Why are my users complaining?

Everything was working fine yesterday and I didn’t

change anything why is my latency high?

what is query what is index

What is operations?

Operations is the constellation of your org’s technical skills, practices, and cultural values around designing, building and maintaining systems,

shipping software, and solving problems with technology.

“NoOps”

Core competencies of operations engineering

1. Scalability 2. Resiliency 3. Availability 4. Maintainability 5. Simplicity in complex systems 6. Instrumentation and visibility 7. Graceful degradation

did i mention the mission? need a summary at the beginning.

Serverless operations engineering: best practices, explicit and implicit tradeoffs

see also @patrickdebois’s talk from earlier today!

What is your mission?P.S. your mission is not building software

What is your mission?

What are your core business differentiators?

These are the riskiest to outsource.

Facts:

No one will ever care as much about your product and your problems as much as you do.

No one else is thinking holistically about your systems and their

interdependencies.

Labor can be outsourced. Caring can’t.

Own your critical path

• Know your critical path• Guard it, keep it as small as possible• Understand the tech and dependencies of your providers

Even when you outsource a problem, you are still responsible for the results.

The Glorious Future comes with tradeoffs:

•Less visibility•You can’t fix it yourself, or add a feature•The service will protect itself at your expense•Limits may or may not be disclosed (or known) up front.•Cotenancy is a bitch. Tooling immature.

OPP (Other People’s Platforms):

• What is their cotenancy model? • Typical performance variance?• What is your appetite for vendor lock-in?• How transparent are they about service problems?

duplication last slide

Data hygiene

• Your data is your responsibility too• Ask about retention and recovery policies• Take offsite backups• Validate restores — if you aren’t testing, you have

Schroedinger’s backups ¯\_( )_/¯• Never sign up for a “mystery” storage system. Black-box

query performance tuning … no.

Visibility and debuggability

Don’t monitor your systems using the same platform you’re running on.

Consolidate your metrics, correlating events across platforms is annoying.

If it moves, graph it. Instrument your client, application, queries, everything.

Cultivate a team of software engineers who value operational excellence.

** If your mission requires quality services

How to level up at ops

• Put software engineers on call for their own services.

• Ask every candidate interview questions about operations and debugging.

• Factor these skills into performance reviews and promotions.

Operations skills are not optional for software engineers in 2016. They are not “nice-to-have”,

they are table stakes.

The cost and pain of developing software is approximately zero compared to the operational cost of maintaining it over time.

h/t @mcfunley, “choose boring technology”

In conclusion …

‘Serverless’ developmentis the latest incarnation of very real macro trends:

outsourcing, specialization, and scarce engineering cycles.

The center of gravity for applications operations is shifting, from dedicated in-house ops teams to

software engineers who own their services end to end.**

** with a little help from their SaaS friends

Systems and operations engineers are increasingly developing services to solve category problems for everyone.

You can rent the world’s best talent. Everybody wins!

The shadow side of DevOps: Software engineers need to level up at operations.

Outsource as many ops problems as possible! But own operational excellence for your core differentiators.

The world is getting awesomer and more complicated every day.

Enjoy it. Let’s try to keep up. :)

with special thanks to:

Caitie McCaffrey (@caitie)

Mark Ferlatte (@ferlatte)

Dan McKinley (@mcfunley)

Charity Majors @mipsytipsy

Old: “We’ll just hire an ops team once we have scaling problems!”

New: “We’ll just use serverless architecture and do NoOps!”