What is Microservice Architecture

Microservices architecture is a style that structures an application as a collection of services. This breaks all processes into its own service, where each service has its own container with its own data storage, does not share data. The inverse is monolith architecture which builds all capabilities into a single executable and process. This is a server-side system based on a single application to develop and manage.

Microservices vs. Monolith Architecture
Microservices vs. Monolith Architecture

 

Microservices implements smart endpoints uses no complex middle-ware the brain lay in the application and the network just help to route information.

Some characteristics of microservices architecture are:

  • Componentization via services
  • Organized around business capabilities
  • Decentralized data management
  • Designed for failure

Advantages of using microservices are:

  • A team can choose an any language for the service
  • Less risk in change
  • Partial Development
  • Independent Scaling
Monolith Microservices
Simple Complex
Whole Development Partial Development
No availability when other services failed Some availability when other services fail
Consistently
Preserves modularity
Multiple platforms

What is a chaos monkey?

A chaos monkey is a tool that randomly stops services in the infrastructure during the data, while services are being monitored. Since Failure will happen in any disturbed services having a chaos monkey will force developers to anticipate how that failure would happen and how it will be handled. Since failure will happen in any distributed system telling a chaos monkey into an infrastructure will make people more aware of the fact that things will break by forcing it to happen, then monitoring and recovery can handle the event. This effects how to code is designed and written to become more robust. This is chaos engineering which is the discipline of experimenting on a software system in production in order to build confidence in the system’s capability to withstand turbulent and unexpected conditions.

Netflix’s chaos monkey repository on GitHub

What is Conway’s Law?

Conway’s law states that an “organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.” This is based on the reasoning that for a software module to function, multiple authors must communicate frequently with each other. Thus, the software interface structure of a system will reflect the social boundaries of the organization that produced it. In microservices, there is a lot of variation on how big the size of each team and the number of services to support should be.

 

References

IBM Cloud. (2019, Febuary 26). What are Microservices? Retrieved from Youtube: https://www.youtube.com/watch?v=CdBtNQZH8a4

Richardson, C. (n.d.). Retrieved from microservices.io: https://microservices.io

Thoughtworks. (2015, January 31). Martin Fowler – Microservices. Retrieved from Youtube: https://www.youtube.com/watch?v=2yko4TbC8cI

ThoughtWorks. (n.d.). Martin Fowler. Retrieved from http://www.thoughtworks.com: https://www.thoughtworks.com/profiles/martin-fowler

Wikipedia. (2020, February ). Conway’s law. Retrieved from Wikipedia: https://en.wikipedia.org/wiki/Conway%27s_law

 

The Crittenden Proposal

With 7 southern states already attempting to secede and form a new nation, Congress debated how to keep the Union together by law, coercion, or compromise.

Jordan CrittendenKentucky Senator John J. Crittenden, a member of the “Committee of Thirteen,” devised a compromise, a series of amendments to the Constitution in hopes of avoiding further secession threats. Essentially, it would guarantee slavery would remain in established states without government interference. It was later modified to the 36° 30’ parallel. Believing there is no compromise when it involves slavery, the proposal was denied by Lincoln stating it would set back all he had worked to achieve. As a result, the southern states proceeded to form an independent Confederate government.

One Nation, United yet Divided

With an election on the horizon, the United States is about to undertake yet another exercise rooted in American ideology. Nevertheless, recent events have exasperated a seemingly divided nation, leaving many to wonder if there is hope in restoring unity. In hindsight, American history is laced with many a fracture upon political, social, and economic lines. None as profound as those witnessed in the 19th century with sentiments so strong, they would lead to civil war.

A nation at its youth, colonial Americans lived a simple life during the Second Great Awakening. The nearly ten million were predominately English and Protestant. Rural communities dotted the eastern third of a country expanding as the Louisiana Purchase (1803) created an additional 828,000 sq. mi. of land. They were farmers, merchants, and artisans. Horses powered machinery. Women remained in the home, raising the children. Pre-industrial man was a self-sufficient man, upholding his freedom and sobriety, guided by a strong moral center with spiritual ties to salvation. What he could not produce, he imported.

Second Great Awakening
1839 Methodist camp meeting Stephen Hofer

