Mar 26, 2020 Oracle supports large databases, data type support numbers and characters, and it provides data to support object-oriented database storage. An Oracle database has the ability to manage multiple databases using a two-phase commit protocol. Software as a Service, also known as SaaS or on-demand software, is a way of delivering software applications to the end-user over the internet. SaaS can provide great advantages for most businesses, primarily in costs and flexibility. However, disadvantages of SaaS (such as lack of control) are considerable and should not be ignored. One of the primary advantages of software defined networking is that it creates a framework to support more data-intensive applications like big data and virtualization. Big data is anticipated to grow at a compound annual rate of 27 percent according to IDC, which means it will become a $32.4 billion market by 2017. Now letâs see the advantages and disadvantages of Docker in detail. Advantages and Disadvantages of Docker Advantages of Docker. Docker produces an API for container management â Docker produces an API for container management in an image format and a chance to use a remote registry for sharing containers. This scheme serves both developers.
CI/CD Tools Universe: The Ultimate List
As the fastest way to production, the CI/CD pipeline is now mainstream among software companies, forming the backbone of the modern DevOps environment. While DevOps handlesâ¦
Download Now Last updated onPlutora Blog - Agile Release Management, DevOps, Software DevelopmentReading time 13 minutes
Configuration management is an increasingly important foundation for a successful tech platform. Good leaders in the tech space will want to know what it takes to implement it. If thatâs you, youâre in luck! In this post, weâll discuss a few key things:
Sound good? Letâs get going.
What Is Configuration Management?
Hereâs my definition of configuration management: itâs the discipline of ensuring that all software and hardware assets which a company owns are known and tracked at all timesâany future changes to these assets are known and tracked. You can think of configuration management like an always up-to-date inventory for your technology assets, a single source of truth.
With that defined, letâs talk about how it works in practice. Configuration management usually spans a few areas. It often relates to different ideas, like creating âsoftware pipelinesâ to build and test our software artifacts. Or it might relate to writing âinfrastructure-as-codeâ to capture in code the current state of our infrastructure. And it could mean incorporating configuration management tools such as Chef, Puppet, and Ansible to store the current state of our servers.
Where Did Configuration Management Originate?
When I first started learning about configuration management, I found the concept super confusing. However, it turns out that there are reasons for the confusion. But to understand why, we need to look at some history.
We (the Software Industry) Stole the Idea of âConfiguration Managementâ
The idea of configuration management comes from other institutions, such as the military. We took those ideas and retrofitted them into a software context.
How We Make Software Has Changed Over Time
Configuration management was traditionally a purely manual task, completed by a systems administrator. The role was a lot of manual work involving carefully documenting the state of the system. But the industry has changed completely. These changes came from the popularity of DevOps, increases in cloud computing, and new automation tooling.
Now that weâve set the scene, we can dive into the details of configuration management. So letâs get to it!
What the World Looks Like With Configuration Management
Before we explore different tools for configuration management, we need to know what end results weâll receive for our efforts.
What are the outcomes of well-implemented configuration management?
Configuration Management System Software
Letâs cover the benefits.
Benefit 1: Disaster Recovery
If the worst does happen, configuration management ensures that our assets are easily recoverable. The same applies to rollbacks. Configuration management makes it so that when weâve put out bad code, we can go back to the state of our software before the change.
Benefit 2: Uptime and Site Reliability
The term âsite reliabilityâ refers to how often your service is up. Iâve worked at companies where each second of downtime would cost thousandsâoften tens or even hundreds of thousands. Eek!
A frequent cause of downtime is bad deployments, which can be caused by differences in running production servers to test servers. With our configuration managed properly, our test environments can mimic production, so thereâs less chance of a nasty surprise.
Benefit 3: Easier Scaling
Provisioning is the act of adding more resources (usually servers) to our running application. Configuration management ensures that we know what a good state of our service is. That way, when we want to increase the number of servers that we run, itâs simply a case of clicking a button or running a script. The goal is really to make provisioning a non-event.
These are just some of the benefits of configuration management. But there are some other ones, too. Youâll experience faster onboarding of new team members, easier collaboration between teams, and extended software lifecycle of products/assets, among other benefits.
The World Without Configuration Management
Sometimes itâs easier to grasp a concept by understanding its antithesis. What does trouble look like for configuration management, and what are we trying to avoid? Letâs take a look.
A developer implementing a feature will commonly install a few bits of software and deploy code. If things are sloppy, this developer probably makes the team and manager aware of the intention to come back later to clean it all upâthat itâs simply a demonstration and will be rewritten soon.
But then the deadline starts pressing, and the task of going back through and rewriting the installation steps as a script gets pushed lower and lower in priority. Before we know it, several years have passed, and a new developer gets put on the project. That developer is now left to pick up the pieces, trying to understand what happened. Itâs quite likely they arenât even going to touch the configuration of the server. Who knows what it would do!
The above situation is precisely what configuration management helps you avoid. We donât want to be left in the dark as a result of developers setting up software without proper documentation/traceability. Rather, we want to know the answers to questions like
Configuration management can tell us these answers.
That hopefully paints a clearer picture of the problems that configuration management is trying to solve.
How Configuration Management Fits in With DevOps, Continuous Delivery, and Moreâ¦
Hopefully by now youâre starting to get the hang of what configuration management is and what it aims to do. Before we go on to discuss tooling, Iâd like to take a moment to address how configuration management fits in with other software development concepts like agile, DevOps, continuous integration, continuous delivery, and Docker so that you can understand how these concepts fit in with the ideas of configuration management.
Is Configuration Management Compatible With Agile?
Yes. Agile software, by definition, reflects the desire to make changes to our software faster so that we can respond to market demands. Configuration management helps us to safely manage our changes and keep velocity high.
How Does Configuration Management Fit With DevOps?
DevOps is the extension of agile practices across both the development and operations departments. In fact, DevOps seeks to unify the goals of both departments. At some companies, the development department seeks change while the operations department seeks stability. But companies that embrace DevOps want both stability of their deployed assets and frequency of change. However, achieving this outcome requires cultural change.
Like agile, configuration management gives teams the confidence to move quickly with their changes. Under agile practices, the company gives configuration management responsibilities to the development teams, empowering them to provision, configure, and manage their own infrastructure. You build it, you run it.
Where Do Pipelines Fit Into Configuration Managementâ?
Software pipelines are the steps (or âvalue stream,â which we can create with tools like Plutora) that we usually automate, taking code from commit to production. Pipelines usually involve steps such as linting code, unit testing code, integration testing code, and creating artifacts. A software pipeline therefore is a form of configuration management. When we build software with tools like Docker, we codify our build instructions into our Dockerfile. This allows us to better understand the dependencies of our artifacts.
Is Infrastructure-as-Code Configuration Management?
Infrastructure-as-code (or IaC for short) is the practice of ensuring all provisioned infrastructure is done so through code. The purpose of IaC is to have a written record of which services exist, where they are located, and under what circumstance. Configuration management might choose to leverage aspects of IaC in order to achieve the full understanding of all the technology assets a company owns.
Is Continuous Integration/Delivery Configuration Management?
Continuous delivery is the process of ensuring that software is always in a releasable state. You can achieve this through heavy automation and testing. Continuous integration is the process of bringing separate software artifacts together into a single location on a frequent basis, for the purposes of verifying that the code integrates properly. Continuous integration tools, which are typically servers that run automation-testing suites, act as a form of configuration management by providing visibility into the steps required to set up and configure a given software artifact.
That should clear up some of your lingering questions about how configuration management fits with some practices or ideas that you might be using or are familiar with. Any discussion of configuration management would be incomplete, however, without a discussion about tooling. So, letâs take a peek at the different tools we have at our disposal for implementing configuration management.
The Importance of Declarative Style in Configuration Management Tools
Next up, weâre going to discuss configuration management tools. But before we get to that, I need to quickly discuss a concept to consider when comparing tools. And the concept is declarative style. Youâll hear about this terminology a lot if you go out and start looking into different configuration management tools. So, it makes sense to have a firm grasp of what declarative style is, why itâs important, and why so many people are talking about it.
So, what do we mean by declarative style?
And why is declarative style so important for configuration management?
What Do We Mean by Declarative Style?
When it comes to software, having a declarative style means telling your software the end result you want and then letting the software do the work in figuring out the way to get there. The opposite of the declarative style would be a procedural style, where instead of giving an end state, you give instructions on how to get there. The problem with instructions is that theyâre dependent on the starting state.
You can think of it like this: declarative versus procedural is the difference between giving a friend your home address and giving them step-by-step instructions to get to your house from where they are. The problem with giving step-by-step instructions is that it assumes you know where the friend is starting, and it doesnât allow for things to go wrong. Itâs hard to replay steps when youâre in a bad state (i.e., lost!).
Why Is Declarative Style Important for Configuration Management?
By now, youâre probably thinking that declarative style sounds interesting. But why is it important?
Declarative style is important because configuration management is all about knowing the current state of your applications. So when we use configuration management tools, itâs desirable to use a declarative style and specify the end result that we want, not the steps to get there. This means we always know what end state weâre trying to achieve and how thatâs changed over time. Thatâs instead of trying to work out when instructions were run and dealing with the complexities that may arise if certain instructions have failed.
What Are Configuration Management Tools?
There are many different tools for configuration management. In fact, it can get confusing, as there are tools that support configuration management without explicitly being configuration management tools.
For instance, Docker neatly packages up steps needed to set up and run an application (in a Dockerfile). However, people donât often consider Docker a configuration management tool.
To make things clearer, letâs divide up the common tools that might fall under or relate to configuration management:
Configuration Management Tools
These are the tools you see typically associated with configuration management. Tools like Chef, Ansible, and Puppet provide ways to codify steps that we require in order to bring an asset in line with a current definition of how that asset should look. For instance, you might create an Ansible playbook that ensures that all of our X servers have Y installed within them.
Advantages And Disadvantages Of Software Configuration Management SystemInfrastructure-as-Code Tools
Often also called provisioning tools, IaC tools include CloudFormation and Terraform. If our configuration management tools include the setup we need on our assets, our provisioning tools are how we get those assets. Itâs this blurred line that explains why we need to bring these tools into our discussion of configuration management. And many consider it an anti-pattern to use configuration management tools for provisioning.
Pipeline Tools
We talked briefly about software delivery pipelines, but implementing them requires tooling. Popular technologies include Jenkins, CircleCI, and GitLab CI. By using tools to codify our build process, we make it easy for other developers to understand how our artifacts are modified and created, which is a form of configuration management.
Source Control Tools
Source control tools include GitHub, SVN, GitLab, and Bitbucket. While we need to codify our automation in scripts, if we donât appropriately track the history of our changes, then we arenât really achieving configuration management.
Weâre now nearing the end of our introduction to configuration management. Weâve covered what configuration management is, we know the benefits, and weâre now up to date on the latest tools. However, all of this information can be a little overwhelming if youâre asking the simple question of âWhere should I start?â
Letâs break it all down so that you can start your journey into configuration management.
How Can I Get Started With Configuration Management?
Where to start? Do you begin by researching tools? Implementing some automation? Auditing your existing servers? Talking to others in your company?
Where you start with anything always depends on where you currently are. That said, only you are aware of your current situation and the limitations and resources available. Below are three different places you can begin your journey to effective configuration management:
Itâs Time For Everything-as-Code!
And thatâs all! Hopefully that helps to clear things up for you about configuration management. Itâs all about keeping track of the current state of your software and infrastructure.
There are many ways to implement configuration management, and there are lots of different tools and processes. So when it comes to strategy, be sure to take your time assessing options and understanding how you want your configuration management processes to work.
Advantages And Disadvantages Of Software Configuration Management Systems
It will all be worth it in the end, though. Get your configuration management right and your teams will be safer, more productive, and faster to make changes!
Product Configuration Management Software
Good luckâand from now on, audit, track, and write everything-as-code!
Comments are closed.
|
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |