Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
THE CLOUD NATIVEMATURITY MATRIXASSESSMENT
Where are you in your Cloud Native journey?
ContainerSolutions
container-solutions.com3
INTRODUCTION
Cloud Native is a set of methods for optimising systems for the cloud. The approach harnesses the cloud’s most powerful advantages—flexible, on-demand infrastructure and managed operational services—and pairs them with continuous delivery, containers, microservices, and other cloud-optimised technologies. When done right, it allows you to drastically speed up building, testing, and deploying software–reducing risk while you iterate and innovate ahead of the competition.
The payoff for going Cloud Native is immense, but in order to reach it an organisation must evolve not just its tech stack but also human-centered aspects like culture, process, and leadership. Some companies believe they can simply ‘lift and shift’ their current operations to run on the cloud, and that this will make them Cloud Native. They quickly find out, however, that this is a fast path to failure. Since Cloud Native is still new, few companies have deep experience in navigating the architecture’s complexities.
THE MATURITY MATRIX
A Maturity Matrix outcome graph from a real-world enterprise assessment. It shows both the company’s current status and the progression points necessary for evolving into a Cloud Native entity.
container-solutions.com 4
While guiding companies onto the cloud over the past five years, ContainerSolutions have been carefully analysing each experience. We’ve identified common challenges faced by enterprises from many sectors, and the ways to overcome or simply avoid them. These tactics became Container Solutions’ four-part process for successful transformation: Think, Design, Build, Run.
The first stage, Think, begins with the Container Solutions Cloud Native Maturity Matrix, an assessment tool for mapping an effective transformation path. The Maturity Matrix investigates nine different areas of transformation, some technical, others cultural and organisational. The results are used to define, analyse, and describe an organisation’s current status and then create a custom roadmap for the fastest—and lowest risk—transformation.
This questionnaire will guide you through a Maturity Matrix self-assessment. It’s a lightweight version of the same tool CS engineers use when performing our in-depth Cloud Native Assessment, a multi-day dive into a company’s current systems, processes, and culture. Even though it’s much less detailed, this basic version will still provide an initial high-level snapshot of where you are right now—and a general flight path for your company’s own transformation.
Next step: After you get the results from our Maturity Matrix, see the back page to get a free deck of patterns cards, and order our new book, to start planning your Cloud Native transformation.
container-solutions.com5
INSTRUCTIONS
How do we assess current organisational status?
First, you will answer a series of questions designed to reveal your company’s current status, from culture to process to infrastructure. We use the answers to draw a point on each of the nine separate axes.
Once all nine areas have been assessed, we then literally connect the dots by drawing a line through each status point. Graphing status in this way gives instant valuable feedback, and provides a powerful visual of your company’s current state.
Next, we use this insight to match your results to typical scenarios that we have observed at other enterprises seeking to migrate their legacy systems and transform into a true Cloud Native entity.
Remember our sample matrix with results from a real-world enterprise Cloud Native assessment?
The results show a company that is functioning largely in a traditional Waterfall hierarchy. Culture, however has progressed somewhat and is taking first steps toward Agile. Perhaps this was in response to advances in their Process, which has nearly reached Agile.
container-solutions.com 6
If you answered Yes to questions 1 and/or 3, place your dot on Predictive. If you answered Yes to questions 2 and/or 4, place your dot on Iterative. If you answered Yes to a mix of odd and even numbered questions (or none at all), place your dot halfway along the dotted line between the two.
How individuals in your organisation interact, communicate, and work with each other.
In our company…
1. Project managers coordinate between all the different
teams working on the same project, and the teams have
highly specialised responsibilities.
2. Our development teams focus on achieving small,
defined objectives quickly and then moving immediately
to the next one.
3. A lot of up-front planning goes into documenting each
step of a project before it even begins.
4. Each team contain a mix of members whose different
areas of expertise cover the full spectrum of skills needed
for crafting a releasable increment.
1. CULTURE
Yes No
container-solutions.com7
What you do, and how you go about doing it. How do decisions get made in your organisation about new products to build, or services and features to offer — or how to improve existing ones?
In our company…
1. We have product roadmaps spanning months or even
years into the future. Our releases typically happen every
six months to one year, sometimes even longer.
2. There is pressure to deliver features, fast, and releases
happen on a regular planned basis. (For example, ‘We’ll
Feature X in two months, Feature Y in four months and
Feature Z in six months’—with no deviation from the
schedule).
3. We release large sets of related features all at once as
comprehensive updates.
4. Our releases are usually small-scale iterative changes to
existing features/services.
2. PRODUCT/SERVICE DESIGN
If you answered Yes to questions 1 and/or 3, place your dot on Long-term Plan. If you answered Yes to questions 2 and/or 4, place your dot on Feature Driven. If you answered Yes to a mix of odd and even numbered questions (or none at all), place your dot halfway along the dotted line between the two.
Yes No
container-solutions.com 8
How do responsibilities, communication, and collaboration work between teams in your organisation?
In our company…
1. All decisions are made by managers, and teams must
seek permission before changing any part of the project
plan, no matter how small.
2. Applications are developed as several large components,
with one team per component fully and vertically
responsible for the build.
3. We have separate teams of specialists to handle different
areas: design, architecture, security, testing, etc. When
our team’s piece of a project is finished, we hand it off to
the next team.
4. Our teams are mixed: We have developers, QA/testing,
someone with server experience, etc. all in one group. We
don’t talk to other teams very much since our teams are
meant to be self-sufficient and independent.
3. TEAM
If you answered Yes to questions 1 and/or 3, place your dot on Hierarchy. If you answered Yes to questions 2 and/or 4, place your dot on Cross-functional Teams. If you answered Yes to a mix of odd and even numbered questions (or none at all), place your dot halfway along the dotted line between the two.
Yes No
container-solutions.com9
How do you plan and then execute work?
In our company…
1. We do all our planning up front, and then hand off to
teams for execution. Managers handle the collaboration
and communication between our teams.
2. A team will work on one small, defined project and deliver
it in two to four weeks. If a new feature request comes in
the middle of a delivery cycle, we may or may not be able
to add it in.
3. If a new feature request comes in the middle of a delivery
cycle, we have to wait for the next cycle to plan for and
incorporate it.
4. If we can’t coordinate or fix an issue on the last day or two
of a production cycle, we can’t ship—so when a bug or
some other problem pops up it’s hard to do anything more
than a quick fix. (Following up to address an issue in more
depth requires a dedicated sprint so we can focus on it).
4. PROCESS
If you answered Yes to questions 1 and/or 3, place your dot on Waterfall. If you answered Yes to questions 2 and/or 4, place your dot on Agile. If you answered Yes to a mix of odd and even numbered questions (or even none at all), place your dot halfway along the dotted line between the two.
Yes No
container-solutions.com 10
What is the overall structure of your technology and systems?
In our company…
1. Our system is very big. Few people understand the
whole thing. We fear the domino effect: If you change
something, you have to be very careful because it could
break something else.
2. Our application(s) is(are) divided into components,
probably no more than five or six, communicating through
networking.
3. When we deliver, everything is delivered together, all
ready on the same day and at a uniformly high level of
quality.
4. The scope of an app in development is defined by
the deployment schedule. Each feature or piece of
functionality is broken down into deliverable chunks that
fit into the schedule.
5. ARCHITECTURE
If you answered Yes to questions 1 and/or 3, place your dot on Tightly coupled Monolith. If you answered Yes to questions 2 and/or 4, place your dot on Client server. If you answered Yes to a mix of odd and even numbered questions (or even none at all), place your dot halfway along the dotted line between the two.
Yes No
container-solutions.com11
How does your organisation deploy software and run it in production?
In our company…
1. We have some simple automation, like scripts, for alerting
large-scale issues and outages in the field. We find out
about many smaller problems from user reports.
2. Our systems have full and continuous monitoring, and our
Ops team spends lots of time checking on alerts. A lot of
time, our system alerts turn out to be nothing.
3. When problems arise, we have to open each server to
understand what happened because we don’t have central
logs or tracing. Then we fix it manually: someone from
Operations logs into a production server and follows a
preset procedure.
4. Some of our system update processes are fully automated
and patches can be applied quickly—but a human still has
to initialise the process.
6. MAINTENANCE AND OPERATIONS
If you answered Yes to questions 1 and/or 3, place your dot on Ad-hoc monitoring. If you answered Yes to questions 2 and/or 4, place your dot on Alerting. If you answered Yes to a mix of odd and even numbered questions (or even none at all), place your dot halfway along the dotted line between the two.
Yes No
container-solutions.com 12
How does software progress from your development teams to running live in production?
In our company…
1. We do ‘big bang’ releases that roll lots of changes into
one new version, every six to 12 months. A lot of up-front
planning goes into our next release before any actual
development begins.
2. Our delivery process includes some test automation
and automated build, but outside of final integration.
In an emergency, we can make manual updates to the
production codebase.
3. We don’t like to make changes to our production code,
even emergency ones, because there are so many
dependencies. Change is risky. Once we release a software
version all changes have to wait for the next version
4. roll out.
5. New functionality requests typically can be
accommodated within a few weeks, if they are urgent.
7. DELIVERY
If you answered Yes to questions 1 and/or 3, place your dot on Periodic releases. If you answered Yes to questions 2 and/or 4, place your dot on Continuous Integration. If you answered Yes to a mix of odd and even numbered questions (or even none at all), place your dot halfway along the dotted line between the two.
Yes No
container-solutions.com13
How does your organisation create and then control new infrastructure? How quickly can you deploy?
In our company….
1. Operations team is in charge of provisioning, period. You
have to write a ticket to provision a machine—engineers
can’t self-service.
2. A machine can be provisioned (possibly even
autoprovisioned) in hours, or maybe a day or two, and the
process is fully automated by Ops.
3. Developers write applications, and specify what they
will need to run successfully in production (OS, libraries,
dependent tools). The Ops team manually configures the
production machines to meet the machine dependencies
the Dev team specified.
4. Provisioning is a mix of automation and manual work.
Any task taking longer than a week to provision to VM
breaks the production cycle, so is a nonstarter.
8. PROVISIONING
If you answered Yes to questions 1 and/or 3, place your dot on Scripted. If you answered Yes to questions 2 and/or 4, place your dot on Config. management. If you answered Yes to a mix of odd and even numbered questions (or even none at all), place your dot halfway along the dotted line between the two.
Yes No
container-solutions.com 14
Your Infrastructure describes the physical servers or instances that your production environment consists of: what they are, where they are, and how they are managed.
In our company…
1. We have multiple physical servers in our own private
data center (either on premises or co-located). If one of
our servers goes down, we have to manually provision its
replacement.
2. We don’t use physical servers—we have VMs. We also
have some instances in the cloud, which we manage
manually.
3. A data centre failure is just about the worst disaster we
can imagine.
4. Provisioning infrastructure is a mix of automation and
manual work, so a new VM can take a couple of days to
set up.
9. INFRASTRUCTURE
If you answered Yes to questions 1 and/or 3, place your dot on Multiple servers. If you answered Yes to questions 2 and/or 4, place your dot on VMs (pets). If you answered Yes to a mix of odd and even numbered questions (or even none at all), place your dot halfway along the dotted line between the two.
Yes No
container-solutions.com15
DRAW YOUR LINE
1. Use your answers from each of the individual axis questions on the previous pages to draw a point on each of the nine separate areas on the full Maturity Matrix chart. (Remember that it’s OK to place that point halfway between two categories).
2. Now literally connect the dots by drawing a line through the status point marked on each axis.
container-solutions.com 16
An organisation can’t undertake a Cloud Native transformation by simply transferring its existing system onto the cloud and keep doing business the way it always has. A transformation is a much more complex process than that, getting more complicated as the process moves forward. It’s not just new technology; it’s the dawn of a new way of working, a new, organisation-wide way of delivering value to customers.
But many companies try to do this very thing. This is known as the ‘lift and shift’ scenario. Typically, after struggling for months to move the old system, and spending possibly a couple million pounds or Euros, an organisation will discover that, yes, it’s got Kubernetes and cloud infrastructure ... and nothing works. Or maybe things are sort of working, but not any faster or better than they did before.
Here are some typical Cloud Native transformation assessment outcomes, each presented with what this looks like as a Container Solutions CN Maturity Matrix graph. Sometimes these assessments were done in preparation for a cloud migration; other times, as triage on a transformation that had stalled or otherwise gone wrong. It is important to note that every organisation’s journey to the cloud will be different; these scenarios represent the big picture, not analysis on a granular level.
In this step, try to match the Maturity Matrix graph you just created from your questionnaire results with these real-world client assessment examples. (Here we are presenting only the four most common scenarios we encounter; however, we have identified over a dozen more). Since every company, and every transformation, is unique, you may or may not find your company’s match.
COMMON SCENARIOS
1. ‘LIFT AND SHIFT’ MOVE TO CLOUD INFRASTRUCTURE
container-solutions.com17
In this scenario we see: A company with Waterfall or Agile culture, architecture, design, and processes that has attempted to ‘lift and shift’ its current system (and comfortable way of doing things) onto the cloud. On the Maturity Matrix, Infrastructure has moved all the way to Containers/Hybrid Cloud while all other categories remain rooted around Waterfall/Agile status.
What will happen: Operating costs will go up. Few, if any, benefits will be gained. Time and money will be wasted: you now have a bunch of expensive, complex tools on top of the same system you always had—but you are not faster or cheaper.
A better approach: Focus on moving all points on the Maturity Matrix to their Cloud Native state. For most organisations this likely means starting with Architecture and Process while simultaneously working to gradually evolve Culture. However, if there are parts of the original system that are stable and seldom changed, these can indeed be moved to the cloud using lift and shift.
The practical solution: An honest and thorough assessment of current state is essential before moving forward in any aspect of a cloud migration. Start at the very beginning of the Cloud Native Transformation Roadmap with Stage One, Assessment, and you will emerge with a clear vision, a high-level architectural direction, and alignment among leaders in the company.
1. MOVING TO CLOUD INFRASTRUCTURE “LIFT AND SHIFT”
container-solutions.com 18
2. TREATING CLOUD NATIVE AS SIMPLY A TECHNICAL UPGRADE
This particular scenario can happen any time in any organisation, but most often arises when a company that has adopted at least some Agile practices fails to recognize that moving to Cloud Native is a second true paradigm shift. Instead of being treated as a major and serious change in its own right, the CN transformation is treated as just a bunch of tech-related tasks that get added to the existing development backlog. Basically, this approach treats CN as an updated implementation of Agile—and it doesn’t work.
In this scenario we see organisations make more real progress toward building a CN platform, but they are still unable to deliver software on it. This is because, while they have updated their technology, their organisational culture and processes have not evolved to match. The new platform requires a whole new way of working, but they find it difficult to abandon the ‘good old ways’.
container-solutions.com19
2. TREATING CLOUD NATIVE AS SIMPLY A TECHNICAL UPGRADE
In this scenario we see: The CN portion of the transition gets placed within the scope of Agile coaches and thus gets led by them. And/or the project is handed to an IT team, added to the backlog of their usual tasks. This is a genuine paradigm shift, but Agile sees it as only a simple platform iteration. Install Kubernetes, two sprints, done!
What will happen: This results in CN tools such as Kubernetes, CI/CD (Continuous Integration and Continuous Deployment) and Microservices being treated simply as normal extensions of Agile, which they are not. Cloud Native adds many completely new complexities, and requires a very different approach.
A better approach: This is a major shift for a culture used to a tightly coupled approach where everything is developed in parallel for simultaneous delivery. Doing a contained experiment first helps a Waterfall team understand their baggage from functioning within a hierarchy-driven monolith. It then helps them evolve into a collaborative and distributed Cloud Native way of working.
The practical solution: Take small steps for a gradual transformation. Start by trying out an initial small side experiment that encompasses the major elements of CN: an architecture of containerised microservices communicating via APIs, developed and delivered through CI/CD, and implemented/orchestrated on a fully automated cloud platform. This prototype app can be very basic, but it does need to be functional. Such small experiments are part of step two of Container Solutions’ process, Design.
container-solutions.com 20
3. THE GREENFIELD MYTH, or, THE ‘ALL OR NOTHING’ APPROACH
In this scenario we see a Waterfall organisation with a deep legacy codebase—say, for example, a mainframe running COBOL. An enormous amount of work and organisational change are required to refactor any monolithic system into a flexibile, functional Cloud Native one. The understandable temptation is to simply scrap the old system completely in favor of building a brand new one from scratch. A complete greenfield project must be cheaper, faster, and more efficient than trying to work with the existing one, right?
An ‘all or nothing’ attempt—rebuilding a monolith into microservices from scratch—is not always a bad move. There are serious advantages to greenfield development for startup companies, and even for an established one, greenfield can be a great way to go—if you know what you are doing. But most companies don’t. Cloud Native is simply too new. And it’s expensive and unnecessary to replace a monolith if it is actually working pretty well for you.
Rather than starting over, why not keep the legacy codebase in place and build a custom bridge to the cloud? It’s cheaper, it’s faster, and it’s much, much easier.
container-solutions.com21
3. THE GREENFIELD MYTH, or, THE ‘ALL OR NOTHING’ APPROACH
In this scenario we see: Companies whose main codebase is in a deep legacy language that decide it’s time to scrap it and build a brand new Cloud Native system. The result: a stalled (or even failing) attempt to build a completely new system after six months of dedicated ‘all or nothing’ effort. Meanwhile, there has been no development at all on the old system.
What will happen: Confusion, chaos, and a deeply frustrated and unhappy team. You can’t just go all in—assign all your COBOL engineers to shift to Kubernetes. You may as well ask them to fly your mainframe to the moon. A better approach: In many cases it isn’t worth re-architecting a deep legacy monolith to microservices or CN in general as the value might be very low and the cost of change significant. A prime example of ‘if it ain’t broke, don’t fix it’. However, you can still build around it to capture Cloud Native’s risk-reduction and product-velocity benefits in other areas. The practical solution: If you have a strong system that requires few or no changes and it is stable, just keep it. Package it so that it sits on one server and works forever. After that, you design and then create new pieces that talk to the old piece (phases two and three of Container Solutions’ process, Design and Build). Make a tiny greenfield Cloud Native platform and then slowly move one piece over at a time, refactoring and rebuilding your platform as you go. It’s a very slow, iterative, long-term process, not a quick re-creation of your legacy system only now in the cloud (see scenario one, ‘Lift and Shift’). But it works.
container-solutions.com 22
4. ‘SPIKING’ CN TRANSFORMATION VIA
AN UNBALANCED APPROACH
This is the most common scenario we see. An unbalanced approach can happen at any point on the Maturity Matrix. When we are called in to help with a migration gone wrong, however, we typically find a mostly Agile organisation that has moved forward in a single one of three areas—Microservices, Orchestration/Kubernetes, or DevOps—while failing to progress in all of the other areas crucial for a CN transformation. The graph shows a single sharp ‘spike’ in an otherwise uniform line. The spike’s axis can vary but the final outcome is the same: the transformation initiative will bog down and is likely to ultimately fail.
This happens when the initiative is started in, and driven from, a single faction in the company: Ops, say, or Dev, or executive management. No other groups are participating, and so the transformation happens only in the area that affects the originating group. They unilaterally proceed with the project doing only what is important from their point of view—without taking the role of every other division into consideration.
Here’s an example: If the initiative started with a push for Kubernetes in Ops, the Orchestration axis leaps ahead of where the whole rest of the company finds itself on the Maturity Matrix:
container-solutions.com23
4. ‘SPIKING’ CN TRANSFORMATION VIA AN UNBALANCED APPROACH
The outcome of an unbalanced approach is frustration among teams, not to mention the investments of time and resources into an initiative that ultimately achieves little.
In this scenario we see: A company has decided to move into the cloud, and adopts one new practice or technology (Microservices, DevOps, Kubernetes) without considering the impact upon all other areas in the organisation. This one area looks like a spike on an otherwise uniform matrix line.
What will happen: These initiatives rarely lead to success because teams very quickly run into all kinds of problems they never considered. Gridlock ensues: they know they have a problem, but they don’t know enough to even begin to understand what to do about it.
A better approach: Senior managers or executive/board leadership needs to intervene and define the CN transformation as a dedicated project that is a company-wide priority. The mandate brings all branches on board to work simultaneously on transforming their particular area of responsibility, while providing all the resources required.
The practical solution: A combination of steps one, two, and three of the Cloud Native Transformation process. The first need is to establish executive commitment to the transformation, including a defined vision and a (high-level) plan for proceeding (step one, Think). From there, step two (Design) protocols establish the architecture and all major design decisions. These are explored through proofs of concept (PoCs) and experiments, so there is buy-in from teams across the organisation. Step three, Build, begins when the optimal transformation path has been identified and it’s time to begin building a minimal viable product (MVP) version of the new Cloud Native platform.
container-solutions.com 24
A GLOSSARYOF CLOUD NATIVE TERMS
AGILE: Agile methodology is a widely used approach to project management in software development. It is based on using incremental, iterative work sequences that are commonly known as sprints. Scrum is a subtype of Agile methodology, essentially a specific framework for Agile software development.
CLOUD: Cloud computing, or ‘the cloud’, is a general term for delivering hosted services over the internet. Cloud services are different from traditional infrastructure and platform hosting because they are elastic (users can employ as much, or as little, service as they need at any given moment); sold on demand (by the minute or the hour); and fully managed by the provider (requires nothing but a computer and Internet access). Significant recent innovations have accelerated interest in even smaller enterprises moving to cloud computing. Public versus Private: public clouds like Google Cloud and Amazon Web Services sell services to anyone, and all users share the same resource pool. A private cloud is a proprietary network, usually company-owned, with access limited to specific entities.
CONFIGURATION MANAGEMENT: Specifically, the automation of server configuration and management, using tools such as Ansible, Puppet, Chef, or Terraform.
CONTAINERS: Containers are lightweight, standalone executable software packages that include everything required to run an application: code, runtime, system tools, libraries, and settings. They are a sort of ‘standard unit’ of software that packages the code with all its dependencies so it can run anywhere, in any computing environment.
CONTINUOUS INTEGRATION: Continuous Integration (CI) is a development approach where teams implement small changes and check in code to version control repositories frequently so that the codebase is constantly iterated and updated. The technical goal of CI is to establish a consistent and automated way to build, package, and test applications.
CONTINUOUS DELIVERY: Continuous Delivery (CD) starts where Continuous Integration ends. CD automates the delivery of CI’s small, iterative changes to run on cloud-based infrastructure. Most teams work with multiple environments outside the production pipeline, such as development and testing environments, and CD ensures there is an automated way to push code changes to them. CD automation then performs any necessary service calls to web servers or databases, and executes procedures when applications are deployed.
container-solutions.com25
CI/CD and CONTINUOUS DEPLOYMENT: When integrated, CI/CD together make it possible to implement Continuous Deployment. Continuous Deployment is a key Cloud Native element where application changes run through the CI/CD pipeline and passing builds get deployed directly and seamlessly to fully automated production environments. Teams practicing Continuous Delivery elect to deploy to production on a daily or even hourly schedule.
CROSS-FUNCTIONAL TEAMS: A cross-functional team is where members have different skill sets and competencies, but are working collaboratively toward the same goal. Team members have all competencies necessary for accomplishing the work within the team—so there are no dependencies on others outside the team. In software development this typically means frontend and backend developers, database and UX specialists, QA engineers, and any other role necessary for producing the product/service.
CULTURE: How individuals within an organisation communicate and work with each other. Culture is the sum of the daily actions that you take, your routines. If you talk to people as part of doing your work, you have collaborative culture. Needing to seek permission before trying something new means you have hierarchical culture. If you change the actions, you change the culture.
DATA-DRIVEN DESIGN: Data-driven design describes the practice of developing or improving a product based on things you can measure. Metrics like site analytics, carrying out A/B testing, or surveying users for feedback are all used to make design decisions.
DESIGN THINKING: Design thinking is a human-centred approach to business processes. It focuses on customer problems and challenges as the foundation to producing products and services that satisfy their wants and needs.
DEVOPS: DevOps is both a culture and set of processes aimed at reducing the division between software development and its actual operation. With DevOps, the traditionally siloed Development and Operations teams work together as one cohesive team (or, sometimes, two teams in tight collaboration). The approach facilitates fast and seamless software development while optimising both productivity and reliability. Companies adopting the DevOps model create teams that embrace the entire development and infrastructure lifecycle in their scope of responsibility. See: SRE.
container-solutions.com 26
GREENFIELD PROJECT: Greenfield deployment refers to building a complete software development system where previously there was none. In Cloud Native it means not just cloud-based infrastructure but also incorporates architecture, design, process, and culture—basically, starting completely from scratch in every possible area. Greenfield development is often viewed as advantageous because it is free from constraints that can be imposed by a system’s existing networks/infrastructure.
MICROSERVICES: Microservices (microservice architecture) is an approach to application development in which a large application is built as a suite of modular components or services. Each service runs a unique process and usually manages its own database. A service can generate alerts, log data, support UIs and authentication, and perform various other tasks. Microservices enable development teams to take a more decentralized (nonhierarchical) approach to building software. Microservices enable each component to be isolated, rebuilt, redeployed, and managed independently.
MONOLITH: ‘Monolith’ is used to describe a single-tiered software application in which different components combine into a single program, launched from a single platform. A monolithic application is self-contained, and independent from other computing applications, its design based on a ‘batteries included’ philosophy that makes the application responsible not just for one particular task, but can perform every step needed to complete any function. Monolithic apps are huge and complex, and therefore very slow to deliver changes/updates; a typical development cycle is six months to one year.
ORCHESTRATION: Orchestration in general refers to the automated configuration, coordination, and management of computer systems and software. In cloud computing, it refers more specifically to orchestrator tools. The best known is Kubernetes, an open-source system for automating the deployment, scaling, and management of containerised applications. In Cloud Native, orchestration is all about managing the lifecycles of containers, especially in large, dynamic environments. (Dev)Ops teams use container orchestration to control and automate tasks such as the availability, provisioning, and deployment of containers, load balancing of containers across infrastructure, and scaling up/down by adding/removing containers as needed. See also: Containers.
container-solutions.com27
SRE: SRE, which stands for Site Reliability Engineering, evolved independently of the DevOps movement but fits perfectly with it. SRE embodies the DevOps philosophy and then takes it one step further to define an architecture for implementing them. SRE offers a much more prescriptive way to measure and achieve reliability across the full spectrum of DevOps responsibilities. DevOps is a philosophy; SRE is a set of practices. SRE is typically the desired model in very large frameworks, like Google.
WATERFALL: The Waterfall model of software development is based on a logical progression of steps that form the software development life cycle. One follows after the other in strict order, much as a waterfall cascades down from top to bottom. While more Agile methodologies have arisen, causing the Waterfall model to decline in popularity, Waterfall’s sequential process still contains advantages and it remains a common design process in the industry.