CarahCast: Podcasts on Technology in the Public Sector

Defining and Leveraging DevOps with M&S Consulting

Episode Summary

Listen to this week's episode with Hazem Hower and Dominic Pucci from M&S Consulting where they will discuss and define DevOps and explain how M&S Consulting leverages this practice when delivering applications and services at a high rate.

Episode Transcription

Clara Carter: Hi, my name is Clara Carter partner Development Manager with Carahsoft Technologies supporting our Amazon Web Services practice. Welcome to our Federal Podcast Series with AWS and Carahsoft. I'd like to introduce you to Hazem Hower and Dominic Pucci from M&S Consulting. Gentlemen, the floor is all yours.

Hazem Hower: Thank you, Clara. Hello, everyone. Thank you for taking the time out by joining us today. My name is Hazem Hower. I'm the Director of Cloud Infrastructure Services here at M&S Consulting. And with me today is Dominic Pucci. He's one of our Senior Cloud Solution Architects here as well. M&S Consulting, is a premier enterprise shared services and cloud systems integrator. We're also an advanced here AWS partner, and I've worked with our partners here at Carahsoft a number of different procurements. We focus on providing end to end enterprise solutions, staff augmentation, and ongoing support and maintenance and technical and managerial consulting. Today we want to discuss and define DevOps, and how I'm in essence, leverage this practice when delivering applications and services at a high rate. We also want to discuss how M&S and Carahsoft has and can help existing and future clients with their utilization of key tools that AWS offers to achieve synergy between teams using DevOps. So what is DevOps? The word DevOps is a combination of the terms of development and operations, meant to represent a collaborative or shared approach to the tasks performed by a company's application development and IT operations teams. In its broadest meaning, DevOps is a philosophy that promotes better communication and collaboration between these teams and others in an organization. DevOps describes the adoption of iterative software development, automation, and programmable infrastructure deployment and maintenance. The term also covers cultural changes, such as building trust and cohesion between developers and system administrators, and aligning technological projects to business requirements. DevOps can change the software delivery chain services, job roles, it tools and best practices. DevOps combines cultural philosophies, practices and tools that increases an organization's ability to deliver applications and services at a high rate. The process continues to evolve and improve products at a faster pace than organizations using traditional software development and infrastructure management processes, thus enabling organizations to better serve their customers and clients and compete more effectively in the market. While DevOps is not a specific technology, DevOps environments generally have common methodologies. These include the following continuous integration and continuous delivery or deployment tools with an emphasis on task automation, products that support DevOps adoption, including real time monitoring and Incident Management Systems, configuration management and collaborative platforms, and cloud computing microservices containers implemented concurrently with DevOps methodologies. How does DevOps work? Under a DevOps model, development and operation teams are no longer siloed, splitting operational security and development teams with little to no communication and cooperation. Generally speaking silos limit opportunities to reuse computing, networking and storage resources, making cost standardizations and business value delivery more difficult. In some DevOps models, these teams are merged into a single team or the infrastructure engineers work across the entire application lifecycle, from development and test to development operations and develop a range of skills not limited to a single function. And other DevOps models quality assurance and security teams may also become more tightly integrated with development and operations. And throughout the application lifecycle. These teams use practices to automate processes that historically have been manual and slow. They use a technology stack and tooling which helps them operate and evolve applications quickly and reliably. These tools also help engineers independently accomplish tasks for example, deploying code or provisioning infrastructure that normally would have required help from other teams, and this further increases the team's efficiency. So why does this all matter? Software The internet has transformed the world as we know it, and all of its industries from shopping to entertainment to banking, software no longer merely supports a business rather, it becomes an integral component of every part of that business. Companies interact with their customers through software delivered as online services or applications and on all sorts of devices. They also use software to increase operational efficiencies by transforming every part of their value chain such as logistics, communications and operations. Companies in today's world must transform how they build and deliver software. So let's review some of the benefits of adopting DevOps methodology. First things first is speed. One of the inherent benefits of DevOps is that it accelerates the pace at which your business generally functions. The faster you release great software, the faster you can embrace the business value of the products features. The time taken for testing a product depends on the availability of a test environment. For updates and upgrades in software, the testing time is usually unreasonably fast the presence of a test environment. However, testing a new product consumes a lot of time because the operations teams will have to create a new test environment each time or each iteration. DevOps speeds up that pace so we should deliver your software features and modifications through automated testing and integration. DevOps makes your development developers keep an eye on the product throughout the entire lifecycle for any software updates or bugs, which in turn decreases the time to monitor locate, fix these set bugs, and accelerates your time to market. The next benefits rapid delivery. The main principles of DevOps is automation, continuous delivery and quick feedback cycles, which aims to make software development processes faster and more efficient. Being an evolutionary stretch of the agile methodology DevOps utilizes automation to ensure a smooth flow for the software development lifecycle. By promoting a collaborative culture. It offers the scope for quick and continuous feedback so that any glitches are fixed in time and the releases are done faster. Reliability, ensure the quality of application updates and infrastructure changes, so you can reliably deliver at a more rapid pace, while maintaining a positive experience for end users. Use practices like continuous integration and continuous delivery to test that each change is functional and safe. Monitoring and logging practices help you stay informed of performance in real time. The next benefit is scale. Operate manage your infrastructure and development processes at scale, automation and consistency help you manage complex or changing systems efficiently and with reduced risk. For example, infrastructures code helps you manage your deployment, development, testing and production environments in a repeatable and more efficient manner. Improved collaboration today, more than ever, development teams need to break down their interdepartmental silos and collaborate and communicate in a dynamic and round the clock environment. DevOps paves the way to improve business agility by providing the much needed atmosphere of mutual collaboration, communication, and integration across globally distributed teams, and IT organization. All team members together are responsible for meeting the quality and timeline of deliverables. For example, reducing the handover period between the developers and operations, writing code that takes into account the environment in which it is run. Last but not least security. When security is the focus of everyone on a DevOps team, this is where dev sec ops comes into the picture. And it takes care of the security aspect of your application. The essence of this is that everyone, not just a security team is responsible for the application and infrastructure security. DevSecOps helps reduce costs. With it, you'll be able to track and detect your security issues and threats in the early stages of development as opposed to spending tons of money on security after the products release. So now I'm going to go over and hand it over to Dom to go over how to adopt a DevOps model and what tools we at M&S have leveraged for ourselves and our clients to help with the shift.

