You are on page 1of 35

DevOps and Agile Methodology:

Lessons Learned

Shay Shmeltzer
Director of Product Management
Oracle Cloud Development Tools

Thisan Samarasinghe
Head of Software Engineering
LOLC Technologies

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, timing, and pricing of any
features or functionality described for Oracle’s products may change and remains at the
sole discretion of Oracle Corporation.

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Agile Methodology – Key Concepts
• Short delivery cycles
• Delivery of incremental solutions
• Focus on highest priority tasks
• Adapt constantly

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


DevOps – Enabler for Agile
• DevOps is a culture, movement or
Plan practice that emphasizes the
Monitor Code
collaboration and communication of both
software developers and other
information-technology (IT) professionals
while automating the process of software
Operate Build
delivery and infrastructure changes. It
aims at establishing a culture and
environment where building, testing,
and releasing software, can happen
rapidly, frequently, and more reliably.
Deploy Test
– Wikipedia
Release

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


How We Do It
The Developer Cloud Service Team

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Oracle Developer Cloud Service – What Is It
• Code/CI Management
– Version Management – Git
– Build Automation
• Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell
– Test Automation
• Selenium, JUnit, Findbugs, Sonar, others
– Deployment & Provisioning Automation
• Docker, K8S, Terraform, PSM, OCICLI
– Continuous Integration Engine with Pipelines

• Team/Agile Management
– Issues Tracking
– Agile Process Management
– Peer Code Review
– Wiki
– Activity stream

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Our Team Overview

~170 Project 10,000s 2 Week


Members LOCs Sprints

Oracle Developer Cloud Service

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Source Management

1 Project 50 Git Component


Repositories Per Repository

Task & Issue Tracker

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Feature Work
~200 commits a week

Master

New feature/
bug fixes

Complete code Code review Code approved Automate build


Merge request
to target

Iterate, fix
& review

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Preparing for Release

Master

Release Branch

Critical Bug Fix Automate build Release

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Code Management Tips

• It’s ok to have more than one Git repository


• Leverage GitFlow process – provide agility
• Automate code review process
• Default code reviewer per area
• Branch main for a release
– Lock branch to require approval for show stoppers only
• Database scripts are part of your code base

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Build Process
• Commit/push builds • Master branched
– ~50 builds a day every 2 weeks
• + 2 times a day – All git repositories
– All git repositories – Deploy to stage VM
Development
– Deploy to dev VM
Production – Automated tests
– Automated tests – Manual QA
– Candidate for
production deploy
– ~Candidate for
customers

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Build Tips
• Automate notification from builds (prevent “I didn’t know it broke”)
– Email, Slack, PagerDuty, etc
• Require a test script in a build for new capabilities
• Regular builds lead to regular testing lead to early issue detection
• There is no such thing as builds overload
– Build executors don’t need a rest
• Builds for monitoring production environments runtime

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Additional Lessons Learned
• Integrated Agile + DevOps is key
• Cloud based environment is so much simpler
• Team collaboration is key – everyone is a committed owner of the product

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Summary of Benefits
• Full traceability – issue->code
change->build->deploy
• Faster feedback on code commits
• Improved team collaboration
• One stop shop for Agile + DevOps
• Accessibility of project artifacts
• Easy provisioning and scaling

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Demo
A day in the life of a development team

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Metrics: Developer Cloud Service Team
• One Developer Cloud Service Project
• 50 git repositories, 1 binary repository
• 170 project members, 50 active code contributors
• 200 commits a week
• 50 builds a day
• 23K issues
• 3K Merge requests
• 250 wiki pages

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


LOLC Technologies – DevOps Story

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


LOLC Technologies - Company Overview
• Fully owned Subsidiary of LOLC Group
• Fully fledged Information and
Communication Technology Solution
Company
Consultancy Services
• Extensive knowledge of Banking and
Financial Services industry
• Unparalleled experience and
comprehensive capabilities across Partnered Solutions

industries and business functions


• Multiple solutions with primary focus
In-house developed
in financial services and commercial products
industries.
About Fusion – The Core Banking Solution
Fusion Banking Fusion Lending Technologies Used
• Savings • Marketing • Spring MVC 3.1
• Deposits • Accounts • JPA 2.0
• Gold Loan • Recoveries • Jasper Server 6.2
• Legal • Jersey 2.6
• Payments • JBoss EAP 6.2
• GL • Weblogic 10.3.6
• Operations • Oracle Forms/Reports 11g
• Workflow • Oracle DB 11.2 Exadata
• Audit
• Micro

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


