Microservices Induction

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 43

MICROSERVICES, AGILE AND

DEVOPS
Open Source Technology Development and Nodal Centre for Mobile application
Development
AGENDA

 Why Agile is more relevant today?


 Scrum Framework
 DevOps
Agile Vs Waterfall

3
What is Agile ?

 An agile framework is specific software development approach based on


the Agile Manifesto

4
Scrum Framework

5
Scrum Events
Sprint :
A sprint is a short, time-boxed period
when a scrum team works to complete
a set amount of work.

6
Reasons for not doing agile

“Our Agile teams are not disciplined or predictable, plus we have lots of
technical debt”

“Now we need DevOps and continuous delivery to keep up with the


competition!”

“We build really big systems, subject to rigorous compliance, it takes


hundreds of people, and you can’t integrate continuously.”

“Sure we want to be more Agile, but our stakeholders demand answers


before we can get the money.”

“We just don’t have the knowledge and skills to transform

7
Micro-Service
Small , independently deployable
services that work together modeled
around a business domain

 Small : Based on functionality and not size


 Independently deployable : No downtime
required for deployment
 Work Together : Organizations which design
systems are constrained to produce designs
which are copies of the communication
structures of these organizations. Conway’s
Law.
 Business Domains : The catch is to correctly
identify subdomains
Containerization

 Easier and faster alternative of traditional VM

 Isolated platforms allows running multiple


services on one server
 Encapsulate application and its dependencies

 Decouples application from operating system

 Containers are disposables, they launch, run


and then disappear
 Need orchestration tools to manage multiple
containers
 Container based deployment solves issues
related to HA and scaling.

9
Containers Vs VMs

10
Monolithic Vs API First

11
API vs Micro-services

12
Why ?

 Monolith Keeps on breaking.


 Faster technology adoption
 Enhance Functionality
 Scale parts of system : Independent scaling
 Add new features
 Faster releases
 Design for failure
 Security first design approach

13
Challenges

 Automation
 High Cohesion and loose coupling
 Maturity and stable versioned APIs
 Diverse technology stack
 Complicated testing
 Complex Monitoring
 Operational overheads in terms of manpower and resources

14
What Problem does Micro Services solve

15
To be or not to be

 You want to scale


 Users
 Features
 Developers

16
Micro services Architecture

17
Micro services Design Principles

 Independent and Autonomous/Self-governing services


 API aggregation
 Flexibility
 Scalability
 Constant monitoring
 Failure Isolation/ Failure resilience
 Realtime Load balancing
 Inclusion of DevOps
 Versioning
 Availability
18
19
Dev Vs Ops

• Dependencies?
• We want to make • Which DB?
current release live, • Firewall
NOW! Requests?
• It works on my • High
machine Availability?
• We need this • Scalability?
urgently • Security Audit
• Wrong version is
deployed

20
Unbalanced Equation

Operations want
availability and
stability

Developers want
change and Agility

21
Difference in Environments

Production
Development Testing

22
What is DevOps?

 DevOps is software development method that stresses communication,


collaboration and integration between software developers, QA and
Operations.
 Emphasis on automation of process related to development, testing
delivery, deployment and monitoring. Automation is key.
 Profound cultural shift.
 Results in continuous stream of Releases/ Deployments (Agile).
 Based on idea that multiple small changes are easy to manage than one
large one.
 Principles of DevOps are automation, continuous delivery, and fast reaction
to user feedback.
DevOps Vs CICD

24
DevOps Pipeline

Continuous Delivery
Continuous
Monitoring
Continuous Integration

Plan Code Build Test Release Deploy Operate

Continuous
Deployment
Tools

 Planning – Project Management


 Tuleap , Gitlab

 Code Repository
 Git, SVN

 Continuous Integration
 Jenkins , Bamboo

 Testing
 SonarQube, Selenium, Apache Jmeter

 Deployment
 Ansible, Chef, Puppet

 Monitoring
 ELK, Nagios, Appdynamics

26
Source Code Repository

 One of the most important building blocks for achieving DevOps Goals
 Encourages collaboration and accountability.
 Starting point for the pipeline
 GIT( Distributed)
 SVN(Centralized)

27
Automation

 Build on a Production Like environment No more “Works on my machine”


 Automate testing
 Unit Testing
 Regression Testing
 Source Code Analysis
 Black Box Testing
 Performance Testing

 Automate deployment processes


 Use Blue-green deployment technique that reduces downtime and risk by
running two identical production environments called Blue and Green
 Treat each commit as release candidate

28
Automation

 Infrastructure as code
 Helps in avoiding configuration drift.
 Scaling and high availability
 Deploy apps using tools meant for this purpose.
 IT IS NOT SCRIPTING !
 Put Infrastructure provisioning under version control

 Tools for infrastructure provisioning and automation


 Puppet
 Chef
 Ansible

29
Database and DevOps

 Database is persistent and roll back in not an option.


 Make DDL/DML scripts part of version control.
 Data in look-up tables should be part of version control.
 Make sure that the scripts apply changes only once even if they are
run multiple times.
 Thoroughly test deployment scenarios before moving to production.
 Use tools such as Liquibase for database change and deployment.

30
Proprietary DevOps solutions

31
CONTAINERS AND API
The magic potion

32
Containers Vs VMs

33
Monolithic Vs API First

34
API vs Micro-services

35
Why ?

 Monolith Keeps on breaking.


 Faster technology adoption
 Enhance Functionality
 Scale parts of system : Independent scaling
 Add new features
 Faster releases
 Design for failure
 Security first design approach

36
Challenges

 Automation
 High Cohesion and loose coupling
 Maturity and stable versioned APIs
 Diverse technology stack
 Complicated testing
 Complex Monitoring
 Operational overheads in terms of manpower and resources

37
What Problem does Micro Services solve

38
To be or not to be

 You want to scale


 Users
 Features
 Developers

39
Micro services Architecture

40
Micro services Design Principles

 Independent and Autonomous/Self-governing services


 API aggregation
 Flexibility
 Scalability
 Constant monitoring
 Failure Isolation/ Failure resilience
 Realtime Load balancing
 Inclusion of DevOps
 Versioning
 Availability
41
42
THANK YOU

Nalini@nic.in
IP phone : 5131

You might also like