Dominic Pucci: I want to talk a little bit about how to actually adopt a DevOps model. The most important thing to understand about DevOps as it applies to an organization is that at the end of the day, it's a mindset or a cultural philosophy. And the biggest hurdle to adopting the DevOps mindset or methodology is that it has to be adopted across the entire organization. DevOps is tied into removing the boundaries between the silos it hasn't was talking about previously, and bringing together the development and operations teams to share a joint passion for generally optimizing all the processes involved in the software development lifecycle. Companies like M&S help bring about a change in the organization's philosophy, making them more agile and introducing them to this cultural change. As DevOps experts, we not only introduce a customer to the newer concepts of deployment and release, but also bring about a paradigm shift and how the teams perform and bring synergy amongst them with DevOps. Teams who have historically not worked together will have to be optimized for both the productivity of developers and the reliability of operations. They strive to communicate frequently increase efficiencies, and improve the quality of services that they provide to customers. They take full ownership of their services often beyond where their stated roles or titles have traditionally been scoped. By thinking about the end customers’ needs and how they can contribute to solving these needs. M&S has assisted companies that previously rejected the model By working alongside developers and engineers to help teams understand the entire application stack, but at the end of the day, the most important thing is that everybody involved both from a developer perspective and operators perspective and also a management perspective has to share that passion to want to make the processes better and continually improve them. So next I want to talk a little bit about some tools and services that are commonly used in DevOps practices, you may often see terms like CI/CD used interchangeably with DevOps. Really, these are all a sort of subset of the overall DevOps mindset and methodology. First and foremost, you are going to want to have strong source control practices. It doesn't matter necessarily which source control technology you choose to use, any of them are fine such as AWS code, commit Bitbucket, get lab and GitHub, any of those are fine. The more important thing is that your organization understands and develops strong Git workflows. To that end, I would highly suggest any organization to become familiar with what I would consider industry standard workflows, such as Git flow, and from there you can choose to either use the full Gitflow workflow or pare it back to meet your organization's need. But that's the first step in the in the pipeline of adopting DevOps methodologies. Next step in the pipeline is adopting CI/CD tooling. CI/CD enabled DevOps teams to frequently validate and deliver applications to the end user through automation during the development lifecycle. The continuous integration tool initializes processes that developers can create, test and validate code in a shared repository as often as needed without manual work. Continuous Delivery extends these automatic steps through production level tests and configuration setups for release management. Continuous deployment goes a step further invoking tests, configuration and provisioning, as well as monitoring and potential rollback capabilities. Some common tools for CI/CD include Jenkins, GitLab and circle CI. So hand in hand with CI/CD tooling is some tooling surrounding configuration management. This isn't necessarily related to deploying code, but this is more along the lines of managing fleets of servers and taking changes that used to be done manually by the ops person and making it so that those are automated and repeatable across fleets of servers. And, and some of those, some of the tools in that area that are commonly used would be things like Ansible, puppet and chef and these can be incorporated, either into existing CI/CD tooling, such as Jenkins, or GitLab or circle CI, like mentioned earlier, or they can be implemented as standalone tools that that the ops person uses, but any use of them at all is highly recommended and will vastly help the overall function of the organization. So next, I want to talk a little bit about just the importance of monitoring in a DevOps methodology. So as I mentioned earlier, you want to effect a pattern of constant feedback to your development and you want to be able to be notified immediately whether or not a build succeeds, whether or not it is deployed successfully after its deployed if it's healthy. So to that end, you always want to make sure that your monitoring tools are very robust and your practices are giving you the most visibility possible into the state of not just your pipeline, but also your running application. So that changes so that it's known if changes are successful, and you can you can get fast feedback on your new iterations of your software. Some tools commonly used in this area are New Relic, Dynatrace, Prometheus, Datadog, and Splunk to enable increased insight into your environment.

Hazem Hower: Thank you, Dom. Well, then to wrap things up here at M&S Consulting, we would love to talk more in depth about how to assist you integrate these approaches and tools within your organization. There are a number of tools available throughout AWS, both commercial and Gulf cloud. We're able to assist with any approach to help your organization reach those goals. I hope that this was helpful and informative and gets the wheels turning on how your organization thinks about DevOps and what you're implementing today. Thank you.

Clara Carter: Thank you, Hazem and Dominic. If you'd like more information on how Carahsoft M&S Consulting or AWS can assist your agency, please visit www.carahsoft.com or email us at AWS@carahsoft.com. Thanks again for listening and have a great day.