<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: ToffGuy</title>
    <description>The latest articles on Forem by ToffGuy (@toffguy77).</description>
    <link>https://forem.com/toffguy77</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1741903%2F1043f9c0-ab9a-4ee2-b2db-8791f842173d.jpg</url>
      <title>Forem: ToffGuy</title>
      <link>https://forem.com/toffguy77</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/toffguy77"/>
    <language>en</language>
    <item>
      <title>How to Build a Robust CI/CD Process for a Bank: A Practical Guide</title>
      <dc:creator>ToffGuy</dc:creator>
      <pubDate>Wed, 12 Mar 2025 10:29:56 +0000</pubDate>
      <link>https://forem.com/toffguy77/how-to-build-a-robust-cicd-process-for-a-bank-a-practical-guide-264l</link>
      <guid>https://forem.com/toffguy77/how-to-build-a-robust-cicd-process-for-a-bank-a-practical-guide-264l</guid>
      <description>&lt;p&gt;Recently, someone from my network reached out with an intriguing question: &lt;em&gt;"What are the best ways a bank can run its CI/CD process? How do we automate deployments and promote builds without unnecessary approvals?"&lt;/em&gt;  &lt;/p&gt;

&lt;p&gt;As someone with experience in infrastructure and DevOps, especially in highly regulated industries like banking, I decided to dive deep into this topic. The result is a comprehensive guide that outlines a CI/CD process tailored to the unique challenges of the banking sector.  &lt;/p&gt;

&lt;p&gt;In this post, I’ll share my thoughts, best practices, and lessons learned. Whether you’re working in banking or any other industry with strict compliance and security requirements, I hope this guide will serve as a practical resource to help you design or improve your CI/CD pipeline.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Understanding the Challenge
&lt;/h2&gt;

&lt;p&gt;The banking industry operates under strict regulatory requirements, industry security standards, and internal policies. The challenge is to strike a balance between the speed of delivery and the need for rigorous security and quality controls.  &lt;/p&gt;

&lt;p&gt;The goal is to automate as much as possible while minimizing unnecessary approvals, without compromising compliance, security, or quality.  &lt;/p&gt;




&lt;h2&gt;
  
  
  A Practical CI/CD Process for Banks
&lt;/h2&gt;

&lt;p&gt;Here’s a step-by-step breakdown of the CI/CD process tailored for a banking organization:  &lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Development&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use a unified code management system (e.g., GitLab) as the central hub for CI/CD processes.
&lt;/li&gt;
&lt;li&gt;Ensure all developer commits are signed with digital certificates to guarantee authorship and immutability.
&lt;/li&gt;
&lt;li&gt;Integrate automated security analysis into your CI pipelines:

&lt;ul&gt;
&lt;li&gt;Scan code and dependencies for vulnerabilities (SAST, DAST, dependency scanning).
&lt;/li&gt;
&lt;li&gt;Verify the SBOM (Software Bill of Materials) for prohibited licenses and vulnerable dependencies.
&lt;/li&gt;
&lt;li&gt;Make these steps informative during development and blocking when merging into the main branch.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Leverage Merge Request Approval workflows:

&lt;ul&gt;
&lt;li&gt;Implement the "four eyes" principle, requiring at least one peer to approve MRs.
&lt;/li&gt;
&lt;li&gt;Add automated checks for code quality, linting, and unit tests with minimum coverage thresholds.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. &lt;strong&gt;Build&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use a centralized artifact repository (e.g., Nexus or Artifactory) with clear zones of responsibility:

&lt;ul&gt;
&lt;li&gt;Shared repositories for public proxies with access control and auditing.
&lt;/li&gt;
&lt;li&gt;Team-specific repositories with restricted access based on roles.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Digitally sign artifacts and SBOM during the build phase to ensure immutability and traceability.
&lt;/li&gt;

&lt;li&gt;Standardize your CI pipeline to include:

&lt;ul&gt;
&lt;li&gt;Unit, integration, and smoke tests.
&lt;/li&gt;
&lt;li&gt;Code coverage analysis with minimum thresholds.
&lt;/li&gt;
&lt;li&gt;Static code analysis and quality checks.
&lt;/li&gt;
&lt;li&gt;Scanning containers and dependencies for vulnerabilities.
&lt;/li&gt;
&lt;li&gt;Automatic versioning (semver) and changelog generation linked to task management systems (e.g., Jira).
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Separate build and deploy containers:

&lt;ul&gt;
&lt;li&gt;Minimize deploy containers to reduce the attack surface.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Regularly re-scan repository artifacts for newly discovered vulnerabilities.
&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. &lt;strong&gt;Deploy&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Differentiate approaches for test and production environments:

