<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: luismanuu</title>
    <description>The latest articles on DEV Community by luismanuu (@luismanuu).</description>
    <link>https://dev.to/luismanuu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F188101%2Fcb82335c-6b21-470b-82a6-723b246cfb9b.jpg</url>
      <title>DEV Community: luismanuu</title>
      <link>https://dev.to/luismanuu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/luismanuu"/>
    <language>en</language>
    <item>
      <title>DevOps Project Part 1: 3-tier Web Application</title>
      <dc:creator>luismanuu</dc:creator>
      <pubDate>Wed, 24 May 2023 19:48:55 +0000</pubDate>
      <link>https://dev.to/luismanuu/devops-project-part-1-3-tier-web-application-1o9e</link>
      <guid>https://dev.to/luismanuu/devops-project-part-1-3-tier-web-application-1o9e</guid>
      <description>&lt;p&gt;As promised, the next posts will be about a DevOps project that covers various aspects. From setting up a website architecture manually to incorporating DevOps tools, and eventually exploring cloud containers and infrastructure as code. It's an exciting opportunity for me to gain practical experience in building resilient and scalable systems. I look forward to sharing my progress and insights with you as I continue this journey. &lt;/p&gt;




&lt;h1&gt;
  
  
  Overview
&lt;/h1&gt;

&lt;p&gt;Our solution comprises several key components:&lt;/p&gt;

&lt;p&gt;Infrastructure: AWS&lt;br&gt;
Webserver: Red Hat Enterprise Linux 8&lt;br&gt;
Database Server: Ubuntu 20.04 with MySQL&lt;br&gt;
Storage Server: Red Hat Enterprise Linux 8 with NFS&lt;br&gt;
Programming Language: PHP&lt;br&gt;
Code Repository: GitHub&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3txIA7o2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lfv0ob3yivzacwy1yq34.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3txIA7o2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lfv0ob3yivzacwy1yq34.png" alt="3 tier Web architecture" width="553" height="594"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To visualize the architecture, we follow a common pattern where multiple stateless web servers share a centralized database, and they access shared files through the Network File System (NFS). This setup allows our web servers to seamlessly serve the same files, as if they were locally stored, providing efficient and reliable file access across the infrastructure.&lt;/p&gt;



&lt;p&gt;Follow the steps provided on documentation to implement this architecture on AWS:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/luismanuu"&gt;
        luismanuu
      &lt;/a&gt; / &lt;a href="https://github.com/luismanuu/DevOps-3TierWebApp"&gt;
        DevOps-3TierWebApp
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      3 Tier Web Application DevOpsPBL
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
DevOps-3TierWebApp&lt;/h1&gt;
&lt;h2&gt;
DevOps PBL&lt;/h2&gt;
&lt;p&gt;Implement a solution that consists of following components:&lt;/p&gt;
&lt;p&gt;1.Infrastructure: AWS&lt;/p&gt;
&lt;p&gt;2.Webserver Linux: Red Hat Enterprise Linux 8&lt;/p&gt;
&lt;p&gt;3.Database Server: Ubuntu 20.04 + MySQL&lt;/p&gt;
&lt;p&gt;4.Storage Server: Red Hat Enterprise Linux 8 + NFS Server&lt;/p&gt;
&lt;p&gt;5.Programming Language: PHP&lt;/p&gt;
&lt;p&gt;6.Code Repository: GitHub&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/luismanuu/DevOps-3TierWebApp"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;&lt;strong&gt;Important&lt;/strong&gt;: Do not forget to STOP your EC2 instances after completion of the project to avoid extra costs. Also keep in mind instance DNS change after turning off.&lt;/p&gt;




&lt;h2&gt;
  
  
  Lessons learned (In my case):
&lt;/h2&gt;

