SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
NICTA Copyright 2012 
From imagination to impact 
Deployability 
Len Bass
NICTA Copyright 2012 
From imagination to impact 
2 
About NICTA 
National ICT Australia 
•Federal and state funded research company established in 2002 
•Largest ICT research resource in Australia 
•National impact is an important success metric 
•~700 staff/students working in 5 labs across major capital cities 
•22 university partners 
•Providing R&D services, knowledge transfer to Australian (and global) ICT industry 
NICTA technology is in over 1 billion mobile phones
NICTA Copyright 2012 
From imagination to impact 
“This project is vital to our company. How long will it take?” 
3 
Day 1
NICTA Copyright 2012 
From imagination to impact 
“Its taking too long!!! ” 
4 
Day 30
NICTA Copyright 2012 
From imagination to impact 
“You Are Fired!” 
5 
Day 60
NICTA Copyright 2012 
From imagination to impact 
Where Does the Time Go? 
•As Software Architects our view is that there are the following activities in software development 
–Concept 
–Requirements 
–Design 
–Implementation 
–Test 
•Code Complete 
•Different methodologies will organize these activities in different ways. 
•Agile focuses on getting to Code Complete faster than with other methods. 
6
NICTA Copyright 2012 
From imagination to impact 
What is wrong? 
•Code Complete Code in Production 
•Between the completion of the code and the placing of the code into production is a step called: Deployment 
•Deploying completed code can be very time consuming 
7
NICTA Copyright 2012 
From imagination to impact 
Why is Deployment so Time Consuming? 
•Errors in deployed code are a major source of outages. 
•So much so that organizations have formal release plans. 
•There is a position called a “Release Engineer” that has responsibility for managing releases. 
8
NICTA Copyright 2012 
From imagination to impact 
Release plan 
1.Define and agree release and deployment plans with customers/stakeholders. 
2.Ensure that each release package consists of a set of related assets and service components that are compatible with each other. 
3.Ensure that integrity of a release package and its constituent components is maintained throughout the transition activities and recorded accurately in the configuration management system. 
4.„Ensure that all release and deployment packages can be tracked, installed, tested, verified, and/or uninstalled or backed out, if appropriate. 
5.„Ensure that change is managed during the release and deployment activities. 
6.„Record and manage deviations, risks, issues related to the new or changed service, and take necessary corrective action. 
7.„Ensure that there is knowledge transfer to enable the customers and users to optimise their use of the service to support their business activities. 
8.„Ensure that skills and knowledge are transferred to operations and support staff to enable them to effectively and efficiently deliver, support and maintain the service, according to required warranties and service levels 
*http://en.wikipedia.org/wiki/Deployment_Plan 
9
NICTA Copyright 2012 
From imagination to impact 
Look at one requirement 
2.Ensure that each release package consists of a set of related assets and service components that are compatible with each other. 
–Every development team contributing to the release must have completed their code 
–Every development team must have used the same version of every supporting library 
–The development teams must have agreed on a common set of supporting technologies 
•Every item requires coordination among developers 
–Meetings 
–Documents 
•I.E. Time 
10
NICTA Copyright 2012 
From imagination to impact 
How to Speed Up Deployment 
11 
•Set up a process and an architecture so that development teams do not need to coordinate with each other 
•Support “partial release” deployments. 
•This is called: continuous deployment 
•Code Complete Code in Production
NICTA Copyright 2012 
From imagination to impact 
Continuous Deployment Pipeline 
12 
Developer pushes a button and, as long as all of the automated tests are passed, the code is placed into production automatically through a tool chain. 
•No coordination with other teams during the execution of the tool chain 
•No dependence on other teams activities The ability to have a continuous deployment pipeline depends on the architecture of the system being deployed.
NICTA Copyright 2012 
From imagination to impact 
~2002 Amazon instituted the following design rules - 1 
•All teams will henceforth expose their data and functionality through service interfaces. 
•Teams must communicate with each other through these interfaces. 
•There will be no other form of inter-process communication allowed: no direct linking, no direct reads of another team’s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network. 
13
NICTA Copyright 2012 
From imagination to impact 
Amazon design rules - 2 
•It doesn’t matter what technology they[services] use. 
•All service interfaces, without exception, must be designed from the ground up to be externalizable. 
•Amazon is providing the specifications for what has come to be called “Microservice Architecture”. 
•(Its really an architectural style). 
14
NICTA Copyright 2012 
From imagination to impact 
In Addition 
•Amazon has a “two pizza” rule. 
•No team should be larger than can be fed with two pizzas (~7 members). 
•Each (micro) service is the responsibility 
of one team 
•This means that microservices are 
small and intra team bandwidth 
is high 
•Large systems are made up of many microservices. 
•There may be as many as 140 in a typical Amazon page. 
15
NICTA Copyright 2012 
From imagination to impact 
Microservice architecture supports continuous deployment 
•Two topics: 
–What is microservice architecture? 
–What are the deployment issues and how do I deal with them? 
16
NICTA Copyright 2012 From imagination to impact 
Micro service architecture 
17 
Service 
• Each user request is 
satisfied by some sequence 
of services. 
• Most services are not 
externally available. 
• Each service communicates 
with other services through 
service interfaces. 
• Service depth may be 70, 
e.g. LinkedIn
NICTA Copyright 2012 
From imagination to impact 
Relation of teams and services 
•Each service is the responsibility of a single development team 
•Individual developers can deploy new version without coordination with other developers. 
•It is possible that a single development team is responsible for multiple services 
18
NICTA Copyright 2012 
From imagination to impact 
Coordination model of microservice architecture 
•Elements of service interaction 
–Services communicate asynchronously through message passing 
–Each service could (in principle) be deployed anywhere on the net. 
•Latency requirements will probably force particular deployment location choices. 
•Services must discover location of dependent services. 
–State must be managed 
19
NICTA Copyright 2012 
From imagination to impact 
Service discovery 
20 
•When an instance of a service is launched, it registers with a registry/load balancer 
•When a client wishes to utilize a service, it gets the location of an instance from the registry/load balancer. 
•Eureka is an open source registry/load balancer 
Instance of a service 
Client 
Register 
Invoke 
Registry/ 
load balancer 
Query registry
NICTA Copyright 2012 
From imagination to impact 
Subtleties of registry/load balancer 
•When multiple instances of the same service have registered, the load balancer can rotate through them to equalize number of requests to each instance. 
•Each instance must renew its registration periodically (~90 seconds) so that load balancer does not schedule message to failed instance. 
•Registry can keep other information as well as address of instance. For example, version number of service instance. 
21
NICTA Copyright 2012 
From imagination to impact 
State management 
•Services can be stateless or stateful 
–Stateless services 
•Allow arbitrary creation of new instances for performance and availability 
•Allow messages to be routed to any instance 
•State must be provided to stateless services 
–Stateful services 
•Require clients to communicate with same instance 
•Reduces overhead necessary to acquire state 
22
NICTA Copyright 2012 
From imagination to impact 
Where to keep the state? 
•Persistent state is kept in a database 
–Modern database management systems (relational) provide replication functionality 
–Some NoSQL systems may be replicated. Others will require manual replication. 
•Transient small amounts of state can be kept consistent across instances by using tools such as Memcached or Zookeeper. 
•Instances may cache state for performance reasons. It may be necessary to purge the cache before bringing down an instance. 
23
NICTA Copyright 2012 
From imagination to impact 
Provisioning new instances 
•When the desired workload of a service is greater than can be provided by the existing number of instances of that service, new instances can be instantiated (at runtime). 
•Four possibilities for initiating new instance of a service: 
1.Client. Client determines whether service is adequately provisioned for its needs based on service SLA and services current workload. 
2.Service. Service determines whether it is adequately provisioned based on number of requests it expects from clients. 
3.Registry/load balancer determines appropriate number of instances of a service based on SLA and client instance requests. 
4.External entity can initiate creation of new instances 
24
NICTA Copyright 2012 
From imagination to impact 
Questions about Micro SOA 
•/Q/ Isn’t it possible that different teams will implement the same functionality, likely differently? 
•/A/ Yes, but so what? Major duplications are avoided through assignment of responsibilities to services. Minor duplications are the price to be paid to avoid necessity for synchronous coordination. 
•/Q/ what about transactions? 
•/A/ Micro SOA privileges flexibility above reliability and performance. Transactions are recoverable through logging of service interactions. This may introduce some delays if failures occur. 
25
NICTA Copyright 2012 
From imagination to impact 
Microservice architecture supports continuous deployment 
•Two topics: 
–What is microservice architecture? 
–What are the deployment issues and how do I deal with them? 
26
NICTA Copyright 2012 From imagination to impact 
Deploying a new version of an application 
27 
Multiple instances 
of a application are 
executing 
• Red is service being 
replaced with new version 
• Blue are clients 
• Green are dependent 
services 
VVA B VV B B 
UAT / staging / 
performance 
tests
NICTA Copyright 2012 
From imagination to impact 
Deployment goal and constraints 
•Goal of a deployment is to move from current state (N instances of version A of a app) to a new state (N instances of version B of a app) 
•Constraints: 
–Any development team can deploy their app at any time. I.e. New version of a app can be deployed either before or after a new version of a client. (no synchronization among development teams) 
–It takes time to replace one instance of version A with an instance of version B (order of minutes) 
–Service to clients must be maintained while the new version is being deployed. 
28
NICTA Copyright 2012 
From imagination to impact 
Deployment strategies 
•Two basic all of nothing strategies 
–Red/Black – leave N instances with version A as they are, allocate and provision N instances with version B and then switch to version B and release instances with version A. 
–Rolling Upgrade – allocate one instance, provision it with version B, release one version A instance. Repeat N times. 
•Partial strategies are canary testing and A/B testing. 
29
NICTA Copyright 2012 
From imagination to impact 
Trade offs – Red/Black and Rolling Upgrade 
•Red/Black 
–Only one version available to the client at any particular time. 
–Requires 2N instances (additional costs) 
•Rolling Upgrade 
–Multiple versions are available for service at the same time 
–Requires N+1 instances. 
•Rolling upgrade is widely used. 
30 
Update Auto Scaling Group 
Sort Instances 
Remove & Deregister Old Instance from ELB 
Confirm Upgrade Spec 
Terminate Old Instance 
Wait for ASG to Start New Instance 
Register New Instance with ELB 
Rolling 
Upgrade in EC2
NICTA Copyright 2012 
From imagination to impact 
Types of failures during rolling upgrade 
Rolling Upgrade Failure 
Provisioning 
See references at end 
Logical failure 
Inconsistencies to be discussed 
Instance failure 
Handled by Auto Scaling Group in EC2 
31
NICTA Copyright 2012 
From imagination to impact 
What are the problems with Rolling Upgrade? 
•Any development team can deploy their app at any time. 
•Three concerns 
–Maintaining consistency between different versions of the same app when performing a rolling upgrade 
–Maintaining consistency among different apps 
–Maintaining consistency between an app and persistent data 
32
NICTA Copyright 2012 
From imagination to impact 
Maintaining consistency between different versions of the same app 
•Key idea – differentiate between installing a new version and activating a new version 
•Involves “feature toggles” (described momentarily) 
•Sequence 
–Develop version B with new code under control of feature toggle 
–Install each instance of version B with the new code toggled off. 
–When all of the instances of version A have been replaced with instances of version B, activate new code through toggling the feature. 
33
NICTA Copyright 2012 
From imagination to impact 
Issues 
•What is a feature toggle? 
•How do I manage features that extend across multiple apps? 
•How do I activate all relevant instances at once? 
34
NICTA Copyright 2012 
From imagination to impact 
Feature toggle 
•Place feature dependent new code inside of an “if” statement where the code is executed if an external variable is true. Removed code would be the “else” portion. 
•Used to allow developers to check in uncompleted code. Uncompleted code is toggled off. 
•During deployment, until new code is activated, it will not be executed. 
•Removing feature toggles when a new feature has been committed is important. 
35
NICTA Copyright 2012 
From imagination to impact 
Multi app features 
•Most features will involve multiple apps. 
•Each app has some code under control of a feature toggle. 
•Activate feature when all instances of all apps involved in a feature have been installed. 
–Maintain a catalog with feature vs service version number. 
–A feature toggle manager determines when all old instances of each version have been replaced. This could be done using registry/load balancer. 
–The feature manager activates the feature. 
–Archaius is an open source feature toggle manager. 
36
NICTA Copyright 2012 
From imagination to impact 
Activating feature 
•The feature toggle manager changes the value of the feature toggle. Two possible techniques to get new value to instances. 
–Push. Broadcasting the new value will instruct each instance to use new code. If a lag of several seconds between the first service to be toggled and the last can be tolerated, there is no problem. Otherwise synchronizing value across network must be done. 
–Pull. Querying the manager by each instance to get latest value may cause performance problems. 
•A coordination mechanism such as Zookeeper will overcome both problems. 
37
NICTA Copyright 2012 
From imagination to impact 
Maintaining consistency across versions (summary) 
•Install all instances before activating any new code 
•Use feature toggles to activate new code 
•Use feature toggle manager to determine when to activate new code 
•Use Zookeeper to coordinate activation with low overhead 
38
NICTA Copyright 2012 
From imagination to impact 
Maintaining consistency among different services 
•Use case: 
–Wish to deploy new version of app A without coordinating with development team for clients of app A. 
•I.e. new version of app A should be backward compatible in terms of its interfaces. 
•May also require forward compatibility in certain circumstances, e.g. rollback 
39
NICTA Copyright 2012 
From imagination to impact 
Maintaining consistency between an app and persistent data 
•Assume new version is correct. Rollback discussed in a minute. 
•Inconsistency in persistent data can come about because data schema or semantics change. 
•Effect can be minimized by the following practices (if possible). 
–Only extend schema – do not change semantics of existing fields. This preserves backwards compatibility. 
–Treat schema modifications as features to be toggled. This maintains consistency among various apps that access data. 
40
NICTA Copyright 2012 
From imagination to impact 
Summary of consistency discussion so far. 
•Feature toggles are used to maintain consistency within instances of an app 
•Disallowing modification of schema will maintain consistency between apps and persistent data. 
41
NICTA Copyright 2012 
From imagination to impact 
Canary testing 
•Canaries are a small number of instances of a new version placed in production in order to perform live testing in a production environment. 
•Canaries are observed closely to determine whether the new version introduces any logical or performance problems. If not, roll out new version globally. If so, roll back canaries. 
•Named after canaries 
in coal mines. 
42
NICTA Copyright 2012 
From imagination to impact 
Implementation of canaries 
•Designate a collection of instances as canaries. They do not need to be aware of their designation. 
•Designate a collection of customers as testing the canaries. Can be, for example 
–Organizationally based 
–Geographically based 
•Then 
–Activate feature or version to be tested for canaries. Can be done through feature activation synchronization mechanism 
–Route messages from canary customers to canaries. Can be done through making registry/load balancer canary aware. 
43
NICTA Copyright 2012 
From imagination to impact 
A/B testing 
•Suppose you wish to test user response to a system variant. E.g. UI difference or marketing effort. A is one variant and B is the other. 
•You simultaneously make available both variants to different audiences and compare the responses. 
•Implementation is the same as canary testing. 
44
NICTA Copyright 2012 
From imagination to impact 
Rollback 
•New versions of an app may be unacceptable either for logical or performance reasons. 
•Two options in this case 
•Roll back (undo deployment) 
•Roll forward (discontinue current deployment and create a new release without the problem). 
•Decision to rollback or roll forward is almost never automated because there are multiple factors to consider. 
•Forward or backward recovery 
•Consequences and severity of problem 
•Importance of upgrade 
45
NICTA Copyright 2012 
From imagination to impact 
Summary 
•Speeding up deployment time will reduce time to market 
•Continuous deployment is a technique to speed up deployment time 
•Microservice architecture is designed for minimizing coordination needs and allowing independent deployment 
•Multiple simultaneous versions managed with feature toggles. 
•Feature toggles support rollback, canary testing, and A/B testing. 
46
NICTA Copyright 2012 
From imagination to impact 
NICTA team 
•Liming Zhu 
•Ingo Weber 
•Min Fu 
•Sherry Xu 
•Daniel Sun 
•Ah Binh Tran 
•Chao Li 
47
NICTA Copyright 2012 
From imagination to impact 
More Information 
Contact len.bass@nicta.com.au 
Book is due out May, 2015 
Research papers: 
ssrg.nicta.com.au’projects/cloud 
48

