![Page 1: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/1.jpg)
Building Next Gen Applications and MicroservicesSteve Mirman, IBM Bluemix Architect@SteveMirmanJune 15, 2016
![Page 2: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/2.jpg)
2
Progression to Microservices
Continuous Integration
Agile
Heavyweight development
Continuous Deployment
DevOps
Microservices
![Page 3: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/3.jpg)
3
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 4: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/4.jpg)
4
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 5: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/5.jpg)
5
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 6: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/6.jpg)
6
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 7: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/7.jpg)
7
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 8: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/8.jpg)
8
Microservice Outcomes• Increase Speed• Reduce Cost• Improve Resilience• Enable Visibility
![Page 9: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/9.jpg)
9
Microservice Keys to Success
Architecture
MethodologyTechnology
Organization
![Page 10: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/10.jpg)
10
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 11: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/11.jpg)
11
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 12: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/12.jpg)
12
Technological Success• Cloud provisioning?• Virtualization? Containerization?• Application integration approach?• Security and identity management?• Operational middleware?• Language? Databases?• Legacy technologies?
Architecture
MethodologyTechnology
Organization
![Page 13: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/13.jpg)
13
Architectural Example
Architecture
MethodologyTechnology
Organization
![Page 14: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/14.jpg)
14
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 15: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/15.jpg)
15
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 16: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/16.jpg)
16
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 17: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/17.jpg)
17
Optimized Containerized Deployment• Groups of services can be
collocated on physical systems
• Containers, service discovery, service orchestration, API gateway
• Efficient/highly available
![Page 18: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/18.jpg)
18
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 19: Building Next Gen Applications and Microservices](https://reader033.vdocuments.us/reader033/viewer/2022042619/58f298101a28ab99568b457f/html5/thumbnails/19.jpg)
19