Showing posts with label Administration. Show all posts
Showing posts with label Administration. Show all posts

Tuesday, June 06, 2023

What are popular DevOps tools?

There are numerous popular DevOps tools available in the market, each serving different purposes and stages of the software development lifecycle. Here are some widely used DevOps tools across various categories:

1. Version Control Systems:
   - Git
   - Subversion (SVN)
   - Mercurial

2. Continuous Integration/Continuous Deployment (CI/CD) Tools:
   - Jenkins
   - Travis CI
   - CircleCI
   - GitLab CI/CD
   - TeamCity
   - Bamboo

3. Configuration Management Tools:
   - Ansible
   - Chef
   - Puppet
   - SaltStack

4. Infrastructure as Code (IaC) Tools:
   - Terraform
   - AWS CloudFormation
   - Google Cloud Deployment Manager
   - Azure Resource Manager

5. Containerization and Orchestration Tools:
   - Docker
   - Kubernetes
   - Docker Compose
   - Amazon Elastic Container Service (ECS)
   - Google Kubernetes Engine (GKE)
   - Azure Kubernetes Service (AKS)

6. Continuous Monitoring and Logging Tools:
   - Prometheus
   - Grafana
   - ELK Stack (Elasticsearch, Logstash, Kibana)
   - Splunk
    - Datadog

7. Collaboration and Communication Tools:
   - Atlassian Jira
   - Slack
   - Microsoft Teams
   - Confluence
   - Trello

8. Cloud Providers and Services:
   - Amazon Web Services (AWS)
   - Microsoft Azure
   - Google Cloud Platform (GCP)

9. Testing and Quality Assurance Tools:
   - Selenium
   - JUnit
   - SonarQube
   - JMeter

10. Incident and Event Management Tools:
    - PagerDuty
    - VictorOps
    - OpsGenie
    - Splunk IT Service Intelligence (ITSI)

Please note that this is not an exhaustive list, and the popularity of tools may vary depending on specific requirements and preferences. It's important to assess your organization's needs and choose the tools that best fit your DevOps workflows and goals.

Monday, June 05, 2023

Difference between DevOps and DevSecOps

DevOps and DevSecOps are both approaches to software development and delivery that aim to enhance collaboration and efficiency within an organization. However, there is a distinct focus on security in DevSecOps that sets it apart from DevOps.

DevOps, as mentioned my earlier blog, is a set of practices that combine software development and IT operations. It emphasizes collaboration, communication, and integration between these two teams to streamline the software development lifecycle and enable faster and more reliable software delivery. DevOps aims to break down silos, automate processes, and promote a culture of continuous integration, continuous deployment, and continuous monitoring.

On the other hand, DevSecOps expands on the DevOps principles by integrating security practices throughout the entire software development process. It emphasizes that security should not be an afterthought or a separate stage but should be integrated early and continuously into the development and delivery pipeline. DevSecOps involves making security a shared responsibility of the development, operations, and security teams.

The key differences between DevOps and DevSecOps are:

1. Security Integration: DevOps focuses on collaboration between development and operations, whereas DevSecOps goes a step further by integrating security practices into the DevOps workflow.

2. Shift Left Approach: DevSecOps promotes a "shift left" mentality, where security considerations and practices are incorporated from the early stages of development, such as during coding and design, rather than addressing security issues later in the process.

3. Automated Security Testing: DevSecOps encourages the use of automated security testing tools and techniques to continuously assess and address security vulnerabilities throughout the development pipeline.

4. Compliance and Governance: DevSecOps emphasizes compliance with relevant regulations and industry standards, as well as establishing proper governance processes to ensure security and privacy requirements are met.

By adopting DevSecOps practices, organizations can proactively address security concerns, reduce vulnerabilities, and improve the overall resilience and reliability of their software systems. It recognizes that security is everyone's responsibility and fosters a culture of shared ownership and continuous improvement in terms of security practices.

What is DevOps?

DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) to enable organizations to deliver software applications and services more efficiently, reliably, and rapidly. It emphasizes collaboration, communication, and integration between software developers and IT operations teams to streamline the entire software development lifecycle.

Traditionally, software development and IT operations were separate functions with different goals and timelines. Developers focused on writing code and creating new features, while operations teams were responsible for deploying and maintaining the infrastructure and systems. This division often led to delays, inefficiencies, and misalignment between the two teams.

DevOps aims to break down these silos by promoting a culture of collaboration and shared responsibility. It encourages developers and operations teams to work together closely throughout the entire software development process, from planning and coding to testing, deployment, and monitoring.

Key principles of DevOps include:

1. Continuous Integration and Continuous Deployment (CI/CD): Automating the build, test, and deployment processes to enable frequent and reliable software releases.

2. Infrastructure as Code (IaC): Managing infrastructure and configuration as code, allowing for automated provisioning, scaling, and management of resources.

3. Agile and Lean practices: Applying iterative and incremental development methodologies to increase flexibility and responsiveness.

4. Collaboration and Communication: Fostering effective communication and collaboration between development, operations, and other stakeholders to align goals and share knowledge.

5. Automation: Using tools and technologies to automate manual and repetitive tasks, reducing errors and increasing efficiency.

6. Monitoring and Feedback: Implementing monitoring and feedback mechanisms to gain insights into application performance, user experience, and system health, enabling quick feedback loops and continuous improvement.

By adopting DevOps practices, organizations can achieve faster time-to-market, improved software quality, increased efficiency, and better alignment between development and operations teams. It enables the delivery of software in a more reliable, scalable, and resilient manner, promoting innovation and responding to customer needs more effectively.

Sunday, December 11, 2016

Git Bash Commands Overview

Version Control Systems are software's tools that help a software team to manage changes to their source code. It keeps track of every modification to the code. If a mistake is made, developers can compare earlier versions of the code and/or revert back the changes to help fix the mistakes without disrupting the other team members.

As of now, the most widely used modern version control systems in the world are Git, TFS, SourceSafe and SVN.

Git is a mature, actively maintained open source project originally developed by Linus Torvalds, the famous creator of the Linux operating system kernel, in the year 2005.

Having a distributed architecture, Git is an example of "Distributed Version Control System" (DVCS). Rather than having only one single place for the full version history, every developer's working copy of the code can be treated as a repository in Git. In addition to being distributed, Git has been designed with performance, security and flexibility in mind.

Here is a list of some common terms used in Git:

Blob stands for Binary Large Object. Each version of a file is represented by blob, which holds the file data but doesn’t contain any metadata. It is a binary file and in Git database, it is named as SHA1 hash of that file.

Tree is an object as binary file, which represents a directory. It also holds blobs as well as other sub-directories. It stores references to blobs and trees which are also named as SHA1 hash of the tree object.

HEAD is a pointer, which always points to the latest commit in the branch. Whenever you make a commit, HEAD is updated with the latest commit. The heads of the branches are stored in ".git/refs/heads/" directory.

Clone operation creates the local instance of the repository. It acts as mirroring of the complete remote repository. Users can perform any operations with this local repository. The only time networking gets involved is when the repository instances are being synchronized.

Branches are used to create another line of development from the repository's master branch to work on a new feature. Once the feature is completed, it is merged back with the master branch and we delete the branch. Every branch is referenced by HEAD, which points to the latest commit in the branch. Whenever you make a commit, HEAD is updated with the latest commit.

Pull operation copies the changes from a remote repository instance to the local repository. The pull operation is used for synchronization between two repository instances.
Push operation copies changes from a local repository instance to the remote repository. This is used to store the changes permanently into the Git repository.
Commit operation holds the current state of the repository. A commit is also named by SHA1 hash code. Every commit object has a pointer to the parent commit object.
Tag assigns a meaningful name with a specific version in the repository. Tags are very similar to branches, but the difference is that tags are immutable. Once a tag is created for a particular commit, even if you create a new commit, it will not be updated. Usually, developers create tags for product releases.