Mais conteúdo relacionado

Mais procurados

DevOps Syllabus summer 2020
DevOps Syllabus summer 2020DevOps Syllabus summer 2020
DevOps Syllabus summer 2020Len Bass
 
Security Implications for a DevOps Transformation
Security Implications for a DevOps TransformationSecurity Implications for a DevOps Transformation
Security Implications for a DevOps TransformationDeborah Schalm
 
Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...
Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...
Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...Synopsys Software Integrity Group
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICDKnoldus Inc.
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOpsEklove Mohan
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks Ulf Mattsson
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD OverviewAn Nguyen
 
Transforming Organizations with CI/CD
Transforming Organizations with CI/CDTransforming Organizations with CI/CD
Transforming Organizations with CI/CDCprime
 
Enterprise DevOps: Scaling Build, Deploy, Test, Release
Enterprise DevOps: Scaling Build, Deploy, Test, ReleaseEnterprise DevOps: Scaling Build, Deploy, Test, Release
Enterprise DevOps: Scaling Build, Deploy, Test, ReleaseIBM UrbanCode Products
 
Standardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins TeamStandardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins TeamDeborah Schalm
 
DOES14 - Joshua Corman - Sonatype
DOES14 - Joshua Corman - SonatypeDOES14 - Joshua Corman - Sonatype
DOES14 - Joshua Corman - SonatypeGene Kim
 
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps worldLucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps worldDevOps Enterprise Summit
 