&lt;p&gt;-Understanding basic of AWS networking (subnets, private ips, Security groups inbound/outbound)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Creating partitions using **gdisk **utility.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Managing physical, logical and group volumes with &lt;strong&gt;pvcreate&lt;/strong&gt;, &lt;strong&gt;vgcreate&lt;/strong&gt;, &lt;strong&gt;lvcreate&lt;/strong&gt; utilities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Format logical volumes with **mkfs **utility.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mount logical volumes in NFS server with &lt;strong&gt;mount *&lt;em&gt;utility and make them persist by modifying *&lt;/em&gt;/etc/fstab&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mount in web server directory and target to NFS server’s using &lt;strong&gt;mount&lt;/strong&gt; utility&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Installing and configuring a NFS server with &lt;strong&gt;nfs-utils&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Next steps&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding Load Balancer&lt;/li&gt;
&lt;li&gt;Implementing Jenkins as DevOps tool&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>beginners</category>
      <category>projects</category>
      <category>aws</category>
    </item>
    <item>
      <title>Learning fundamentals</title>
      <dc:creator>luismanuu</dc:creator>
      <pubDate>Fri, 19 May 2023 01:07:02 +0000</pubDate>
      <link>https://dev.to/luismanuu/learning-fundamentals-51o0</link>
      <guid>https://dev.to/luismanuu/learning-fundamentals-51o0</guid>
      <description>&lt;p&gt;Hello!&lt;/p&gt;

&lt;p&gt;Journey continues and I've been diving into research of essential topics, from software theory to networking intricacies. Alongside, I've discovered practical websites that can be valuable resources for those seeking additional assistance. Last but not less important, I have been practicing on some small tutorials to learn more about the tech stacks that we talk about in last post.&lt;/p&gt;

&lt;h2&gt;
  
  
  Important topics to research
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Software Development Life Cycle (SDLC):&lt;/strong&gt; The Software Development Life Cycle (SDLC) is a systematic approach to software development that ensures the delivery of high-quality software products. It consists of a series of well-defined phases, including requirements gathering, system design, implementation, testing, deployment, and maintenance. Each phase has its specific goals and activities, and following the SDLC helps teams maintain a structured and efficient development process. By adhering to the SDLC, organizations can ensure that software projects are completed on time, within budget, and meet the specified requirements.&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;'chmod' and 'chown' Commands in Linux:&lt;/strong&gt; In Linux, 'chmod' and 
'chown' are commands used to manage access rights and ownership of files and directories. 
'chmod' (short for "change mode") allows you to modify the permissions granted to users, groups, and others on a file or directory. It controls who can read, write, and execute the file. 
+'chown' (short for "change owner") enables you to change the ownership of a file or directory, allowing you to transfer ownership between users or groups. Understanding and properly utilizing these commands is essential for managing file permissions and ensuring data security and access control in a Linux environment.&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TCP and UDP Protocols and Commonly Used Ports:&lt;/strong&gt; TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) are two core protocols used in computer networks for transmitting data over the Internet. 
TCP is a reliable, connection-oriented protocol that guarantees the delivery of data packets in the order they were sent. 
UDP, on the other hand, is a connectionless protocol that offers faster transmission but does not guarantee the order or reliability of data delivery.&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Database Management Systems:&lt;/strong&gt; Can be categorized into Relational DBMS and NoSQL DBMS. 
Relational DBMS, such as MySQL and PostgreSQL, organize structured data into predefined schemas and employ SQL. They excel in maintaining data integrity and are suitable for complex transactions. 
NoSQL DBMS, like MongoDB and Cassandra, handle unstructured and rapidly changing data with flexible schema options. They prioritize scalability and high-performance retrieval. The key difference lies in the data models and trade-offs. 
Relational DBMS suit structured data and complex relationships, while NoSQL DBMS are ideal for unstructured data and scalability. The choice depends on factors like data nature, relationships, performance, and scalability needs. &lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Web Application Frameworks:&lt;/strong&gt; Are software frameworks that simplify the development of web applications. They provide tools, libraries, and components for building efficient and structured web applications. 
There are two main types of web application frameworks: server-side (backend) frameworks and client-side (frontend) frameworks. 
Server-side frameworks, like Django, Ruby on Rails, and Express.js, handle the server-side logic of web applications. They manage routing, database integration, session management, authentication, and data processing. These frameworks generate HTML and deliver it to the client browser.
Client-side frameworks, such as React, Angular, Vue.js, and Ember.js, focus on enhancing the user interface and user experience of web applications. They run in the browser and enable dynamic interactions without page reloads. These frameworks handle DOM manipulation, data binding, component management, and state management, facilitating the creation of responsive and interactive user interfaces.&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RESTful API:&lt;/strong&gt; Is a widely used concept in web development that enables different applications to communicate and exchange data. It follows a client-server architecture and utilizes standard HTTP methods to perform operations on resources. RESTful APIs promote scalability, modularity, and interoperability, making them essential for building and integrating web applications.&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The OSI (Open Systems Interconnection) model:&lt;/strong&gt; Is a conceptual framework consisting of seven layers that define how computer systems should communicate with each other. Each layer has a specific role in the communication process.
Starting from the physical layer, which deals with the transmission of signals, the data link layer ensures reliable transmission between adjacent nodes. The network layer manages routing and addressing across multiple networks, while the transport layer ensures error-free delivery of data.
Above that, the session layer establishes and manages connections, while the presentation layer handles data formatting and encryption. Finally, the application layer provides services and interfaces for end-user applications.&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Load balancing:&lt;/strong&gt; Is a technique used to distribute incoming network traffic across multiple servers or resources. It helps optimize resource utilization, improve performance, and ensure high availability of services. There are various load balancing techniques such as round robin, least connections, IP hash, weighted round robin, and least response time. Load balancing can be implemented using hardware or software-based solutions and plays a vital role in optimizing performance and scalability while maintaining reliability.&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DevOps Tooling Solution:&lt;/strong&gt;
Jenkins – free and open source automation server used to build CI/CD pipelines.
Kubernetes – an open-source container-orchestration system for automating computer application deployment, scaling, and management.
Jfrog Artifactory – Universal Repository Manager supporting all major packaging formats, build tools and CI servers. Artifactory.
Rancher – an open source software platform that enables organizations to run and manage Docker and Kubernetes in production.
Grafana – a multi-platform open source analytics and interactive visualization web application.
Prometheus – An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.
Kibana – Kibana is a free and open user interface that lets you visualize your Elasticsearch data and navigate the Elastic Stack.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Useful websites for learning:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.openvim.com/"&gt;Practice VIM Editor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.sql-practice.com/"&gt;Practice SQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.jschallenger.com/"&gt;Practice Javascript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://css-challenges.com/"&gt;Practice CSS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Hands on!
&lt;/h2&gt;

