The Next Generation Air The Next Generation Air Transportation
Building Next Generation Applications and Microservices
-
Upload
devevents -
Category
Technology
-
view
42 -
download
1
Transcript of Building Next Generation Applications and Microservices
![Page 1: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/1.jpg)
Building Next Gen Applications and Microservices
Manuel Silveyra
@manuel_silveyra
May 25, 2016
![Page 2: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/2.jpg)
IBM Swift Package Catalog
2
https://swiftpkgs.ng.bluemix.net/
![Page 3: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/3.jpg)
Progression to Microservices
3
Continuous Integration
Agile
Heavyweight development
Continuous Deployment
DevOps
Microservices
![Page 4: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/4.jpg)
1. From Heavyweight Development to Agile
4
• 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 Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/5.jpg)
2. From Agile to Continuous Integration (CI)
5
• 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 Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/6.jpg)
3. From CI to Continuous Delivery (CD)
6
• 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 Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/7.jpg)
4. From CD to DevOps
7
• 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 Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/8.jpg)
5. From DevOps to Microservices
8
• 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 Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/9.jpg)
Microservice Outcomes
• Increase Speed
• Reduce Cost
• Improve Resilience
• Enable Visibility
9
![Page 10: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/10.jpg)
Microservice Keys to Success
10
Organization
MethodologyTechnology
![Page 11: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/11.jpg)
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?
11
Organization
MethodologyTechnology
![Page 12: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/12.jpg)
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?
12
Organization
MethodologyTechnology
![Page 13: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/13.jpg)
Technological Success
• Cloud provisioning?
• Virtualization? Containerization?
• Application integration approach?
• Security and identity management?
• Operational middleware?
• Language? Databases?
• Legacy technologies?
13
Organization
MethodologyTechnology
![Page 14: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/14.jpg)
Microservice Exercise
14
![Page 15: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/15.jpg)
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
15
![Page 16: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/16.jpg)
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
16
![Page 17: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/17.jpg)
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
17
![Page 18: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/18.jpg)
Optimized Containerized Deployment
• Groups of services can be
collocated on physical systems
• Containers, service discovery,
service orchestration, API
gateway
• Efficient/highly available
18
![Page 19: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/19.jpg)
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
19
![Page 20: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/20.jpg)
20
![Page 21: Building Next Generation Applications and Microservices](https://reader031.fdocuments.us/reader031/viewer/2022021506/5881fcbd1a28abb4748b6b5d/html5/thumbnails/21.jpg)
Microservice Platform
Shared Capabilities
• Hardware services
• Code management, testing, and
deployment
• Data stores
• Service orchestration
• Security and identity
• Architectural policy
Local Capabilities
• General tooling
• Runtime configuration
• Service discovery
• Request routing
• System observability
21