<?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: Rafael Monteiro</title>
    <description>The latest articles on DEV Community by Rafael Monteiro (@rafaelmonteiro).</description>
    <link>https://dev.to/rafaelmonteiro</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%2F125615%2F6cb16031-aabb-4026-9fd8-7f230f14885f.jpeg</url>
      <title>DEV Community: Rafael Monteiro</title>
      <link>https://dev.to/rafaelmonteiro</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rafaelmonteiro"/>
    <language>en</language>
    <item>
      <title>Microservices</title>
      <dc:creator>Rafael Monteiro</dc:creator>
      <pubDate>Fri, 18 Jan 2019 07:42:07 +0000</pubDate>
      <link>https://dev.to/rafaelmonteiro/microservices-1lgf</link>
      <guid>https://dev.to/rafaelmonteiro/microservices-1lgf</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Since the explosion of SaaS applications there have been a lot of innovation&lt;br&gt;
in the area of APIs which provide an important interaction between application functionalities.  &lt;/p&gt;

&lt;p&gt;The main idea around microservices is that, in general, applications tends to become easier to develop when they are treated as modules. Considering that, each piece is developed separately, being the application a composition of all parts working together. It opposes the traditional development where the application is considered a 'monolithic' entity.  &lt;/p&gt;

&lt;p&gt;That way, developers can focus on their own core business while other specialists provide the components needed, which will be accessed through APIs.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdzone.com%2Fstorage%2Ftemp%2F570495-slide1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdzone.com%2Fstorage%2Ftemp%2F570495-slide1.png" alt="Monolithic vs Microservice"&gt;&lt;/a&gt;&lt;/p&gt;
Monolithic vs Microservice



&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;In general, a microservice provide an API endpoint commonly (but not exclusively) through a stateless REST API which can be accessed via HTTP as a traditional webpage. So, consuming those services is easy, as they only require tools and methods that developers are already familiar with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits
&lt;/h2&gt;

&lt;p&gt;When applications components are splitted, development time is optimized as they are produced concurrently.  Besides that, modules created with this thought in mind are easier to be reused in other contexts/applications.  &lt;/p&gt;

&lt;p&gt;Resilience appears as an additional advantage as components can be spread into multiple servers or even various data centers. In case of a component failure, you can quickly replace it while the rest of application can continue to work as expected.  &lt;/p&gt;

&lt;p&gt;Scaling become more efficient too, because you can focus on most demanding parts rather than simply duplicating the entire application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;p&gt;There are several players in various areas, as one can see in the image below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Frafaelmonteiro.github.io%2Fimages%2Fmicroservices_players.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Frafaelmonteiro.github.io%2Fimages%2Fmicroservices_players.jpg" alt="Microservices players"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="http://rafaelmonteiro.github.io/" title="Microservices players" rel="noopener noreferrer"&gt;Microservices players (image by Menlo Ventures)&lt;/a&gt;.




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Microservices demands a conceptual change in IT departments towards a DevOps culture, in which development and operations teams work aligned to support an application through its lifecycle, and go through a fast or even continuous release cycle rather than a traditional long one.&lt;/p&gt;

&lt;p&gt;Though they are not a silver bullet, microservices must be considered when architecting a new application or refactoring an old one.&lt;/p&gt;

</description>
      <category>saas</category>
      <category>microservices</category>
      <category>api</category>
    </item>
    <item>
      <title>14 useful tools for network engineers</title>
      <dc:creator>Rafael Monteiro</dc:creator>
      <pubDate>Thu, 03 Jan 2019 06:27:13 +0000</pubDate>
      <link>https://dev.to/rafaelmonteiro/14-useful-tools-for-network-engineers-2d0l</link>
      <guid>https://dev.to/rafaelmonteiro/14-useful-tools-for-network-engineers-2d0l</guid>
      <description>

&lt;p&gt;It's interesting that a network professional know some tools which can increase his productivity and make his work easier.&lt;/p&gt;

&lt;p&gt;Although some tools - especially ARPSpoof, nmap, TCPTraceroute and AirCrack - can be used in malicious contexts - as to perform reconnaissance and probe for weaknesses in preparation for attacks - they also have value for legitimate purposes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AirCrack&lt;/strong&gt; - Can reveal who's using the wireless network and can be used to troubleshoot issues. Also it's a great tool for discovering nearby wireless networks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ARPSpoof&lt;/strong&gt; - Hackers use it to send spoofed ARP requests trying to pair MAC and IP addresses of networked devices. But it can also be used to create man-in-the-middle monitoring of activity without having to install a device on the span port of a router, for instance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cacti&lt;/strong&gt; - It gathers and graphs SNMP values over time, giving a picture of device utilisation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;cURL&lt;/strong&gt; - Basically this tool moves data to and from servers and it is really useful in measuring the response time of Web sites.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Elasticsearch&lt;/strong&gt; - It is a search server that can be paired with Logstash and Kibana (ELK) to gather log data and create dashboards. Elasticsearch provides the search capabilities and Kibana renders the data to create the dashboards.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;fprobe&lt;/strong&gt; - Listening to specified interfaces and gathering NetFlow data about traffic going through is the primary purpose of fprobe. It can be used to detect undesired traffic types, such as video streaming services in a corporate environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;iperf&lt;/strong&gt; - This tool measures throughput, packet loss and jitter, and supports both UDP and TCP packets to determine quality of connections between devices on a network. It can graph the data it gathers to see how network conditions vary over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;nfdump&lt;/strong&gt; - Flow information gathered by fprobe can be exported to nfdump, which stores it in a file system that it can read and use to display the data based on protocols and rank top users. One kind of application is to discover time-of-day congestion issues, for example.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nmap&lt;/strong&gt; - This is a powerful tool for network, device and service discovery useful for network scanning and for performing security audits. It can scan for specific ports and determine, for example, whether they are open or not. It can scan devices by subnet and deliver valuable information such as what type of traffic devices are putting out. In addition to discovering what devices are on the network, Nmap can scan for services that are active and perform pointer-record lookups and reverse DNS lookups which may help ID what kind of device it has found.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenNMS&lt;/strong&gt; - This tool, which monitors devices and services, issues alerts when they go down and can write availability reports on devices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smokeping&lt;/strong&gt; - It measures latency and packet loss that can be analysed over time to reveal changes in latency that can be used for troubleshooting or network planning. It does this by firing off Ping packets at regular intervals and recording the response times. Spikes that show up on graphs of the data gathered indicate when response-time troubles arise and can help narrow down investigations into their causes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Snort&lt;/strong&gt; - This is a intrusion detection ID tool that can be used to live-monitor networks, but it can also be used to apply rules to a set of trace files captured. It can be paired with logging tools like ElasticSearch and LogStash, and the gathered data can be analysed, with rules set to look for specific conditions and send alerts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TCPTraceroute&lt;/strong&gt; - This tool traces paths through networks using TCP rather than ICMP. It's good for finding what's blocking traffic in transit, such as firewalls configured to block the ports the traffic needs to use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wireshark&lt;/strong&gt; - It captures and analyses packets to find malformed frames, mis-ordered packets and the like. Users can write rules to capture only certain protocols such as wireless, TCP or http to troubleshoot slow server response time, for example.&lt;/p&gt;




&lt;p&gt;Originally published at &lt;a href="http://rafaelmonteiro.github.io/"&gt;rafaelmonteiro.github.io&lt;/a&gt;.&lt;/p&gt;


</description>
      <category>networking</category>
      <category>informationsecurity</category>
      <category>tools</category>
    </item>
  </channel>
</rss>
