I was hired by a client to bring their new SaaS offering to production.
At this time they had no operations guy on staff to run it.
While working on the project, I asked the CTO and myself if it is possible to deploy methodologies and infrastructure that would enable this company to support their production without a designated ops guy.
This is a story of our journey.
Presented in the Continuous Delivery track at DevOps Con Israel 2013
2. About me
github.com/flypunk
● In IT since '99, Unix SysAdmin,
OPS@XIV, cloud/devops since 07
(@SeekingAlpha)
● Cloud migration and deployment
automation in Amadesa
I am a freelancer specializing in Web
Applications Delivery
3. WTF is NoOps?!
Not an easy thing to describe - see
'NoOps' Debate Grows Heated
@AppFog Carlson - Use 3rd party PaaS
@Netflix Cockroft - Outsource messing with
hardware to AWS and build your own PaaS
@Etsy Allspaw - We do it the same way as
Netflix, but I HATE the term, especially the
word 'NO' in it ;)
4. What do I mean by NoOps
Culture, software architecture,
methodologies and tools that enable a
(SaaS) company run their business without a
dedicated Operations team.
6. NoOps - Eliminating Waste
Waste - Any activity not contributing to
customer value (Agile)
While you have No Nops you have...
No Delays
No Communications overhead
No Dev vs. Ops fingers pointing - Dev is
always to blame ;)
7. My goal as a (NoOps) consultant
Study what is needed
Build what is missing
Get the hell out!
If I did my job well, the company should
figure out production/operations on its own.
8. The client - MassiveImpact
Today - www.massiveimpact.com
End to end solution for ads on cellular
Conversions, not clicks
9. The company pivoted from a
different product
Hired new people
Written new code
Had to start a new production site
12. Who is responsible for ops in the
new environment?
The head of QA with some Ops experience
I need to ensure that he and his bosses
could sleep well at night...
Is it possible for MassiveImpact to continue
growing without hiring a dedicated Ops
employee?
I think - yes!
13. Requirements for the new
environment
Amazon VPC: Harder to set up, more
secure, closer to collocated network setup
Let's make everything organized: Chef,
Cloud Formation
Btw, we have 2 weeks to launch!
Start manually, add automation later
14. Monitoring
ServerDensity for both machine and service
monitoring
● Has built in alerts and graphs
● Machines have to be able to connect to
the internet to use it
● Used the NAT-PAT instance inside VPC +
static IPs to achieve it.
NoOps advantage: A cloud solution.
15. AWS IAM credentials
Written a naming/access policy doc
Created IAM users, groups, policies and
resources in accordance with the doc.
Pro tip: don't use MixedCaseBucketNames -
hive won't work with them.
Another tip: EMR with IAM keys and policies
is not trivial
17. Deployment
Set up a server that will work as binaries
repository
Put artifacts into sane default places
Will be used later for CI and deployment
scripts
18. Chef on Windows
It (kinda;) works!
You can bootstrap and manage nodes with
WinRM!
NoOps advantages:
Configuration as code
No need to manage AMIs (It's a nightmare)
19. Chef on Windows - continue
Not everything works
First time in my career able to manage M$
servers and install packages from CLI.
== Awesome!!!
Easy way to manage users in centralized
manner without AD
20. Data crunching - Gurobi Cloud
The system is fully automatic and is run by
Cron
Notifications using SNS and email
NoOps advantage: It is fully data driven
(Just put the new files to a specified S3
bucket)
21. Current status
Monitoring - Implemented
Chef - in development
Cloud Formation - planned
CI/CD - planned
Ops/business console (GeckoBoard) - planned
22. Takeaways
People, then methodologies, last tools
Architect for no ops!
Change is hard, but engineers will accept
new tech when shown that it works
Make the changes backwards compatible
(Libraries for AWS calls)
Use external services as a default choice