Building next gen applications and microservices

  • Published on
    16-Apr-2017

  • View
    150

  • Download
    0

Transcript

PowerPoint Presentation

Building Next Gen Applications and MicroservicesManuel Silveyra, IBM Open Technologies@manuel_silveyraMay 25, 2016

IBM Swift Package Catalog

2https://swiftpkgs.ng.bluemix.net/

Progression to Microservices3

Continuous IntegrationAgileHeavyweight developmentContinuous DeploymentDevOpsMicroservices

1. From Heavyweight Development to Agile4A 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 incrementsFrequent iterationsRapid prototyping

Continuous IntegrationAgileHeavyweight developmentContinuous DeploymentDevOpsMicroservices

2. From Agile to Continuous Integration (CI)5Sought 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 IntegrationAgileHeavyweight developmentContinuous DeploymentDevOpsMicroservices

3. From CI to Continuous Delivery (CD)6CD defines a deployment pipeline to bring changes to production as quickly as possible.Is an instantiation of Scrums potentially shippable product increment.

Continuous IntegrationAgileHeavyweight developmentContinuous DeploymentDevOpsMicroservices

4. From CD to DevOps7In 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 tasksGreater stability and resilience

Continuous IntegrationAgileHeavyweight developmentContinuous DeploymentDevOpsMicroservices

5. From DevOps to Microservices8The architectural phase where large monolithic applications are broken down into discrete, business focused services.This led to:Higher development parallelizationGreater scalability and utilization

Continuous IntegrationAgileHeavyweight developmentContinuous DeploymentDevOpsMicroservices

8

Microservice OutcomesIncrease SpeedReduce CostImprove ResilienceEnable Visibility9

Microservice Keys to Success10

Architecture

Methodology

Technology

Organization

Organizational SuccessAre 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

Architecture

Methodology

Technology

Organization

11

Methodological SuccessProduct or projects?Agile or waterfall?Who controls business requirements?Fear of change, or continuous delivery?Degree of automation in deployment and operations?12

Architecture

Methodology

Technology

Organization

12

Technological SuccessCloud provisioning?Virtualization? Containerization?Application integration approach?Security and identity management?Operational middleware?Language? Databases?Legacy technologies?13

Architecture

Methodology

Technology

Organization

13

Architectural Example14

Architecture

Methodology

Technology

Organization

Microservice TechnologiesContainersEncapsulate services and are accessible by IP/port combinationService DiscoveryProvides a way to know when services have been added/removed and where they are locatedService OrchestrationManages service topologiesEnsures availability and utilizationAPI gatewaySecurityRouting15

15

High Level View

Connect to services through HTTPServices communicate through event busServices can be written in whatever language is best for the task and skills availableEach service stores data independently 16

Containerized Deployment

Services can scale independently according to load without affecting the othersServices connect to external data stores (databases, BLOB stores, etc.)

Containers, service discovery, API gateway

Efficient/single point of failure17

Optimized Containerized DeploymentGroups of services can be collocated on physical systems

Containers, service discovery, service orchestration, API gateway

Efficient/highly available18

Microservice PrinciplesDo One Thing WellBuild AfreshExpect Output to Become InputDont Insist on Interactive InputTry EarlyDont Hesitate to Throw it AwayToolmaking19

19

20

Recommended

View more >