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

開発エンジニアが実践するDevSecOps

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 開発エンジニアが実践するDevSecOps

Avatar for Kaz Watanabe

Kaz Watanabe

April 17, 2025
Tweet

More Decks by Kaz Watanabe

Other Decks in Technology

Transcript

  1. 13 w ܧଓతσϦόϦʔ$% w ֤؀ڥ΁ͷσϓϩΠΛࣗಈԽ w *OGSBTUSVDUVSF"T$PEF*B$ w ֤؀ڥͷϓϩϏδϣχϯάΛࣗಈԽ w

    ͦͷଞఆظλεΫͷࣗಈԽ w HJUIVCͷϝτϦοΫͷ؂ࢹ ۭ͖γʔτ਺ɺ()"ͷ࣮ߦ࣌ؒʜ ओͳࣗಈԽͷॲཧ $%ɾ*B$ɾͦͷଞ
  2. 15 ओͳࣗಈԽͷॲཧ ֤؀ڥ΁ͷσϓϩΠͷࣗಈԽ ί υ ͷ ν Ϋ Ξ ΢

    τ ί ϯ ς φ Ϩ δ ε τ Ϧ ʹ ϩ ά Π ϯ λ ά ໊ Λ औ ಘ ί ϯ ς φ Λ build & push λ ά ໊ ͔ Β Ϧ Ϗ δ ϯ ໊ Λ ࡞ ੒ Azure ϩ ά Π ϯ ࣮ ߦ த ͷ Ϧ Ϗ δ ϯ Λ औ ಘ ৽ ͠ ͍ Ϧ Ϗ δ ϯ Λ σ ϓ ϩ Π (traf c: 0%) Azure ϩ ά Π ϯ ৽ چ ͷ Ϧ Ϗ δ ϯ ͷ traf c Λ ೖ ସ ͑ Azure ϩ ά Π ϯ چ Ϧ Ϗ δ ϯ Λ ࡟ আ Build Deploy Flip Deactivate ঝೝ ঝೝ ϦϦʔελάΛ࡞੒ Ұ୴͜͜Ͱఀࢭ
  3. 17 ओͳࣗಈԽͷॲཧ ֤؀ڥͷϓϩϏδϣχϯάΛࣗಈԽ IaC ί υ ͷ จ ๏ ν

    Ϋ STG ֤ ؀ ڥ ͱ ͷ ࠩ ෼ Λ औ ಘ ࠩ ෼ Λ PR ί ϝ ϯ τ ʹ ౤ ߘ IaC ί υ ͷ จ ๏ ν Ϋ ϓ ϩ Ϗ δ χ ϯ ά ࣮ ߦ PR࡞੒ ঝೝ UAT PROD Bicepίʔυͱ ࠩ෼Λൺֱ ໰୊͕ͳ͚Ε͹ Ϛʔδ ϨϏϡʔ ϦϦʔε ߏ੒มߋ Ұ୴͜͜Ͱఀࢭ
  4. 19 w 13࡞੒࣌ʹ6OJU5FTUͳͲΛࣗಈ࣮ߦ w ఆظతʹEFQFOEBCPUͰґଘؔ܎ͷߋ৽Λࣗಈݕ஌ w όοΫΤϯυ"1* w NBJOϒϥϯνߋ৽࣌ʹ"1*ఆٛΛ(JUIVC1BHFTʹσϓϩΠ w

    ϑϩϯτΞϓϦ޲͚"1*ΫϥΠΞϯτͷQVCMJTI w %PDLFSίϯςφͷఆظతͳ੬ऑੑεΩϟϯ w ϑϩϯτΞϓϦ w NBJOϒϥϯνߋ৽࣌ʹ4UPSZCPPLΛ(JUIVC1BHFTʹσϓϩΠ ओͳࣗಈԽͷॲཧ $*
  5. 20 w 13࡞੒࣌ʹ6OJU5FTUͳͲΛࣗಈ࣮ߦ w ఆظతʹEFQFOEBCPUͰґଘؔ܎ͷߋ৽Λࣗಈݕ஌ w όοΫΤϯυ"1* w NBJOϒϥϯνߋ৽࣌ʹ"1*ఆٛΛ(JUIVC1BHFTʹσϓϩΠ w

    ϑϩϯτΞϓϦ޲͚"1*ΫϥΠΞϯτͷQVCMJTI w %PDLFSίϯςφͷఆظతͳ੬ऑੑεΩϟϯ w ϑϩϯτΞϓϦ w NBJOϒϥϯνߋ৽࣌ʹ4UPSZCPPLΛ(JUIVC1BHFTʹσϓϩΠ ओͳࣗಈԽͷॲཧ $*
  6. 21 ओͳࣗಈԽͷॲཧ 13࡞੒࣌ʹ6OJU5FTUͳͲΛࣗಈ࣮ߦ ί ϯ ς φ ͷ Ϗ ϧ

    υ ί σ ϯ ά ε λ Π ϧ ν Ϋ phpstan ʹ Α Δ ੩ త ղ ੳ UnitTest ɾ Feature Test ͷ ࣮ ߦ SonarQube ʹ Α Δ ੩ త ղ ੳ ࣮ ߦ ݁ Ռ Λ Teams ʹ ௨ ஌ SonaeQube Badge Λ PR ί ϝ ϯ τ ʹ ౤ ߘ ίʔυͷ৴པੑɾอकੑ޲ ্ͷࢪࡦ w ݕ஌಺༰ͷྫ w ܕͷෆҰகͷݕ஌ w ଘࡏ͠ͳ͍Ϋϥε΍ϝ ιουͷݺͼग़͠ w ഑ྻΩʔ΍ϓϩύςΟͷ ະఆٛΞΫηε w ౸ୡෆೳͳίʔυ 4"45ʢ੩తΞϓϦέʔγϣϯη ΩϡϦςΟςετʣ w ݕ஌಺༰ w όά΍ηΩϡϦςΟͷ੬ऑੑ w ίʔυͷॏෳɺෳࡶੑɺίʔ σΟϯάن໿ҧ൓ w ςετΧόϨοδͷଌఆ w ٕज़తෛ࠴ͷఆྔԽ
  7. 22 w 13࡞੒࣌ʹ6OJU5FTUͳͲΛࣗಈ࣮ߦ w ఆظతʹEFQFOEBCPUͰґଘؔ܎ͷߋ৽Λࣗಈݕ஌ w όοΫΤϯυ"1* w NBJOϒϥϯνߋ৽࣌ʹ"1*ఆٛΛ(JUIVC1BHFTʹσϓϩΠ w

    ϑϩϯτΞϓϦ޲͚"1*ΫϥΠΞϯτͷQVCMJTI w %PDLFSίϯςφͷఆظతͳ੬ऑੑεΩϟϯ w ϑϩϯτΞϓϦ w NBJOϒϥϯνߋ৽࣌ʹ4UPSZCPPLΛ(JUIVC1BHFTʹσϓϩΠ ओͳࣗಈԽͷॲཧ $*
  8. 24 w 13࡞੒࣌ʹ6OJU5FTUͳͲΛࣗಈ࣮ߦ w ఆظతʹEFQFOEBCPUͰґଘؔ܎ͷߋ৽Λࣗಈݕ஌ w όοΫΤϯυ"1* w NBJOϒϥϯνߋ৽࣌ʹ"1*ఆٛΛ(JUIVC1BHFTʹσϓϩΠ w

    ϑϩϯτΞϓϦ޲͚"1*ΫϥΠΞϯτͷQVCMJTI w %PDLFSίϯςφͷఆظతͳ੬ऑੑεΩϟϯ w ϑϩϯτΞϓϦ w NBJOϒϥϯνߋ৽࣌ʹ4UPSZCPPLΛ(JUIVC1BHFTʹσϓϩΠ ओͳࣗಈԽͷॲཧ $*
  9. 26 w 13࡞੒࣌ʹ6OJU5FTUͳͲΛࣗಈ࣮ߦ w ఆظతʹEFQFOEBCPUͰґଘؔ܎ͷߋ৽Λࣗಈݕ஌ w όοΫΤϯυ"1* w NBJOϒϥϯνߋ৽࣌ʹ"1*ఆٛΛ(JUIVC1BHFTʹσϓϩΠ w

    ϑϩϯτΞϓϦ޲͚"1*ΫϥΠΞϯτͷQVCMJTI w %PDLFSίϯςφͷఆظతͳ੬ऑੑεΩϟϯ w ϑϩϯτΞϓϦ w NBJOϒϥϯνߋ৽࣌ʹ4UPSZCPPLΛ(JUIVC1BHFTʹσϓϩΠ ओͳࣗಈԽͷॲཧ $*
  10. 28 w 13࡞੒࣌ʹ6OJU5FTUͳͲΛࣗಈ࣮ߦ w ఆظతʹEFQFOEBCPUͰґଘؔ܎ͷߋ৽Λࣗಈݕ஌ w όοΫΤϯυ"1* w NBJOϒϥϯνߋ৽࣌ʹ"1*ఆٛΛ(JUIVC1BHFTʹσϓϩΠ w

    ϑϩϯτΞϓϦ޲͚"1*ΫϥΠΞϯτͷQVCMJTI w %PDLFSίϯςφͷఆظతͳ੬ऑੑεΩϟϯ w ϑϩϯτΞϓϦ w NBJOϒϥϯνߋ৽࣌ʹ4UPSZCPPLΛ(JUIVC1BHFTʹσϓϩΠ ओͳࣗಈԽͷॲཧ $*