The rivers were far-reaching but by no means efficient. Navigation was slow and the ability to deliver goods was untimely. American imports were costly but that changed around 1820. New advancements for railroads and steamboats facilitated travel and gained momentum as the democratic republic sought new ways to deliver a more progressive nation to the people.

Portrait

President John Quincy Adams (1825-1829) initiated a federally funded project known as the Transportation Revolution. It transformed America’s infrastructure through improved roads, railways, and man-made canals. The Erie Canal (1825) created an artificial waterway between the Atlantic Ocean and the Great Lakes. In addition, the evolution of communication and the telegraph interconnected the population within seconds, as opposed to weeks. Mostly confined to New England, commerce expanded westward alongside these sprawling transportation hubs, building factories with modern, steam powered machinery along the way. Rural Americans relocated to the city as the demand for labor precipitated a full-scale American Industrial Revolution.

Into the 1830s, the notion of standardized precision of products through mass production was uniquely American. Most anything could be mass produced cheaper and better. Profit-driven industrialists used the factory system to build larger corporations that prospered as they capitalized upon productive employees possessing Protestant-Christian virtues in punctuality, reliability, and discipline. The once artisan became obsolete, now selling his craft as a mere laborer. Women entered the workforce. Factories demanded labor of all skill levels, moreover, created new and highly skilled occupations in its path such as machinists, millwrights, and engineers. A drive toward literacy and a new system of public education would also supply sorely needed skilled workers.

The flourishing economy attracted an influx of immigrants from Europe seeking opportunity. About 750,000 Germans, Irish, and Catholics arrived in the 1820s-1830s and another 4 million through the 1850s. The new capitalist society was a quick and difficult transition for many. Specialization of labor generated a system of class relations: master, journeyman, employer, and employee, often causing tension. Immigration and extreme demographic changes caused cultural friction. Nativism grew among Protestant-Christians. Yet pluralism abounded, creating the new face of a growing, consuming American industrial middle-class.

 

In contrast, the South thrived as state law protected a unique way of life based upon its agrarian tradition. There were no factories nor rapidly expanding cities. Southern culture consisted of a patriarchal society. Chivalry was embraced as a distinct hierarchy thrived, based upon race, gender, and the institution of slavery at its core.

Slavery was legal throughout colonial America but later abolished north of the Mason-Dixon Line with state or federal legislation such as the Northwest Ordinance (1787.) Looking westward, any boundary issues were solved when Congress set a dividing line in the Missouri Territory at 36° 30’, a resolution called the Missouri Compromise (1820.) Slavery remained in the south due to the lucrative nature of the business. Fertile land, ideal climate, and the availability of slaves from the African slave trade allowed southern farmers to fully equip their plantations for mass production of cotton and other crops. By law, this ruling class could continue to purchase humans to retain as property, affording them all rights of custody and servitude.

The institution of slavery was extremely vital to southern prosperity. A slave owner purchased males and females until the federal Abolition of the Slave Trade in 1807. To increase the workforce, he encouraged procreation. While slave marriages were outlawed, they still created familial relationships and produced offspring. Unfortunately, due to the harsh nature of the institution, family structure was often broken through resale and trade within the South. Breakdown of the family was just one issue that angered Abolitionists, a group that arose from the Second Great Awakening movement.

The South demonstrated a superiority in agriculture, contributing greatly to the flourishing American economy. Despite its “shortcomings,” Southerners were able to justify a superior culture and their reciprocal relationship to the Negro, who made this all possible. Yet they found no shame in human bondage. When slaves resisted or escaped, the South used the power of federally mandated fugitive slave laws. The Great Awakening prompted great criticism and opposition on both sides of the Mason-Dixon. Lack of “Yankee ingenuity” in the South was considered “dead weight” to the growing North and while they acknowledged state law, they answered to the call of a “higher law.” They established the Underground Railroad, resisted federal agents seeking runaways, and advocated for Personal Liberty Laws (1840s.)

To date, the democratic republic generally agreed upon American industry over foreign competition, centralized banking, modern infrastructure, economic growth, and mobility. By this time, Americans had already started moving west. The government assisted in clearing the way by purchase, compromise, war, and annexation. In addition, the Indian Removal Act of 1830 greatly reduced America’s true natives, confined to the government’s “less desirable” land. But onto the Great Plains and Pacific Coast they left in droves, leaving behind overcrowded cities, violence, poverty, and strained class relations.

