DevOps Pipeline Layout Part 1

DevOps Pipeline Layout Part 1

Written by: Jay Shah, Consultant, CG Infinity Inc.In recent years, the IT landscape has evolved and gone through drastic changes in terms of development, agile methodology, and production support. We have emerged from a Waterfall Model to DevOps, from Monolithic applications to Microservices, from physical on-premise servers to containerized applications and from data center racks to public/private/hybrid cloud environments.

Through The Evolution of DevOps, the way Continuous Integration, Continuous Delivery, and Continuous Deployment is being practiced is not only improving the process but also keeping teams connected while making deployments faster. But is this reducing the previous workload and keeping things simplified? Let’s review different scenarios of some key areas in the DevOps world.

Before Jumping In, Here Are Some Questions to Keep in Mind:

  • How independent do you want your services to be?
  • How many legacy applications are still critically important to the business?
  • How well is your code organized? Mono repo or multiple repositories?
  • How much operational complexity can your team handle?
  • Do you have a Continuous Delivery platform in place?
  • Are the CI-CD Pipelines running smoothly in your development process?
  • How is your team organized? Do they know different tool sets and microservices architecture?

Understanding the Various Key Areas of Work and Elements

These 4 key areas will get us started. We will cover 4 additional areas in Part 2 of this blog post.

1. Organizational Culture

As we enter the world of remote work culture, it’s very important to continue the culture of remote collaboration and following the DevOps principle mindset whenever there is a change and deployment is needed. We have discussed the 6 C’s in the recent Evolution of DevOps blog, and now we have 3 C’s (Culture, Communication, and Change), which play a very important role in every team at each stage of the project.

Having the right processes and tools is critical to success.  This is not to say there is a magical one size fits all solution.  Each organization must find the right fit for their culture and strategy.

Examples of processes for success include project methodology, requirements gathering, project tracking, defect resolution, change management, and disaster recovery to name a few. When it comes to implementing new or changing existing processes, I find it beneficial to create a RACI matrix, so it is clear who is Responsible, Accountable, Consulted, or Informed.  Most processes will need to stretch outside of IT into a cross-functional team, so be sure to gather input from all departments and team members impacted.

When it comes to selecting the right tools, it is recommended to compare multiple tools and see which ones best align with the goals and desired outcome.  Not every tool is designed the same and you are highly likely to select one that is missing some features found in others. Review your processes and align the needs of the process to a tool that supports it.

2. Security

Secure and encrypted applications (web/mobile) should be the norm from Day 1 of any project. Having a security awareness program in your organization and team, as well as having a CISO to lead security approaches, will add value and ensure everyone has the same understanding of security. Environment based access policies, approvals, and gates during each stage, perimeter, and endpoint security also play a very crucial part of security.

3. Design and Architectural Layout

Choosing a consolidated platform and technology coupled with a distributed version control system are some of the initial planning considerations for your architecture.  Does your solution require a domain-driven design approach? What about an event-driven architecture? Will you require third party integrations? Will your solution be consumed by others? REST or SOAP services? JSON or XML message formats? These questions and many more should be answered during the architecture and design phase.

4. On-Prem Servers vs. Cloud Deployments

Where is our application going to run, a physical on-prem VM, or deploying in your public/private cloud environment? Do you need a Windows or Linux environment? Are there licensing considerations?  What is the required up-time?  What additional tools/software is needed?  Are there specific networking requirements?  Do you already have a cloud service provider?  If not, you will need to consider the product offering, cost, security, support, and skill set needed to implement and manage the deployment.

The Impact of These Key Areas and Elements

The above elements play a vital role in building a DevOps team as well as moving applications from monolithic to microservices. In our next article we will review the remaining parameters in your DevOps Pipeline and which tools you can leverage to establish a successful DevOps project in your team and organization.

If you need any assistance or advice on DevOps Culture, or building your CI/CD pipeline, please contact our team today!