Beruflich Dokumente
Kultur Dokumente
= A Bright Future
Sai Janakiram Penumuru
Chief Technologist, Oracle ACE Director
Introduction
Microservices
DevOps
Oracle Cloud
Microservices
What is Microservices
5
Microservices are Analogous to Unix Utilities
Same Concept, Different Decade
6
Monolithic versus Microservices
A microservices
architecture puts each
A monolithic application element of business
puts all its functionality functionality into a
into a single module separate service
7
Single, Monolithic App Many, smaller minimal function Microservices
Must Deploy Entire App Can deploy Each Microservices independently
One Database for Entire App Each Microservices often has its own Data store
Organized around Technology Layers Organized around Business capabilities
One Technology Stack for Entire App Choice of Technology for each Microservices 8
Fundamentally
9
Microservices Apps Are Developed/Deployed Independently
10
Conway's Law in Action
Any piece of software reflects the organizational structure that produce it
11
Successful Teams Structure their teams around Products
Build Small vertical teams
12
What is the right level
No
Lets make breakfast - objective of the use of Microservices is to increase re-use Services
Prepare 3
Cook Ingredients Serve Ingredients
Ingredients
12
Cook Bacon Cook eggs Toast Bread Fry Potatoes
Pour Remove 60
Heat Pan Stir Mixture Add Pepper
Mixture Eggs
Presentation Layer
Application Layer
14
Siloed functional Teams Cross-functional Teams
Traditional Transaction
Lets go to the pub
Tab
Open Close
If something goes wrong compensating operations are used to address the issue. Failure does not
result in loss of state as Microservices are stateless.
Failure is imminent, graceful recovery is paramount.
By making the link between Microservices asynchronous, having one service going down does not
affect the operation of the other. Synchronous calls are considered harmful. If one service no longer
respond, the other keeps hanging for a response and becomes unavailable.
16
Characteristics of Microservices
Design for Failure
Traditional Approach Microservices Approach
Graceful recovery and process
resilience are mandatory in the
architecture and design of Unfortunately the XYZ
Microservices based solutions.
service is currently down,
we apologize for the
inconvenience. However
our remaining services are
500 Internal Server Error operating normally.
Rapid Provisioning
Monitoring
Rapid Application Deployment
DevOps Culture
19
DevOps
Familiar?
DevOps seeks to solve this
22
Dev and Ops Constantly Argue
Code is written its your problem now
23
Shift in priorities is demanding DevOps
Waterfall
Agile Ops
Biz Dev DevOps
development
fixes this
fixes this
DEV OPS
Todays application delivery is full of obstacles and challenges
Business
Planning
App
App Testing
Release
App release Deployed App
The Poor
user
Demand Development decision Market
experience
27
Technology Stack - Tools
32
Change in Culture
Resistance to
Directive Task Focused Dedicated Roles Manual Project Focused
Change
Development Life Cycle
Long and rigid Step-by-step delivery Departmentalized Changes are Slow and costly Working in silos leads
planning process in a waterfall or roles working in silos problematic as they manual deployments to a narrow view
Traditional IT
related to current and production line and throwing jobs need re-defining, re- and implementations aligned with limited
historical needs approach over the wall scheduling and re- or initial
working, leading to requirements
delays and increased
costs
Define
Build
Test
Release
Run
Responsive to
Adaptive Goal Focused Teamwork Automated Business Focused
Change
Development Life Cycle
React and responds to A business oriented Collaborative and Agile methods quickly Automated Working in teams
Agile/DevOps
changing needs approach and attitude integrated methods to identify areas for deployment tools and leads to a holistic view
constantly which sees the bigger empower teams change or virtualized in line with todays
picture across the business improvements environments to business needs
and the client accelerate releases
Define Build Test Define Build Test Define Build Test Define Build Test Define Build Test
Run Release Run Release Run Release Run Release Run Release
33
Why Do DevOps?
enabling faster feature time to market
increased customer satisfaction & market share
employee productivity and happiness
organizations to win in the marketplace
In contrast, organizations that require weeks or months to deploy software are at a significant disadvantage in the marketplace.
34
PaaS/IaaS Now Allows Resources to be Easily Provisioned
35
DevOps Principles
Cultural movement enabled by technology
36
Characteristics of DevOps Movement
Principles have been around for decades
37
DevOps = Culture + Technology Movement
Culture is whats behind DevOps; Technology is the enabler
38
DevOps Tenet #1: Culture
39
Build Respect
40
Discuss
41
Avoid Blaming
42
Actively Build Trust
Trust is the #1 ingredient to a successful DevOps culture
43
DevOps Tenet #2: Technology
44
Infrastructure as Code
Manage it as you would any other source code
45
Shared Version Control
Surprisingly not well adopted
46
One Step Build/Deploy
Set it and forget it
47
Automated Testing using Robot
48
Core Tools required
49
Where to use DevOps
Analyze your portfolio
50
Oracle Cloud
Oracle can help you Lead change in your Organization
53
Oracle Products support DevOps
54
Oracle Developer Cloud Service Whats In It
55
Development Experience
Oracle Developer Cloud Service
56
Project Management
Team members
Activity stream
Usage tracking
Repositories
Custom attributes
57
Requirements/Issue Tracking
Create Requirements/Bugs/ERs
Assign to team members and sprints
Custom attributes
58
Agile Process Management
Create dashboard
Manage issues backlog
Manage development sprints
View team/tasks status
Reports
59
Source Code Management
Git repositories
Branch, tag, merge
Web interface
View changes online
Accessible from any Git client
External repositories integration
(for example GitHub)
Snippets for reusable code
60
Code Reviews
61
Project Builds
Maven
Ant
Gradle
Node.JS npm, grunt, bower, gulp
Dashboard
Logs and Audit
62
Deployment Automation
63
Continuous Integration
Hudson
Automate
Triggers
Schedule
Dashboard
64
Wikis
Share information
Attachment support
Wiki markup of choice
65
Merger of disciplines
Iterative Planning, Development and Release
66
Q&A
Thank you
Sai Penumuru
Contacts ps.janakiram@gmail.com ; twitter - @sai_penumuru