26 October, 2017

Cloud Engineer + DevOps

The Cloud

A cloud engineer is an IT professional responsible for any technological duties associated with cloud computing, including design, planning, management, maintenance and support.

The cloud engineer position can be broken into multiple roles, including cloud architect, cloud software engineer, cloud security engineer, cloud systems engineer and cloud network engineer.

Each position focuses on a specific type of cloud computing, rather than the technology as a whole. Companies that hire cloud engineers are often looking to deploy cloud services or further their cloud understanding and technology.



DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market.

From my employer's website [edit/red.]:
 Robots and artificial intelligence create opportunities of enormous dimensions. 

 We have developed the market-leading virtual assistant, who has taken the European market by storm. The company is experiencing rapid growth and we are looking for new colleagues to join us at our office in Stavanger, Norway. Become a part of what the World Economic Forum calls "The Fourth Industrial Revolution"! 

 As an employee in our company, you become a part of a young and dynamic environment with a high degree of freedom for self-development. Your colleagues have exceptional expertise in data and technology, and all developers get access to state of the art equipment. 

 Our technology stack today consists of Linux, PostgreSQL, Apache, Varnish, Java, Spring, Grails, Groovy, Gradle, Python, Javascript, Lua, Torch, IntelliJ IDEA, Git and Amazon Web Services (hence the aws-amazon links above). We will use any required additional technologies in the future to solve whatever new challenges may arise. 

25 October, 2017

In 2017, Linux rules computing

 The Linux Foundation reports that Linux runs 90 percent of the public cloud workload, 82 percent of the world's smartphones, 62 percent of the embedded market, oh and a mere 99 percent of the supercomputer market. All that rests on the Linux kernel.

"The Linux kernel is one of the largest and most successful open-source projects that has ever come about. The huge rate of change and number of individual contributors show that it has a vibrant and active community, constantly causing the evolution of the kernel in response to number of different environments it is used in. This rate of change continues to increase, as does the number of developers and companies involved in the process; thus far, the development process has proved that it is able to scale up to higher speeds without trouble."

 Good news :)

Over the past year, the kernel has been updated through merged changesets, new drivers, hardening and testing.


19 October, 2017

Green / Blue - Blue / Green

:P WAT? Green/Blue?

Blue/Green Deployment in Datacenter

How it Works

In the "blue-green" model, two identical application stacks are maintained (for convenience, I will refer to our application server instances and service instances as a stack, database deployments are done separately . One of the stacks is always live, let us say green is live and blue is stand-by.

When we want to deploy a new build to production, we deploy it on blue stack and do thorough testing. Once new build seems to work fine, the blue stack goes live and green becomes standby. This helps us do a quick rollback if issues are identified during deployment or sanity check.

What are the challenges?

The tricky bit here is to switch between blue and green stacks with almost no downtime.
An overhead here is to maintain two stacks and hence adds to the cost.

My new job requires a lot of automation set in place for us in DevOps to be able to manage the huge deployment-workloads we get. I am currently in the process of automating our setup to a degree where we only have to initiate deployment-processes without having to monitor them as they execute :P at least compared to before I came in