LinkedIn emplea cookies para mejorar la funcionalidad y el rendimiento de nuestro sitio web, así como para ofrecer publicidad relevante. Si continúas navegando por ese sitio web, aceptas el uso de cookies. Consulta nuestras Condiciones de uso y nuestra Política de privacidad para más información.
LinkedIn emplea cookies para mejorar la funcionalidad y el rendimiento de nuestro sitio web, así como para ofrecer publicidad relevante. Si continúas navegando por ese sitio web, aceptas el uso de cookies. Consulta nuestra Política de privacidad y nuestras Condiciones de uso para más información.
A common misconception is that "serverless" development means you no longer have to think or care about operations. This could hardly be more false. You are trading one set of problems -- building and running backend services -- for another set, where you are dealing with a sprawling mess of APIs, black boxes and opaque complex systems into which you have limited visibility and even less ability to fix things, along with cotenancy issues and usage caps. The glorious future comes with tradeoffs, and this means application developers need to get better at ops.
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 ﬁne
yesterday and I didn’t
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.
Core competencies of operations engineering
5. Simplicity in complex systems
6. Instrumentation and visibility
7. Graceful degradation
did i mention the mission?
need a summary at the
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.
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
Labor can be outsourced.
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 tradeoﬀs:
•You can’t ﬁx 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
• 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
Consolidate your metrics, correlating events across
platforms is annoying.
If it moves, graph it. Instrument your client, application,
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
• Ask every candidate interview questions about
operations and debugging.
• Factor these skills into performance reviews and
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”
is 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 McCaﬀrey (@caitie)
Mark Ferlatte (@ferlatte)
Dan McKinley (@mcfunley)