Today I attended a DevOps introduction workshop run in-house in my company ANDigital.
Today was day 1 of a four day course, and was mainly theoretical. We learned about what DevOps actually is, why it’s important, and the problems we face without good DevOps practices in place.
The main takeaway of the day was quite philosophical. DevOps is everybody’s responsibility. There shouldn’t be a point where I, as a developer, hand over my code to somebody else and forget about it, thinking that if anything goes wrong between now and it being live on a server, it’s their problem. The divide between developers and sysadmin can a big problem, and deploying code shouldn’t have us shaking in our boots, not knowing if it will actually run or not once it’s sitting on the server. If the responsibility is shared, the code thoroughly tested and the deployment process well defined, a release should be a run-of-the-mill procedure as opposed to a terror inducing activity.
Here at ANDigital we are all very well educated in scrum, one of the principles of which is collective ownership and responsibility in a team, which ties in nicely with the idea of better collaboration between developers and operations staff, instead of the silos which we so commonly experience.
Things a developer should know:
- Where and how is the code running?
- How does everything communicate?
- How does the code get built before it is deployed?
- How does code get deployed to various environments?
- How is environment config managed?
- How to monitor and report what is happening
The next phases of the course will be more practical and I’m looking forward to getting my hands dirty, and learning more about the processes involved in setting up continuous integration and deployment processes.