Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TechUpdate - Journey in Implementing CI/CD

TechUpdate - Journey in Implementing CI/CD

Imam Muslim and I shared our experience implementing CI/CD in JDS. We presented this during a JDS talk session called TechUpdate vol. 13.

Aldi Doanta Kurnia

December 11, 2019
Tweet

More Decks by Aldi Doanta Kurnia

Other Decks in Technology

Transcript

  1. Our Missions 1. Establish data-driven policy making 2. Accelerate government

    digital transformation 3. Simplify people’s lives with digital technology
  2. OKR Organization Values Continuous learning Aligned autonomy Metric-driven & Impact-oriented

    Agile development Encourage automation Innovative Data-driven Service oriented Responsive Adaptive Dynamic Engineering Culture Engineering Practice Scrum CI/CD TechTalk 360o Feedback
  3. Continuous learning Aligned autonomy Metric-driven & Impact Agile development Encourage

    automation Engineering Culture Engineering Practice CI/CD
  4. Cloud Native Application 1. Elasticity = grow and shrink to

    fit in available resource 2. Resilience = fast automatic and recovery from failure 3. Agility = fast deployment, iteration and reconfiguration Cloud Native Landscape and Trail Map (https://github.com/cncf/trailmap)
  5. Benefits and Challenges Benefits: - Automated, repeatable, reliable - Improvement

    in software quality and delivery speed - Engineer’s confidence and peace of mind Challenges: - Learning curve - Long-term result
  6. Why We Use GitLab CI and Jenkins JDS is using

    GitLab CI dan Jenkins Jenkins GitLab CI - Open Source - Simple and easy to use - Many plugins to use - Complete documentation - Easy to Maintain - Free, 2000 minutes/month - Any Platform Git - Running locally
  7. versioning: stage: versioning only: - branches script: - export VER=1.0

    code_quality: stage: code_quality dependencies: - versioning script: - script GitLab CI Example stages: - versioning - code_quality - build - test - deploy_staging - deploy_prod deploy_staging_aws: stage: deploy_staging only: - master script: - script deploy_staging_eks: stage: deploy_staging only: - master script: - script deploy_prod_eks: stage: deploy_prod when: manual only: - master script: - script JOBS STAGES
  8. Increasing complexity in config file April 2019 1 stage File

    size: 482 B December 2019 6 stages File size: 14 KB
  9. Challenges Others: - Managing environment variables - GitLab Runner performance

    limitations - CI/CD optimization in pipeline duration
  10. Case Study: Sapawarga Sapawarga API Total: 2164 pipelines, Successful: 1283

    pipelines, Failed: 394 pipeline Success ratio: 76%
  11. Resources JDS Engineering Culture https://docs.google.com/presentation/d/10bNVWLJ5LgqZ4eMHb0iEAmxPV4xSQakwLRMa7AS3hP4/edit#slide=id.g 4cfeba9e2f_0_644 Cloud Native Trail Map

    https://github.com/cncf/trailmap Getting Started with GitLab CI/CD https://docs.gitlab.com/ee/ci/quick_start/ Jenkins User Documentation https://jenkins.io/doc/