31
10 Deployments A Day A brief on extreme release protocol Bhains ki Pooch… :P weboniselab.com

10 Deployments a day - A brief on extreme release protocols

Embed Size (px)

DESCRIPTION

A reflection on how we migrated from an era of production deployments once a week to more than 10 deployments a day. The story of transforming a mere sys-admin to super sophisticated DevOps team, armed with multiple tools, scripts and plugins for achieving automations, accuracy and invincible agility. As we continue on our endeavor for further improvisation, I believe its worth sharing the experience with community. Tentative topics outline: 1.Arming teams for their transformation to DevOps from mere sys-admins. 2.Killing manual deployments (manual deployment->capistrano->webistrano) 3.Automation (for daily backups,monitoring applications and servers deploying dependencies) 4.Saving up time on setting up new instances(using golden image). 5.Using LDAP to maintain servers with public key(avoiding individual logins to every server makes it less messy) 6.Using Puppet for instantiating multiple servers at once. 7.Commissioning our own Cloud Infrastructure.

Citation preview

Page 1: 10 Deployments a day - A brief on extreme release protocols

10 Deployments A Day

A brief on extreme release protocol Bhains ki Pooch… :P

weboniselab.com

Page 2: 10 Deployments a day - A brief on extreme release protocols

An outsourced product development company building apps that people love to use!

Page 3: 10 Deployments a day - A brief on extreme release protocols

•  A Weboniser and Rubyist •  A Blogger(vparihar01.github.com) •  A Geek •  DevOps Guy •  An Aspiring Tech Innovator •  Tweet with @vparihar

Page 4: 10 Deployments a day - A brief on extreme release protocols

With the new born startup and freshly out of college grad’s, everything we did was an experiment. Deployments and relevant techniques were completely alien with no experience on how to deal with our first application going live.

Page 5: 10 Deployments a day - A brief on extreme release protocols

Our Stone-Age deployment techniques: •  Created instances manually. •  Installed dependencies one-by-one. •  Pulled from GIT into each instance.

Page 6: 10 Deployments a day - A brief on extreme release protocols

•  Doing every task manually on the server for each deployment - Not again...

•  Database migrations and rolling back is such a headache.

•  We need versions for our deployments!

Page 7: 10 Deployments a day - A brief on extreme release protocols

This is embarrassing… 1 deployment in a week or two.

Page 8: 10 Deployments a day - A brief on extreme release protocols

•  Started versioning viz.(test, stage, production).

•  Brought in Capistrano •  Implemented plugins to notify us of

errors and exceptions.

Page 9: 10 Deployments a day - A brief on extreme release protocols

Wanted to deploy on test.. ..instead deployed on production

Page 10: 10 Deployments a day - A brief on extreme release protocols

•  Rolling back application code successfully but database rollbacks were still a headache.

•  Realized that we need to control deployment access.

Page 11: 10 Deployments a day - A brief on extreme release protocols

•  So, the introduction of SysAdmin. •  Installations through bash scripts.

Page 12: 10 Deployments a day - A brief on extreme release protocols

2011-2012 One Step Ahead

One click deployment with Webistrano instead of Capistrano.

Page 13: 10 Deployments a day - A brief on extreme release protocols

•  What dependencies ? •  No machines available ? •  What database ? •  Security ? •  High Availability ? •  Scalability ? •  My computer can’t install this!

“Put this Code Live, here’s a tarball” NOW!

Page 14: 10 Deployments a day - A brief on extreme release protocols

SysAdmin DOES NOT work!

Page 15: 10 Deployments a day - A brief on extreme release protocols

2 deployments in a week!! Hurray :-)

BUT IT’S NOT ENOUGH

Page 16: 10 Deployments a day - A brief on extreme release protocols

2012 onwards... Bringing in Sophistication

Why SysAdmin didn’t work for us?

Page 17: 10 Deployments a day - A brief on extreme release protocols

Introducing DevOps.. Tada!!

Page 18: 10 Deployments a day - A brief on extreme release protocols

A growing company witnessed proportional infra growth!!!

- 15 live server instances - 45 applications - 7 deployments a week

Page 19: 10 Deployments a day - A brief on extreme release protocols

Biggest Challenge, DevOps faced

Achieving Continuous Deployment {WEBISTRANO}

Page 20: 10 Deployments a day - A brief on extreme release protocols

Keeping our infrastructure… up and running

Page 21: 10 Deployments a day - A brief on extreme release protocols

What We Did…

Monitoring with

Page 22: 10 Deployments a day - A brief on extreme release protocols

Performance with Cacti

Page 23: 10 Deployments a day - A brief on extreme release protocols

The duo in action!

Monitoring with Performance with Cacti

Page 24: 10 Deployments a day - A brief on extreme release protocols

DevOps To The Rescue!

For Centralized Accesses

Combine SSH Public-Key and LDAP on Ubuntu

For Security

Combine UFW and Snort

Page 25: 10 Deployments a day - A brief on extreme release protocols

Automation:The Golden Image

Page 26: 10 Deployments a day - A brief on extreme release protocols

More Automation:Bringing in Puppet

Page 27: 10 Deployments a day - A brief on extreme release protocols

We were spending around 1-1.5 lac/month for our Test and Stage Servers

Page 28: 10 Deployments a day - A brief on extreme release protocols

Why not our own Private Cloud ??

So, we went ahead and bought our own servers and migrated all test and stage instances to our own in-house private cloud.

Page 29: 10 Deployments a day - A brief on extreme release protocols

10 and more deployments in a day

Managing:

•  70 Servers and still increasing... •  More than 120 Live apps.

Page 30: 10 Deployments a day - A brief on extreme release protocols

A unified dashboard for managing multiple cloud services ...HIPPO We intend to opensource the app soon to cater to all our Devops friends…

Page 31: 10 Deployments a day - A brief on extreme release protocols

Thank you

weboniselab.com