Wednesday, May 04, 2011

Remote Server Administration Tools for Windows 7

Remote Server Administration Tools for Windows 7 with SP1 enables IT administrators to manage roles and features that are installed on remote computers that are running Windows Server 2008 R2 with SP1 or Windows Server 2008 R2 (and, for some roles and features, Windows Server 2008 or Windows Server 2003) from a remote computer that is running Windows 7 or Windows 7 with SP1. It includes support for remote management of computers that are running either the Server Core or full installation options of Windows Server 2008 R2 with SP1, Windows Server 2008 R2, and for some roles and features, Windows Server 2008. Some roles and features on Windows Server 2003 can be managed remotely by using Remote Server Administration Tools for Windows 7 with SP1, although the Server Core installation option is not available with the Windows Server 2003 operating system.

This feature is comparable in functionality to the Windows Server 2003 Administrative Tools Pack and Remote Server Administration Tools for Windows Vista with Service Pack 1 (SP1).

Remote Server Administration Tools for Windows 7 with SP1 can be installed on computers that are running the Enterprise, Professional, or Ultimate editions of Windows 7 or Windows 7 with SP1. This software can be installed ONLY on computers that are running the Enterprise, Professional, or Ultimate editions of Windows 7 or Windows 7 with SP1; it cannot be installed on target servers that you want to manage.

Both x86- and x64-based versions of Remote Server Administration Tools for Windows 7 with SP1 are available for download on this page. Download and install the version that matches the architecture of the computer on which you plan to install the administration tools.

For more information go to MSDN for help. You can download this for 32 bit and 64 bit in the this URL.

Monday, April 11, 2011

10 Great Features in 10 Different OSes

If you are making the ultimate OS, what features would you choose?

  1. Mac OS X, Time Machine: Apple introduced Time Machine backup software with the Mac OS X 10.5 in 2007. You can back up to a local drive connected via USB or Fire wire, or even to network storage via Ethernet or Wi-Fi. As long as your backup volume is available. Time Machine creates hourly, daily and weekly incremental backups of your system.
  2. Unix, The Shell Terminal: There's always tension between command-line and graphical interfaces, and for the last decade or more, GUIs have been the dominant face of most OSes. But as Max Steenbergen writes in his article "Commands Lines: Alive & Kicking" for UX Magazine, the command line is making a comeback via app launchers like Alfred, Launchy and GNOME Do.
  3. Ubuntu, Simplified Linux Setup: Ubuntu aims for easy installation and configuration, and that's been my experience so far. You can download a live CD ISO or a Windows installer to get going. It doesn't require much of a commitment if you just want to give Ubuntu a try. Burn the ISO to CD and boot from that, or install it in a virtual machine using VirtualBox, Virtual PC or VMWare Player
  4. BeOS, 64-Bit Journaling File System: When Jean Louis Gasse left Apple, he founded a new team that created the charming and forward-looking BeOS in 1991.The file system included with BeOS, however, is one of its truly cool features. Called BFS (BeOS File System), it was a 64-bit journaling file system using file attributes, or metadata. The ability to query and sort against file metadata gave BFS some relational database-like quality similar to what we may finally see via WinFS in Windows 8. The 64-bit address space gave BFS the theoretical ability to support volumes of more than eight exobytes and files over 30 GB. This at a time when 30 GB hard drives were hardly commonplace.
  5. IRIX, SGI Dogfight: The first components of what would become the Dogfight demo were created by Gary Tarolli in the early '80s. OK, technically Dogfight wasn't an OS feature like some of the other items we've discussed here, but it was designed specifically to highlight the advanced (for the time) 3D rendering capabilities of SGI's systems.
  6. NeXTSTEP, Right-Click Context Menu: While the Mac OS didn’t embrace the right-click context menu until much later, it was an OS feature from the start in NeXTSTEP.
  7. MS-DOS, BASIC: MS-DOS was undeniably the dominant desktop operating system throughout the '80s, and every one of those computers running MS-DOS included the Microsoft BASIC programming language in one form or another. In fact, the version of BASIC created by Paul Allen and Bill Gates predates even MS-DOS, originating as Altair BASIC in the '70s
  8. Windows 3.0, Alt-Tab Task Switching: Pressing the Alt and Tab keys brings up a window that displays an icon for each open window present on the system (even if minimized). The currently active window is highlighted by default. Holding down the Alt key, you release and press the Tab key to move the highlight to the next window, thereby making it the active window and bringing it to the front.
  9. iOS, Multi-Touch: The introduction of what we now know as iOS for the iPhone in 2007, however, represented the first chance for many of us to have a hands-on experience with multi-touch
  10. Windows 7, Start Menu and Taskbar: The Start menu and taskbar as we know them in Windows today debuted in Windows 95. With each new release of Windows, new features have been added: integrated search, pinned applications, recently used files and one-click access to often used folders and system configuration tools. Vista added the ability to type a string into the search box and get a list of files and applications matching that string. Windows 7 made that feature actually work properly (mostly through more efficient file indexing) and added per-application recently used file listings.