America forged on with expansion. If more land was good, then “from sea to shining sea” must be better. Some suggested modeling American ideology. Then conformity would spread over time. Others felt it necessary to conquer. Fearing industrialist expansion was an effort to exert the power of the federal government, President Andrew Jackson vetoed the re-charter of the Second Bank of the United States in 1832. The backlash led to the creation of a two-party political structure, the Democratic Party and the Whig Party.

Andrew Jackson

Democratic President Andrew Jackson (1829-1837) and his followers believed in the voice of the common man and mobility of the culturally diverse, even though Jackson was responsible for the removal of native Americans via the Trail of Tears. They supported small, rural, un-intrusive state government, the same government that perpetuated slavery in the South. The Democrats upheld slavery and wanted it expanded with the acquisition of new territory.

The Whigs (or Patriots) upheld the values of native-born Protestants. They were the voice of education, social reform, temperance, and abolition. Whigs believed in the power of Congress and a strong federal government, federal bank, and protective tariff. They were the industrialists that perpetuated modernized infrastructure. They believed slavery was morally wrong and a (socially and economically) backwards institution. Whig member Abraham Lincoln compared slavery to a cancer that needed to be purged.

220px-James_Polk_restoredFulfilling his Manifest Destiny of 1845, President James K. Polk (1845-1849) garnered more land than any other American president. Starting with Texas, whom entered the U.S. as a slave state, the Jacksonian Polk waged Mexican war to supplement more land, which the Whigs opposed. As a result, a southern border was established and 500,000 sq. mi. of land annexed, including California. The British agreed to Polk’s acquisition of Oregon Territory which also expanded the U.S. east to the Rockies. Abolitionists viewed the expansion nothing more than a Democrats’ conspiracy to extend slavery. In 1846, Pennsylvania Congressman Wilmot Proviso attempted unsuccessfully to propose a ban to slavery expansion. Neutrality laws were greatly debated. Some southern states threatened to secede until the establishment of the Compromise of 1850, another congressional “solution” allowing states upon admission to choose by popular vote.

The Compromise upheld until the discovery of gold in the state of California hastened westward travel through midland America, specifically Kansas Territory and Nebraska Territory to the north. These territories began to populate as the nation proposed expansion of the railroad, connecting east to the west. To find favor with Southern legislature, Stephen A. Douglas of Illinois proposed dividing these territories, essentially overturning the 36° 30’ resolution. When it passed on May 20, 1854, the backlash shattered the Whig Party. As a result, the yet-to-organize Kansas formed two territorial governments and became the battleground for pro-slavery and free-soil sentiment. Once a platform for debate, the murder of a free-soil Kansas settler by a slavery supporter sparked a chain of violent events. In 1856, a pro-slavery mob invaded the town of Lawrence, Kansas, destroying businesses and burning the home of the free-soil governor. Two days later, Abolitionist John Brown led four of his sons to a pro-slavery settlement at Pottawatomie, Kansas. The men brutally dragged and beat 5 men to their death. The violence continued until its eventual “free” statehood admittance in 1861, thus coined the name “Bleeding Kansas.”

“Bleeding Kansas” instigated more violence that erupted the next few years in the name of slavery. In 1856, Massachusetts Senator was brutally beaten with a cane in the Senate Chamber after delivering his “Crime Against Kansas” speech. John Brown’s violence against slavery continued in 1856 at Harper’s Ferry, Virginia. A 36-hour standoff led to his capture and subsequent hanging, sending fear and outrage throughout the South. Southern Democrats, now weakened, looked to the government for protection from other violence. Without strength, they cannot protect slavery. Some feared the institution of slavery may be nearing its end.

Bleeding Kansas

With an impending election in 1860, several smaller parties such as the Free-Soil Party, the Know-Nothings, Nativists, and the American Party, united to form a strong Republican Party endorsing anti-slavery campaigns. A young Whig-turned Republican Abraham Lincoln surfaced as a viable candidate. Lincoln felt if the Constitution made no reference to slave ownership and the Constitution applied to every state, then America cannot continue to be ½ slave and ½ free. If a white person is allowed the opportunity to better himself, so should the black man. His rhetoric would continue through the 1858 debates. His integrity, moderation, and commitment to Republican ideology would win him the nomination and subsequent presidential victory.