Flusso Continuous Integration & Continuous Delivery
Flusso Continuous Integration & Continuous DeliveryFlusso Continuous Integration & Continuous Delivery
Flusso Continuous Integration & Continuous DeliveryJoost van der Griendt
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesDeborah Schalm
 
Perforce on Tour 2015 - Securing the Helix Platform at Citrix
Perforce on Tour 2015 - Securing the Helix Platform at CitrixPerforce on Tour 2015 - Securing the Helix Platform at Citrix
Perforce on Tour 2015 - Securing the Helix Platform at CitrixPerforce
 
Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)
Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)
Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)dev2ops
 
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-BloxPerforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-BloxPerforce
 

Mais procurados (20)

DevOps Syllabus summer 2020
DevOps Syllabus summer 2020DevOps Syllabus summer 2020
DevOps Syllabus summer 2020
 
Security Implications for a DevOps Transformation
Security Implications for a DevOps TransformationSecurity Implications for a DevOps Transformation
Security Implications for a DevOps Transformation
 
Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...
Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...
Flight East 2018 Presentation–A DevOps State of Mind: Continuous Security wit...
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
How to Build a DevOps Toolchain
How to Build a DevOps ToolchainHow to Build a DevOps Toolchain
How to Build a DevOps Toolchain
 
How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
Transforming Organizations with CI/CD
Transforming Organizations with CI/CDTransforming Organizations with CI/CD
Transforming Organizations with CI/CD
 