These are captured from blog of Terrence Dorsey, who is the editor of MSDN Magazine.

Sunday, December 05, 2010

T-SQL: Change tables owner to dbo with sp_changeobjectowner

Sometimes there is a need to change all tables in the database to be owned by dbo for maintenance or to fix up accidental errors. All tables owned by dbo schema is usually best practices in the database application development with MSSQL.

The following small SQL code snippet goes through all user tables in the database and changes their owner to dbo. It usessp_changeobjectowner system stored procedure

    SELECT 'dips.' + [name]
      FROM sysobjects
     WHERE xtype = 'u'
OPEN tabcurs
FETCH NEXT FROM tabcurs INTO @tname
WHILE @@fetch_status = 0
    EXEC sp_changeobjectowner @tname, 'dbo'
    FETCH NEXT FROM tabcurs INTO @tname
CLOSE tabcurs

Hope this is useful..

Thursday, October 28, 2010

Under standing Local Service, Local System and Network Service?

The main difference between these Local Service, Local System and Network Service mainly relay on the security principals. I have website I need to configure remote connections. When we use SQL Server, so when allowing remote connections and you might think which Service account you should use to run SQL Server.

You should use Local non-system or Service account. If this SQL Server service require to access the network resources you can use a ordinary Domain account.

  • Domain User Account
    If the service must interact with network services, access domain resources like file shares or if it uses linked server connections to other computers running SQL Server, you might use a minimally-privileged domain account. Many server-to-server activities can be performed only with a domain user account. This account should be pre-created by domain administration in your environment.
  • Local User Account
    If the computer is not part of a domain, a local user account without Windows administrator permissions is recommended.

Following are NOT advised as it grant more privileges than required for running SQL Server Services

  • Local System is a very high-privileged built-in account. It has extensive privileges on the local system and acts as the computer on the network. The actual name of the account is "NT AUTHORITY\SYSTEM".
  • The Local Service account is a built-in account that has the same level of access to resources and objects as members of the Users group. This limited access helps safeguard the system if individual services or processes are compromised. Services that run as the Local Service account access network resources as a null session without credentials. Be aware that the Local Service account is not supported for the SQL Server or SQL Server Agent services. The actual name of the account is "NT AUTHORITY\LOCAL SERVICE".
  • The Network Service account is a built-in account that has more access to resources and objects than members of the Users group. Services that run as the Network Service account access network resources by using the credentials of the computer account. The actual name of the account is "NT AUTHORITY\NETWORK SERVICE"

Please consider the below recommendations:

  • Always run SQL Server services by using the lowest possible user rights.
  • Use a specific low-privilege user account or domain account instead of a shared account for SQL Server services.
  • Use separate accounts for different SQL Server services.
  • Do not grant additional permissions to the SQL Server service account or the service groups