- Python Software Foundation Documentation (PSFDoc)
- GitHub (GH)
- Wikipedia (WP)
- 100 Days of Code – The Complete Python Pro Bootcamp, by Dr. Angela Yu (100PyAYu)
- The Python 3 Standard Library by Example, by Doug Hellmann, B072QZZDV7 (P3SLbE)
- Python Pocket Reference: Python In Your Pocket, by Mark Lutz, B00HZ41PGC (PPR)
- Head First Python: A Brain-Friendly Guide, by Paul Barry, B01N0GU0OC (HFPy)
- The Well-Grounded Python Developer, by Doug Farrell, 2021, 1617297441 (WlGrPD)
- Learning Python: Powerful Object-Oriented Programming, by Mark Lutz, B00DDZPC9S (LPMkLz)
- Programming Python: Powerful Object-Oriented Programming, by Mark Lutz, B004GTLFJ6 (PPMkLz)
- Python Crash Course: A Hands-On, Project-Based Introduction to Programming, by Eric Matthes, B07J4521M3 (PyCrCs)
- Introducing Python: Modern Computing in Simple Packages, by Bill Lubanovic, 2020, B0815R5543 (IPyBLub)
- Practices of the Python Pro, by Dane Hillard, 2020, 1617296082 (PrPyPro)
- Think Python: How to Think Like a Computer Scientist, by Allen B. Downey, B018UXJ9EQ (ThnkPy)
- Python in a Nutshell: A Desktop Quick Reference, 3rd Edition, by Alex Martelli, Anna Ravenscroft, and Steve Holden, 2017, B06Y4DVSBM (PyNutSh)
- The Quick Python Book, by N. Ceder, 1617294039 (QPB)
Infrastructure as code (IaC) is the process of managing and provisioning computer data centers through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools. The IT infrastructure managed by this process comprises both physical equipment, such as bare-metal servers, as well as virtual machines, and associated configuration resources. The definitions may be in a version control system. It can use either scripts or declarative definitions, rather than manual processes, but the term is more often used to promote declarative approaches.
In software engineering, software configuration management (SCM or S/W CM) is the task of tracking and controlling changes in the software, part of the larger cross-disciplinary field of configuration management. SCM practices include revision control and the establishment of baselines. If something goes wrong, SCM can determine what was changed and who changed it. If a configuration is working well, SCM can determine how to replicate it across many hosts.
The acronym “SCM” is also expanded as source configuration management process and software change and configuration management. However, “configuration” is generally understood to cover changes typically made by a system administrator.
The goals of SCM are generally:
- Configuration identification – Identifying configurations, configuration items and baselines.
- Configuration control – Implementing a controlled change process. This is usually achieved by setting up a change control board whose primary function is to approve or reject all change requests that are sent against any baseline.
- Configuration status accounting – Recording and reporting all the necessary information on the status of the development process.
- Configuration auditing – Ensuring that configurations contain all their intended parts and are sound with respect to their specifying documents, including requirements, architectural specifications and user manuals.
- Build management – Managing the process and tools used for builds.
- Process management – Ensuring adherence to the organization’s development process.
- Environment management – Managing the software and hardware that host the system.
- Teamwork – Facilitate team interactions related to the process.
- Defect tracking – Making sure every defect has traceability back to the source.
With the introduction of cloud computing the purposes of SCM tools have become merged in some cases. The SCM tools themselves have become virtual appliances that can be instantiated as virtual machines and saved with state and version. The tools can model and manage cloud-based virtual resources, including virtual appliances, storage units, and software bundles. The roles and responsibilities of the actors have become merged as well with developers now being able to dynamically instantiate virtual servers and related resources.