Building next gen applications and microservices
-
Upload
devevents -
Category
Technology
-
view
153 -
download
0
Transcript of Building next gen applications and microservices
![Page 1: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/1.jpg)
Building Next Gen Applications and MicroservicesManuel Silveyra, IBM Open Technologies@manuel_silveyraMay 25, 2016
![Page 2: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/2.jpg)
2
IBM Swift Package Catalog
https://swiftpkgs.ng.bluemix.net/
![Page 3: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/3.jpg)
3
Progression to Microservices
Continuous Integration
Agile
Heavyweight development
Continuous Deployment
DevOps
Microservices
![Page 4: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/4.jpg)
4
1. From Heavyweight Development to Agile• A consolidation of ideas
from Extreme Programming, Scrum, Lean, etc.
• Tried to remove the overhead and risk of large scale software development by having:
– Smaller work increments– Frequent iterations– Rapid prototyping
Continuous Integration
Agile
Heavyweight development
Continuous Deployment
DevOps
Microservices
![Page 5: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/5.jpg)
5
2. From Agile to Continuous Integration (CI)• Sought to combine software components as
early in the lifecycle as possible in order to minimize the impact of code integration issues.
• Virtualization and automated testing removed technological barriers to CI.
• The adoption of Agile led to a growth in CI, which was a common practice in Extreme Programming.
Continuous Integration
Agile
Heavyweight development
Continuous Deployment
DevOps
Microservices
![Page 6: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/6.jpg)
6
3. From CI to Continuous Delivery (CD)• CD defines a deployment
pipeline to bring changes to production as quickly as possible.
• Is an instantiation of Scrum’s “potentially shippable product increment”.
Continuous Integration
Agile
Heavyweight development
Continuous Deployment
DevOps
Microservices
![Page 7: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/7.jpg)
7
4. From CD to DevOps• In most organizations development and operations were
separate.• Organizations where operations and development were
together were more successful at establishing CD practices.
• Engineering approaches were taken to problems that were previously dealt with procedurally.
• This led to:– Higher automation in day to day tasks– Greater stability and resilience
Continuous Integration
Agile
Heavyweight development
Continuous Deployment
DevOps
Microservices
![Page 8: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/8.jpg)
8
5. From DevOps to Microservices• The architectural phase where large monolithic
applications are broken down into discrete, business focused services.
• This led to:– Higher development parallelization– Greater scalability and utilization
Continuous Integration
Agile
Heavyweight development
Continuous Deployment
DevOps
Microservices
![Page 9: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/9.jpg)
9
Microservice Outcomes• Increase Speed• Reduce Cost• Improve Resilience• Enable Visibility
![Page 10: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/10.jpg)
10
Microservice Keys to Success
Architecture
MethodologyTechnology
Organization
![Page 11: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/11.jpg)
11
Organizational Success• Are teams aligned to business or
technology?• How are responsibilities divided
between teams?• At what level of organization are
development and operations divided? DevOps or Development and Operations?
• What are team sizes and skills?• Dependencies and cross-team
communications?• Power distribution between teams?
Architecture
MethodologyTechnology
Organization
![Page 12: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/12.jpg)
12
Methodological Success• Product or projects?• Agile or waterfall?• Who controls business requirements?• Fear of change, or continuous
delivery?• Degree of automation in deployment
and operations?
Architecture
MethodologyTechnology
Organization
![Page 13: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/13.jpg)
13
Technological Success• Cloud provisioning?• Virtualization? Containerization?• Application integration approach?• Security and identity management?• Operational middleware?• Language? Databases?• Legacy technologies?
Architecture
MethodologyTechnology
Organization
![Page 14: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/14.jpg)
14
Architectural Example
Architecture
MethodologyTechnology
Organization
![Page 15: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/15.jpg)
15
Microservice Technologies• Containers
– Encapsulate services and are accessible by IP/port combination• Service Discovery
– Provides a way to know when services have been added/removed and where they are located
• Service Orchestration– Manages service topologies– Ensures availability and utilization
• API gateway– Security– Routing
![Page 16: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/16.jpg)
16
High Level View• Connect to services
through HTTP• Services communicate
through event bus• Services can be written in
whatever language is best for the task and skills available
• Each service stores data independently
![Page 17: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/17.jpg)
17
Containerized Deployment• Services can scale
independently according to load without affecting the others
• Services connect to external data stores (databases, BLOB stores, etc.)
• Containers, service discovery, API gateway
• Efficient/single point of failure
![Page 18: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/18.jpg)
18
Optimized Containerized Deployment• Groups of services can be
collocated on physical systems
• Containers, service discovery, service orchestration, API gateway
• Efficient/highly available
![Page 19: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/19.jpg)
19
Microservice Principles• Do One Thing Well• Build Afresh• Expect Output to Become Input• Don’t Insist on Interactive Input• Try Early• Don’t Hesitate to Throw it Away• Toolmaking
![Page 20: Building next gen applications and microservices](https://reader036.fdocuments.in/reader036/viewer/2022062503/58f2648f1a28ab2e378b4567/html5/thumbnails/20.jpg)
20