CONTINUOUS DELIVERY IN THE ORACLE CLOUD Lykle Thijssen Bruno Neves Alves June 7, 2018 NLOUG Tech Experience Amersfoort eproseed Confidential
ABOUT US Lykle Thijssen Principal Architect and Scrum Master Oracle ACE Associate 19 Excellence Awards in 8 years Bruno Neves Alves Technical Director and Partner CTO Group Oracle ACE Associate 9 Oracle ACE Directors 3 Oracle ACE Associates 2 Oracle Developer Champions 3
AGENDA 1 2 3 4 5 Traditional and cloud SDLC eproseed s approach Oracle Cloud Services Demonstration Summary 4
AGENDA 1 2 3 4 5 Traditional and cloud SDLC eproseed s approach Oracle Cloud Services Demonstration Summary 5
DEVOLOPMENT PROCESS CHALLENGES Business Challenges Regulation Competition Innovation Recruiting Uncertainty IT Challenges Prove that our application does what the users meant it to Prove that the code has the desirable quality and it will not break anything Be able to deliver at business pace and when it was promised to be delivered 6
DEVOLOPMENT PROCESS CHALLENGES Reference: Illustration by Nhan Ngo, Product Owner at Spotify on the Continuous Delivery process described by Jez Humble and David Farley at Continuous Delivery book. 7
SDLC (SOFTWARE DEVELOPMENT LIFE CYCLE) Inputs Outputs Requirements Specifications SDLC (develop & test of the product) Software (Source code & binary ) Software Quality Report Software Deployer A framework that describes the activities performed at each stage of a software development project, to describe a process for planning, creating, testing, and deploying an information system. 8
CONTINUOUS DELIVERY, INTEGRATION AND IMPROVEMENT Quick Wins Reduced Risks Regular Feedback Continuous Delivery Continuous Integration Quality Assurance Increased Delivery Speed Continuous Improvement 9 Close the cycle with Feedback Gathering Metrics for Improvement
SDLC PHASES Requirements Development CI & Testing Release Pipeline 10
HOW IS TRADITIONAL SDLC DIFFERENT FROM CLOUD SDLC? 11
TRADITIONAL SOFTWARE DEVELOPMENT LIFECYCLE Requirements Management And Architecture SDLC SDLC Infrastructure SCM CI Wiki Issue Development Environment Test Environment Other Environments Production Environment App Container App Container App Container App Container DB Test Tools DB Test Tools DB DB Business User IDE Reference: Oracle Developer Cloud Service Developers Testers Operations 12
DEVELOPMENT LIFECYCLE ON CLOUD Development in the Cloud Testing in the Cloud Production in the Cloud SDLC Infrastructure Development Environment SDLC Infrastructure Test Environment Dev Test SCM Wiki App Container SCM Wiki App Container CI Issue DB CI Issue Test Tools DB SDLC Infr Prod IDE Developers IDE Development Environment Testers Developers IDE App Container DB Operations Business User 13 Developers Reference: Oracle Developer Cloud Service
SDLC AND TOOLING Development CI & Testing Release Pipeline Team Collaboration Task Management and Issue Tracking Source Code Management Feedback (code review) Continuous Integration Quality Assurance Feedback (testing) Release and Pipeline Orchestration Feedback (issues and improvements) 14
AGENDA 1 2 3 4 5 Traditional and cloud SDLC eproseed s approach Oracle Cloud Services Demonstration Summary 15
VERSIONING STRATEGY Time Feature Develop Release Hotfixes Master Tag 0.1 Tag 0.2 Tag 1.0 16
REPOSITORY STRUCTURE src Microservice-n sdlc pom bpm soa scripts targets pom pom pom py wslt ant dev test Application-n Application-n Application-n prop. prop. pom pom pom conf conf Project-n Project-n Project-n jndi jndi pom pom pom...... 17
dependency SNAPSHOT PIPELINE JDeveloper Workspace pom.xml (ear) Project-1 Developer Workstation mvn install Local Repository Management Maven dependencies Repository Management DevCS Artifact Repository Snapshots mvn install Application Servers ACCS & Others deploy pom.xml mvn package Project-n Continuous Integration Code Review pom.xml (jar) Local Source Code Repository Version Control System SonarQube pom.xml (war) git commit GIT git push Task Number GIT trigger 18
RELEASE LIFECYCLE Application Servers ACCS & Others 8. Deploy Release artifacts 1. Initiate Release Continuous Integration 3. Code Review Code Review SonarQube 3. Run full build 6. Deploy release artifacts Task Management System or Manually 2. Create Release Branch Version Control System GIT 4. Update POMs with Release version 5. Tag Release 7. Increment Snapshot version Repository Management Maven Artifact Repo Releases 19
AGENDA 1 2 3 4 5 Traditional and cloud SDLC eproseed s approach Oracle Cloud Services Demonstration Summary 20
APPLICATION CONTAINER CLOUD SERVICE Cloud Native Polyglot Runtime Platform Choose your own programming language: Java, Node.JS, PHP etc Freedom of IDE: NetBeans, Eclipse, JDeveloper etc Based on Docker Containers Excellent for Microservices Architecture Developer Cloud Service included for Continuous Delivery experience 21 Reference: Oracle Application Container Cloud Service
DEVELOPER CLOUD SERVICE Developer Key Features Secure, Agile, Team Development in Oracle Cloud Accelerates Oracle PaaS/SaaS integration and extension Supports the complete software development lifecycle Source control management, issue tracking, hosted build and test, team collaboration Enables Continuous Integration and Delivery Automates Deployment within Oracle Cloud or on Premises Integrated IDEs: Eclipse, JDeveloper, NetBeans Reference: Oracle Developer Cloud Service 22
DEVELOPER CLOUD SERVICE - BASE ARCHITECTURE IDEs Task Management Code Review Cloud Instances On-Prem Servers Development CI & Testing Release Pipeline
APPLICATION CONTAINER & DEVELOPER CLOUD SERVICE Developer Experience Jdev, NetBeans or Eclipse On-Premise Continuous Integration SOA Application Container Cloud Service Check in source code to Developer Cloud Service GIT repository Continuous Integration Build Archives from Source Control IDE on Prem Check In Source to GIT in DCS Developer Cloud Service Deploy to an ACCS container with the appropriate runtime Start, stop and undeploy applications Reference: Oracle Developer Cloud Service 24
WHAT S NEW Since April s Release 25
WHAT S NEW HIGHLIGHTS New build engine with release Pipelines Build orchestration More control Dedicated Build VM (Templates) Much much faster and flexible Dedicated build VM CS Compute Node with SSH Access 26
WHAT S NEW HIGHLIGHTS Docker and Terraform Support Infratructure provisioning Full DevOps orchestration SonarQube Integration Analyse your code and publish to SonarQube server Build testing 27
WHAT S NEW AND ALSO! Extended support: Kubernetes - use the kubectl command line to manage your docker containers OCI Command line - to automate provisioning and configuration of Oracle Compute Java 9 support Oracle Development Tools - Oracle Forms and Oracle JDeveloper 12.2.3 are now available to automate deployment of Forms and ADF apps In Browser Code Editing and Versioning Increased Reusability Create DevCS Projects based in exsting exported projects 28
APPLICATION CONTAINER & DEVELOPER CLOUD SERVICE Together, ACCS and DevCS support the four pillars of Continuous Delivery: 1. Agile Methodologies 2. Automation 3. Microservices 4. Cloud 29
AGENDA 1 2 3 4 5 Traditional and cloud SDLC eproseed s approach Oracle Cloud Services Demonstration Summary 30
DEMONSTRATION Use Case 31
CASE - DEPLOYING WEB APP TO ACCS USING DEVCS App User IDE Developer Push EmployeesUIApp SCM Developer Cloud Service GIT Build Build VM - Maven Deploy DevCS Deployment EmployeesUIApp Oracle Application Container CS Build and Deployment Automation 32
AGENDA 1 2 3 4 5 Traditional and cloud SDLC eproseed s approach Oracle Cloud Services Demonstration Summary 33
SUMMARY Feedback is key and smaller is greater Team Collaboration and Communication is essential Define a good structure and be sure that everyone is align with it Align on Best practices and Cookbooks for better quality in your deliverables Push quality with testing and code review Find the right tooling and map it to your procedures Cloud SDLC is very similar with onpremises SDLC Oracle Developer Cloud Service is easy to setup Reuse your existent on-premise CI assets on DevCS smoothly DevCS and ACCS form a powerful foundation for Continuous Delivery DevCS beyond SDLC with full support for DevOps 34
QUESTION & ANSWERS 35
THANK YOU! 36
LYKLE THIJSSEN Principal Architect at eproseed Oracle ACE Associate for Middleware and Cloud 10+ years of software industry experience Certified Oracle SOA & BPM specialist Certified Scrum Master Blogger, author, speaker Mail: lykle.thijssen@eproseed.com LinkedIn: https://www.linkedin.com/in/lyklethijssen 37 Blog: http://undertheredcloud.blogspot.com Twitter: @lyklethijssen
BRUNO NEVES ALVES Technical Director, Partner at eproseed UK Part of Global CTO Group at eproseed 10+ years of software industry experience (architecture, development, consulting, middleware subject matter expert) Oracle certified BPM, SOA, Application Grid, implementation specialist, Oracle certified trainer on Oracle FMW Global Innovation Award Co-author of BPM, SOA Blogs and magazine articles Mail: bruno.neves.alves@eproseed.com Phone: +44 (0)7765 190 419 38 Blog: http://fusionbpmsoa.blogspot.co.uk/ Twitter: @b_alves
47
48
49
50