Skip to content

A learning pack to learn the basics of DevOps, what it is for and what you need it for.

Notifications You must be signed in to change notification settings

HeidrichJannic/DevOps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

SYS-Learning Package "DevOps"

A learning pack to learn the basics of DevOps, what it is for and what you need it for.

DevOps the practice (CI/CD for Example)

DevOps combies development and operations to incerease the efficiency, speed, and security of software development and helps to prevent or solve problems that may arise. DevOps Integrates specialist departments directly in order to speed up the software development process for acceptance and delivery.

CI/CD exists to help these processes. CI stands for "Continuous Integration" (Kontinuierliche Integration), CI is about the regular transfer of code changes from all project members to a central repository. The goal is to create a reliable process for compiling and providing software, by promoting collaboration, automation and feedback cycles. Ideally, this process should be automated and run several times a day. CD stands for two things: Continuous Delivery (Kontinuierliche Auslieferung) and Continuous Deployment (Kontinuierliche Bereitstellung). Continuous Delivery is the automation of manual steps that are necessary for the compilation and publication of software. The goal is to always keep the code of a project in a release-ready state. Continuous delivery can speed up software delivery processes by making them automated instead of manual. Continuous deployment, on the other hand, takes the idea of automating build, test and deployment steps. Small code changes are regularly applied by running them through an automatic build and test process. If no problems arise, the changes are transferred to the production process. Continuous deployment allows new features to be implemented as quickly as possible.

Note

CI/CD allows many teams to publish more frequent updates without having to compromise on quality. With CI/CD, code changes run through an automated pipeline that takes over build, test and deployment tasks and > alerts in the event of problems.

Important

CI/CD are DevOps methods that serve to improve the workflow. They are used to test automated builds and test systems more quickly and to provide better and faster feedback.

IoT – What does it mean and where to use it ?

IoT is the Internet of Things. It is a term used to describe the technologies and global infrastructure of information societies that enable physical and virtual objects to be networked with each other and to work together using information and communication technologies.

Tip

Personally, I would use it to network my devices, the easiest and most efficient way to use my devices in my home.

Even today, IoT concepts are already being used to make life at easier, for example SmartHome is the smart and efficient way to control your home.

Bicep – Microsoft Language for Resources

Bicep is a Domain Specific Language (DSL) for deploying Azure resources declaratively. It goal is to simplify the authoring experience with a cleaner syntax, improve type safety and better support for modularity and code reuse. Bicep is transparent, that means anything what can be done in ARM Template can be done in Bicep.

Bicep code is transpiled into ARM template JSON files, which effectively treats the ARM template as an intermediate language. In addition, the language should be transparent at all times for all underlying platforms.

Note

Declaratively: The description of the problem is in the foreground. The solution is calculated automatically.
Transpiled: Is the process of converting source code from one programming language to another.

Azure Subscription, Resource Groups

Azure Subscription is an arrangement with Microsoft for the use of one or more cloud platforms or services that is used for provision, control and billing. After creating an Azure account, you get free access to all Azure services for 12 months. In total there are more than 55 Azure services.

Resource groups are containers that contain related resources for Azure solutions. The resource group can contain all resources for the solution or only the resources that you want to manage as a group. The resource group stores metadata about the resources.

Important

Therefore, when you specify a location for the resource group you are specifying where that metadata is stored. For compliance reasons, you may need to ensure that your data is stored in a particular region.

Blob – Storage Type and what to store in it ?

Blob storage is a type of cloud storage for unstructured data. A "blob", short for binary large object, is a mass of data in binary form that does not necessarily match a file format. These measures of data are called data lakes. In everyday life, the strong scalability and security supports the use of blob storages.

Git – Source Control

Git is a shared version control system that enables software development teams to create multiple separate local copies of the project's code base.

Information about Pull Request

A pull request is a proposal to merge a set of changes from one branch into another. In a pull request, project members can review and discuss the proposed changes before integrating the changes into the standard code base. Pull requests also show the differences between the content in the source branch and the content in the target branch.