&lt;p&gt;I have also documented some basic implementations of tech stack just to get used to the tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/luismanuu/LAMP-stack-basic-implementation"&gt;LAMP stack implementation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/luismanuu/LEMP-stack-basic-implementation"&gt;LEMP stack implementation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Coming next
&lt;/h2&gt;

&lt;p&gt;In a series of posts, I will implement a completely real-world architecture consisting of the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Infrastructure: AWS&lt;/li&gt;
&lt;li&gt;Webserver Linux: Red Hat Enterprise Linux 8&lt;/li&gt;
&lt;li&gt;Database Server: Ubuntu 20.04 + MySQL&lt;/li&gt;
&lt;li&gt;Storage Server: Red Hat Enterprise Linux 8 + NFS Server&lt;/li&gt;
&lt;li&gt;Programming Language: PHP&lt;/li&gt;
&lt;li&gt;Code Repository: GitHub&lt;/li&gt;
&lt;li&gt;Load Balancing&lt;/li&gt;
&lt;li&gt;DevOps Tool&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>devops</category>
      <category>learning</category>
      <category>beginners</category>
    </item>
    <item>
      <title>First steps</title>
      <dc:creator>luismanuu</dc:creator>
      <pubDate>Sat, 13 May 2023 18:01:01 +0000</pubDate>
      <link>https://dev.to/luismanuu/first-steps-40jo</link>
      <guid>https://dev.to/luismanuu/first-steps-40jo</guid>
      <description>&lt;p&gt;I'm excited to take you along the first steps of my journey. I'll be diving into PBL (Project-Based Learning) projects focused on web stacks and Linux administration.&lt;/p&gt;