&lt;ul&gt;
&lt;li&gt;Test environments should prioritize speed and informative checks.
&lt;/li&gt;
&lt;li&gt;Production environments must pass all quality gates and security checks.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Major changes and infrastructure modifications require approval:

&lt;ul&gt;
&lt;li&gt;Involve architectural and security teams to ensure compliance and consistency.
&lt;/li&gt;
&lt;li&gt;Automate approvals with digital signatures and validations in CI pipelines.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Register and track changes using Change Management (ITSM):

&lt;ul&gt;
&lt;li&gt;For manual CRQs (Change Requests), include:

&lt;ul&gt;
&lt;li&gt;Component and version.
&lt;/li&gt;
&lt;li&gt;Changelog of changes.
&lt;/li&gt;
&lt;li&gt;Update, verification, and rollback procedures.
&lt;/li&gt;
&lt;li&gt;Testing results.
&lt;/li&gt;
&lt;li&gt;Scheduled time and impact on other systems.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Enable automatic CRQ (autoCRQ) registration under specific conditions:

&lt;ul&gt;
&lt;li&gt;No impact on service continuity or other components.
&lt;/li&gt;
&lt;li&gt;Automated testing is successfully completed.
&lt;/li&gt;
&lt;li&gt;Risk assessment is performed within the team.
&lt;/li&gt;
&lt;li&gt;In case of incidents caused by autoCRQ, temporarily suspend access until the issue is resolved.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;Use modern deployment strategies:

&lt;ul&gt;
&lt;li&gt;Canary deployments, Blue-Green deployments, and Feature Toggles.
&lt;/li&gt;
&lt;li&gt;Monitor SLI/SLO and business metrics during deployment, with automatic rollbacks if performance degrades.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  4. &lt;strong&gt;Monitoring and Tracking&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Automatically update the IT Asset Management system (CMDB):

&lt;ul&gt;
&lt;li&gt;Track all changes, configurations, and versions.
&lt;/li&gt;
&lt;li&gt;Build a service-resource tree from business processes to infrastructure components.
&lt;/li&gt;
&lt;li&gt;Support audits and regulatory reporting.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Maintain a unified internal Status Page for transparency and rapid response:

&lt;ul&gt;
&lt;li&gt;Display the current state and SLA/SLI of IT systems.
&lt;/li&gt;
&lt;li&gt;Monitor the health of critical business processes.
&lt;/li&gt;
&lt;li&gt;Integrate with monitoring and alerting systems (e.g., Prometheus, Grafana, Zabbix).
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  5. &lt;strong&gt;Adjustments and Standardization&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use generators and templates for GitLab pipelines, Helm charts, and Kubernetes manifests:

&lt;ul&gt;
&lt;li&gt;Developers provide a declarative application description (application manifest).
&lt;/li&gt;
&lt;li&gt;Automatically generate necessary artifacts, including deploy containers and infrastructure code.
&lt;/li&gt;
&lt;li&gt;This approach standardizes processes, minimizes errors, and ensures compliance with security and regulatory requirements.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Regularly audit and review processes for continuous improvement:

&lt;ul&gt;
&lt;li&gt;Conduct retrospectives after major releases and incidents.
&lt;/li&gt;
&lt;li&gt;Collect and analyze delivery metrics (e.g., DORA metrics, Lead Time, Deployment Frequency).
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  Reflections and Takeaways
&lt;/h2&gt;

&lt;p&gt;Designing a CI/CD process for a bank is no small feat. It requires balancing speed, security, and compliance while ensuring transparency and control. The practices outlined above are not just theoretical—they’re grounded in real-world experience and best practices from the DevOps and ITSM domains.  &lt;/p&gt;

&lt;p&gt;However, no solution is perfect. Every organization has unique challenges, and there’s always room for improvement.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Let’s Collaborate!
&lt;/h2&gt;

&lt;p&gt;I’d love to hear your thoughts and experiences!  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What challenges have you faced when implementing CI/CD in highly regulated industries?
&lt;/li&gt;
&lt;li&gt;Are there additional practices or tools you’ve found invaluable?
&lt;/li&gt;
&lt;li&gt;How do you balance speed and compliance in your pipelines?
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s use this post as a starting point for a collective discussion. Together, we can refine and expand on these practices to create an even more comprehensive guide.  &lt;/p&gt;

&lt;p&gt;Feel free to share your insights in the comments or reach out directly. Let’s make CI/CD in banking (and beyond) as seamless, secure, and efficient as possible!  &lt;/p&gt;




&lt;p&gt;Thank you for reading, and I’m looking forward to your feedback! 😊&lt;/p&gt;

</description>
      <category>devops</category>
      <category>fintech</category>
      <category>cicd</category>
      <category>security</category>
    </item>
  </channel>
</rss>
