A Day In the Life of a Modern Applications Developer – DevOps Series, Part 3
The Life of a DevOps Team
Have you heard about DevOps from multiple sources and still don’t have a clear idea what it really is? Would you like to create a relationship with new Line-of-Business owners, but feel you cannot speak their DevOps slang? Come with me and we will explore the life of a DevOps team, so you can understand their specific concerns and challenges.
You might already be familiar with other environments, like networking, but DevOps is a different world, with requirements for success (both technical and social) often requiring the team to think in a totally different way.
At the same time DevOps approach can also be applied to networking challenges, so it is critical to understand these foundational DevOps concepts very well before going into those interesting and innovative solutions.
In this series of posts and learning labs we will cover what DevOps is, from a very practical point of view. It is too often that you attend a DevOps session and come out with nothing but fluffy ideas about it. That stops today. In the following weeks we will cover all foundational knowledge on DevOps, and put it to practice in different hands-on environments. I promise this will be an exciting trip!
Development and Operations Team Challenges
Let’s start by exploring some of the challenges Development and Operations teams have:
- All software needs to run on a platform, so that it can provide a service. And software lifecycle, from its inception to the moment it runs on a production environment, includes a number of steps with their own challenges. One of them is that many times these steps involve human interaction, which is slow and prone to errors. Being able to automate part, or all, of these steps would definitely improve how effective processes are, and ultimately the quality of the service provided by that software.
- Another factor is the friction between Development and Operations teams. A classic scenario where developers make software work in their development environment, pass it to the operations team so they can test it (QA) and deploy into a Production environment… and nothing works.
The main reason for this is that these environments will be somehow different. Not only they might use different kernel versions (or even OS), but they could simply be using different library versions to test new functionality. Isolating software dependencies from the running environment would bring great improvements to this area.
- And then there is the time-to-market factor, where usually it is IT who becomes the bottleneck for a new service, or feature, to be implemented in production. The smoother the process to go from development to production, the easier and safer it will be to accelerate the deployment of new functionalities.
Wouldn’t it be nice to have both teams, Dev and Ops, working together to alleviate these issues and accelerate the introduction of new software capabilities in your applications? Well, that is what DevOps is about. DevOps wants both teams to be equally responsible for the whole lifecycle of software, so that it becomes easier, faster and safer to deploy.
One of the ideas DevOps promotes is: why can’t Ops teams use the same approach to systems as Dev uses for code? Modern development uses Agile methodology for software, so why can’t we use that also for systems?
And although DevOps has very important cultural concepts on how companies need to change, in this blog series we will focus on some of the processes, technologies and solutions that DevOps teams use to improve their daily work.
Let’s start at the beginning of everything, where developers… develop.
New Development Learning Lab
Please go through my brand new Cisco Learning Lab on ‘Modern Development’. It is focused on getting you started from scratch: no previous knowledge on applications development, no previously installed tools. I will guide you through everything you need to understand microservices-based modern applications, and how to set up your environment to run an example application in your own computer.
You will learn how a modern microservices-based application look like, by using the fantastic example created by our colleague Hank Preston. Not only it is a great example that he generously share, but also really useful to vote for your favorite superhero!
You will learn how to use APIs to interact with microservices, including the different formats and tools required for each task. You will even create a new user interface via Cisco Spark, and a bot to interact with!
As a developer you will understand how to modify your code and execute it. Once all your software is ready you will learn to publish it so everyone can leverage what you have created (and appreciate your swag).
And of course, we will use Docker containers to implement microservices, so you will leverage all knowledge obtained from my last posts.