This document discusses deployability and continuous deployment in the context of microservice architectures. It begins by describing National ICT Australia (NICTA) and its work in information and communications technology research. It then discusses how microservice architectures support continuous deployment by allowing individual teams to deploy new versions of their services independently without coordination. Key aspects of microservice architectures that enable this include: each service having a single responsibility; services communicating asynchronously via messaging; and services registering themselves with a discovery service. The document also discusses how feature toggles and canary deployments can be used to maintain consistency when deploying new versions of services.
A collection of exercises to build a simple deployment pipeline. This comes from the course I have taught in DevOps and is targeted at instructors or individuals who want to learn the basics of a pipeline.
A collection of exercises to build a simple deployment pipeline. This comes from the course I have taught in DevOps and is targeted at instructors or individuals who want to learn the basics of a pipeline.
Security Implications for a DevOps TransformationDeborah Schalm
If your organization is undergoing a DevOps transformation, you’re probably thinking about where security fits in. All too often, we tack on security testing at the end of the delivery process, which means significant problems go undetected until development is complete. As we adopt DevOps principles and practices, we enable a natural solution to this problem: ensure that security experts are involved throughout the delivery process.
In this webinar, DevOps.com and Puppet defined a reference implementation of DevOps from the ground up, by illustrating how the software delivery process evolves at a hypothetical startup. Once we've laid a technical foundation for DevOps, we discussed the implications for security. We also discussed:
Benefits for and challenges to security during a DevOps transformation
How to craft a DevOps-ready security practice
Refinements of a standard DevOps workflow to address security needs
Chris Van Tuin, Chief Technologist, Red Hat presented, "A DevOps State of Mind: Continuous Security with Kubernetes." For more information please visit our website at www.blackducksoftware.com.
In this session, we will learn about Teamcity CI Server. We will look at the different options available and how we can set a CI pipeline using Teamcity.
How to go from waterfall app dev to secure agile development in 2 weeks Ulf Mattsson
Waterfall is based on the concept of sequential software development—from conception to ongoing maintenance—where each of the many steps flowed logically into the next.
Join this webinar presentation to learn:
- Why DevOps cannot effectively work in waterfall
- How to use DevOps tools to optimize processes in either development or operations through automation
We will also discuss what is needed to support full DevOps
When DevOps talks meet DevOps tactics, companies find that Continuous Integration is the make or break point. And implementing CI is one thing, but sustainable CI takes a little bit more consideration. CI is not all about releases, it is also about knowing more about how your software delivery pipeline works, it's weak points, and how you are doing over time.
Join CloudBees and cPrime as we discuss best practices for facilitating DevOps pipelines with Jenkins Workflow and reveal how the workflow engine of Jenkins CI and “Agilecentric” Devops practices together, support complex control structures, shortens the development cycle, stabilizes environments and reduces defects.
Slides from this webcast: bit.ly/mTUTq4
Discussion of what DevOps is, why we need it, what sorts of shared tooling helps it, and how it fits in to an enterprise rollout.
Standardizing Jenkins with CloudBees Jenkins TeamDeborah Schalm
Jenkins’ extensibility is one of its greatest strengths, but with it comes with some challenges around inconsistent compatibility, quality, and security in its 1300+ components and integrations.
CloudBees Jenkins Team is a curated Jenkins distribution that gives small organizations and teams a more stable and secure Jenkins foundation for their continuous delivery journey. In this webinar, we covered:
Standardizing a Jenkins environment with CloudBees Jenkins Team
Enabling simple component management using the CloudBees Assurance Program
Performing one-click upgrades to maximize instance stability with Beekeeper Upgrade Assistant
Resolving compliance issues with Beekeeper Upgrade Assistant
DevOps Will Save The World! : Public Safety, Public Policy, and DevOps In Context
Joshua Corman, CTO, Sonatype
Link to video: https://www.youtube.com/watch?v=K-hskShNyoo
Managing one or two unique machines in an ad-hoc manner is not a story that many people talk about nowadays. Today, small teams need to manage hundreds or thousands of nodes, serving a myriad of purposes, running any number of critical Dev and Ops workloads. And they have to do it in a way that still leaves time for unplanned and strategic work.
Learn how HP ties DevOps automation, monitoring information and ChatOps collaboration together to eliminate manual, error-prone work and keep critical services running
To successfully implement continuous delivery in an enterprise, there are specific needs and obstacles which must be addressed. In this webinar, we’ll address the pain points that most enterprises face, and how they can be overcome.
Presentazione dello speech tenuto da Carmine Spagnuolo (Postdoctoral Research Fellow - Università degli Studi di Salerno/ ACT OR) dal titolo "Technology insights: Decision Science Platform", durante il Decision Science Forum 2019, il più importante evento italiano sulla Scienza delle Decisioni.
These are my summarized notes from all the microservices session I attended at QCon 2015. These sessions had tons of learning around how to scale microservices and avoid common pitfalls
Security Implications for a DevOps TransformationDeborah Schalm
If your organization is undergoing a DevOps transformation, you’re probably thinking about where security fits in. All too often, we tack on security testing at the end of the delivery process, which means significant problems go undetected until development is complete. As we adopt DevOps principles and practices, we enable a natural solution to this problem: ensure that security experts are involved throughout the delivery process.
In this webinar, DevOps.com and Puppet defined a reference implementation of DevOps from the ground up, by illustrating how the software delivery process evolves at a hypothetical startup. Once we've laid a technical foundation for DevOps, we discussed the implications for security. We also discussed:
Benefits for and challenges to security during a DevOps transformation
How to craft a DevOps-ready security practice
Refinements of a standard DevOps workflow to address security needs
Chris Van Tuin, Chief Technologist, Red Hat presented, "A DevOps State of Mind: Continuous Security with Kubernetes." For more information please visit our website at www.blackducksoftware.com.
In this session, we will learn about Teamcity CI Server. We will look at the different options available and how we can set a CI pipeline using Teamcity.
How to go from waterfall app dev to secure agile development in 2 weeks Ulf Mattsson
Waterfall is based on the concept of sequential software development—from conception to ongoing maintenance—where each of the many steps flowed logically into the next.
Join this webinar presentation to learn:
- Why DevOps cannot effectively work in waterfall
- How to use DevOps tools to optimize processes in either development or operations through automation
We will also discuss what is needed to support full DevOps
When DevOps talks meet DevOps tactics, companies find that Continuous Integration is the make or break point. And implementing CI is one thing, but sustainable CI takes a little bit more consideration. CI is not all about releases, it is also about knowing more about how your software delivery pipeline works, it's weak points, and how you are doing over time.
Join CloudBees and cPrime as we discuss best practices for facilitating DevOps pipelines with Jenkins Workflow and reveal how the workflow engine of Jenkins CI and “Agilecentric” Devops practices together, support complex control structures, shortens the development cycle, stabilizes environments and reduces defects.
Slides from this webcast: bit.ly/mTUTq4
Discussion of what DevOps is, why we need it, what sorts of shared tooling helps it, and how it fits in to an enterprise rollout.
Standardizing Jenkins with CloudBees Jenkins TeamDeborah Schalm
Jenkins’ extensibility is one of its greatest strengths, but with it comes with some challenges around inconsistent compatibility, quality, and security in its 1300+ components and integrations.
CloudBees Jenkins Team is a curated Jenkins distribution that gives small organizations and teams a more stable and secure Jenkins foundation for their continuous delivery journey. In this webinar, we covered:
Standardizing a Jenkins environment with CloudBees Jenkins Team
Enabling simple component management using the CloudBees Assurance Program
Performing one-click upgrades to maximize instance stability with Beekeeper Upgrade Assistant
Resolving compliance issues with Beekeeper Upgrade Assistant
DevOps Will Save The World! : Public Safety, Public Policy, and DevOps In Context
Joshua Corman, CTO, Sonatype
Link to video: https://www.youtube.com/watch?v=K-hskShNyoo
Managing one or two unique machines in an ad-hoc manner is not a story that many people talk about nowadays. Today, small teams need to manage hundreds or thousands of nodes, serving a myriad of purposes, running any number of critical Dev and Ops workloads. And they have to do it in a way that still leaves time for unplanned and strategic work.
Learn how HP ties DevOps automation, monitoring information and ChatOps collaboration together to eliminate manual, error-prone work and keep critical services running
To successfully implement continuous delivery in an enterprise, there are specific needs and obstacles which must be addressed. In this webinar, we’ll address the pain points that most enterprises face, and how they can be overcome.
Presentazione dello speech tenuto da Carmine Spagnuolo (Postdoctoral Research Fellow - Università degli Studi di Salerno/ ACT OR) dal titolo "Technology insights: Decision Science Platform", durante il Decision Science Forum 2019, il più importante evento italiano sulla Scienza delle Decisioni.
These are my summarized notes from all the microservices session I attended at QCon 2015. These sessions had tons of learning around how to scale microservices and avoid common pitfalls
This talk was done in Feb 2020. Sergey and I co-presented at CTO Forum on Microservices and Service Mesh (how they relate, requirements, goals, best practices and how DevOps and Agile has had convergence in the set of features for Service Mesh and gateways around observability, feature flags, etc.)
Reactive Micro Services with Java seminarGal Marder
Abstract –
Micro services is the current architectural trend. In this seminar, we'll go over the concepts behind a good micro-service implementation and see how to implement it with available Java frameworks.
Target Audience
Java developers, team leaders, project managers.
Prerequisites
Java knowledge
Contents:
Overview of Micro-service architecture principles.
- Technical stacks:
- The Spring Stack (Spring Boot & Cloud)
- Lagom
- Akka and Play
- Vertx
- Complementaries
- Discovery
- Configuration
- Monitoring
Visualizing Your Network Health - Know your NetworkDellNMS
An old adage states that you cannot manage what you don’t know. Do you know what devices are on your network, where they are located, how they are configured, what they are connected to, and how they are affected by changes and failures?
Today’s network infrastructure is becoming more and more complex, while demands on the Network Administrator to ensure network availability and performance are higher than ever. Business critical systems depend upon you managing your entire network infrastructure and delivering high-quality service 24/7, 365 days a year. So how do you keep the pace?
Learn how real-time visibility into your entire network infrastructure provides the power to manage your assets with greater control.
Migrating from a monolith to microservices – is it worth it?Katherine Golovinova
IURII IVON, EPAM Solution Architect, Microsoft Competency Center Expert.
The term ‘microservices’ has become so popular that many people see it as a silver bullet for all architectural problems, or at least as a trend that should be followed. If your project is a monolith today, does it make sense to move towards microservices? This presentation overviews painful issues to be considered when migrating from a monolith to microservice architecture, ways to solve them, and ideas on the feasibility of such migration.
“ The Microservices architecture has many appealing qualities, but the road towards it has painful traps for the unwary. This book will help you figure out if this path is for you, and how to avoid those traps on your journey.”
—Martin Fowler Chief Scientist, ThoughtWorks
Where SOA and Monolitch EAR have failed. It's not simple to have your Apps scaling automagically without a very complex architecture. We're going to show pros and cons of so called Cloud-Native Applications based on Microservices, Caas, DevOps, Continuous Delivery....
An introduction to the technology underlying blockchains. If you want to hear a voice over, you can find it at http://presentationtube.com/watch?v=tCZDIEezrpbhttp://presentationtube.com/watch?v=tCZDIEezrpb
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Takashi Kobayashi and Hironori Washizaki, "SWEBOK Guide and Future of SE Education," First International Symposium on the Future of Software Engineering (FUSE), June 3-6, 2024, Okinawa, Japan
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...kalichargn70th171
A dynamic process unfolds in the intricate realm of software development, dedicated to crafting and sustaining products that effortlessly address user needs. Amidst vital stages like market analysis and requirement assessments, the heart of software development lies in the meticulous creation and upkeep of source code. Code alterations are inherent, challenging code quality, particularly under stringent deadlines.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppGoogle
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-fusion-buddy-review
AI Fusion Buddy Review: Key Features
✅Create Stunning AI App Suite Fully Powered By Google's Latest AI technology, Gemini
✅Use Gemini to Build high-converting Converting Sales Video Scripts, ad copies, Trending Articles, blogs, etc.100% unique!
✅Create Ultra-HD graphics with a single keyword or phrase that commands 10x eyeballs!
✅Fully automated AI articles bulk generation!
✅Auto-post or schedule stunning AI content across all your accounts at once—WordPress, Facebook, LinkedIn, Blogger, and more.
✅With one keyword or URL, generate complete websites, landing pages, and more…
✅Automatically create & sell AI content, graphics, websites, landing pages, & all that gets you paid non-stop 24*7.
✅Pre-built High-Converting 100+ website Templates and 2000+ graphic templates logos, banners, and thumbnail images in Trending Niches.
✅Say goodbye to wasting time logging into multiple Chat GPT & AI Apps once & for all!
✅Save over $5000 per year and kick out dependency on third parties completely!
✅Brand New App: Not available anywhere else!
✅ Beginner-friendly!
✅ZERO upfront cost or any extra expenses
✅Risk-Free: 30-Day Money-Back Guarantee!
✅Commercial License included!
See My Other Reviews Article:
(1) AI Genie Review: https://sumonreview.com/ai-genie-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
#AIFusionBuddyReview,
#AIFusionBuddyFeatures,
#AIFusionBuddyPricing,
#AIFusionBuddyProsandCons,
#AIFusionBuddyTutorial,
#AIFusionBuddyUserExperience
#AIFusionBuddyforBeginners,
#AIFusionBuddyBenefits,
#AIFusionBuddyComparison,
#AIFusionBuddyInstallation,
#AIFusionBuddyRefundPolicy,
#AIFusionBuddyDemo,
#AIFusionBuddyMaintenanceFees,
#AIFusionBuddyNewbieFriendly,
#WhatIsAIFusionBuddy?,
#HowDoesAIFusionBuddyWorks
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Looking for a reliable mobile app development company in Noida? Look no further than Drona Infotech. We specialize in creating customized apps for your business needs.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
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
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