LOLCTech DevOps Setup

• Developer Cloud Service provisioning and build servers configuration


• Migration of ~56 projects from SVN to Git
• Implement CI/CD for project and replicate the build configuration for other projects
• Git branching strategy to manage development, release and production
• Implementing DB rollback scripts for deployment
• Leverage Jira workflow to integrate with CI/CD and release management
• Data masking and size optimization for DB backup
Development Team

Team Members
Developers 16
QA Engineers 6
Business Analysts 11
Operations 4
Development Team Responsibilities

DevCS Task Responsibility


Project Setup Team Lead, Senior Dev
Build Tools Team Lead, Senior Dev
Deployment (Production) Operations
Monitor Build Queue Dev, BA, QA
Deployment Verification Dev, BA, QA
(Success/ Fail)
LOLCTech DevOps with Oracle’s DevCS
• DevCS functionality used
• Source Control
• Merge Requests
• Build Job to build and deploy artifacts
• Pipeline
• Maven Repository
• Release

• Jobs are triggered automatically based on the integration with Jira Cloud issues status

• Each environment is isolated and deployed separately


JIRA
Build Queue and History
DevCS – Code Merge Request Review
• Review the code
changes made by
developers

• Allow discussion on
the changes before
merge

• Approve/Reject the
request before
merging to the main
release branch
DevCS – Release Tracking
• Track different
build artifacts

• Create Git tag to


the release
LOLCTech DevOps Environment Setup
Dev Environment QA Environment UAT Environment

commit war

Developers
Developer Cloud Service IaaS – OCI – JBoss IaaS – OCI - JBoss IaaS – OCI - JBoss

test
deploy SQLcl

Dev/QA
Database Cloud Service Database Cloud Service Database Cloud Service

forms

Monitoring
IaaS – OCI - Forms IaaS – OCI - Forms IaaS – OCI - Forms
Ops
Environment build promotion
Automatic Deployment trigger from Jira Cloud
Jira Workflow
Development
Pending
QA Environment
Development Status = QA Scp/SQLcl
XXXProject
QA Job
Start QA Project = LOLC XXX
IssueType = QA-Release
JBoss EAP 6.x Forms 11g DB 11.2.0.4
QA Jira
Webhook Copy last success
Listener build from QA
Start UAT
UAT Environment

UAT XXXProject
UAT Job
Status = UAT
UAT Approved Scp/SQLcl
Jboss EAP 6.x Forms 11g DB 11.2.0.4

In Production
DevCS Pipeline to Build Multiple Versions
• Multiple jobs are
configured for each
project

• As there are multiple


build configuration for
each project, the
DevCS pipeline is used
to automatically built
all related artifacts
Development Process Improvements
• Centralized management and security
control at Oracle cloud
• Full Traceability of code changes
• Faster feedback on code changes
• 10 times faster deployment across
environments
• Easy integration of DevOps and JIRA Agile
Try Oracle Developer Cloud Service Yourself
cloud.oracle.com/developer_service

• Tutorials
• Videos
• Whitepapers
• Documentation
• Forums

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |


Learn More This Week
See us at The Exchange Booth

Title Time
DevOps in the Cloud with Oracle Developer Cloud Service Tuesday, Oct 23, 12:45 p.m. - 1:45 p.m. | Marriott
[HOL6270] Marquis (Yerba Buena Level) - Salon 10/11
Deploying an Application Stack in the Autonomous Cloud Tuesday, Oct 23, 2:15 p.m. - 3:15 p.m.
- BYOL [HOL6553] Wednesday, Oct 24, 11:15 a.m. - 12:15 p.m. | Marriott
Marquis (Yerba Buena Level) - Salon 9B
Develop, Build, and Deploy Docker on Oracle IaaS Using Tuesday, Oct 23, 3:45 p.m. - 4:30 p.m. | Moscone West -
Oracle Developer Cloud [PRO3966] Room 3018
Managing Development Projects Across Oracle Cloud Wednesday, Oct 24, 3:45 p.m. - 4:30 p.m. | Moscone
Services: A Guide [PRM4556] West - Room 3018
DevOps for Polyglot Microservices Using Oracle Tuesday, Oct 23, 11:15 a.m. - 12:00 p.m. | Marriott
Developer Cloud Service [TIP3967] Marquis (Golden Gate Level) - Golden Gate C2
Simplified DevSecOps with Oracle Cloud [THT6778] Tuesday, Oct 23, 2:00 p.m. - 2:20 p.m. | The Exchange @
Moscone South - Theater 5
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |