Articles contains keyword: use
This is a start of a series on applying developer/operations techniques to a Django project. In this series we will cover the following:
- Getting started with Django
- Defining Dev/Ops and establishing a process
- Setting up the host
- Simple, automated deployments with git
- Basic Continuous Integration w/Jenkins
- Enterprise Deployment Patterns
- Operationalizing Django
- Advanced Continuous Integration and Continuous Delivery
- Configuration Management and Orchestration
There is lots of information available on Dev/Ops. It means many things to many practitioners but to me it's simply automating various aspects of the software development life-cycle. Practically, this means automated testing and deployment. Another important aspect of devops is telemetry, which we cover much later in the series.
Django is a robust, all-purpose web application development framework, born from the news industry. Django requires a "model-first" approach to development, on which many aspects of the code base are centered. From a developer's perspective, this means writing code which denotes the the data and from there generating SQL schema, scaffolding code, and much more. The latest version, Django-1.7 comes complete with many attractive features including, but not limited to the following:
- Object Relational Mapping
- Auto-generated Administration
- Rich Management Capabilities on the CLI
In this article we will dive right into Django and quickly move through the various stages in the Django development cycle. First we will install the necessary dependencies, including Python and virtualenv. Next we'll introduce virtual environment and setup a project. Then we'll begin modeling data, creating views, configuring the url dispatcher, and implementing unit test. All along we'll explain the Django SDK as necessary to provided just enough context to understand what's happening.
Why Django? Well, honestly for no reason other than I wanted to jump into Python. Although, I've heard the Django deployment is "hard" so it seemed to be a good choice for Dev/Ops research.
In this section we will start off by contemplating our CMS, identifying some desired features, and reviewing how to implement those features in Django. Then, we will cover a basic developer workflow, introducing concepts such as Unit Testing and Static Analysis along the way. Next, we'll begin to implement our changes, keeping an eye out for gotchas and process optimization opportunities. Following that, we'll begin to define "devops" more formally for our context and lay some ground rules for devops process development. Finally, we'll review our new position, reflecting on our development process and begin to set forth a basic, yet scalable devops practices.
At this point in the series we have a working CMS with a nice layout and functional dynamic content. We're also setup to use database migrations which will save us a lot of hassle when deploying updates. Now, it's time to put the CMS on a remote host. In this part of the series, DevOps w/Django, we'll get Virtual Private Server with CentOS 7 pre-installed from Digital Ocean, set it up with nginx, Apache httpd with mod_wsgi (and talk about why mod_wsgi?), configure firewalld and otherwise deploy our CMS. Once our site is live, we'll update the content via the administration interface. Finally, we'll review and discuss all this from a "DevOps" perspective.
Create ssh keys and add them to your "ssh keyring" automatically.