Flannel is an open-source virtual network project managed by CoreOS network designed for Kubernetes. Each host in a flannel cluster runs an agent called flanneld . It assigns each host a subnet, which acts as the IP address pool for containers running on the host.
Docker includes multiple logging mechanisms to help you get information from running containers and services. These mechanisms are called logging drivers. Each Docker daemon has a default logging driver, which each container uses unless you configure it to use a different logging driver, or “log-driver” for short.
Configure Docker to user Syslog
In the file editor, uncomment the two lines under `Provides UDP syslog reception` by removing `#`.
systemctl start rsyslog
Now that syslog is running, let’s configure Docker to use syslog as the default logging driver. We’ll do this by creating a file called daemon.json
Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration.
Benefits of Docker Compose
Single host deployment – This means you can run everything on a single piece of hardware
Quick and easy configuration – Due to YAML scripts
High productivity – Docker Compose reduces the time it takes to perform tasks
Security – All the containers are isolated from each other, reducing the threat landscape
Just quick post with example about docker-compose file to show you how much powerful this instead of running docker compose
Imagine you are having multiple instances and you want to change something, if you will do this manually it will take time from you why not to automte the process ?
I upladed one of the projects to automate the process, this will allow to automate the simplest things for example new employee joined and you need to add his SSH key to your instances (You can even choose which VM you want to him/her to acces) , just add the key in the roles and configure the pipeline on your rep and the code will run Automtically.
DevOps is the union of people, process, and products to enable continuous delivery of value to your end users. Azure DevOps is a set of services that gives you the tools you need to do just that. With Azure DevOps, you can build, test, and deploy any application, either to the cloud or on premises. DevOps practices that enable transparency, cooperation, continuous delivery and continuous deployment become embedded in your software development lifecycle.
Azure DevOps provides several tools you can use for better team collaboration. It also has tools for automated build processes, testing, version control, and package management. That’s quite a bit to cover! We’ll get to all the tools eventually. For now, let’s follow the team as they begin with an overview of what Azure DevOps is and how they can get started.
Agile is a term that’s used to describe approaches to software development, emphasizing incremental delivery, team collaboration, continual planning, and continual learning. Agile isn’t a process as much as it is a philosophy or mindset for planning the work that a team will do. It’s based on iterative development and helps a team better plan for and react to the inevitable changes that occur in software development. Let’s listen in on Mara’s discussion with Andy after the latest release.
Recommendations for adopting Agile
Create an organizational structure that supports Agile practices
Mentor team members on Agile techniques and practices
Enable in-team and cross-team collaboration:- If collaboration is the key to becoming successful at Agile, what are some of the ways you can encourage it? Here are some ideas.
Azure Boards is a tool in Azure DevOps to help teams plan the work that needs to be done. The Tailspin team will use this tool to get a better idea of what work needs to be done and how to prioritize it.
In the Description field, type The Space Game website.
Under Visibility, you choose whether to make your project public or private. For now, you can choose private.
Under Version control, make sure that Git is selected. Under Work item process, make sure that Basic is selected.
Create a team
Select Project settings in the lower-left corner.
On the Project details page, under General, select Teams.
Select Space Game – web Team.
Add team members
Under Members, select + Add.
Enter the email address of the user you’d like to add. Then select Save changes.
Repeat the process for any other members you’d like to add.
Create the board
In the column on the left, point to Boards and select Boards from the menu that appears.
Select Space Game – web Team boards. A blank board appears.
In the To Do column, select the green + button next to the New item field.
Enter Stabilize the build server and then press Enter.
Select the ellipsis (…), and then select Open.
In the Description field, enter this text (The build server keeps falling over. The OS, Ubuntu 16.04, requires security patches and updates. It’s also a challenge to keep build tools and other software up to date.)
Select Save & Close.
Follow the same steps for the next two items.
Create a Git-based workflow
Migrate source code to GitHub and define how we’ll collaborate.
Create unit tests
Add unit tests to the project to help minimize regression bugs.
Drag Stabilize the build server to the top of the stack. Then, drag Create a Git-based workflow to the second item position. Your final board looks like this.
Define a sprint
In the left-side column, select Sprints.
Select Set dates from the upper right.
Leave the name as Sprint 1.
In the Start date field, select the calendar and pick today’s date.
In the End date field, select the calendar and pick the date two weeks from today.
Select Save and Close.
Assign tasks and set the iteration
Under Boards, select Work items.
Select Stabilize the build server.
In the Iteration drop-down list, select Sprint 1.
From the same window, select Unassigned and set yourself as the task owner.
I will try to cover the Docker basics in different posts to allow people and reader understand more about this tools, also i will provide reference in each of the posts in case you need more information:-
Set up your Docker environment
Build an image and run it as one container
Scale your app to run multiple containers
Distribute your app across a cluster
Stack services by adding a backend database
Deploy your app to production
To Understand docker more you can imagine or can been seen as computer inside your current computer, the most cool thing about docker is that you will not even feel that there is another computer running inside your computer and share the same resource of your computer, include to that if you friend ask for the same container all you have to do is send it to them and they will have the same output for anything running at this container.
Why Should i use docker when there are similar solution :-
Very simple to configure.
Docker provides this same capability without the overhead of a virtual machine
Docker provides a consistent environment for the application from dev through production, easing the code development and deployment pipeline.
There is more than these reasons to use docker but i choose to mentioned the one i used docker for, since it will be more reliable and trusted to share something i already done it and used it before.
Basic Vocabulary that you should understand before using Docker:-
Container Vs Image
This is very common question to people who using docker what is the difference between container and image ? so the answer is very simple, Container is running the image but not vice versa, so the container is launched by running an image, and the image is group of executable package that include everything you can imagine to run the application such as libraries, code, .. etc.
Containers vs Virtual Machine
i mentioned earlier that containers/Docker could computer inside your computer which means it’s running on your operating system without any third party solution or client, and share the same resource of your PC, runs a discrete process, taking no more memory than any other executable, making it lightweight.
VM it’s totally different solution which is could be installed in two different way, the first one installed client that control the Server resource using another software such as VMware and ESXI, or the native way for example vmware workstation that installed on the guest PC.
First example on Docker
install Docker, Docker could be installed on different operating system distribution you can check here
if you need more information about docker that installed on your system.
Need to test if your installation is correct without any issue.
The last useful command which listing your image, the image as i already mentioned is executable package to run your code and each image having different executable file depends on your docker purpose.
The first command listing all the images under your machine, the second one List the hello-world image that was downloaded to your machine.