Enterprise DevOps: Scaling Build, Deploy, Test, Release
Enterprise DevOps: Scaling Build, Deploy, Test, ReleaseEnterprise DevOps: Scaling Build, Deploy, Test, Release
Enterprise DevOps: Scaling Build, Deploy, Test, Release
 
Standardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins TeamStandardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins Team
 
DOES14 - Joshua Corman - Sonatype
DOES14 - Joshua Corman - SonatypeDOES14 - Joshua Corman - Sonatype
DOES14 - Joshua Corman - Sonatype
 
From ci to cd
From ci to cdFrom ci to cd
From ci to cd
 
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps worldLucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
 
Flusso Continuous Integration & Continuous Delivery
Flusso Continuous Integration & Continuous DeliveryFlusso Continuous Integration & Continuous Delivery
Flusso Continuous Integration & Continuous Delivery
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBees
 
Perforce on Tour 2015 - Securing the Helix Platform at Citrix
Perforce on Tour 2015 - Securing the Helix Platform at CitrixPerforce on Tour 2015 - Securing the Helix Platform at Citrix
Perforce on Tour 2015 - Securing the Helix Platform at Citrix
 
Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)
Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)
Provisioning Toolchain Introduction for Velocity Online Conference (March 2010)
 
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-BloxPerforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
Perforce on Tour 2015 - Optimising the Developer Pipeline at U-Blox
 

Semelhante a Deployability

Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes Abdul Basit Munda
 
Supporting operations personnel a software engineers perspective
Supporting operations personnel a software engineers perspectiveSupporting operations personnel a software engineers perspective
Supporting operations personnel a software engineers perspectiveLen Bass
 
Dev ops for software architects
Dev ops for software architectsDev ops for software architects
Dev ops for software architectsLen Bass
 
Ppt 3 - IOT logic design
Ppt   3 - IOT logic designPpt   3 - IOT logic design
Ppt 3 - IOT logic designudhayakumarc1
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumRick Hightower
 
Network developer company report
Network developer company reportNetwork developer company report
Network developer company reportrindbaloch
 
ppt-3-iotlogicdesign-210125034351.pptx
ppt-3-iotlogicdesign-210125034351.pptxppt-3-iotlogicdesign-210125034351.pptx
ppt-3-iotlogicdesign-210125034351.pptxjohnpragasam1
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMohammedShahid562503
 
Securing the Cloud Native Stack
Securing the Cloud Native StackSecuring the Cloud Native Stack
Securing the Cloud Native StackApcera
 
Reactive Micro Services with Java seminar
Reactive Micro Services with Java seminarReactive Micro Services with Java seminar
Reactive Micro Services with Java seminarGal Marder
 