Note

  • When working in the shared repository model, it is recommended to use a topic branch for your pull request. While you can send pull requests from any branch or commit, a topic branch allows you to push follow-up commits when you need to update your submitted changes.
  • You should be careful when pushing to avoid committing on the main branch. You also have to be careful not to change the history of the repository too much when you force push.

Information about Branch

Branches allow you to develop features, fix bugs and safely experiment with new ideas in an area of your repository. You always create a branch from an existing branch. Normally you would create a new branch from the standard branch of your repository. You can then work in this branch regardless of changes made by other people in the repository.

Information about Commit

Similar to saving a file that has been edited, a commit records changes to one or more files in your branch. Git assigns each commit a unique ID, known as a SHA or hash. This identifies the following:

  • The respective changes
  • The time of the changes
  • Who made the changes

When you make a commit, you must add a commit message that briefly describes the changes.

GitHub

GitHub is a onlinecompany for software development. GitHub allows to create, store, change, merge, and collaborate on files or code. Any member of a team can access the GitHub repository and see the most recent version in real-time. Then, they can make edits or changes that the other collaborators also see.

Repository

A repository is the most basic element of GitHub. It is a place where you can store your code and files, including their version history. Repositories can have multiple project members and can be either public or private.
To see how to create a new repository, go to https://github.com/new. For instructions, see Quick Start for Repositories.

Action

With GitHub Actions, you can automate, customise and execute your software development workflows directly in your repository. You can discover, create and share actions to execute any job (including CI/CD). You can also combine actions into a fully customised workflow. For more informations, see GitHub Actions-Dokumentation.

Service Prinzipal-Azure Deployment

Service Principals are security objects within a Microsoft Entra application that define what an application can do in a particular tenant. They are set up in the Azure portal during application registration and configured for access to Azure resources, such as Azure DevOps. By adding service principals to your organisation and setting up permissions, we can determine whether a service principal is authorised to access your company resources and to which resources. To learn how this works, you can simply take this short tutorial.

Azure Resources to host a Website

Cloud technologies can turn on and off like a tap. It's becoming so much easier to build solutions in Azure, each and every day. Azure provides a myriad off services, from compute to data analytics. We'll focus on several app hosting services, also known as compute services. This documentation include the following resources.

Virtual Machines

Virtual Machine, is one of Microsoft's first cloud services. Where you have control over everything from the hardware to the operating system and applications. This can be useful if you have special requirements, such as support for legacy applications or runtime stacks, or additional dependencies or custom scripts that you need to run. The downside, however, is that you have to manage the entire stack from start to finish. And what about high availability and load balancing? You have to take care of that too.

Azure App Service

While virtual machines provide full access and support for almost any solution or dependency, Azure App Service is more limited. However, it is a fully managed hosting environment, which means you have much less to manage. With Azure App Service Web Apps, you can easily integrate manual or automated development platforms like GitHub to publish your code and many standard features are available with just a few clicks. The platform is designed to support modern, highly scalable web applications that take much less effort to manage.

Azure Functions

While you won't be running full MVC web applications with Azure Functions, you can definitely expose APIs. Azure Functions is considered a "serverless" technology. If you have a small piece of code that you need to run in response to a trigger (think "event-driven architecture"), Azure Functions might be a good option. You only pay for the execution time and resources, and it supports multiple languages.

Container in Azure

Firstly, it's good to know that Azure App Service or Azure Functions support containers. If you're building a solution that requires specific dependencies or languages that aren't supported by Azure App Service or Azure Functions, you can deploy your solution with a custom Docker container. Azure also offers several container-specific services. With Azure Container Instances, for example, you can quickly deploy simple containerised solutions. If your solution requires advanced monitoring, scaling and orchestration.

Note

In case you are doing the same task as me, I would recommend Azure Service App. It fulfils all the necessary requirements and the automation with GitHub is a powerful feature that significantly simplifies the workflow.

  • For a simple documentation on how to set up a website, this tutorial will help.

About

A learning pack to learn the basics of DevOps, what it is for and what you need it for.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published