&lt;p&gt;As a software engineer, I've come to understand that most of what I'll be working on revolves around software, websites, applications, and other tech-related solutions. To achieve this, there are various stacks of technologies that work together seamlessly, and these are commonly referred to as technology stacks. I'll need to understand and implement all of these as I progress in my journey.&lt;/p&gt;

&lt;p&gt;In particular, I'll be checking the following tech stacks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;LAMP (Linux, Apache, MySQL, PHP or Python, or Perl)&lt;/li&gt;
&lt;li&gt;LEMP (Linux, Nginx, MySQL, PHP or Python, or Perl)&lt;/li&gt;
&lt;li&gt;MERN (MongoDB, ExpressJS, ReactJS, NodeJS)&lt;/li&gt;
&lt;li&gt;MEAN (MongoDB, ExpressJS, AngularJS, NodeJS).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While I already have some knowledge of Python and Linux, I'll also be sharing documentation and resources for beginners. For example, if you're new to these topics, I highly recommend checking out these free video tutorials:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=t8pPdKYpowI"&gt;Python Tutorial for Beginners - Learn Python in 5 Hours FULL COURSE - FREE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=wBp0Rb-ZJak"&gt;The Complete Linux Course: Beginner to Power User! - FREE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the upcoming posts, I'll be documenting my experience with implementing these tech stack projects. I hope that my future posts will serve as helpful tutorials for those looking to expand their skills.&lt;/p&gt;

&lt;p&gt;Thanks for reading and stay tuned for more updates!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>devops</category>
      <category>pbl</category>
      <category>techstack</category>
    </item>
    <item>
      <title>Building a Bridge to DevOps: My Journey to Becoming a Versatile Engineer</title>
      <dc:creator>luismanuu</dc:creator>
      <pubDate>Sat, 13 May 2023 02:01:58 +0000</pubDate>
      <link>https://dev.to/luismanuu/building-a-bridge-to-devops-my-journey-to-becoming-a-versatile-engineer-3adk</link>
      <guid>https://dev.to/luismanuu/building-a-bridge-to-devops-my-journey-to-becoming-a-versatile-engineer-3adk</guid>
      <description>&lt;p&gt;Hi, I'm Luis!&lt;/p&gt;

&lt;p&gt;As a software engineer primarily focused on Quality Assurance, I've discovered a deep interest in the intersection of software development and IT operations, and now one of my main goals is to learn as much as possible in my free time. &lt;/p&gt;

&lt;p&gt;Over the years, I've gained expertise in several programming languages like Python, C#, Java, and JavaScript. I've also worked with various QA testing tools such as Cypress, Selenium, Appium, JMeter, and K6. In addition to testing, I've had the chance to work with Linux and cloud platforms like AWS. These experiences have sparked my interest in DevOps, and I'm now actively pursuing opportunities to learn more about this exciting field.&lt;/p&gt;

&lt;p&gt;To achieve my goal, I'm following a learning roadmap that covers everything from foundational concepts to advanced techniques like containerization, continuous integration, and deployment. As I progress along this path, I plan to document my learnings and insights in this blog.&lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://roadmap.sh/devops" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--O01MWduv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://roadmap.sh/images/og-img.png" height="420" class="m-0" width="800"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://roadmap.sh/devops" rel="noopener noreferrer" class="c-link"&gt;
          DevOps Roadmap: Learn to become a DevOps Engineer or SRE
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          Community driven, articles, resources, guides, interview questions, quizzes for DevOps. Learn to become a modern DevOps engineer by following the steps, skills, resources and guides listed in this roadmap.
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--_5maIC-s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://roadmap.sh/manifest/icon32.png" width="32" height="32"&gt;
        roadmap.sh
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Thanks for joining me on this journey! I'm excited to share my experiences and learnings with you, and I hope you find them helpful in your own DevOps endeavors.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>devops</category>
      <category>career</category>
      <category>ti</category>
    </item>
  </channel>
</rss>
