webrazzi online code: iyzico continuous delivery
TRANSCRIPT
CONTINUOUS DELIVERY @ İYZİCO
WEBRAZZİ ONLINE: CODE - OCT 11, 2016 İSTANBUL
AGENDA
iyzico : easy, fast & happy
Engineering
Tech StackContinuous Delivery
İYZİCO: EASY, FAST & HAPPY
November: Acquisition of , real-time
analytics platform for payments – Hakan Erdogan (CTO) joins
Jul 2013 Aug 2014 May 2015
1.4 1.4
6.2
Series B
April:Launched first official payment product
March:PCI DSS Level 1 Certification obtained
November:Founded by Barbaros & Tahsin
September: Integration with Isbank
June: Launched iyziMarketplace solution
Series A
Rounds of Financing (USD mn)
2012
2014
2013
2015
2016
Total: USD 9mn
April: Payment Institution License Application to BRSA (BDDK)
April: Set-up Iranian Branch Launched iyziMulti-Currency
January:Introduced iyziHybrid
SolutionFebruary:
Contract signed with Iranian Acquirer PECCO
February:Set up Istanbul Office
April: Launched Installment Payments for 6 Local Card Families
May - Oct: BRSA (BDDK) payment license obtained Facebook messenger – iyzico payment
integration launched dev.iyzipay.com community site launched
Expansion of sales force
Seed
December: Completed Installment Offer:
Adding Card
Notes: 1Turkish Banking Regulation and Supervision Authority
İYZİCO
Engineering : 24 50%-50% rule
Team : 3+1+1Office : 900 m2
Merchants : 38 K registered - 8 K live
Daily request : 420 K
Employee : 62 https://www.iyzico.com/biz-kimiz/ekip/
GROWTH
OFFICE
OFFICE
OFFICE
ENGINEERING
Engineering24 people
UX- Designers- Front-end developers- Product owner
Infrastructure- Sys admins- DBA- Network engineer- Office helpdesk
Software Development
- Software engineers- Product owners
Team Odin
- Software engineers- Product owner
Team Cronos
- Software engineers- Product owner
Team Herakles
- Software engineers- Product owner
ENGINEERING
Cross FunctionalSCRUMAGILE MVP
Self Organize
PairsFreedom Under Responsibility
Flat No B.A.No Test Eng.
Full-stack Engineers1 Week Sprint
Feature Team
ENGINEERING – THE TEAM
TECHNOLOGY STACK
Spring BootSpring 4JAVA 8 Groovy
MySQL
RestFul APIOpen Source
Redis
HibernateScala
Spark
TECH STACK
CONTINUOUS DELIVERY - PRINCIPLES
• Fail fast
• Job fails if any test fails
• Warn if any build fails
• Keep build history
• Do not merge complex code
• Do not merge failed builds
• Continuous feedback & report
CONTINUOUS DELIVERY
feature
Pair Programming
TestAutomation
CodeReview
ping-pong
rotationcross-functional
code qualitybackup
pull request(max 2 ppl)
session(team)
crucible(max 3 ppl)integration
unit
functional
master branch
develop branch
feature branches
a
b
c
featu
re bran
ch
d
bamboo builds
merged to develop branch
- unit tests- integration tests
Continuous Integration
developers’ local environment
Pair Programming
TestAutomation
CodeReview
ping-pong
rotationcross-functional
code qualitybackup
pull request(max 2 ppl)
session(team)
crucible(max 3 ppl)integration
unit
functional
master branch
develop branch
feature branches
a
b
c
featu
re bran
ch
d
bamboo builds
merged to develop branch
- unit tests- integration tests
Continuous Integration
developers’ local environment
relea
se /
v 1.2.
3
rele
ase
bran
ch artifact release build- versioning- unit tests- integration tests- artifactory
release v1.2.3.jar
mer
ged
to m
aste
r bra
nch
tag
dev environment
profile config
deployment
after deploymentand nightly builds- functional tests
stg
prod
dr
sand box
uat after deployment- functional tests
blue-green deployment- release notes- change management- zero downtime- smoke tests
Continuous Delivery
Pair Programming
TestAutomation
CodeReview
ping-pong
rotationcross-functional
code qualitybackup
pull request(max 2 ppl)
session(team)
crucible(max 3 ppl)integration
unit
functional
master branch
develop branch
feature branches
a
b
c
featu
re bran
ch
d
bamboo builds
merged to develop branch
- unit tests- integration tests
Continuous Integration
developers’ local environment
relea
se /
v 1.2.
3
rele
ase
bran
ch artifact release build- versioning- unit tests- integration tests- artifactory
release v1.2.3.jar
mer
ged
to m
aste
r bra
nch
tag
dev environment
profile config
deployment
after deploymentand nightly builds- functional tests
stg
prod
dr
sand box
uat after deployment- functional tests
blue-green deployment- release notes- change management- zero downtime- smoke tests
Continuous Delivery ProductionMonitoring
Splunk
Nagios
Proactive Monitoring
Pingdom
- cpu- ram
- disk- heap
- dashboard- alert
- outer healthcheck
- pos uptime- response time
Pair Programming
TestAutomation
CodeReview
ping-pong
rotationcross-functional
code qualitybackup
pull request(max 2 ppl)
session(team)
crucible(max 3 ppl)integration
unit
functional
master branch
develop branch
feature branches
a
b
c
featu
re bran
ch
d
bamboo builds
merged to develop branch
- unit tests- integration tests
Continuous Integration
developers’ local environment
relea
se /
v 1.2.
3
rele
ase
bran
ch artifact release build- versioning- unit tests- integration tests- artifactory
release v1.2.3.jar
mer
ged
to m
aste
r bra
nch
tag
dev environment
profile config
deployment
after deploymentand nightly builds- functional tests
stg
prod
dr
sand box
uat after deployment- functional tests
blue-green deployment- release notes- change management- zero downtime- smoke tests
Continuous Delivery ProductionMonitoring
Splunk
Nagios
Proactive Monitoring
Pingdom
- cpu- ram
- disk- heap
- dashboard- alert
- outer healthcheck
- pos uptime- response time
MONITORING
MONITORING
CUMULATIVE FLOW DIAGRAM
DEV.IYZIPAY.COM
OPEN SOURCE COMMUNITY
Merchant Panel & API
Sand-boxJava
Dev Site
Github
https://sandbox-merchant.iyzipay.com/register
https://sandbox-api.iyzipay.com
https://github.com/iyzico.Net PHP
RoR Python NodeJS
https://dev.iyzipay.com
WHAT’S NEXT ?
HiringDocker
ChatOps
Micro Module Micro Services
THANKS
26
@hakanerdogan
/hakanerdogan
@iyzico_com
https://www.iyzico.com