Visualizing Your Network Health - Know your Network
Visualizing Your Network Health - Know your NetworkVisualizing Your Network Health - Know your Network
Visualizing Your Network Health - Know your NetworkDellNMS
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Katherine Golovinova
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Richard Langlois P. Eng.
 
Navigator Systems ltd HireTrack NX questions
Navigator Systems ltd   HireTrack NX questionsNavigator Systems ltd   HireTrack NX questions
Navigator Systems ltd HireTrack NX questionsDavid Rose
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitectureABDEL RAHMAN KARIM
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native ApplicationEmiliano Pecis
 

Semelhante a Deployability (20)

Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 
Supporting operations personnel a software engineers perspective
Supporting operations personnel a software engineers perspectiveSupporting operations personnel a software engineers perspective
Supporting operations personnel a software engineers perspective
 
Deploying at will - SEI
 Deploying at will - SEI Deploying at will - SEI
Deploying at will - SEI
 
Dev ops for software architects
Dev ops for software architectsDev ops for software architects
Dev ops for software architects
 
Ppt 3 - IOT logic design
Ppt   3 - IOT logic designPpt   3 - IOT logic design
Ppt 3 - IOT logic design
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum
 
Network developer company report
Network developer company reportNetwork developer company report
Network developer company report
 
ppt-3-iotlogicdesign-210125034351.pptx
ppt-3-iotlogicdesign-210125034351.pptxppt-3-iotlogicdesign-210125034351.pptx
ppt-3-iotlogicdesign-210125034351.pptx
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptx
 
Securing the Cloud Native Stack
Securing the Cloud Native StackSecuring the Cloud Native Stack
Securing the Cloud Native Stack
 
Reactive Micro Services with Java seminar
Reactive Micro Services with Java seminarReactive Micro Services with Java seminar
Reactive Micro Services with Java seminar
 
Visualizing Your Network Health - Know your Network
Visualizing Your Network Health - Know your NetworkVisualizing Your Network Health - Know your Network
Visualizing Your Network Health - Know your Network
 
JINI Technology
JINI TechnologyJINI Technology
JINI Technology
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
 
Navigator Systems ltd HireTrack NX questions
Navigator Systems ltd   HireTrack NX questionsNavigator Systems ltd   HireTrack NX questions
Navigator Systems ltd HireTrack NX questions
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitecture
 
What are microservices
What are microservicesWhat are microservices
What are microservices
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
 

Mais de Len Bass

11 secure development
11  secure development 11  secure development
11 secure development Len Bass
 
10 disaster recovery
10 disaster recovery  10 disaster recovery
10 disaster recovery Len Bass
 
9 postproduction
9 postproduction 9 postproduction
9 postproduction Len Bass
 
8 pipeline
8 pipeline 8 pipeline
8 pipeline Len Bass
 
7 configuration management
7 configuration management 7 configuration management
7 configuration management Len Bass
 
6 microservice architecture
6 microservice architecture6 microservice architecture
6 microservice architectureLen Bass
 
5 infrastructure security
5 infrastructure security5 infrastructure security
5 infrastructure securityLen Bass
 
4 container management
4  container management4  container management
4 container managementLen Bass
 
3 the cloud
3 the cloud 3 the cloud
3 the cloud Len Bass
 
1 virtual machines
1 virtual machines1 virtual machines
1 virtual machinesLen Bass
 
2 networking
2 networking2 networking
2 networkingLen Bass
 
Quantum talk
Quantum talkQuantum talk
Quantum talkLen Bass
 
Icsa2018 blockchain tutorial
Icsa2018 blockchain tutorialIcsa2018 blockchain tutorial
Icsa2018 blockchain tutorialLen Bass
 
Understanding blockchains
Understanding blockchainsUnderstanding blockchains
Understanding blockchainsLen Bass
 
What is a blockchain
What is a blockchainWhat is a blockchain
What is a blockchainLen Bass
 
Architecture for the cloud deployment case study future
Architecture for the cloud deployment case study futureArchitecture for the cloud deployment case study future
Architecture for the cloud deployment case study futureLen Bass
 
Architecting for the cloud cloud providers
Architecting for the cloud cloud providersArchitecting for the cloud cloud providers
Architecting for the cloud cloud providersLen Bass
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build testLen Bass
 
Architecting for the cloud map reduce creating
Architecting for the cloud   map reduce creatingArchitecting for the cloud   map reduce creating
Architecting for the cloud map reduce creatingLen Bass
 
Architecting for the cloud storage misc topics
Architecting for the cloud storage misc topicsArchitecting for the cloud storage misc topics
Architecting for the cloud storage misc topicsLen Bass
 

Mais de Len Bass (20)

11 secure development
11  secure development 11  secure development
11 secure development
 
10 disaster recovery
10 disaster recovery  10 disaster recovery
10 disaster recovery
 
9 postproduction
9 postproduction 9 postproduction
9 postproduction
 
8 pipeline
8 pipeline 8 pipeline
8 pipeline
 
7 configuration management
7 configuration management 7 configuration management
7 configuration management
 
6 microservice architecture
6 microservice architecture6 microservice architecture
6 microservice architecture
 
5 infrastructure security
5 infrastructure security5 infrastructure security
5 infrastructure security
 
4 container management
4  container management4  container management
4 container management
 
3 the cloud
3 the cloud 3 the cloud
3 the cloud
 
1 virtual machines
1 virtual machines1 virtual machines
1 virtual machines
 
2 networking
2 networking2 networking
2 networking
 
Quantum talk
Quantum talkQuantum talk
Quantum talk
 