The election of 1860 is considered a milestone in American politics. There was much fascination and excitement. The media uncovered a smear campaign full of character assassination, scandal,and, abuse of power. Yet the overwhelming issue led to a serious struggle and all-out war between two bi-partisan groups. Exactly 150 years later and another election on the horizon, character assassinations, scandal, and abuse of power still ring throughout bi-partisan groups as they work to deliver a better America. The struggle remains as the forum has changed in what some have called the new “Age of Impeachment,” leaving many to wonder if there ever will be unity. Maybe it is the struggle that keeps us in-check and makes our America so great.

1860 United States presidential election
1860 United States presidential election

Modeling, Analysis, and Design

What is a model?

A model is a way of expressing a software design in some form of abstract language or pictures. One person’s representation of an object might differ from someone else’s. Developers try to design different designs various of a model and decide which will be best for the final solution. An object modeling language such as UML is used to develop and express the software design. Designing a model can be challenging depending on how complex or how many features it may have. There might be dozens of models to choose from. An effective modeler needs to choose the appropriate ones.

 

What is Analysis?

Analysis is a process of discovery whose purpose is to understand the customer’s needs and requirement An Analysis must describe the functional specification about what precisely what the system must do to meet its requirements.

  • Requirements
  • Data Definitions
  • Decision tables
  • How a system should work
  • Identify classes and their relationship and behavior

 

What is Design?

Design is a blueprint to produce a solution to a problem, summarized by the requirements specification. It should always describe how the system is to perform its tasks to meet the specification. The design of algorithms takes in to account the details of each component, using a programming language or pseudo code.

Software Engineering Process Framework

Software engineering process framework activities are complemented by several umbrella activities. The umbrella activities of a software process are:

Software tracking and control

Using project management software during the lifespan of the project helps to monitor work on each module, forecasting the development time, estimating required human and technical resource hours, and calculating a critical path for the project.

Risk management

Risk is an event that may or may not occur. Risk management is the process for identifying, assessing, and prioritizing risks of different types which might endanger the assets and earning capacity of a business. Once a risk has been identified, the risk manager will create a plan to minimize or eliminate the impact of negative events. Many project managers recognize that risk management is important because achieving a project’s goal depends on planning, preparation, results, and achieving strategic goals.

Software quality assurance (SQA)

Quality is defined as the sum of the total characteristics of a software entity that bears on its ability to satisfy or implied needs. The purpose of software project quality management is to ensure that the project will satisfy the needs for which it was undertaken. Managing the quality of a software project and its development processes must meet the requirements and satisfy the user’s experience.

A software package must conform to the written requirements of the project’s processes and deliverables. When the project is “fit for use,” the product can be used as it was intended, ensuring the product will satisfy the needs for which it was developed for. In the end, the customer will decide if the quality of the software is acceptable or not.

Formal Technical Reviews (FTR)

After completing each module, it is good practice to review the completed module conducted by the technical staff. The purpose is to detect quality problems and suggest improvements before they propagate to the next activity. The technical staff will focus on the quality of the software from the customer viewpoint.

Measurement

Project and product measures are used to assist the software team in delivering the required software. This helps to ensure the stakeholder’s requirements are met. Since software itself cannot be measured directly, it is possible to measure a project by direct and indirect factors.  Examples of direct measurement are cost, lines of code, size of software. An example of an indirect measurement would be the quality of software.

Software configuration management (SCM)

A set of activities designed to control changes by identifying parts of the system that are likely to change, establishing relationships, defining mechanisms for managing different versions of the project.

  • Revision control
  • Establishment of baselines.

Re-usability measurement

Re-usability measurement defines a criterion for product reuse. Backing up each part of the software project can be corrected, or any kind of support can be given to them later to update or upgrade the software.

Work product preparation and production (models, documents, logs, forms, lists)

Documents that include project planning and activities to create models, documents, logs, forms, and lists are carried get started here.