Icsa2018 blockchain tutorial
Icsa2018 blockchain tutorialIcsa2018 blockchain tutorial
Icsa2018 blockchain tutorial
 
Understanding blockchains
Understanding blockchainsUnderstanding blockchains
Understanding blockchains
 
What is a blockchain
What is a blockchainWhat is a blockchain
What is a blockchain
 
Architecture for the cloud deployment case study future
Architecture for the cloud deployment case study futureArchitecture for the cloud deployment case study future
Architecture for the cloud deployment case study future
 
Architecting for the cloud cloud providers
Architecting for the cloud cloud providersArchitecting for the cloud cloud providers
Architecting for the cloud cloud providers
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build test
 
Architecting for the cloud map reduce creating
Architecting for the cloud   map reduce creatingArchitecting for the cloud   map reduce creating
Architecting for the cloud map reduce creating
 
Architecting for the cloud storage misc topics
Architecting for the cloud storage misc topicsArchitecting for the cloud storage misc topics
Architecting for the cloud storage misc topics
 

Último

OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 

Último (20)

OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 

Deployability

  • 1. NICTA Copyright 2012 From imagination to impact Deployability Len Bass
  • 2. NICTA Copyright 2012 From imagination to impact 2 About NICTA National ICT Australia •Federal and state funded research company established in 2002 •Largest ICT research resource in Australia •National impact is an important success metric •~700 staff/students working in 5 labs across major capital cities •22 university partners •Providing R&D services, knowledge transfer to Australian (and global) ICT industry NICTA technology is in over 1 billion mobile phones
  • 3. NICTA Copyright 2012 From imagination to impact “This project is vital to our company. How long will it take?” 3 Day 1
  • 4. NICTA Copyright 2012 From imagination to impact “Its taking too long!!! ” 4 Day 30
  • 5. NICTA Copyright 2012 From imagination to impact “You Are Fired!” 5 Day 60
  • 6. NICTA Copyright 2012 From imagination to impact Where Does the Time Go? •As Software Architects our view is that there are the following activities in software development –Concept –Requirements –Design –Implementation –Test •Code Complete •Different methodologies will organize these activities in different ways. •Agile focuses on getting to Code Complete faster than with other methods. 6
  • 7. NICTA Copyright 2012 From imagination to impact What is wrong? •Code Complete Code in Production •Between the completion of the code and the placing of the code into production is a step called: Deployment •Deploying completed code can be very time consuming 7
  • 8. NICTA Copyright 2012 From imagination to impact Why is Deployment so Time Consuming? •Errors in deployed code are a major source of outages. •So much so that organizations have formal release plans. •There is a position called a “Release Engineer” that has responsibility for managing releases. 8
  • 9. NICTA Copyright 2012 From imagination to impact Release plan 1.Define and agree release and deployment plans with customers/stakeholders. 2.Ensure that each release package consists of a set of related assets and service components that are compatible with each other. 3.Ensure that integrity of a release package and its constituent components is maintained throughout the transition activities and recorded accurately in the configuration management system. 4.„Ensure that all release and deployment packages can be tracked, installed, tested, verified, and/or uninstalled or backed out, if appropriate. 5.„Ensure that change is managed during the release and deployment activities. 6.„Record and manage deviations, risks, issues related to the new or changed service, and take necessary corrective action. 7.„Ensure that there is knowledge transfer to enable the customers and users to optimise their use of the service to support their business activities. 8.„Ensure that skills and knowledge are transferred to operations and support staff to enable them to effectively and efficiently deliver, support and maintain the service, according to required warranties and service levels *http://en.wikipedia.org/wiki/Deployment_Plan 9
  • 10. NICTA Copyright 2012 From imagination to impact Look at one requirement 2.Ensure that each release package consists of a set of related assets and service components that are compatible with each other. –Every development team contributing to the release must have completed their code –Every development team must have used the same version of every supporting library –The development teams must have agreed on a common set of supporting technologies •Every item requires coordination among developers –Meetings –Documents •I.E. Time 10
  • 11. NICTA Copyright 2012 From imagination to impact How to Speed Up Deployment 11 •Set up a process and an architecture so that development teams do not need to coordinate with each other •Support “partial release” deployments. •This is called: continuous deployment •Code Complete Code in Production
  • 12. NICTA Copyright 2012 From imagination to impact Continuous Deployment Pipeline 12 Developer pushes a button and, as long as all of the automated tests are passed, the code is placed into production automatically through a tool chain. •No coordination with other teams during the execution of the tool chain •No dependence on other teams activities The ability to have a continuous deployment pipeline depends on the architecture of the system being deployed.
  • 13. NICTA Copyright 2012 From imagination to impact ~2002 Amazon instituted the following design rules - 1 •All teams will henceforth expose their data and functionality through service interfaces. •Teams must communicate with each other through these interfaces. •There will be no other form of inter-process communication allowed: no direct linking, no direct reads of another team’s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network. 13
  • 14. NICTA Copyright 2012 From imagination to impact Amazon design rules - 2 •It doesn’t matter what technology they[services] use. •All service interfaces, without exception, must be designed from the ground up to be externalizable. •Amazon is providing the specifications for what has come to be called “Microservice Architecture”. •(Its really an architectural style). 14
  • 15. NICTA Copyright 2012 From imagination to impact In Addition •Amazon has a “two pizza” rule. •No team should be larger than can be fed with two pizzas (~7 members). •Each (micro) service is the responsibility of one team •This means that microservices are small and intra team bandwidth is high •Large systems are made up of many microservices. •There may be as many as 140 in a typical Amazon page. 15
  • 16. NICTA Copyright 2012 From imagination to impact Microservice architecture supports continuous deployment •Two topics: –What is microservice architecture? –What are the deployment issues and how do I deal with them? 16
  • 17. NICTA Copyright 2012 From imagination to impact Micro service architecture 17 Service • Each user request is satisfied by some sequence of services. • Most services are not externally available. • Each service communicates with other services through service interfaces. • Service depth may be 70, e.g. LinkedIn
  • 18. NICTA Copyright 2012 From imagination to impact Relation of teams and services •Each service is the responsibility of a single development team •Individual developers can deploy new version without coordination with other developers. •It is possible that a single development team is responsible for multiple services 18
  • 19. NICTA Copyright 2012 From imagination to impact Coordination model of microservice architecture •Elements of service interaction –Services communicate asynchronously through message passing –Each service could (in principle) be deployed anywhere on the net. •Latency requirements will probably force particular deployment location choices. •Services must discover location of dependent services. –State must be managed 19
  • 20. NICTA Copyright 2012 From imagination to impact Service discovery 20 •When an instance of a service is launched, it registers with a registry/load balancer •When a client wishes to utilize a service, it gets the location of an instance from the registry/load balancer. •Eureka is an open source registry/load balancer Instance of a service Client Register Invoke Registry/ load balancer Query registry
  • 21. NICTA Copyright 2012 From imagination to impact Subtleties of registry/load balancer •When multiple instances of the same service have registered, the load balancer can rotate through them to equalize number of requests to each instance. •Each instance must renew its registration periodically (~90 seconds) so that load balancer does not schedule message to failed instance. •Registry can keep other information as well as address of instance. For example, version number of service instance. 21
  • 22. NICTA Copyright 2012 From imagination to impact State management •Services can be stateless or stateful –Stateless services •Allow arbitrary creation of new instances for performance and availability •Allow messages to be routed to any instance •State must be provided to stateless services –Stateful services •Require clients to communicate with same instance •Reduces overhead necessary to acquire state 22
  • 23. NICTA Copyright 2012 From imagination to impact Where to keep the state? •Persistent state is kept in a database –Modern database management systems (relational) provide replication functionality –Some NoSQL systems may be replicated. Others will require manual replication. •Transient small amounts of state can be kept consistent across instances by using tools such as Memcached or Zookeeper. •Instances may cache state for performance reasons. It may be necessary to purge the cache before bringing down an instance. 23
  • 24. NICTA Copyright 2012 From imagination to impact Provisioning new instances •When the desired workload of a service is greater than can be provided by the existing number of instances of that service, new instances can be instantiated (at runtime). •Four possibilities for initiating new instance of a service: 1.Client. Client determines whether service is adequately provisioned for its needs based on service SLA and services current workload. 2.Service. Service determines whether it is adequately provisioned based on number of requests it expects from clients. 3.Registry/load balancer determines appropriate number of instances of a service based on SLA and client instance requests. 4.External entity can initiate creation of new instances 24
  • 25. NICTA Copyright 2012 From imagination to impact Questions about Micro SOA •/Q/ Isn’t it possible that different teams will implement the same functionality, likely differently? •/A/ Yes, but so what? Major duplications are avoided through assignment of responsibilities to services. Minor duplications are the price to be paid to avoid necessity for synchronous coordination. •/Q/ what about transactions? •/A/ Micro SOA privileges flexibility above reliability and performance. Transactions are recoverable through logging of service interactions. This may introduce some delays if failures occur. 25
  • 26. NICTA Copyright 2012 From imagination to impact Microservice architecture supports continuous deployment •Two topics: –What is microservice architecture? –What are the deployment issues and how do I deal with them? 26
  • 27. NICTA Copyright 2012 From imagination to impact Deploying a new version of an application 27 Multiple instances of a application are executing • Red is service being replaced with new version • Blue are clients • Green are dependent services VVA B VV B B UAT / staging / performance tests
  • 28. NICTA Copyright 2012 From imagination to impact Deployment goal and constraints •Goal of a deployment is to move from current state (N instances of version A of a app) to a new state (N instances of version B of a app) •Constraints: –Any development team can deploy their app at any time. I.e. New version of a app can be deployed either before or after a new version of a client. (no synchronization among development teams) –It takes time to replace one instance of version A with an instance of version B (order of minutes) –Service to clients must be maintained while the new version is being deployed. 28
  • 29. NICTA Copyright 2012 From imagination to impact Deployment strategies •Two basic all of nothing strategies –Red/Black – leave N instances with version A as they are, allocate and provision N instances with version B and then switch to version B and release instances with version A. –Rolling Upgrade – allocate one instance, provision it with version B, release one version A instance. Repeat N times. •Partial strategies are canary testing and A/B testing. 29
  • 30. NICTA Copyright 2012 From imagination to impact Trade offs – Red/Black and Rolling Upgrade •Red/Black –Only one version available to the client at any particular time. –Requires 2N instances (additional costs) •Rolling Upgrade –Multiple versions are available for service at the same time –Requires N+1 instances. •Rolling upgrade is widely used. 30 Update Auto Scaling Group Sort Instances Remove & Deregister Old Instance from ELB Confirm Upgrade Spec Terminate Old Instance Wait for ASG to Start New Instance Register New Instance with ELB Rolling Upgrade in EC2
  • 31. NICTA Copyright 2012 From imagination to impact Types of failures during rolling upgrade Rolling Upgrade Failure Provisioning See references at end Logical failure Inconsistencies to be discussed Instance failure Handled by Auto Scaling Group in EC2 31
  • 32. NICTA Copyright 2012 From imagination to impact What are the problems with Rolling Upgrade? •Any development team can deploy their app at any time. •Three concerns –Maintaining consistency between different versions of the same app when performing a rolling upgrade –Maintaining consistency among different apps –Maintaining consistency between an app and persistent data 32
  • 33. NICTA Copyright 2012 From imagination to impact Maintaining consistency between different versions of the same app •Key idea – differentiate between installing a new version and activating a new version •Involves “feature toggles” (described momentarily) •Sequence –Develop version B with new code under control of feature toggle –Install each instance of version B with the new code toggled off. –When all of the instances of version A have been replaced with instances of version B, activate new code through toggling the feature. 33
  • 34. NICTA Copyright 2012 From imagination to impact Issues •What is a feature toggle? •How do I manage features that extend across multiple apps? •How do I activate all relevant instances at once? 34
  • 35. NICTA Copyright 2012 From imagination to impact Feature toggle •Place feature dependent new code inside of an “if” statement where the code is executed if an external variable is true. Removed code would be the “else” portion. •Used to allow developers to check in uncompleted code. Uncompleted code is toggled off. •During deployment, until new code is activated, it will not be executed. •Removing feature toggles when a new feature has been committed is important. 35
  • 36. NICTA Copyright 2012 From imagination to impact Multi app features •Most features will involve multiple apps. •Each app has some code under control of a feature toggle. •Activate feature when all instances of all apps involved in a feature have been installed. –Maintain a catalog with feature vs service version number. –A feature toggle manager determines when all old instances of each version have been replaced. This could be done using registry/load balancer. –The feature manager activates the feature. –Archaius is an open source feature toggle manager. 36
  • 37. NICTA Copyright 2012 From imagination to impact Activating feature •The feature toggle manager changes the value of the feature toggle. Two possible techniques to get new value to instances. –Push. Broadcasting the new value will instruct each instance to use new code. If a lag of several seconds between the first service to be toggled and the last can be tolerated, there is no problem. Otherwise synchronizing value across network must be done. –Pull. Querying the manager by each instance to get latest value may cause performance problems. •A coordination mechanism such as Zookeeper will overcome both problems. 37
  • 38. NICTA Copyright 2012 From imagination to impact Maintaining consistency across versions (summary) •Install all instances before activating any new code •Use feature toggles to activate new code •Use feature toggle manager to determine when to activate new code •Use Zookeeper to coordinate activation with low overhead 38
  • 39. NICTA Copyright 2012 From imagination to impact Maintaining consistency among different services •Use case: –Wish to deploy new version of app A without coordinating with development team for clients of app A. •I.e. new version of app A should be backward compatible in terms of its interfaces. •May also require forward compatibility in certain circumstances, e.g. rollback 39
  • 40. NICTA Copyright 2012 From imagination to impact Maintaining consistency between an app and persistent data •Assume new version is correct. Rollback discussed in a minute. •Inconsistency in persistent data can come about because data schema or semantics change. •Effect can be minimized by the following practices (if possible). –Only extend schema – do not change semantics of existing fields. This preserves backwards compatibility. –Treat schema modifications as features to be toggled. This maintains consistency among various apps that access data. 40
  • 41. NICTA Copyright 2012 From imagination to impact Summary of consistency discussion so far. •Feature toggles are used to maintain consistency within instances of an app •Disallowing modification of schema will maintain consistency between apps and persistent data. 41
  • 42. NICTA Copyright 2012 From imagination to impact Canary testing •Canaries are a small number of instances of a new version placed in production in order to perform live testing in a production environment. •Canaries are observed closely to determine whether the new version introduces any logical or performance problems. If not, roll out new version globally. If so, roll back canaries. •Named after canaries in coal mines. 42
  • 43. NICTA Copyright 2012 From imagination to impact Implementation of canaries •Designate a collection of instances as canaries. They do not need to be aware of their designation. •Designate a collection of customers as testing the canaries. Can be, for example –Organizationally based –Geographically based •Then –Activate feature or version to be tested for canaries. Can be done through feature activation synchronization mechanism –Route messages from canary customers to canaries. Can be done through making registry/load balancer canary aware. 43
  • 44. NICTA Copyright 2012 From imagination to impact A/B testing •Suppose you wish to test user response to a system variant. E.g. UI difference or marketing effort. A is one variant and B is the other. •You simultaneously make available both variants to different audiences and compare the responses. •Implementation is the same as canary testing. 44
  • 45. NICTA Copyright 2012 From imagination to impact Rollback •New versions of an app may be unacceptable either for logical or performance reasons. •Two options in this case •Roll back (undo deployment) •Roll forward (discontinue current deployment and create a new release without the problem). •Decision to rollback or roll forward is almost never automated because there are multiple factors to consider. •Forward or backward recovery •Consequences and severity of problem •Importance of upgrade 45
  • 46. NICTA Copyright 2012 From imagination to impact Summary •Speeding up deployment time will reduce time to market •Continuous deployment is a technique to speed up deployment time •Microservice architecture is designed for minimizing coordination needs and allowing independent deployment •Multiple simultaneous versions managed with feature toggles. •Feature toggles support rollback, canary testing, and A/B testing. 46
  • 47. NICTA Copyright 2012 From imagination to impact NICTA team •Liming Zhu •Ingo Weber •Min Fu •Sherry Xu •Daniel Sun •Ah Binh Tran •Chao Li 47
  • 48. NICTA Copyright 2012 From imagination to impact More Information Contact len.bass@nicta.com.au Book is due out May, 2015 Research papers: ssrg.nicta.com.au’projects/cloud 48